Erklärung der Musterlösungen < C/C++ < Programmiersprachen < Praxis < Informatik < Vorhilfe
|
Aufgabe | #include "stdafx.h"
#define GROESSE 24*4
float MTemp[GROESSE];
int _tmain(int argc, _TCHAR* argv[])
{
int Cnt=0;
float Durchschnitt=0.0;
for (i=0;i<sizeof(MTemp)/sizeof(MTemp[0]);i++)
if (MTemp[i]!= -300)
{
Durchschnitt=Durchschnitt+MTemp[i];
Cnt++;
}
[mm] printf("\nDurchschnitt: [/mm] %f: ", Durchschnitt/Cnt);
return 0;
} |
Haben die Musterlösung zur Programmierklausur bekommen (C++) hoffe ihr könntet mir erklären, welche Zeilencode was macht.
Einige Sachen konnte ich mir schon selbst erklären:
#include "stdafx.h"
#define GROESSE 24*4 1,5 //defintion von GROESSE (Volumen)
float MTemp[GROESSE]; //Aussuchen des Zahlenbereichs von MTemp und wie groß er sein soll bzw. woher er seine Zahlen zieht
int _tmain(int argc, _TCHAR* argv[]) //Header
{
int Cnt=0;
float Durchschnitt=0.0;
for (i=0;i<sizeof(MTemp)/sizeof(MTemp[0]);i++)
if (MTemp[i]!= -300)
{
Durchschnitt=Durchschnitt+MTemp[i];
Cnt++;
}
[mm] printf("\nDurchschnitt: [/mm] %f: ", Durchschnitt/Cnt); //Ausgabe am Bildschirm
return 0;
}
Hoffe ihr könnt mir helfen.
Gruß,
Legio
|
|
|
|
Status: |
(Antwort) fertig | Datum: | 20:51 So 08.05.2011 | Autor: | felixf |
Moin Legio!
1: | #include "stdafx.h"
| 2: | #define GROESSE 24*4
| 3: | float MTemp[GROESSE];
| 4: |
| 5: | int _tmain(int argc, _TCHAR* argv[])
| 6: | {
| 7: |
| 8: | int Cnt=0;
| 9: | float Durchschnitt=0.0;
| 10: | for (i=0;i<sizeof(MTemp)/sizeof(MTemp[0]);i++)
| 11: | if (MTemp[i]!= -300)
| 12: | {
| 13: | Durchschnitt=Durchschnitt+MTemp[i];
| 14: | Cnt++;
| 15: | }
| 16: | printf("\nDurchschnitt: %f: ", Durchschnitt/Cnt);
| 17: |
| 18: | return 0;
| 19: | } |
Das soll wirklich die Musterloesung von einer Klausuraufgabe eines C++-Programmierkurses sein?!
Ich hoffe, es ist als abschreckendes Beispiel gedacht...
> Einige Sachen konnte ich mir schon selbst erklären:
> #include "stdafx.h"
> #define GROESSE 24*4 //defintion von GROESSE (Volumen)
> float MTemp[GROESSE]; //Aussuchen des Zahlenbereichs von MTemp und wie groß er sein soll bzw. woher er seine Zahlen zieht
Es wird ein Feld (Array) der Groesse GROESSE mit Eintraegen vom Datentyp float deklariert.
> int _tmain(int argc, _TCHAR* argv[]) //Header
> {
> int Cnt=0;
> float Durchschnitt=0.0;
Die Variablen Cnt und Durchschnitt werden deklariert und initialisiert (beide mit dem Wert 0).
> for (i=0;i<sizeof(MTemp)/sizeof(MTemp[0]);i++)
> if (MTemp[i]!= -300)
> {
> Durchschnitt=Durchschnitt+MTemp[i];
> Cnt++;
> }
Die Schleife durchlaeuft alle Indices i zwischen 0 und GROESSE-1: mit MTemp[i] wird somit auf jeden Eintrag von MTemp zugegriffen.
Fuer jeden Eintrag wird geschaut, ob dieser -300 ist: falls dies nicht der Fall ist, wird der Wert zu Durchschnitt addiert und der Zaehler Cnt um 1 erhoeht.
> printf("\nDurchschnitt: %f: ", Durchschnitt/Cnt);
Hier wird der Quotient Durchschnitt/Cnt ausgegeben. Dieser Quotient ist das arithmetische Mittel aller Eintraege von MTemp, die sich von -300 unterscheiden.
> return 0;
Das Programm wird beendet (mit Rueckgabewert 0, was normalerweise "kein Fehler" bedeutet).
LG Felix
|
|
|
|