ueberpruefung der lektions aufgabe

Schnelle objektorientierte, kompilierende Programmiersprache.
Antworten
Blue
Beiträge: 8
Registriert: So Feb 28, 2016 4:08 am

ueberpruefung der lektions aufgabe

Beitrag von Blue » So Feb 28, 2016 6:03 pm

hallo alle,

im anfaenger-tutorial gab es die aufgabe variable a und b zu definieren und werte zuzuweisen. dann die summe a und b zum quadrat berechnen.

ich hab das wie folgt ausgefuehrt, und wollte nun wissen ob ich das richtig verstanden habe.

bin echt totaler anfaenger und werde bestimmt noch viele fragen haben.

Code: Alles auswählen

#include <stdio.h>

int main(void)
{
int a,b = 3 + 4;


  printf( "Variable   : %d\n", a = b );
 


 a = 3 * 3;


printf("Variable(1): %d\n", a );

b = 4 * 4;

printf("Variable(2): %d\n", b );


  return 0;
}

Benutzeravatar
Xin
nur zu Besuch hier
Beiträge: 8858
Registriert: Fr Jul 04, 2008 11:10 pm
Wohnort: /home/xin
Kontaktdaten:

Re: ueberpruefung der lektions aufgabe

Beitrag von Xin » So Feb 28, 2016 11:16 pm

Blue hat geschrieben:im anfaenger-tutorial gab es die aufgabe variable a und b zu definieren und werte zuzuweisen. dann die summe a und b zum quadrat berechnen.

ich hab das wie folgt ausgefuehrt, und wollte nun wissen ob ich das richtig verstanden habe.
> int a,b = 3 + 4;

Hier weißt Du einer(!) Variablen - und zwar b - den Wert 3+4 - also 7 - zu. a bleibt undefiniert.

> printf( "Variable : %d\n", a = b );

Hier gibst Du "Variable" aus und setzt a = b. a wird also 7 gesetzt. Der Ausdruck a = b gibt 7 zurück. Bei %d wird also 7 eingesetzt.

> a = 3 * 3;
> printf("Variable(1): %d\n", a );


Hier setzt Du a auf den Wert 9 und gibst es aus, vergleichbar mit b.

Die Aufgabe zielte auf den Satz des Pytagoras ab: c^2 = a^2 + b^2. Du sollst c^2 berechnen. Du musst dafür a und b jeweils einen Wert zuweisen. Anschließend gibst Du das Ergebnis der Summe der Quadrate der beiden Variablen aus.
Blue hat geschrieben:bin echt totaler anfaenger und werde bestimmt noch viele fragen haben.
Kein Problem. Niemand ist hier als Meister vom Himmel gefallen, wir waren alle irgendwann mal totale Anfänger.
Merke: Wer Ordnung hellt ist nicht zwangsläufig eine Leuchte.

Ich beantworte keine generellen Programmierfragen per PN oder Mail. Dafür ist das Forum da.

Blue
Beiträge: 8
Registriert: So Feb 28, 2016 4:08 am

Re: ueberpruefung der lektions aufgabe

Beitrag von Blue » Mo Feb 29, 2016 12:01 am

oooh, ich dachte, weil "variable a und b definieren" variable in printf eingesetzt werden muss. dass mit dem 'c berechnen', hatte ich auch noch nicht verstanden, aber ... pytagoras hat mich zu folgendem inspiriert.

Code: Alles auswählen

#include <stdio.h>

int main(void)
{
int a,b,c;

a = 3;
b = 4;
c = a * a + b * b;



printf("Summe: %d\n", a * a + b * b);
  return 0;
}
ich hoffe, ich hab's jetzt verstanden und vielen dank fuer die hilfe.

Benutzeravatar
Xin
nur zu Besuch hier
Beiträge: 8858
Registriert: Fr Jul 04, 2008 11:10 pm
Wohnort: /home/xin
Kontaktdaten:

Re: ueberpruefung der lektions aufgabe

Beitrag von Xin » Mo Feb 29, 2016 10:40 am

Blue hat geschrieben:oooh, ich dachte, weil "variable a und b definieren" variable in printf eingesetzt werden muss. dass mit dem 'c berechnen', hatte ich auch noch nicht verstanden, aber ... pytagoras hat mich zu folgendem inspiriert.

Code: Alles auswählen

int main(void)
{
int a,b,c;

a = 3;
b = 4;
c = a * a + b * b;

printf("Summe: %d\n", a * a + b * b);
  return 0;
}
ich hoffe, ich hab's jetzt verstanden und vielen dank fuer die hilfe.
Soweit. Du kannst c in dem Programm natürlich weglassen, hier berechnest Du den Wert schließlich zweimal. Alternativ kannst Du c (eigentlich eher cc) auch mit printf ausgeben. Beim Entfernen der Variable c war mir wichtig, dass man den Ausdruck a*a+b*b eben auch als Argument an eine Funktion übergeben kann und das hast Du ja gemacht.

Bitte achte darauf, in Zukunft richtig einzurücken - also nicht wieder mit dem Quelltext an den linken Rand zu kommen, wenn Du eine { geöffnet hast. Das macht Programme unleserlich.
Merke: Wer Ordnung hellt ist nicht zwangsläufig eine Leuchte.

Ich beantworte keine generellen Programmierfragen per PN oder Mail. Dafür ist das Forum da.

Blue
Beiträge: 8
Registriert: So Feb 28, 2016 4:08 am

Re: ueberpruefung der lektions aufgabe

Beitrag von Blue » Mo Feb 29, 2016 3:01 pm

ok danke. ich habe mal etwas aehnliches geschrieben.

Code: Alles auswählen

#include <stdio.h>

int main(void)
{
 int a,b,c;

  a = 10;
  b = 5;
  c = 100;



  printf("Summe: %d%%\n", b * c / a);
 return 0;
}
waere es richtig so?

dann habe ich versucht 50% von 50 zu berechnen, aber man kann wohl einem wert keine sonderzeichen zufuegen. also habe ich dies gemacht.

Code: Alles auswählen

#include <stdio.h>

int main(void)
{
 int a,b,c;

  a = 100;
  b = 50;
  c = 50;



  printf("Summe: %d%\n", b * c / a);
 return 0;
}

Benutzeravatar
Xin
nur zu Besuch hier
Beiträge: 8858
Registriert: Fr Jul 04, 2008 11:10 pm
Wohnort: /home/xin
Kontaktdaten:

Re: ueberpruefung der lektions aufgabe

Beitrag von Xin » Mo Feb 29, 2016 4:56 pm

Blue hat geschrieben:ok danke. ich habe mal etwas aehnliches geschrieben.
waere es richtig so?
Keine Ahnung, Du hast zweimal den gleichen Quelltext geschickt und der hat wohl mit der zweiten Sache zu tun. ^^
Blue hat geschrieben:dann habe ich versucht 50% von 50 zu berechnen, aber man kann wohl einem wert keine sonderzeichen zufuegen. also habe ich dies gemacht.
Welche Sonderzeichen möchtest Du denn einem Zahlenwert hinzufügen? ^^

Code: Alles auswählen

#include <stdio.h>

int main(void)
{
 int a,b,c;

  a = 100;
  b = 50;
  c = 50;



  printf("Summe: %d%\n", b * c / a);
 return 0;
}
[/quote]
Das könnte sich als schwierig erweisen. b*c sind 2500. Wenn man das durch a teilt, kommt da 25 raus. Yay, richtiges Ergebnis.

Rechnest Du aber c/a * b kommt da 50/100 * 50 raus, also 0*50, also 0.
Für solche Aufgaben (alles, was ein Komma beinhalten könnte, also nicht abzählbar ("integer") ist) nimm besser Fließkomma-Zahlen, also double a = 100, b = 50, c=50; die Du dann mit %f ausgibst.
Merke: Wer Ordnung hellt ist nicht zwangsläufig eine Leuchte.

Ich beantworte keine generellen Programmierfragen per PN oder Mail. Dafür ist das Forum da.

Blue
Beiträge: 8
Registriert: So Feb 28, 2016 4:08 am

Re: ueberpruefung der lektions aufgabe

Beitrag von Blue » Mo Feb 29, 2016 7:19 pm

ich wollte a = 100%,b = 50%,c = 50; schreiben, damit das programm halt weiss worum es sich handelt /:

im grunde der gleiche denkfehler wie in aufgabe 1. da habe ich ja auch ueberlegt wie ich dem programm erklaere, die einzelnen werte nacheinander auszugeben. i.e. den wert von a + b angeben, dann den wert von a^2 und b^2.
und als cmd dann 7,9,16 ausgegeben hat bin ich davon ausgegangen dass es richtig ist.

Antworten