Computerhilfen.de Logo
Forum
Tipps
News
Frage stellen

Programmiersprache C

Hallöle,
Ich hab ein Problem. Undzwar bin ich im Moment dabei die Programmiersprache C zu lernen um mit dem Programm MPLab etwas Programmieren zu können. Ich habe mir jetzt einige Tutorials angeschaut und bleibe immer an bestimmten Themen/Begriffen hängen. Ich bin im Moment in der Ausbildung zum Elektroniker und daher noch nicht allzu erfahren was das Programmieren betrifft.
Nun zu meinen Problemen
Was genau ist mit Initialisierung gemeint? Also soweit ich verstanden habe die Variable auf einen festen Wert festlegen, bin ich da richtig?
Dann habe ich kleine Probleme mit den Rechenoperatoren. Da ich das Tutorial bei http://www.c-howto.de/tutorial/ gerade mache und dort für mich zur Übung Rechenaufgaben dabei sind, habe ich diese natürlich gemacht. Leider nur mit mäßigem Erfolg, da ich bei diesen Aufgaben leider Aufgeben musste.

a= b<<a
b*= -3
d%=3
c+ = b*d+4
a = --b + d++
a = ++b * d++ * ++c * (-1)

Ich wäre euch soooo dankbar, wenn mir das jemand erklären kann, so das ich es auch verstehe.  ;D
liege Grüße Tatjana


Antworten zu Programmiersprache C:

Hallo,

Zitat
Was genau ist mit Initialisierung gemeint?
https://de.wikipedia.org/wiki/Initialisierung:
"in der Programmierung die Zuweisung eines Initial- oder Anfangswertes zu einem Objekt oder einer Variablen"

Wichtiger als das Verständnis der Bedeutung von Initialisierung finde ich, dass man die Initialisierung eben nicht vergisst. Sonst bekommt man mehr oder weniger zufällige Werte bei Aufruf derjenigen Variablen, die man nicht initialisiert hat.


Zitat
Also soweit ich verstanden habe die Variable auf einen festen Wert festlegen, bin ich da richtig?
Wenn mit "auf einen festen Wert festlegen" gemeint sein soll, dass der dann unveränderlich an der Variable haften bleibt, dann ist dieses Verständnis falsch. Etwas "auf einen festen Wert festlegen" kann man z. B. mit dem Variablen-Typ const, siehe dazu

http://www.c-howto.de/tutorial/variablen-konstanten/konstante-variablen/

Festlegen würde man die Variable foo (z. B. auf den Wert 511) bei der Deklaration mit const foo=511 oder mit der Präprozessoranweisung
# define foo 511, siehe dazu
http://www.c-howto.de/tutorial/praeprozessor/symbolische-konstanten/


Zur folgenden Linksverschiebung (mit den zwei Kleiner-Zeichen <<) lies auf http://www.c-howto.de/tutorial/variablen/bitmanipulation/ die 12 Zeilen unter "Bit-Verschiebung" durch. Nach einigen selbst ausgedachten durchlaufenen Beispielen merkt man, dass solche Verschiebungen auf Bildung von Zweierpotenzen hinauslaufen.

Zitat
a= b<<a
In diesem (nach meiner Meinung etwas zu allgemein gehaltenem) Beispiel wird der Wert des (2 hoch a)-fachen von b berechnet und dieser Wert (das Ergebnis dieser Multikplikation mit einer Zweierpotenz) in die Variable a geschrieben. Ich würde erst mal mit
    int a=5,a1,a2,a3,a4;
    a1 = a<<1;    a2 = a<<2;   a3 = a<<3;   a4 = a<<4;
anfangen, aber erstmal auf Papier vorhersagen, dann den Code kompilieren und mir die Werte zum Vergleich mit der Vorhersage ausgeben lassen.

Zitat
b*= -3
Ist ne Kurzschreibweise und bewirkt dasselbe wie b = -3*b.
Siehe auf http://www.c-howto.de/tutorial/variablen/operatoren/ die letzten 8 Zeilen.









Zitat
d%=3
Kurzschreibweise für d=d%3.
Aber probiers selbst aus. Dass d%=3 und d=d%3 dasselbe bewirken, sieht man, wenn man beim Kompilieren von
#include <stdio.h>
int main()
{
    int d=5;
    d%=3;
    printf("d ist jetzt: %d.\n",d);
}
bzw.
#include <stdio.h>
int main()
{
    int d=5;
    d=d%3;
    printf("d ist jetzt: %d.\n",d);
}
dieselbe ausführbare Datei erhält.














Zitat
c+ = b*d+4
Das solltest du jetzt selbst beantworten können, wenn du die beiden letzten Kurzschreibweisen verstanden hast.

Zitat
a = --b + d++
Siehe http://www.c-howto.de/tutorial/variablen/operatoren/ unter "Besonderheit"
oder auch https://de.wikipedia.org/wiki/Inkrement_und_Dekrement#Wertzuweisungszeitpunkt_in_.C3.BCbergeordneten_Ausdr.C3.BCcken
Beim vorherigen Beispiel wars Prädekrement von b und Postinkrement von d.
Beim nächsten Beispiel Präinkrement von b, Postinkrement von d und Präinkrement von c.
Zitat
a = ++b * d++ * ++c * (-1)
Da kommt a=-(b+1)*d*(c+1) heraus und nachher sind b, d und c, verglichen mit ihren Werten vor dieser Zeile, um je eins größer.

okay, danke für die Hilfe, ich war nur sehr verwirrt, weil ich erst angefangen habe mich mit dem Thema zu beschäftigen aber mittlerweile geht's. ;D


« Tetris programmierenHilfe bei VR-Brillen Programmierung gesucht »
 

Schnelle Hilfe: Hier nach ähnlichen Fragen und passenden Tipps suchen!

Fremdwörter? Erklärungen im Lexikon!
Internet-Zugriffsprogramm
Ein Internet-Zugriffsprogramm, auch Browser genannt, stellt Internetseiten für den Benutzer dar. Am bekanntesten ist der Microsoft Internet Explorer, gefolgt vom kos...

Programm
Siehe Software...

Quellcode
Ein Quellcode, auch als Quelltext bekannt, bezeichnet den unkompilierten Programm-Code einer Software. Quell- oder Programm-Code ist der auch für Menschen lesbare Co...