Zählproblem

Post Reply
Message
Author
logo

Zählproblem

#1 Post by logo »

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

alien

Re: Zählproblem

#2 Post by alien »

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?

logo
Posts: 20
Joined: 06. Mar 2003 23:42

Re: Zählproblem

#3 Post by logo »

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

alien

Re: Zählproblem

#4 Post by alien »

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

logo
Posts: 20
Joined: 06. Mar 2003 23:42

Re: Zählproblem

#5 Post by logo »

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

uljanow

Re: Zählproblem

#6 Post by uljanow »

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?

logo
Posts: 20
Joined: 06. Mar 2003 23:42

Re: Zählproblem

#7 Post by logo »

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

uljanow

Re: Zählproblem

#8 Post by uljanow »

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.

logo
Posts: 20
Joined: 06. Mar 2003 23:42

Re: Zählproblem

#9 Post by logo »

Danke.

Ich bin noch sehr jungfräulich in der Programmierung.

uljanow

Re: Zählproblem

#10 Post by uljanow »

neugierdehalber: was für ein lehrbuch verwendest du denn da? lernst du C alleine/aus interesse oder für schule/studium?

logo
Posts: 20
Joined: 06. Mar 2003 23:42

Re: Zählproblem

#11 Post by logo »

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.

Udo Maslo

Re: Zählproblem

#12 Post by Udo Maslo »

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

Post Reply