software entwicklung

Diskutiere software entwicklung im Java Basics - Anfänger-Themen Bereich.
H

Heyoka955

Du hast recht mich interessiert das aber das Problem ist ich hbe weitere Module. Ich würde mich auf das komplett fokussieren aber geht nicht wegen den anderen Fächern.

Als aofzware Entwickler hast du nur deine Aufgabe zu programmieren aber ich habe noch andere Sachen wie Module und Abgaben.

Sonst haste recht
 
M

mrBrown

Du hast recht mich interessiert das aber das Problem ist ich hbe weitere Module. Ich würde mich auf das komplett fokussieren aber geht nicht wegen den anderen Fächern.
Überraschung: Das geht allen Studenten so, das ist den Veranstaltern bekannt und die Aufgaben sind auch entsprechend ausgelegt.

Als aofzware Entwickler hast du nur deine Aufgabe zu programmieren aber ich habe noch andere Sachen wie Module und Abgaben.
Du wirst in der echten Welt noch eine ziemliche Überraschung erleben...

Programmieren macht nur einen Teil der Arbeit aus, man hat genauso viele andere Dinge zu tun.
Und statt "andere Sachen wie Module und Abgaben" hat man dann X Projekte gleichzeitig, die alle eine härtere Deadline als deine Abgaben haben.

Software-Entwicklung ist eine ganze Ecke härter als das, was du im Studium machst nicht schaffst.
 
H

Heyoka955

Ich habe eine Verständnisfrage, wie stellt man sich die Parameter Übergabe vor und was soll mit der zweiten Parameter passieren?

Denke das ist mein Problem.
 
K

kneitzel

Genau, man hat nichts anderes zu tun, als Software Entwicklung. Das ist ja auch nur ein kleines Bisschen Sprache ...

Also wenn du wirklich Mal in die Software Entwicklung einsteigen solltest, dann bekommst du mit, was dazu gehört (wer bei uns ins Team bekommen ist, der hat direkt einen Stapel eBooks bekommen nur damit er was hat zum Nachlesen):
- Tooling - da gehört alles dazu, was man so braucht. IDE, Build Tools,....
- Sprache und Code libs (da kommt ja ständig was neues)
- Frameworks und Libs, die man braucht oder brauchen könnte
- weitergehende Sprachen und Frameworks (Nur die web Technologien sind Wahnsinn. HTML und CSS geht ja noch, aber dann JavaScript und Co mit Frameworks, die gefühlt täglich neue Versionen raus bringen ...
- Methodik (da wird dann auch jedes Jahr eine neue Kuh durch das Dorf getrieben .. oder hat jemand keinen Manager der was von continuous Integration schwafelt ohne zu wissen, was das genau ist?)
- QA - ein Thema für sich, Code Qualität, Testing, ....
- Datenbanken ... Riesen Bereich für sich ...
- ....

Aber ja: beruflich habe ich nur Software Entwicklung .....

Bezüglich der Auslastung: das geht doch Anderen auch nicht anders. Warum hast du da mehr Probleme? Gründe analysieren und abstellen. Und wenn Vorwissen fehlt: dann Plan das abzustellen. So es das ist, was du willst, kostet das evtl ein oder zwei Semester ... Aber geh es richtig an. Ziel darf nicht sein, irgendwie die Aufgabe abzugeben, sondern Ziel muss sein, dass du sowas gut kannst! Da musst du hin!

Und zur Not bedeutet das auch, dass man ein Jahr massiv arbeiten muss. Ich arbeite mind. 8h auf Arbeit, 2h Fahrt und dann lerne ich auch noch für meine Job. Und im Alter fällt mir das schwerer als früher... (So Wechsel ich gerade beruflich von .Netz zu Java .... Daher meine großen Aufwände, das zu meistern! Also glaub mir: ich weiss, wovon ich rede!)
 
H

Heyoka955

Genau, man hat nichts anderes zu tun, als Software Entwicklung. Das ist ja auch nur ein kleines Bisschen Sprache ...

Also wenn du wirklich Mal in die Software Entwicklung einsteigen solltest, dann bekommst du mit, was dazu gehört (wer bei uns ins Team bekommen ist, der hat direkt einen Stapel eBooks bekommen nur damit er was hat zum Nachlesen):
- Tooling - da gehört alles dazu, was man so braucht. IDE, Build Tools,....
- Sprache und Code libs (da kommt ja ständig was neues)
- Frameworks und Libs, die man braucht oder brauchen könnte
- weitergehende Sprachen und Frameworks (Nur die web Technologien sind Wahnsinn. HTML und CSS geht ja noch, aber dann JavaScript und Co mit Frameworks, die gefühlt täglich neue Versionen raus bringen ...
- Methodik (da wird dann auch jedes Jahr eine neue Kuh durch das Dorf getrieben .. oder hat jemand keinen Manager der was von continuous Integration schwafelt ohne zu wissen, was das genau ist?)
- QA - ein Thema für sich, Code Qualität, Testing, ....
- Datenbanken ... Riesen Bereich für sich ...
- ....

Aber ja: beruflich habe ich nur Software Entwicklung .....

Bezüglich der Auslastung: das geht doch Anderen auch nicht anders. Warum hast du da mehr Probleme? Gründe analysieren und abstellen. Und wenn Vorwissen fehlt: dann Plan das abzustellen. So es das ist, was du willst, kostet das evtl ein oder zwei Semester ... Aber geh es richtig an. Ziel darf nicht sein, irgendwie die Aufgabe abzugeben, sondern Ziel muss sein, dass du sowas gut kannst! Da musst du hin!

Und zur Not bedeutet das auch, dass man ein Jahr massiv arbeiten muss. Ich arbeite mind. 8h auf Arbeit, 2h Fahrt und dann lerne ich auch noch für meine Job. Und im Alter fällt mir das schwerer als früher... (So Wechsel ich gerade beruflich von .Netz zu Java .... Daher meine großen Aufwände, das zu meistern! Also glaub mir: ich weiss, wovon ich rede!)
Ich setzt mich ran und gucke was ich machen kann.

Nein Probleme steht oben geschrieben.

Ich will in Richtung Consulting oder Data Scientist.
 
H

Heyoka955

das ist mein ansatz code, zu aller erst will ich die Datei filtern so dass immer jedes Wort einzeln in der zeile steht.
Mein Ansatz wäre so für den zweiten parameter.




Code:
/*
 * This Java source file was generated by the Gradle 'init' task.
 */
package blatt2;

import java.io.*;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.util.List;

public class App {
    public String getGreeting() {
        return "Hello world.";
    }

    public static void main(String[] args) throws IOException {
        List<String> a = (List<String>) Files.lines(Paths.get("blatt2.txt"));
            filter.(x -> x.split(" ");  //Text filtern nach jeder neuen Zeile Mein Ansatz
            


        a.forEach(x -> System.out.println(x));

    }


}
 
M

mrBrown

Du hast wirklich absolut keine Ahnung, was du da eigentlich machst, oder?

Wie kann man denn seit zwei Semestern Java programmieren, und so einen Müll schreiben?
 
H

Heyoka955

Du hast wirklich absolut keine Ahnung, was du da eigentlich machst, oder?

Wie kann man denn seit zwei Semestern Java programmieren, und so einen Müll schreiben?
Das war der gegebene Code bis auf
List<String> a = (List<String>) Files.lines(Paths.get("blatt2.txt"));
filter.(x -> x.split(" "); //Text filtern nach jeder neuen Zeile Mein Ansatz



a.forEach(x -> System.out.println(x));
 
mihe7

mihe7

Ich verstehe was da passiert aber nun frage ich mich wie ich das splitten kann
Würdest Du auch nur im Ansatz verstehen, was da passiert, dann würdest Du solchen Code überhaupt nicht schreiben. Erst castest Du einen Stream mal eben zur List und die zweite Zeile ist so dermaßen falsch, dass es für eine Erklärung keine Worte gibt.
 
H

Heyoka955

Würdest Du auch nur im Ansatz verstehen, was da passiert, dann würdest Du solchen Code überhaupt nicht schreiben. Erst castest Du einen Stream mal eben zur List und die zweite Zeile ist so dermaßen falsch, dass es für eine Erklärung keine Worte gibt.
Der cast sollte nicht da sein.
Das war wegen der ide. Ich habe heute beschlossen mit der ide zu arbeiten und wenn man nicht aufpasst dann irgendwo klickt weil man zu schnell war dann passiert sowas.
Der cast sollte nicht da sein.

Und die zweite Zeile sollte nur eine Idee sein was ich planen will Bzw mein Ziel was ich machen will.

Ich habe eine Fehlermeldung auch bekommen aber ich wollte es Posten damit ihr sieht was ich vorhatte.
 
mihe7

mihe7

Das macht es nicht besser. Was soll denn die Idee dahinter sein, einen Filter zu benutzen? Und wie kommst Du auf die Idee, dass split ein Prädikat für den Filter liefern würde?
 
H

Heyoka955

Das macht es nicht besser. Was soll denn die Idee dahinter sein, einen Filter zu benutzen? Und wie kommst Du auf die Idee, dass split ein Prädikat für den Filter liefern würde?
Mein Ziel war es den Stream in eine liste zu speichern.

Und dann den String der in der Liste gespeichert ist so zu filtern dass am Ende immer eine neue Zeile bei einem Wort kommt.
Ich hatte intuitiv für Split gedacht aber das macht kein Sinn. Weil er nur den String nach Leerzeichen trennt.
 
mihe7

mihe7

Man sieht in jedem Satz, dass Du nicht weißt, was Du da tust. Das meine ich ernst.

Schon mal darüber nachgedacht, warum die Methode lines() heißt?
 
mihe7

mihe7

Mal grob übersetzt: Die lines() Methode der Java BufferedReader Klasse gibt einen Stream von Elementen zurück, bei denen es sich um Zeilen handelt, die von diesem BufferedReader gelesen wurden.
 
H

Heyoka955

Mal grob übersetzt: Die lines() Methode der Java BufferedReader Klasse gibt einen Stream von Elementen zurück, bei denen es sich um Zeilen handelt, die von diesem BufferedReader gelesen wurden.
Ich weiß aber wie meint man: bei denen es sich um Zeilen handelt ?

Ich verstehe den Satz nicht so wirklich.
 
mihe7

mihe7

Die Elemente des Streams sind die Zeilen der Datei.

Kurz: die lines() Methode gibt die Zeilen einer Datei als Stream zurück. Ein Stream<T> ist eine Folge von Elementen des Typs T (das hat nichts mit den I/O-Streams aus dem Paket java.io zu tun).
 
H

Heyoka955

Richtig. Ich habe im Kommentar #124 noch etwas ergänzt.
Ah okay das heißt in der Liste wird der Stream so gespeichert

Erstes Element 1 Hah haha haha hä
Zweites Element hahaha hahah
Drittes Element h h h h h h
.....

Immer wenn neue Zeilen kommen!

Aber dann wäre die Aufgabe 1
Doch geklärt ?
Die wollen dass wir den String nach jeder Zeile Filtern
 
mihe7

mihe7

Um zum Beispiel aus einer Datei test.txt alle Zeilen, in denen die Zeichenfolge "wie" vorkommt, zu zählen:
Java:
long anzahl = Files.lines("test.txt") // Aus einem Stream mit Zeilen
    .filter(zeile -> zeile.contains("wie")) // nur die Zeilen, die "wie" enthalten
    .count(); // zählen
Um doppelte Zeilen nicht mitzuzählen:
Java:
long anzahl = Files.lines("test.txt") // Aus einem Stream mit Zeilen
    .filter(zeile -> zeile.contains("wie")) // nur die Zeilen, die "wie" enthalten
    .distinct() // und jede nur einmal
    .count(); // zählen
 
H

Heyoka955

Um zum Beispiel aus einer Datei test.txt alle Zeilen, in denen die Zeichenfolge "wie" vorkommt, zu zählen:
Java:
long anzahl = Files.lines("test.txt") // Aus einem Stream mit Zeilen
    .filter(zeile -> zeile.contains("wie")) // nur die Zeilen, die "wie" enthalten
    .count(); // zählen
Um doppelte Zeilen nicht mitzuzählen:
Java:
long anzahl = Files.lines("test.txt") // Aus einem Stream mit Zeilen
    .filter(zeile -> zeile.contains("wie")) // nur die Zeilen, die "wie" enthalten
    .distinct() // und jede nur einmal
    .count(); // zählen
Das verstehe ich aber was wollte dann Die Aufgabe 1 ?
 
H

Heyoka955

Schreiben Sie ein Programm, das drei Parameter bekommt. Der erste Parameter ist eine Eingabedatei, der zweite Parameter ist eine Datei mir Filter-Wörtern (je eins pro Zeile) und der dritte Parameter ist eine Ausgabedatei.

Das Programm soll aus dem Inhalt der Eingabedatei einen KWIC Index erzeugen und diesen in der Ausgabedatei speichern. In dem KWIC Index sollen keine Duplikate vorkommen und alle Rotationen, die mit einem Wort aus der Filter-Wort Datei beginnen sollen entfernt werden.

Sie sollen nicht die Dekomposition nach Parnas aus der Vorlesung verwenden. Benutzen Sie wo immer es geht Java Streams zur Verarbeitung.

Der folgende Code kann verwendet werden, um eine Wort-Liste input um n Worte zu rotieren:

String rotateListByN(int n, List<String> input) {
List<String> a = new ArrayList<>();
a.addAll(input);
Collections.rotate(a, n);
return String.join(" ", a);
}
 
H

Heyoka955

11866

nur dieses Beispiel gibt es auf wiki, aber der prof hat uns keine wirkichen beispiele gegeben.
 
mihe7

mihe7

aber der prof hat uns keine wirkichen beispiele gegeben.
Evtl. hat er eine entsprechende Definition des KWIC-Index gegeben. Wie auch immer: wenn Du nicht weißt, wie die Ausgabe aussehen soll, musst Du halt beim Aufgabensteller nachfragen.

Das Wiki-Beispiel zeigt z. B. fett gesetzte Wörter - das geht in Textdateien schlecht. Und was soll als Index ausgegeben werden? Für die Seitennummer müsstest Du erst einmal wissen, wie viele Zeilen auf eine Seite passen. Also eher ungünstig. Die Zeilennummer wäre denkbar. Solche Anforderungen müssen (ggf. auf Nachfrage) geklärt sein.
 
H

Heyoka955

Evtl. hat er eine entsprechende Definition des KWIC-Index gegeben. Wie auch immer: wenn Du nicht weißt, wie die Ausgabe aussehen soll, musst Du halt beim Aufgabensteller nachfragen.

Das Wiki-Beispiel zeigt z. B. fett gesetzte Wörter - das geht in Textdateien schlecht. Und was soll als Index ausgegeben werden? Für die Seitennummer müsstest Du erst einmal wissen, wie viele Zeilen auf eine Seite passen. Also eher ungünstig. Die Zeilennummer wäre denkbar. Solche Anforderungen müssen (ggf. auf Nachfrage) geklärt sein.
ich zeige dir mal was mein prof im Skript stehen hat hahah

11868
 
mihe7

mihe7

Ja. Mal für eine Zeile: erstelle eine Wortliste L := (w_0, w_1, ..., w_n). Betrachte diejenigen i, für die gilt: w_i ist nicht in der Filter-Wort-Datei enthalten und rotiere die Liste um i nach links.

Das machst Du für alle Zeilen, dann entfernst Du die Duplikate, sortierst das Ergebnis und gibst es aus.

Beispiel: die Filter-Wort-Datei enthalte die Wörter FÜR, DIE, SIND

Eingabe:
VERWENDE FÜR DIE LÖSUNG STREAMS
STREAMS SIND DOKUMENTIERT

1. Zeile:

L_0 = (w_0, w_1, w_2, w_3, w_4) = (VERWENDE, FÜR, DIE, LÖSUNG, STREAMS)

I := {i aus [0, 4] für die gilt: w_i ist kein Element aus Filter-Wort-Datei} = {0, 3, 4}

Für jedes i aus I: rotiere die Liste um i nach links:
i = 0: L_00 = VERWENDE FÜR DIE LÖSUNG STREAMS
i = 3: L_01 = LÖSUNG STREAMS VERWENDE FÜR DIE
i = 4: L_02 = STREAMS VERWENDE FÜR DIE LÖSUNG

2. Zeile:

L_1 = (w_0, w_1, w_2) = (STREAMS, SIND, DOKUMENTIERT)
I := {i aus [0,2] für die gilt: w_i ist kein Element aus Filter-Wort-Datei} = {0, 2}

Für jedes i aus I: rotiere die Liste um i nach links:
i = 0: L_10 = STREAMS SIND DOKUMENTIERT
i = 2: L_11 = DOKUMENTIERT STREAMS SIND

Zwischenstand: L_00, L_01, L_02, L_10, L_11.
Nach dem Entfernen von Duplikaten: L_00, L_01, L_02, L_10, L_11 (weil es gibt keine Duplikate gibt, keine Änderung)
Alphabetisch sortieren: L_11, L_01, L_10, L_02, L_00
Ausgabe:
DOKUMENTIERT STREAMS SIND
LÖSUNG STREAMS VERWENDE FÜR DIE
STREAMS SIND DOKUMENTIERT
STREAMS VERWENDE FÜR DIE LÖSUNG
VERWENDE FÜR DIE LÖSUNG STREAMS
 
A

AndiE

Die flatMap Methode aus Streams könnte ebenso hilfreich sein, wie IntStream.range(…). Einen String können Sie mit der split Methode in Worte zerlegen.

Steht noch als "important" bei der Aufgabe.
 
Thema: 

software entwicklung

Passende Stellenanzeigen aus deiner Region:
Anzeige

Neue Themen

Anzeige

Anzeige
Oben