Mani Geschrieben 20. November 2003 Geschrieben 20. November 2003 Hallo! Ich möchte gerne ein Programm schreiben was eine Summenfunktion beinhaltet: Das heisst ich gebe einen Startwert ein, zb. 2 und einen Endwert ein z.b 6. und jetzt will ich das das programm 2 +3+4+5+ 6 rechnet ! Das geht doch bestimmt mit einer Zählschleife oder ??? Bitte schnell antworten!!! Daaaanke ! Zitieren
Guybrush Threepwood Geschrieben 20. November 2003 Geschrieben 20. November 2003 Original geschrieben von Mani Das geht doch bestimmt mit einer Zählschleife oder ??? Unter anderem ja. Wie sieht denn dein Ansatz aus? Zitieren
Mani Geschrieben 20. November 2003 Autor Geschrieben 20. November 2003 Na ja mein Ansatz is bis jetzt nur die zählschleife, eine if bedingung hab ich auch schon drin, das der sw kleiner als der ew sein muss:) wie geht es denn noch???? Zitieren
sunday united Geschrieben 20. November 2003 Geschrieben 20. November 2003 das sollte doch eigentlich reichen. Zählerschleife und die Überprüfung. Mehr solltest Du nicht brauchen, mal abgesehen von einer Ausgabe. greetz Zitieren
Mani Geschrieben 20. November 2003 Autor Geschrieben 20. November 2003 Ja das hab ich mir auch gedacht, jedoch weis ich nit wie man das realisiert in C Zitieren
Guybrush Threepwood Geschrieben 20. November 2003 Geschrieben 20. November 2003 Dann solltest du dir am Besten ein Buch oder eBook besorgen und erstmal die C Basics lernen. Zitieren
sunday united Geschrieben 20. November 2003 Geschrieben 20. November 2003 nun, Du liest also eine Start- und einen Endwert ein. Vergleich: st<ew -> Ja -> weiter sonst Ende. Is klar, ne If - Anweisung. Die Summe der Zahlen ist erst Null. also Summe=0 Dann die Schleife. der Zaehler beginnt mit dem SW. Bei jedem Durchlauf wird die Summe jeweils um den Zeahler erhöht. Der Zaehler wird in jedem Durchlauf um 1 erhöht. Schleife läuft solange, bis der EW erreicht ist. Dann Ausgabe der Summe. Sorry, aber ich wollte jetzt nicht den Quellcode aufschreiben... Das überlasse ich Dir. Aber der Ablauf ist soweit klar ? greetz EDIT: Ist noch einer vor mir gekommen ... Aber stimmt eigentlich. Haste denn überhaupt schon mal mit C programmiert ? Zitieren
Mani Geschrieben 20. November 2003 Autor Geschrieben 20. November 2003 Ne C is ganz neu für mich! Aber ich werd es jetzt mal versuchen Danke Zitieren
Mani Geschrieben 20. November 2003 Autor Geschrieben 20. November 2003 #include <stdio.h> #include <math.h> #include <conio.h> #include <iostream> main () { int sw, ew, ergebnis ; printf ("\nDieses Programm berechnet die gesamte Summe eines Anfangswert.\n"); printf ("bis zu einem beliebeigen Endwert\n"); do{ printf ("\nBitte geben Sie einen ganzzahligen, positiven Startwert ein.\n"); scanf ("%i", &sw); printf ("\nBitte geben Sie einen ganzzahligen, positiven Endwert ein.\n"); scanf ("%i", &ew); if (sw >= ew) system ("cls"); printf ("\nDer Endwert muss logischerweise groesser als der Startwert sein!\n"); getch(); system ("cls"); }while (sw >= ew); for (ergebnis = 0; sw <= ew; sw++) { } printf ("Ergebnis %i", ergebnis); } Zitieren
Mani Geschrieben 20. November 2003 Autor Geschrieben 20. November 2003 So jetzt nur noch die for schleife füllen, und das war eigentlich auch mein problem! Na ja ich glaub ich bin zum programmieren einfach nit geboren Zitieren
sunday united Geschrieben 20. November 2003 Geschrieben 20. November 2003 nun, die Schleife kann so nix werden. probier mal sowas: int summe=0; for (int zaehler=sw; zaehler>=ew; zeahler++) { summe+=zaehler; } greetz Zitieren
nic_power Geschrieben 20. November 2003 Geschrieben 20. November 2003 Hallo, das geht auch einfacher, da Du hier die Gauss-Methode einsetzen kannst: http://www.linux-related.de/coding/alg_gauss.htm Nic Zitieren
MasterC Geschrieben 24. November 2003 Geschrieben 24. November 2003 Vor allem gehts mit der Gauss-Methode deutlich schneller, wenn sehr viele Zahlen addiert werden sollen! Zitieren
CrazyRay Geschrieben 24. November 2003 Geschrieben 24. November 2003 Original geschrieben von sunday united nun, die Schleife kann so nix werden. probier mal sowas: int summe=0; for (int zaehler=sw; zaehler>=ew; zeahler++) { summe+=zaehler; } greetz so kann die Schleife aber auch nichts werden.... es muss heißen zaehler <= ew MfG Roman Zitieren
MasterC Geschrieben 25. November 2003 Geschrieben 25. November 2003 Bitte schön int summe = 0; summe = ((UG + OG)/2)*(UG - OG) Geht viel schneller als ne Zählschleife! Zitieren
MasterC Geschrieben 25. November 2003 Geschrieben 25. November 2003 UG = untere Grenze OG = obere Grenze Hatte ich vergessen Zitieren
sunday united Geschrieben 26. November 2003 Geschrieben 26. November 2003 Original geschrieben von CrazyRay so kann die Schleife aber auch nichts werden.... es muss heißen zaehler <= ew MfG Roman Es handelt sich zwar "nur" um einen Tippfehler, aber dennoch hast Du natürlich recht, Roman. Danke für den Hinweis. greetz Zitieren
Klotzkopp Geschrieben 26. November 2003 Geschrieben 26. November 2003 Original geschrieben von MasterC summe = ((UG + OG)/2)*(UG - OG) Ausprobiert hast du das aber nicht summe = ((UG + OG)/2)*(OG - UG + 1) Zitieren
Master Z Geschrieben 27. November 2003 Geschrieben 27. November 2003 Hi hab mal versucht dein Problem zu lösen! Vielleicht kann ich dir damit weiterhelfen! ------------------------------------------------------------------------------------------------------ #include <stdio.h> void main (void) { int zahl1,zahl2; int i=1; printf("Bitte geben sie den Startwert ein!"); scanf("%i",&zahl1); printf("Bitte geben sie den Stoppwert ein!"); scanf("%i",&zahl2); fflush(stdin); for(i=zahl1;i<=zahl2;i++) { if(i==zahl2) { printf("%i",i); } else { printf("%i,",i); } } fflush (stdin); getchar (); return 0; } ------------------------------------------------------------------------------------------------------- Ich hoffe der Quelltext stimmt!Bei mir funzt es! Mfg Red Cap Zitieren
nic_power Geschrieben 27. November 2003 Geschrieben 27. November 2003 Hallo, ehrlich gesagt, kann ich nicht nachvollziehen was Dein Programm mit der Fragestellung zu tun hat. Es gibt die Zahlen zwischen "zahl1" und "zahl2" auf dem Bildschirm auf (die if-Abfrage ist überflüssig, da der "if" und "else" Fall identisch sind). Ein paar generelle Anmerkungen noch zum Code: "main" liefert _immer_ ein int zurück, ein flush auf "stdin" liefert nicht definierbare Ergebnisse. Nic Zitieren
Master Z Geschrieben 27. November 2003 Geschrieben 27. November 2003 Sorry dann hab ich es falsch verstanden!Tut mir sorry! Bin im Programmieren noch ein Anfänger! Sorry! Kannst du vielleicht meine Frage im forum beantworten? (Programm) Zitieren
Timon Geschrieben 3. Dezember 2003 Geschrieben 3. Dezember 2003 Ein paar generelle Anmerkungen noch zum Code: "main" liefert _immer_ ein int zurück Ich würde hierzu gerne nocheinmal darauf verweisen, dass der Standard (ISO/IEC 9899:1999) dies fuer sogenannte "Freestanding Environments" _nicht_ zwingend vorschreibt. Auszug: ... In a freestanding environment (in which C program execution may take place without any benefit of an operating system), the name and type of the function called at program startup are implementation-defined... Nachzulesen in ISO/IEC 9899:1999 Kapitel 5.1.2 "Execution Environments" Zitieren
nic_power Geschrieben 3. Dezember 2003 Geschrieben 3. Dezember 2003 Hallo, das ist zwar richtig, aber wohl eher theoretischer Natur, da üblicherweise in einem Hosted Environment mit Betriebssystemunterstützung gearbeitet wird. Bei Freestanding Environments existieren noch Reihe weiterer Unterschiede insbesondere in Bezug auf die Kommunikation mit dem Betriebssystem (Programmtermination, File IO, Umgebungsvariablen, etc.). Wenn ich mich richtig entsinne, gabs da auch im Annex eine entsprechende Liste. Nic Zitieren
Timon Geschrieben 9. Dezember 2003 Geschrieben 9. Dezember 2003 Hallo, ich muss nochmal meinen Senf dazugeben. 1. Ich wuerde die Zahl der "freestanding environments" nicht unterschätzen. (Waschmaschinen wollen auch programmiert werden ) 2. freestanding environments kommunizieren nicht mit einem OS, weil es normal keines gibt. (Oder ein RTOS ist direkt in das Programm integriert) 3. Der von dir angesprochene Zusatz lässt sich hauptsächlich über Systeminitilisierung und Libraries aus. Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.