Ganzzahldivision < C/C++ < Programmiersprachen < Praxis < Informatik < Vorhilfe
|
Aufgabe | Schreiben sie eine C- Funktion
i n t mod( i n t numerator , i n t denominator )
{i n t r e s u l t ;
. . .
return r e s u l t ;
}
Die Funktion soll den Rest der Ganzzahldivision von
"
numerator durch denominator berechnen,
ohne auf die C-Operatoren % und / zuruckzugreifen. Testen Sie Ihre Implementierung anhand
der Beispiele
13 : 17; 193 : 45; -207 : (-13); 47 : (-45); 459 : 27:
Geben Sie jeweils das Ergebnis mittels
"
printf ()\ im Hauptprogramm also in der
"
[mm] main()\-
[/mm]
Funktion aus. |
huhu,
Ich will ehrlich sein: Ich hab null Ahnung vom programmieren, fange grade erst an und komm überhaupt nicht klar. Bevor ich die Aufgabe angehe versuche ich erstmal variablen zu definieren aber da scheitert es schon... Als Anfangsbeispiel hab ich mir sowas konstruiert:
#include <stdio.h>
#include <stdlib.h>
int mod( int numerator, int denominator)
{
int result;
int a;
int b;
int c;
a=3,
b=4;
c=5;
printf("Das Ergebnis ist d=a-b");
return result;
}
dann kommt als fehlermeldung : result is used uninitialized in this function
Was bedeutet das?
|
|
|
|
Hallo EvelynSnowley2311,
> Schreiben sie eine C- Funktion
>
> i n t mod( i n t numerator , i n t denominator )
>
> {i n t r e s u l t ;
> . . .
> return r e s u l t ;
> }
> Die Funktion soll den Rest der Ganzzahldivision von
> "
> numerator durch denominator berechnen,
> ohne auf die C-Operatoren % und / zuruckzugreifen. Testen
> Sie Ihre Implementierung anhand
> der Beispiele
> 13 : 17; 193 : 45; -207 : (-13); 47 : (-45); 459 : 27:
> Geben Sie jeweils das Ergebnis mittels
> "
> printf ()\ im Hauptprogramm also in der
> "
> [mm]main()\-[/mm]
> Funktion aus.
> huhu,
>
> Ich will ehrlich sein: Ich hab null Ahnung vom
> programmieren, fange grade erst an und komm überhaupt
> nicht klar. Bevor ich die Aufgabe angehe versuche ich
> erstmal variablen zu definieren aber da scheitert es
> schon... Als Anfangsbeispiel hab ich mir sowas
> konstruiert:
>
> #include <stdio.h>
> #include <stdlib.h>
>
> int mod( int numerator, int denominator)
> {
>
> int result;
> int a;
> int b;
> int c;
> a=3;
> b=4;
Wenn Du hier den Variablen a,b konkrete Werte zuweist,
dann sind die Übergabeparameter an die Funktion überflüssig.
Sinnvoll ist hier die Zuweisung
a=numerator;
b=denominator;
> c=5;
> printf("Das Ergebnis ist d=a-b");
>
> return result;
> }
>
>
> dann kommt als fehlermeldung : result is used uninitialized
> in this function
>
> Was bedeutet das?
Jedes C-Programm muss eine main()-Funktion haben,
von der aus beliebige Funktionen aufgerufen werden können.
Das sieht dann in etwa so aus:
1: |
| 2: | #include <stdio.h>
| 3: | #include <stdlib.h>
| 4: |
| 5: | int mod( int numerator, int denominator)
| 6: | {
| 7: |
| 8: | int result;
| 9: | int a;
| 10: | int b;
| 11: | int c;
| 12: | a=3,
| 13: | b=4;
| 14: | c=5;
| 15: | printf("Das Ergebnis ist d=a-b");
| 16: |
| 17: | return result;
| 18: | }
| 19: |
| 20: | int main{void}
| 21: | {
| 22: | mod(13,17);
| 23: | }
|
Gruss
MathePower
|
|
|
|
|
Status: |
(Mitteilung) Reaktion unnötig | Datum: | 09:14 So 29.04.2012 | Autor: | mj2k2 |
Hallo Evelyn,
hast du schon die Lösung zu deinem Problem? Könnte dir ne PM schicken falls du nicht weiter kommst.
Grüße an John ...
|
|
|
|
|
heyho,
Ne nicht wirklich.. hab jetzt irgendwie was auf die Reihe gestellt, aber beim Durchlaufen kommt nicht das Ergebnis raus, was ich erhofft habe...
|
|
|
|
|
Status: |
(Mitteilung) Reaktion unnötig | Datum: | 15:24 So 29.04.2012 | Autor: | mj2k2 |
Also in die main() packst du das:
printf("Aufgabe 1: [mm] \n");
[/mm]
printf("_______________________________ [mm] \n");
[/mm]
printf("Rest von 13 / 17 = [mm] %d\n", [/mm] mod(13,17));
printf("Rest von -207 / (-13) = [mm] %d\n", [/mm] mod(-207,-13));
printf("Rest von 193 / 45 = [mm] %d\n", [/mm] mod(193,45));
printf("Rest von 47 / -45 = [mm] %d\n", [/mm] mod(47,(-45)));
printf("Rest von 459 / 27 = [mm] %d\n \n \n \n", [/mm] mod(459,27));
und dann packst du zusätzlich noch die Funktion rein:
//Aufgabe 1:
int mod(int numerator, int denominator)
{
int count=0;
if(numerator >0 && denominator >0)
{
int rest=numerator;
while (rest >= denominator)
{
rest-=denominator;
count+=1;
}
int rest_result=numerator - (denominator * count);
return rest_result;
}
else
{
if(numerator <0)
{
numerator = numerator *(-1);
}
if(denominator <0)
{
denominator = denominator*(-1);
}
int rest=numerator;
while (rest >= denominator)
{
rest-=denominator;
count+=1;
}
int rest_result=(numerator*(-1)) - ((denominator*(-1)) * count);
return rest_result;
}
}
|
|
|
|