Buggy McDermit 165 Melden Geschrieben 19. September 2011 Ich muß sagen so theoretisch ohne Anwendung, die dahinter steckt, finde ich persönlich das immer schiwerig zu beantworten, aber wenn ich das richtig verstanden habe... ja du mußt erst eine Controllerfunktion aufrufen, wenn du dich strikt an MVC halten willst. Beispiel Formular JSP: View1 - Daten eingeben -> Übergabe an Controller (Annahme Pflichtfeld Nachname nicht ausgefüllt) --> Controller gibt zurück an View1 || Daten korrekt -> Controller gibt an View2 (ihre Daten wurden angenommen und im Model (Datenbank) gespeichert Profle Objekt ???
Cyborg11 186 Melden Geschrieben 19. September 2011 Das Profile Objekt ist ein Objekt, dass ich selbst erstellt habe, welches eingegebene Daten enthält Hältst du dich eigentlich an MVC?
Cyborg11 186 Melden Geschrieben 19. September 2011 (bearbeitet) Ansonsten programmierst du einfach so ohne MVC? Wird das bei größeren Programmen nicht etwas unübersichtlich? EDIT: Ist die grafische Oberfläche in C eigentlich auch View und Controller vermischt oder ist das getrennt? Bearbeitet 19. September 2011 von Cyborg11
Buggy McDermit 165 Melden Geschrieben 19. September 2011 Nicht komplett ohne nur nicht strikt und zur Übersicht gibt es UML C hat einige Grafikbibliotheken im Angebot kann man pauschal nicht so sagen (jedenfalls ich nicht)
Cyborg11 186 Melden Geschrieben 19. September 2011 (bearbeitet) Einen Mischmasch find ich aber auch doof Hab mir jetzt mal eine Klasse programmiert, damit ich die Komponenten leichter im GridBagLayout anordnen kann Wenn jemand Interesse hat package view; import java.awt.Component; import java.awt.Container; import java.awt.GridBagConstraints; import java.awt.GridBagLayout; import java.awt.Insets; public class LayoutExtension { private GridBagConstraints gbc; public LayoutExtension() { gbc = new GridBagConstraints(); } /** * Methode um eine Komponente einem Container mit einem GridBagLayout hinzuzufügen. * * @param cont Container, der die Komponente beinhalten soll * @param gbl GridBagLayout * @param comp Komponente, die hinzugefügt werden soll * @param x X-Position der Komponente * @param y Y-Position der Komponente * @param height Höhe der Komponente * @param width Breite der Komponente * @param weightx Platzbedarf in X-Richtung * @param weighty Platzbedarf in Y-Richtung * @param top Freier Platz in Pixel nach oben * @param left Freier Platz in Pixel nach links * @param bottom Freier Platz in Pixel nach unten * @param right Freier Platz in Pixel nach rechts */ public void addComponent( Container cont, GridBagLayout gbl, Component comp, int x, int y, int height, int width, double weightx, double weighty, int top, int left, int bottom, int right ) { gbc.gridx = x; gbc.gridy = y; gbc.gridheight = height; gbc.gridwidth = width; gbc.weightx = weightx; gbc.weighty = weighty; gbc.anchor = GridBagConstraints.CENTER; gbc.fill = GridBagConstraints.NONE; gbc.insets = new Insets(top, left, bottom, right); gbc.ipadx = 0; gbc.ipady = 0; gbl.setConstraints(cont, gbc); cont.add(comp, gbc); } /** * Methode um eine Komponente einem Container mit einem GridBagLayout hinzuzufügen. * * @param cont Container, der die Komponente beinhalten soll * @param gbl GridBagLayout * @param comp Komponente, die hinzugefügt werden soll * @param x X-Position der Komponente * @param y Y-Position der Komponente * @param height Höhe der Komponente * @param width Breite der Komponente * @param weightx Platzbedarf in X-Richtung * @param weighty Platzbedarf in Y-Richtung * @param fill Gibt an, in welche Richtung vergrößert werden darf * @param top Freier Platz in Pixel nach oben * @param left Freier Platz in Pixel nach links * @param bottom Freier Platz in Pixel nach unten * @param right Freier Platz in Pixel nach rechts */ public void addComponent( Container cont, GridBagLayout gbl, Component comp, int x, int y, int height, int width, double weightx, double weighty, int fill, int top, int left, int bottom, int right ) { gbc.gridx = x; gbc.gridy = y; gbc.gridheight = height; gbc.gridwidth = width; gbc.weightx = weightx; gbc.weighty = weighty; gbc.anchor = GridBagConstraints.CENTER; gbc.fill = fill; gbc.insets = new Insets(top, left, bottom, right); gbc.ipadx = 0; gbc.ipady = 0; gbl.setConstraints(cont, gbc); cont.add(comp, gbc); } /** * Methode um eine Komponente einem Container mit einem GridBagLayout hinzuzufügen. * * @param cont Container, der die Komponente beinhalten soll * @param gbl GridBagLayout * @param comp Komponente, die hinzugefügt werden soll * @param x X-Position der Komponente * @param y Y-Position der Komponente * @param height Höhe der Komponente * @param width Breite der Komponente * @param weightx Platzbedarf in X-Richtung * @param weighty Platzbedarf in Y-Richtung * @param anchor Legt die Ausrichtung der Komponente im Rechteck fest * @param fill Gibt an, in welche Richtung vergrößert werden darf * @param top Freier Platz in Pixel nach oben * @param left Freier Platz in Pixel nach links * @param bottom Freier Platz in Pixel nach unten * @param right Freier Platz in Pixel nach rechts */ public void addComponent( Container cont, GridBagLayout gbl, Component comp, int x, int y, int height, int width, double weightx, double weighty, int anchor, int fill, int top, int left, int bottom, int right ) { gbc.gridx = x; gbc.gridy = y; gbc.gridheight = height; gbc.gridwidth = width; gbc.weightx = weightx; gbc.weighty = weighty; gbc.anchor = anchor; gbc.fill = fill; gbc.insets = new Insets(top, left, bottom, right); gbc.ipadx = 0; gbc.ipady = 0; gbl.setConstraints(cont, gbc); cont.add(comp, gbc); } } Bearbeitet 19. September 2011 von Cyborg11
PFLO 167 Melden Geschrieben 25. September 2011 Angabe: Aufgabe Teil 2: Schreiben Sie ein Programm (orientiert sich am Programm input_output_prinzip), das drei reelle Zahlen multipliziert. Lösungsweg: Achtung: Sie dürfen kein Array verwenden. Die Lösung des Problems ist wie folgt auszuführen: ? In der main-Funktion werden die Werte erfasst. ? Die Berechnung wird mithilfe einer eigenen Funktion ausgeführt. (Formel: Ergebnis = a * b * c) ? In der main-Funktion wird das Ergebnis ausgegeben. /* Exercise 02_01 Teil 2 */ /* Programmcode hier einfügen */ #include <stdio.h> double multiplikation(double a, double b, double c); int main(int argc, char* argv[]) { double a=0; double b=0; double c=0; printf("Geben sie die Zahl a an: "); scanf("%lf", &a); printf("Geben Sie die Zahl b an: "); scanf("%lf", &b); printf("Geben Sie die Zahl c an: "); scanf("%lf", &c); printf("Das Ergebnis lautet: %f\n", multiplikation(a, b, c)); return 0; } double multiplikation(double a, double b, double c) { double ergebnis=0; ergebnis = a * b * c; return ergebnis; } /* Mastervorlage Gueltig ab: 2011-07-30*/ /* Folgende Angaben sind hier im Kommentar verpflichtend zu erfassen */ /* Pflo */ /* ic11b063 */ Würde eigentlich so passen, oder was meint ihr?
Necrofridge 963 Melden Geschrieben 25. September 2011 scanf("%lf", &c); printf("Das Ergebnis lautet: %f\n", multiplikation(a, b, c)); return 0; } double multiplikation(double a, double b, double c) { return a * b * c; } /* Mastervorlage Gueltig ab: 2011-07-30*/ /* Folgende Angaben sind hier im Kommentar verpflichtend zu erfassen */ /* Pflo */ /* ic11b063 */ /* Exercise 02_01 Teil 2 */ /* Programmcode hier einfügen */ #include <stdio.h> double multiplikation(double a, double b, double c); int main(int argc, char* argv[]) { double a=0; double b=0; double c=0; printf("Geben sie die Zahl a an: "); scanf("%lf", &a); printf("Geben Sie die Zahl b an: "); scanf("%lf", &b); printf("Geben Sie die Zahl c an: "); So sollte das nochmal kürzer sein. Bin kein Java-Pro, jemand mit ein wenig mehr Kenntnissen sollte drübergucken.
PFLO 167 Melden Geschrieben 25. September 2011 Ok, sollte aber egal sein, die 2 Zeilen mehr.. Ist übrigens C, nicht java
Necrofridge 963 Melden Geschrieben 25. September 2011 (bearbeitet) oO sieht aus wie Java Wer bei uns im Unternehmen Programme ausschreibt, wird gelyncht Erklärt zumindest, warum ich Scanf nich kenne. Bearbeitet 25. September 2011 von Twilight
PFLO 167 Melden Geschrieben 25. September 2011 (bearbeitet) Na gut, dann besser ich es eben aus Würde bei mir wahrscheinlich keinen Punkteabzug bedeuten, aber ok, für die Zukunft ist es sicher besser E: Noch was int a = 5; int b = 8; int c = 3; ergebnis = (a = !funktion_verdopple©) && (b = funktion_potenziere©); printf("Ergebnis_7a ist:%d\n", ergebnis); printf("Ergebnis_7b ist:%d\n", a); printf("Ergebnis_7c ist:%d\n", b); ergebnis = (a = funktion_verdopple©) && (b = funktion_potenziere©); printf("Ergebnis_8a ist:%d\n", ergebnis); printf("Ergebnis_8b ist:%d\n", a); printf("Ergebnis_8c ist:%d\n", b); Ich muss das erklären, Ergebnisse sind angehängt. 7a ist klar, 5 =! 6, daher da schon 0 als Ergebnis. 7b ist 0, weil b =! 9 ist?? 7c hab ich keine Ahnung, wieso da 8 heraus kommt bei 8 blicke ich überhaupt nicht durch. Sind doch eigentlich beide Funktionen falsch, wieso kommen dann solche Ergebnisse herraus? Bearbeitet 25. September 2011 von PFLO E:
Buggy McDermit 165 Melden Geschrieben 25. September 2011 Wie wäre es mit Zeilenumbrüchen in der Ausgabe oder soll das alles in eine Zeile ? printf("\nGeben Sie die Zahl b an: "); scanf("%lf", &b); printf("\nGeben Sie die Zahl c an: "); scanf("%lf", &c); printf("\nDas Ergebnis lautet: %f\n", multiplikation(a, b, c))
PFLO 167 Melden Geschrieben 25. September 2011 Wie wäre es mit Zeilenumbrüchen in der Ausgabe oder soll das alles in eine Zeile ? printf("\nGeben Sie die Zahl b an: "); scanf("%lf", &b); printf("\nGeben Sie die Zahl c an: "); scanf("%lf", &c); printf("\nDas Ergebnis lautet: %f\n", multiplikation(a, b, c)) Das wird eh alles in einer eigenen Zeile ausgegeben
Buggy McDermit 165 Melden Geschrieben 25. September 2011 Klassischer Fall von Fail meinerseits scanf hat autozeilenumbruch...ich geh ins Bett zuviele Sportsendungen zuviel Alkohol
PFLO 167 Melden Geschrieben 25. September 2011 Hat mir trotzdem geholfen, das mit dem automatischen Zeilenumbruch wusste ich nicht Noch was int a = 5; int b = 8; int c = 3; ergebnis = (a = !funktion_verdopple©) && (b = funktion_potenziere©); printf("Ergebnis_7a ist:%d\n", ergebnis); printf("Ergebnis_7b ist:%d\n", a); printf("Ergebnis_7c ist:%d\n", b); ergebnis = (a = funktion_verdopple©) && (b = funktion_potenziere©); printf("Ergebnis_8a ist:%d\n", ergebnis); printf("Ergebnis_8b ist:%d\n", a); printf("Ergebnis_8c ist:%d\n", b); Ich muss das erklären, Ergebnisse sind angehängt. 7a ist klar, 5 =! 6, daher da schon 0 als Ergebnis. 7b ist 0, weil b =! 9 ist?? 7c hab ich keine Ahnung, wieso da 8 heraus kommt bei 8 blicke ich überhaupt nicht durch. Sind doch eigentlich beide Funktionen falsch, wieso kommen dann solche Ergebnisse herraus?