Zählproblem
Zählproblem
Hallo,
woher weiß das Programm bei der Musterloesung, dass er hoch bzw. runter zaehlen muss?
Meine Loesung ist wie Ihr sieht mit einer Schleife erstellt.
<blockquote><pre><font size="1" face="">code:</font><hr><font face="Courier New" size="2">
int main()
{
int h,m,gesm,kosten=0,x,p;
printf("Gewuenschte Rechenzeit eingeben - hh.mm: ");
scanf("%d.%d", &h, &m);
gesm=m+h*360;
if(gesm<=5*360)
kosten=200;
else if(gesm<=15*360)
{
for(x=5;x<=h;x++)
kosten+=35;
kosten=kosten+200;
}
else
{
for(x=h;x>15;x--)
kosten+=30;
kosten=kosten+550;
}
...
/*MUSTERLOESUNG*/
hi1=rz
if(hi1!rz)
hi1++
if(rz<=5.00)
ko=200;
else if(rz<=15.00)
ko=(hi1-5)*35+200;
else
ko=(hi1-15)*30+550;
</font><hr></pre></blockquote>
bis bald
Andreas
woher weiß das Programm bei der Musterloesung, dass er hoch bzw. runter zaehlen muss?
Meine Loesung ist wie Ihr sieht mit einer Schleife erstellt.
<blockquote><pre><font size="1" face="">code:</font><hr><font face="Courier New" size="2">
int main()
{
int h,m,gesm,kosten=0,x,p;
printf("Gewuenschte Rechenzeit eingeben - hh.mm: ");
scanf("%d.%d", &h, &m);
gesm=m+h*360;
if(gesm<=5*360)
kosten=200;
else if(gesm<=15*360)
{
for(x=5;x<=h;x++)
kosten+=35;
kosten=kosten+200;
}
else
{
for(x=h;x>15;x--)
kosten+=30;
kosten=kosten+550;
}
...
/*MUSTERLOESUNG*/
hi1=rz
if(hi1!rz)
hi1++
if(rz<=5.00)
ko=200;
else if(rz<=15.00)
ko=(hi1-5)*35+200;
else
ko=(hi1-15)*30+550;
</font><hr></pre></blockquote>
bis bald
Andreas
Re: Zählproblem
else if(gesm<=15*360)
{
for(x=5;x<=h;x++) // x ist gleich 5;ist x kleiner,gleich h dann x (+1) .... inkrement
kosten+=35;
kosten=kosten+200;
}
else
{
for(x=h;x>15;x--) // ..... ..... . ist x größer 15 dann x (-1) .... dekrement
kosten+=30;
kosten=kosten+550;
}
formatiert man code heute eigentlich nur noch ohne spaces?
{
for(x=5;x<=h;x++) // x ist gleich 5;ist x kleiner,gleich h dann x (+1) .... inkrement
kosten+=35;
kosten=kosten+200;
}
else
{
for(x=h;x>15;x--) // ..... ..... . ist x größer 15 dann x (-1) .... dekrement
kosten+=30;
kosten=kosten+550;
}
formatiert man code heute eigentlich nur noch ohne spaces?
Re: Zählproblem
Hallo Unbekannter,
dass ich meine Loesung nachvollziehen kann versteht sich von selbst, meine Frage aber war woher weiss das Programm DER MUSTERLOESUNG wie oft es zu zählen hat oder nicht?!
bis bald
Andreas
dass ich meine Loesung nachvollziehen kann versteht sich von selbst, meine Frage aber war woher weiss das Programm DER MUSTERLOESUNG wie oft es zu zählen hat oder nicht?!
bis bald
Andreas
Re: Zählproblem
wenn du deinen code verstehst warum fragst du dann? ich kann deine frage nicht wirklich nachvollziehen!
hi1=rz // selbsterklärend
if(hi1!rz) // ist hi1 nichtgleich rz
hi1++ // dann hi1 inkrement, also +1
mfg
hi1=rz // selbsterklärend
if(hi1!rz) // ist hi1 nichtgleich rz
hi1++ // dann hi1 inkrement, also +1
mfg
Re: Zählproblem
Hallo mfg,
nun bis jetzt bin ich davon immer ausgegangen, dass Wiederholungen nur in Form von Schleifen (for, while) zu realisieren sind, aber mit der jetzigen Antwort ist mir klar, dass Wiederholungen auch andres zu realisieren sind.
Danke
bis bald
Andreas
nun bis jetzt bin ich davon immer ausgegangen, dass Wiederholungen nur in Form von Schleifen (for, while) zu realisieren sind, aber mit der jetzigen Antwort ist mir klar, dass Wiederholungen auch andres zu realisieren sind.
Danke
bis bald
Andreas
Re: Zählproblem
das hier ist quatsch:
<blockquote><pre><font size="1" face="">code:</font><hr><font face="Courier New" size="2">for(x=5;x<=h;x++)
kosten+=35;
kosten=kosten+200;</font><hr></pre></blockquote>überleg mal: die schleife wird (h-5+1)-mal durchlaufen, jedesmal wird "kosten" um 35 erhöht. insgesamt wird also einfach (h-5+1)*35 zu kosten hinzuaddiert, und am ende dann nochmal +200. also: kosten += (h-5+1)*35 + 200. genauso wird es ja auch in der musterlösung gemacht. nur, dass dort die eins nicht hinzuaddiert wird -- bist du denn sicher, dass die abbruchbedingung x<=h (und nicht x<h) heissen soll?
> bis jetzt bin ich davon immer ausgegangen, dass Wiederholungen nur in Form von Schleifen (for, while) zu realisieren sind,
> aber mit der jetzigen Antwort ist mir klar, dass Wiederholungen auch andres zu realisieren sind.
ich kapier gar nichts mehr. wie kommst du drauf, dass man wiederholungen auch ohne schleifen machen kann? wo wird denn im code sowas gemacht?
<blockquote><pre><font size="1" face="">code:</font><hr><font face="Courier New" size="2">for(x=5;x<=h;x++)
kosten+=35;
kosten=kosten+200;</font><hr></pre></blockquote>überleg mal: die schleife wird (h-5+1)-mal durchlaufen, jedesmal wird "kosten" um 35 erhöht. insgesamt wird also einfach (h-5+1)*35 zu kosten hinzuaddiert, und am ende dann nochmal +200. also: kosten += (h-5+1)*35 + 200. genauso wird es ja auch in der musterlösung gemacht. nur, dass dort die eins nicht hinzuaddiert wird -- bist du denn sicher, dass die abbruchbedingung x<=h (und nicht x<h) heissen soll?
> bis jetzt bin ich davon immer ausgegangen, dass Wiederholungen nur in Form von Schleifen (for, while) zu realisieren sind,
> aber mit der jetzigen Antwort ist mir klar, dass Wiederholungen auch andres zu realisieren sind.
ich kapier gar nichts mehr. wie kommst du drauf, dass man wiederholungen auch ohne schleifen machen kann? wo wird denn im code sowas gemacht?
Re: Zählproblem
Hallo,
nun, ich habe die Musterloesung als linear interpretiert, folglich könnte ich keine Schleife erkennen, da ich meine eine Schleife ist in sich nicht linear.
Die Aufgabenstellung des Programms:
Leistungen eines Rechenzentrums sind nicht umsonst. Die Grundgebühr für einen Job richtet sich nach der verbrauchten Rechenzeit wie folgt:
Rechenzeit in Stunden Grundgebühr
0.00 bis 5.00 200 DM
5.01 -15.00 200 DM plus 35 DM für jede angefangene Stunde über 5 Stunden
15.01 und mehr 550 DM plus 30 DM für jede angefangene Stunde über 15 Stunden.
Dazu kommt ein Zuschlag für die Priorität des Jobs. Die Priorität wird durch die Ziffer 0, 1 oder 2 angegeben.
Der Zuschlag beträgt: Priorität 0 1 2 Zuschlag in DM 0 50 150 Schreiben Sie ein Programm, welches zu einer gegebenen Zeit und Priorität die Kosten berechnet.
Testbeispiele: Zeit: 4.00 Priorität: 0 Kosten: 200 DM Zeit: 14.00 Priorität: 1 Kosten: 565 DM Zeit: 20.00 Priorität: 2 Kosten: 850 DM Zeit: 5.00 Priorität: O Kosten: 200 DM Zeit: 15.01 Priorität: 0 Kosten: 580 DM
bis bald
Andreas
nun, ich habe die Musterloesung als linear interpretiert, folglich könnte ich keine Schleife erkennen, da ich meine eine Schleife ist in sich nicht linear.
Die Aufgabenstellung des Programms:
Leistungen eines Rechenzentrums sind nicht umsonst. Die Grundgebühr für einen Job richtet sich nach der verbrauchten Rechenzeit wie folgt:
Rechenzeit in Stunden Grundgebühr
0.00 bis 5.00 200 DM
5.01 -15.00 200 DM plus 35 DM für jede angefangene Stunde über 5 Stunden
15.01 und mehr 550 DM plus 30 DM für jede angefangene Stunde über 15 Stunden.
Dazu kommt ein Zuschlag für die Priorität des Jobs. Die Priorität wird durch die Ziffer 0, 1 oder 2 angegeben.
Der Zuschlag beträgt: Priorität 0 1 2 Zuschlag in DM 0 50 150 Schreiben Sie ein Programm, welches zu einer gegebenen Zeit und Priorität die Kosten berechnet.
Testbeispiele: Zeit: 4.00 Priorität: 0 Kosten: 200 DM Zeit: 14.00 Priorität: 1 Kosten: 565 DM Zeit: 20.00 Priorität: 2 Kosten: 850 DM Zeit: 5.00 Priorität: O Kosten: 200 DM Zeit: 15.01 Priorität: 0 Kosten: 580 DM
bis bald
Andreas
Re: Zählproblem
ich glaub ich hab jetzt verstanden, was du meinst.
ob man herauf- oder herunterzählt ist völlig egal. entscheidend ist ja nur die zahl der durchläufe.
du hättest statt dem herunterzählen....
<blockquote><pre><font size="1" face="">code:</font><hr><font face="Courier New" size="2">
for(x=h;x>15;x--)
kosten+=30;</font><hr></pre></blockquote>
auch so schreiben können...
<font face="Courier New">
for(x=15; x<h; x++) kosten+=30;
</font><!--fixed-->
oder eben (wie bereits erklärt) ganz ohne schleife.
ob man herauf- oder herunterzählt ist völlig egal. entscheidend ist ja nur die zahl der durchläufe.
du hättest statt dem herunterzählen....
<blockquote><pre><font size="1" face="">code:</font><hr><font face="Courier New" size="2">
for(x=h;x>15;x--)
kosten+=30;</font><hr></pre></blockquote>
auch so schreiben können...
<font face="Courier New">
for(x=15; x<h; x++) kosten+=30;
</font><!--fixed-->
oder eben (wie bereits erklärt) ganz ohne schleife.
Re: Zählproblem
Danke.
Ich bin noch sehr jungfräulich in der Programmierung.
Ich bin noch sehr jungfräulich in der Programmierung.
Re: Zählproblem
neugierdehalber: was für ein lehrbuch verwendest du denn da? lernst du C alleine/aus interesse oder für schule/studium?
Re: Zählproblem
Nun ja, ich habe die C-Programmierung während einer Technikerausbildung gelernt und es ist jetzt ungefähr ein halbes Jahr zurück. Jetzt versuche ich es mir wieder anzueignen, wobei ich schon damals in der Schule schlecht gewesen bin, habe die Prüfung mit 4,5 schriftlich und mündlich mit 4,0 bestanden.
Wenn man so will, frische ich mir das Wissen nochmal an, um nicht ganz so doof da zu stehen.
Wenn man so will, frische ich mir das Wissen nochmal an, um nicht ganz so doof da zu stehen.
Re: Zählproblem
Was ist denn das für idiotische Aufgabenstellung?
Für eine Rechenzeit von 0 muß man schon mal 200 Mäuse abdrücken und was ist mit den Zeiten 5h < t < 5.01h und 15h < t < 15.01 ?
Von einer Informatik (Mathe,Physik,..) -Lehrkraft kann dieser Unfug doch nicht stammen. (Falls doch, dann nach Bayern schicken, dort können sie in Schulbüchern Masse und Gewicht nicht auseinander halten. Da fällt so etwas auch nicht auf.)
Udo
Für eine Rechenzeit von 0 muß man schon mal 200 Mäuse abdrücken und was ist mit den Zeiten 5h < t < 5.01h und 15h < t < 15.01 ?
Von einer Informatik (Mathe,Physik,..) -Lehrkraft kann dieser Unfug doch nicht stammen. (Falls doch, dann nach Bayern schicken, dort können sie in Schulbüchern Masse und Gewicht nicht auseinander halten. Da fällt so etwas auch nicht auf.)
Udo