C-Tutorial: Expressions

Schnelle objektorientierte, kompilierende Programmiersprache.
Stoni
Beiträge: 8
Registriert: Di Jan 21, 2014 6:28 pm

C-Tutorial: Expressions

Beitrag von Stoni » Mi Jan 22, 2014 9:55 pm

Hallo ich hätte da mal ne frage:
und zwar bin ich im tutorial grade bei den werten und Ausdrücken
habe jetzt in Code Blocks folgendes gesetzt

Code: Alles auswählen

#include <stdio.h>

int main ()
{
  printf( "Prgrammieren\n" );

return 0;
}

#include <stdio.h>
int main()
{ 
    printf("17+4 ist %d\n", 17+4);

    return 0;
}
bei dem 2ten int main und
bei der 3ten geschweiften Klammer zeigt er mir einen Fehler an muss ich da noch irgendwas mit einbauen?
Edit by cloidnerux: code tags

Benutzeravatar
cloidnerux
Moderator
Beiträge: 3123
Registriert: Fr Sep 26, 2008 4:37 pm
Wohnort: Ram (Gibts wirklich)

Re: hilfe zum einsteiger tutorial

Beitrag von cloidnerux » Mi Jan 22, 2014 11:25 pm

Bitte für neue Probleme einen eigenen Thread starten.
bei dem 2ten int main und
bei der 3ten geschweiften Klammer zeigt er mir einen Fehler an muss ich da noch irgendwas mit einbauen?
Wenn du beide in einer Datei hast, funktioniert das nicht, weil du dann eine Funktion (Main) neu definiert. Du musst diese in getrennte Dateien packen. Hilfreich für die Fehlersuche ist die Fehlermeldung des compilers, diese wenn möglich mit hier Posten und auch selber mal lesen ;)
Redundanz macht wiederholen unnötig.
quod erat expectandum

Stoni
Beiträge: 8
Registriert: Di Jan 21, 2014 6:28 pm

Re: C-Tutorial: Expressions

Beitrag von Stoni » Do Jan 23, 2014 7:06 pm

Ok danke sehr, war echt am verzweifeln :D
Hätte da dann direkt noch eine frage zu den werten und Ausdrücken habs mir jetzt dreimal durchgelesen,
aber leider immer noch keine Ahnung wie ich zwei Variablen definiere.
Das steht ganz unten bei den Zielen, wie ich eine natuerliche Zahl(Wert) setzte verstehe ich aber wodurch defieniere ich 2 unterschiedlich variablen? dadurch das ich die erste überschreibe? aber wie berechne ich dann die summe aus beiden zum quadrat?
Hoffe ich stelle mich net zu dumm an :)

Benutzeravatar
cloidnerux
Moderator
Beiträge: 3123
Registriert: Fr Sep 26, 2008 4:37 pm
Wohnort: Ram (Gibts wirklich)

Re: C-Tutorial: Expressions

Beitrag von cloidnerux » Do Jan 23, 2014 7:24 pm

aber leider immer noch keine Ahnung wie ich zwei Variablen definiere.
In dem du zwei Variablen anlegst :D

Code: Alles auswählen

int a, b;
int c = 0;
float d;
Hier aufgeführt die unterschiedlichen Möglichkeiten Variablen zu deklarieren.
Eine Variable ist gekennzeichnet durch ihren Bezeichner, hier a, b, c und d. Dieser Bezeichner muss in seinem Scope(Gültigkeitsbereich) einzigartig sein.
Du kannst mehrere Variablen in einem Zug deklarieren, wie in der ersten Zeile, oder einzeln, wie in den darauf folgenden Zeilen. Du kannst Variablen auch direkt Werte zuweisen, wie in Zeile 2.

Bisschen zum technischen Hintergrund:
Für den Computer sind Variablen nur ein stück Speicher irgendwo, nichts besonderes. Da du aber nicht darum kümmern willst, an welche Stelle im Speicher du deine Daten speichern willst, überlässt du die Platzierung deinem Compiler(und Linker) und deklarierst nur noch deine Variablen mit einem Datentyp, z.B int für Vorzeichen behaftete Ganzzahl und einem Namen. Damit weißt du, welche Variable gemeint ist, denn der Name ist einzigartig in dem Gültigkeitsbereich wo es angelegt wurde und dein Compiler weiß, an welcher stelle er im Speicher Operationen auszuführen hat, wenn du die Variable verwendest.
Daraus ergibt sich auch, dass der Variablenname absolut keine Bedeutung für den Computer hat, außer Speicher zu zu ordnen, solange er den Namensregeln folgt(darf nicht mit einer Zahl beginnen, darf keines der Schlüsselwörter sein, etc).
Hoffe ich stelle mich net zu dumm an :)
Solange du nicht an diesem Punkt stehen bleibst, ist das kein Problem :D
Redundanz macht wiederholen unnötig.
quod erat expectandum

Stoni
Beiträge: 8
Registriert: Di Jan 21, 2014 6:28 pm

Re: C-Tutorial: Expressions

Beitrag von Stoni » Do Jan 23, 2014 7:53 pm

Habs begriffen :)
jetzt fühle ich mich noch dümmer... ist ja eigentlich ganz leicht :D

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

Re: C-Tutorial: Expressions

Beitrag von Xin » Do Jan 23, 2014 10:44 pm

Stoni hat geschrieben:Habs begriffen :)
jetzt fühle ich mich noch dümmer... ist ja eigentlich ganz leicht :D
Ich habe früher Java Entwickler in C und C++ unterrichtet. Das war weniger Unterricht als Gruppentherapie. Das Problem ist, dass man Dinge kompliziert erwartet, gerade C und C++ werden als sehr schwer beschrieben. So meinte einer, dass er sich eine Lösung nicht vorstellen könnte, weil sie zu einfach wäre.
Die haben Fragen auf einem ähnlichem Level gestellt und die konnten offiziell programmieren.

Die Konzepte hinter C und C++ sind einfach, ein Computer funktioniert im Prinzip noch genauso wie in den 1950ern, die Dinger konnten früher nicht viel und die Dinger können heute nicht viel und C bildet das sehr direkt ab.

Ansonsten sind Ziele als Kontrolle definiert. Wenn Du ein Ziel nicht erreichst, frag halt nach. Dafür ist das Forum da.
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.

Stoni
Beiträge: 8
Registriert: Di Jan 21, 2014 6:28 pm

Re: C-Tutorial: Expressions

Beitrag von Stoni » Sa Jan 25, 2014 8:57 pm

Danke ich werde auf jeden Fall weiterhin mein bestes geben :)
ist auf jeden fall sehr interessant und auch sehr schön beschrieben.
Vielen Dank, dass du dir die mühe gemacht hast und dir die Zeit nimmst einem alles genauer zu erklären.

Stoni
Beiträge: 8
Registriert: Di Jan 21, 2014 6:28 pm

Re: C-Tutorial: Expressions

Beitrag von Stoni » Sa Jan 25, 2014 9:25 pm

Wäre dann auch schon bei der nächsten Frage :D
Wollte mir den Sinn der ASCII Tabelle nochmal näher verdeutlichen,
Indem ich die Variable a deren Wert 22 beträgt zum quadrat berechne.
Habe das vorher so gemacht a=a*a relativ simpel führte aber zu gewünschten Ergebnis,
bei der ASCII Tabelle wird ² mit dem Dezimalwert 178 gekennzeichnet also habe ich geschrieben
a='%c', 178 der compiler setzt dort keinen Fehler zeigt aber als Ergebnis 9571 an.
wie muss ich das Formulieren damit er die 178 als Wert der ASCII Tabelle benutzt und was hat er mir da nun berechnet den egal ob ich 22² * 178 rechne oder anders ich komme nicht auf das angezeigte Ergebnis

Benutzeravatar
cloidnerux
Moderator
Beiträge: 3123
Registriert: Fr Sep 26, 2008 4:37 pm
Wohnort: Ram (Gibts wirklich)

Re: C-Tutorial: Expressions

Beitrag von cloidnerux » Sa Jan 25, 2014 10:00 pm

Indem ich die Variable a deren Wert 22 beträgt zum quadrat berechne.
Habe das vorher so gemacht a=a*a relativ simpel führte aber zu gewünschten Ergebnis,
bei der ASCII Tabelle wird ² mit dem Dezimalwert 178 gekennzeichnet also habe ich geschrieben
a='%c', 178 der compiler setzt dort keinen Fehler zeigt aber als Ergebnis 9571 an.
wie muss ich das Formulieren damit er die 178 als Wert der ASCII Tabelle benutzt und was hat er mir da nun berechnet den egal ob ich 22² * 178 rechne oder anders ich komme nicht auf das angezeigte Ergebnis
Ich bin gerade nicht hinterher gekommen.
Du quadrierst eine Zahl. Nun willst du das ausgeben und dabei die hochgestellte 2 verwenden um die Qaudratur zu kennzeichnen?
Das einfachste ist es, dass Zeichen als solches in einen text einzufügen:

Code: Alles auswählen

printf("a² = %d", a*a);
wobei ich nicht weiß, ob die Konsole die Hochgestellte 2 akzeptieren wird(im Windows cmd funktioniert es).
Eine andere Möglichkeit wäre diese:

Code: Alles auswählen

printf("a%c = %d", 178, a*a);
Dabei weißt du printf an, die erste Zahl(178) als "char"(Character sprich Buchstabe) zu interpretieren.

Was nicht funktioniert ist deinem Programm über irgendwelche Zeichen Funktionalität zu geben.
Konstrukte wie:

Code: Alles auswählen

a = 22²;
funktionieren nicht, weil der Compiler für die hochgestellte 2 keine Entsprechung kennt. In dieser Hinsicht sind die meisten Programmiersprachen sehr streng. Nur das was an Schlüsselwörtern, Operatoren und Funktionen da ist, kann auch effektiv etwas machen(berechnen/Ausführen). Alles andere produziert entweder Fehlermeldungen oder hat keinen Effekt.

Zu den Format-Strings, das sind die Texte die du z.B printf übergibst: Diese Texte haben eine bestimmte Syntax, du hast gelernt, dass ein "%d" ein Platzhalter für eine Ganzzahl ist. Das ist kein Teil der Programmiersprache C, sondern ein Feature der Funktion "printf"(und einigen mehr). Die Funktion liest nämlich Buchstabe für Buchstabe ein und sucht nach solchen Formatierungs-Ausdrücken(daher auch Format-String).
Redundanz macht wiederholen unnötig.
quod erat expectandum

Stoni
Beiträge: 8
Registriert: Di Jan 21, 2014 6:28 pm

Re: C-Tutorial: Expressions

Beitrag von Stoni » Sa Jan 25, 2014 10:10 pm

Ja so ähnlich hatte ich es gemeint nur berechnet er das jetzt ja nicht mehr schreibe ich also nach:
printf("a%c = %d", 178, a*a);
printf("a: %d\n",a);
dann zeigt er mir weiterhin a=22 an
er druckt ja sozusagen das Ergebnis nur auf den Bildschirm durch printf
benutzt das Ergebnis jedoch nicht für die folgenden Rechnungen in denen ich dann,
z.B a=a+b berechne (b ist in diesem Falle 10)
das darauf folgende Ergebnis
printf("a: %d\n",a); ergibt für den Compiler weiterhin 32

Antworten