Anfängerfrage zu "Funktion liefert einen Wert zurück"

Schnelle objektorientierte, kompilierende Programmiersprache.
Antworten
Grandpa
Beiträge: 5
Registriert: Mi Aug 31, 2022 11:37 am
Wohnort: Frankenmarkt

Anfängerfrage zu "Funktion liefert einen Wert zurück"

Beitrag von Grandpa » Mi Aug 31, 2022 5:28 pm

Geschätztes Forum,

ich bin ein blutiger Anfänger in Bezug auf C-Programmierung. Das gleiche gilt auch für die Nutzung einer Plattform wie dieser.
Bin Senior und etwas aus der Übung im Erlernen von neuen Dingen.
Bei der Beschäftigung mit Ein-Ausgabe-Routinen taucht immer wieder der Hinweis auf, dass Funktionen einen bestimmten Wert zurück liefern. Hab darüber gegoogelt, Tutorials durchstöbert, ein Buch zu Rate gezogen.
Da heißt es z.B.:
main ist der Funktionsname, vor dem Namen steht das Wort int (Kurzform für Integer). int ist einer von mehreren möglichen Rückgabetypen. Funktionen dürfen Werte zurückliefern, bzw. eine Funktion muss einen Wert zurückliefern, wenn das so angegeben wurde.

oder:
Die Anweisung return 0; liefert die Zahl 0 zurück. Für uns bedeutet das zunächst vereinfacht, dass kein Fehler aufgetreten ist.

Irgendwie check ich nicht welcher Wert x da von a nach b geliefert wird und was damit angestellt wird.
Ich habe ein kleines Programm, z.B.:

Code: Alles auswählen

#include <stdio.h>
int main()
{
const float pi = 3.14159;
float radius;
float umfang;

printf("Gib den Radius ein : ");
scanf("%f", &radius);

umfang = 2*radius * pi;

printf("Umfang = : %f\n" , umfang);

return 0;
}
Was ich versteh ist:
- es wird zuerst die Bibliothek eingebunden die Routinen für die Ein (Tastatur) und Ausgabe (Bildschirm) bereit stellt.
- es wird das Hauptprogramm, sprich Funktion mit dem Namen main definiert, der Datentyp ist integer.
- für die Konstante pi und die Variablen radius, umfang werden Adressen im Arbeitsspeicher definiert, in der Speicherzelle mit der "Adresse pi" wird die Gleitkommazahl 3.14159 abgelegt. -> also hier wird was geliefert ;-)
- eine Aufforderung zur Eingabe einer Zahl wird an die Konsole geschickt printf()
- die Tastatur wird über scanf() abgefragt, es wird eine Gleitkommazahl erwartet, diese wird in der Speicherzelle mit der "Adresse radius" abgelegt.
- aus den Speicherzellen mit dem "Adressen pi und radius" werden die dort abgelegten Werte geholt, das Produkt daraus gebildet und dieses Produkt in der Speicherzelle mit der "Adresse umfang" abgelegt. auch hier wird was geliefert ;-)
- die Funktion print() holt den Wert aus der Speicherzelle mit der "Adresse umfang" ab und schickt diesen an die Konsole.
- die Funktion return beendet das Hauptprogramm main und liefert letztendlich den Wert 0 zurück.

Also main hat den Datentyp int, die Funktion liefert einen Wert vom Typ int ZURÜCK, an wen bzw. wohin und was wird damit angefangen?
Ebenso die Funktion return, sie liefert eine 0, aber an wen oder wohin?

Mag sein dass diese Frage für's erste nicht relavant ist und sich mir mögligerweise später, wenn ich tiefer in die Materie eintauche, von alleine erschließt. Aber ich andererseits nicht irgend etwas stur abtippen, ich will verstehen was ich da tue.
Würde mich freuen wenn mir das wer auf die Sprünge helfen könnte :-)

Edited by Xin: CodeTags hinzugefügt

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

Re: Anfängerfrage zu "Funktion liefert einen Wert zurück"

Beitrag von Xin » Mi Aug 31, 2022 5:39 pm

Moin Grandpa! :-D

Und Willkommen.
Grandpa hat geschrieben:
Mi Aug 31, 2022 5:28 pm
main ist der Funktionsname, vor dem Namen steht das Wort int (Kurzform für Integer). int ist einer von mehreren möglichen Rückgabetypen. Funktionen dürfen Werte zurückliefern, bzw. eine Funktion muss einen Wert zurückliefern, wenn das so angegeben wurde.

oder:
Die Anweisung return 0; liefert die Zahl 0 zurück. Für uns bedeutet das zunächst vereinfacht, dass kein Fehler aufgetreten ist.

Irgendwie check ich nicht welcher Wert x da von a nach b geliefert wird und was damit angestellt wird.
Es ist wie in der Mathemathik. Die Funktion f(x) gibt einen Wert zurück. Die Funktion hier heißt nicht f sondern main und weil es beim Programmieren unterschiedliche Typen von Zahlen gibt, legst Du Dich auf den Zahlentyp int fest. Der Befehl return legt fest, welcher Wert zurück gegeben wird. Die Funktion "main" wird beim Programmstart gerufen und gibt mit einer Integer-Zahl Auskunft darüber, ob das Programm sauber abgelaufen ist. Hier gilt 0 als "Alles okay".
Grandpa hat geschrieben:
Mi Aug 31, 2022 5:28 pm
Ich habe ein kleines Programm, z.B.:

Code: Alles auswählen

#include <stdio.h>
int main()
{
const float pi = 3.14159;
float radius;
float umfang;

printf("Gib den Radius ein : ");
scanf("%f", &radius);

umfang = 2*radius * pi;

printf("Umfang = : %f\n" , umfang);

return 0;
}
Was ich versteh ist:
- es wird zuerst die Bibliothek eingebunden die Routinen für die Ein (Tastatur) und Ausgabe (Bildschirm) bereit stellt.
- es wird das Hauptprogramm, sprich Funktion mit dem Namen main definiert, der Datentyp ist integer.
- für die Konstante pi und die Variablen radius, umfang werden Adressen im Arbeitsspeicher definiert, in der Speicherzelle mit der "Adresse pi" wird die Gleitkommazahl 3.14159 abgelegt. -> also hier wird was geliefert ;-)
- eine Aufforderung zur Eingabe einer Zahl wird an die Konsole geschickt printf()
- die Tastatur wird über scanf() abgefragt, es wird eine Gleitkommazahl erwartet, diese wird in der Speicherzelle mit der "Adresse radius" abgelegt.
- aus den Speicherzellen mit dem "Adressen pi und radius" werden die dort abgelegten Werte geholt, das Produkt daraus gebildet und dieses Produkt in der Speicherzelle mit der "Adresse umfang" abgelegt. auch hier wird was geliefert ;-)
Alles bis hierhin richtig verstanden. :-)
Grandpa hat geschrieben:
Mi Aug 31, 2022 5:28 pm
- die Funktion print() holt den Wert aus der Speicherzelle mit der "Adresse umfang" ab und schickt diesen an die Konsole.
Das ist vermutlich nur was schlacksig formuliert... der Wert aus der Speicherstelle bei "umfang" wird als Parameter für print kopiert. print hat dann eine Kopie des Wertes und schreibt ihn auf die Konsole.
Grandpa hat geschrieben:
Mi Aug 31, 2022 5:28 pm
- die Funktion return beendet das Hauptprogramm main und liefert letztendlich den Wert 0 zurück.
Genau.
Grandpa hat geschrieben:
Mi Aug 31, 2022 5:28 pm
Also main hat den Datentyp int, die Funktion liefert einen Wert vom Typ int ZURÜCK, an wen bzw. wohin und was wird damit angefangen?
Ebenso die Funktion return, sie liefert eine 0, aber an wen oder wohin?
return ist keine Funktion, sondern der Befehl, der die aktuelle Funktion - also hier main beendet. Da main ein int zurückgeben soll, schreibt man return und den Integerwert, der zurückgegeben werden soll.

Der Wert geht an das Dich rufende Programm. Also vermutlich die Konsole, wo Du Dein programm mit a.out oder "meinprogramm.exe" gerufen hast. Oder an die Entwicklungsumgebung mit der Du das Programm laufen lässt.
Grandpa hat geschrieben:
Mi Aug 31, 2022 5:28 pm
Mag sein dass diese Frage für's erste nicht relavant ist und sich mir mögligerweise später, wenn ich tiefer in die Materie eintauche, von alleine erschließt. Aber ich andererseits nicht irgend etwas stur abtippen, ich will verstehen was ich da tue.
Würde mich freuen wenn mir das wer auf die Sprünge helfen könnte :-)
Würde mich freuen, wenn's geklappt hat. :-)
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.

Grandpa
Beiträge: 5
Registriert: Mi Aug 31, 2022 11:37 am
Wohnort: Frankenmarkt

Re: Anfängerfrage zu "Funktion liefert einen Wert zurück"

Beitrag von Grandpa » Do Sep 01, 2022 9:43 am

Erstmal vielen Dank für die schnelle Antwort.

So richtig durchblicken tue ich leider nicht und das liegt wohl auch daran, dass mir gewisse basics fehlen. Was eine Funktion im mathematischen Sinne ist, weiß ich leider nicht wirklich. Hab nie ein Gymnasium besucht und selbst wenn ich es hätte, läge das 50 Jahre in der Vergangenheit :-)
Xin hat geschrieben:
Die Funktion f(x) gibt einen Wert zurück. Die Funktion hier heißt nicht f sondern main und weil es beim Programmieren unterschiedliche Typen von Zahlen gibt, legst Du Dich auf den Zahlentyp int fest. Der Befehl return legt fest, welcher Wert zurück gegeben wird. Die Funktion "main" wird beim Programmstart gerufen und gibt mit einer Integer-Zahl Auskunft darüber, ob das Programm sauber abgelaufen ist. Hier gilt 0 als "Alles okay".
Was ich mittlerweile glaube erkannt zu haben ist, dass für die Funktion main der Befehl return die "Wert-Rückgabe" übernimmt.

Was die Sache Funktion, bzw. den Umstand angeht, dass eine solche immer einen Wert zurück liefert :? ... nun ja, ich habe dazu folgenden Gedanken, auch wenn ich nicht weiß ob meine Analogie zutreffend ist:
Ich benenne eine Funktion x und lege fest:
x = 2*y (vorausgesetzt, dass dies nun eine Funktion in dem Sinne ist, worüber wir hier reden)
Die Funktion liefert/gibt (mir) als Antwort den Wert 2*y zurück.
Soweit, so gut :-)

Zurück zu meinem Beispiel zur Berechnung des Kreisumfangs.
Für mich, als Anwender des Programmes sieht es nur so aus: Ich gebe eine Zahl für den Radius ein und bekomme als Anwort den Betrag für den Umfang geliefert. Wenn man so will, könnte man das als den Wert betrachten den mein Programm, bzw. die dafür zuständige Funktion main zurück gibt.
Aber irgendwie ist mir schon klar, dass der (für mich mysteriöse) Rückgabewert meiner Funktion main mit dem Ergebnis von umfang = 2*radius*pi nichts gemein hat.
Allein schon deswegen, weil im Rechenvorgang Fließkommazahlen - Datentyp flout - verwendet werden, die Funktion main aber ein Wert vom Datentyp int zurück liefert.
Meine Schlußfolgerung: Diese Sache mit dem "Zurückliefern eines Wertes läuft also im Hintergrund ab, für mich nicht wahrnehmbar. Da ist ein Dämon am Werk ;-)

Nochmals zu return
Xin hat geschrieben:
Die Funktion "main" wird beim Programmstart gerufen und gibt mit einer Integer-Zahl Auskunft darüber, ob das Programm sauber abgelaufen ist. Hier gilt 0 als "Alles okay".
Diese 0 wird ja - soweit ich das nicht wieder falsch verstanden habe - durch den Befehl return 0; an einen für mich unsichtbaren Prozess im Hintergrund übergeben.
Aber, der Umstand dass der letzte Befehl return eine 0 zurückliefert, liegt doch darin, dass ich mit return 0; das so festgelegt habe.
Denn, wenn ich hergehe und return 5; schreibe, dann läuft das Programm (scheinbar?) auch fehlerfrei.

Gib den Radius ein : 8.5
Umfang = : 53.407032
--------------------------------
Process exited after 9.28 seconds with return value 5
Drücken Sie eine beliebige Taste . . .

unterschlage ich die 0 und wähle ich einfach nur return; erhalte ich dieses Ergebnis

Gib den Radius ein : 8.5
Umfang = : 53.407032
--------------------------------
Process exited after 2.791 seconds with return value 21
Drücken Sie eine beliebige Taste . . .

und baue ich einen Fehler ein wie z.B.:
const pi = 3.14159;
dann meckert zwar der Compiler beim Übersetzen, aber das Programm wird (falsch) abgearbeitet. Also pi wurde als int definiert -> 3

Gib den Radius ein : 5
Umfang = : 30.000000
--------------------------------
Process exited after 3.778 seconds with return value 0
Drücken Sie eine beliebige Taste . . .

so gesehen ist die Aussage, dass mit 0 ein fehlerfreier Programmablauf signalisiert wird auch nicht nachvollziehbar.

Und ja, hab ich noch nicht erwähnt, ich verwende Dev-C++ 6.3 von Embarcadero!

:( ... ich fürchte dass ich mit meinen Ausführungen den Rahmen sprenge, der in einem Forum wie diesem hier üblich ist. Dafür will ich mich entschuldigen.
Ich versuche das ganze erstmal ad acta zu legen und hoffe, dass sich das - wenn ich trotzdem mit den Übungen im Tutorial bzw. aus den Buch weitermache - alles irgendwie lichten wird. ;-)

Grandpa
Beiträge: 5
Registriert: Mi Aug 31, 2022 11:37 am
Wohnort: Frankenmarkt

Re: Anfängerfrage zu "Funktion liefert einen Wert zurück"

Beitrag von Grandpa » Do Sep 01, 2022 11:46 am

Nachsatz zu:
Grandpa schrieb:
unterschlage ich die 0 und wähle ich einfach nur return; erhalte ich dieses Ergebnis

Gib den Radius ein : 8.5
Umfang = : 53.407032
--------------------------------
Process exited after 2.791 seconds with return value 21
Drücken Sie eine beliebige Taste . . .
Der Compiler hat schon gemeldet dass er einen Fehler erkannt hat, also frei formuliert, dass int main() einen Rückgabewert verlangt weil die Funtkion nicht vom Typ void ist.

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

Re: Anfängerfrage zu "Funktion liefert einen Wert zurück"

Beitrag von Xin » Do Sep 01, 2022 2:22 pm

Grandpa hat geschrieben:
Do Sep 01, 2022 9:43 am
So richtig durchblicken tue ich leider nicht und das liegt wohl auch daran, dass mir gewisse basics fehlen. Was eine Funktion im mathematischen Sinne ist, weiß ich leider nicht wirklich. Hab nie ein Gymnasium besucht und selbst wenn ich es hätte, läge das 50 Jahre in der Vergangenheit :-)
Ich habe in der Grundschule angefangen und C während der Realschulezeit gelernt. Es braucht kein Gym.
Grandpa hat geschrieben:
Do Sep 01, 2022 9:43 am
Was ich mittlerweile glaube erkannt zu haben ist, dass für die Funktion main der Befehl return die "Wert-Rückgabe" übernimmt.
Korrekt.
Grandpa hat geschrieben:
Do Sep 01, 2022 9:43 am
Was die Sache Funktion, bzw. den Umstand angeht, dass eine solche immer einen Wert zurück liefert :? ... nun ja, ich habe dazu folgenden Gedanken, auch wenn ich nicht weiß ob meine Analogie zutreffend ist:
Ich benenne eine Funktion x und lege fest:
x = 2*y (vorausgesetzt, dass dies nun eine Funktion in dem Sinne ist, worüber wir hier reden)
Die Funktion liefert/gibt (mir) als Antwort den Wert 2*y zurück.
Soweit, so gut :-)
Das wäre jetzt quasi eine Wertzuweisung - der Wert x wird mit 2*y überschrieben.

Als C-Funktion:

Code: Alles auswählen

int x( int y )
{
  return 2*y;
}
Grandpa hat geschrieben:
Do Sep 01, 2022 9:43 am
Zurück zu meinem Beispiel zur Berechnung des Kreisumfangs.
Für mich, als Anwender des Programmes sieht es nur so aus: Ich gebe eine Zahl für den Radius ein und bekomme als Anwort den Betrag für den Umfang geliefert. Wenn man so will, könnte man das als den Wert betrachten den mein Programm, bzw. die dafür zuständige Funktion main zurück gibt.
Nein. Dein Programm gibt immer zurück, ob es erfolgreich gelaufen ist und dafür gibt es die 0 zurück, ansonsten halt was anderes.

Für einen erfolgreichen Lauf sollte Deine main-Funktion eine Ausgabe machen mit dem Umfang.
Grandpa hat geschrieben:
Do Sep 01, 2022 9:43 am
Meine Schlußfolgerung: Diese Sache mit dem "Zurückliefern eines Wertes läuft also im Hintergrund ab, für mich nicht wahrnehmbar. Da ist ein Dämon am Werk ;-)
:-D
Das Betriebsystem ruft Dein main-Programm. Dann läuft Dein main-Programm und abschließend sagst Du dem Betriebsystem "Hat alles gepasst, auf Wiedersehen." Das ist das return 0.
Grandpa hat geschrieben:
Do Sep 01, 2022 9:43 am
Nochmals zu return
Xin hat geschrieben:
Die Funktion "main" wird beim Programmstart gerufen und gibt mit einer Integer-Zahl Auskunft darüber, ob das Programm sauber abgelaufen ist. Hier gilt 0 als "Alles okay".
Diese 0 wird ja - soweit ich das nicht wieder falsch verstanden habe - durch den Befehl return 0; an einen für mich unsichtbaren Prozess im Hintergrund übergeben.
Aber, der Umstand dass der letzte Befehl return eine 0 zurückliefert, liegt doch darin, dass ich mit return 0; das so festgelegt habe.
Denn, wenn ich hergehe und return 5; schreibe, dann läuft das Programm (scheinbar?) auch fehlerfrei.
Der Rückgabewert von main ist ein Hinweis an die Konsole, dass da was schief gelaufen ist. Wenn Dein Programm aus einem Skript aufgerufen wurde, kann es anhand des Rückgabewerts entscheidungen treffen.
Unter Windows landet der Rückgabewert wohl in der Shell-Variable %ERRORLEVEL%.

Mit
echo %ERRORLEVEL%
müsste das darstellbar sein.
Grandpa hat geschrieben:
Do Sep 01, 2022 9:43 am
Gib den Radius ein : 8.5
Umfang = : 53.407032
--------------------------------
Process exited after 9.28 seconds with return value 5
Drücken Sie eine beliebige Taste . . .

unterschlage ich die 0 und wähle ich einfach nur return; erhalte ich dieses Ergebnis

Gib den Radius ein : 8.5
Umfang = : 53.407032
--------------------------------
Process exited after 2.791 seconds with return value 21
Drücken Sie eine beliebige Taste . . .
C ist in manchen Dingen etwas lasch, wenn man es nicht zu allen Warnings und Fehlern zwingt.

Ich erinnere mich, dass es irgendwo mal nicht standardisierte Vorgaben für den Rückgabewert gab und da war ein Rückgabewert über 20 als schwerwiegend bezeichnet. Aber es ist eben nicht allgemein standardisiert.
Grandpa hat geschrieben:
Do Sep 01, 2022 9:43 am
und baue ich einen Fehler ein wie z.B.:
const pi = 3.14159;
dann meckert zwar der Compiler beim Übersetzen, aber das Programm wird (falsch) abgearbeitet. Also pi wurde als int definiert -> 3

Gib den Radius ein : 5
Umfang = : 30.000000
--------------------------------
Process exited after 3.778 seconds with return value 0
Drücken Sie eine beliebige Taste . . .

so gesehen ist die Aussage, dass mit 0 ein fehlerfreier Programmablauf signalisiert wird auch nicht nachvollziehbar.
Du hast ein Programm kompiliert, was falsch ist und das ist - Deiner Meinung nach, denn Du sagst ja "return 0" - fehlerfrei gelaufen.

Der Computer guckt sich nicht an, ob das was Du programmierst irgendeinen Sinn ergibt. :-D
Grandpa hat geschrieben:
Do Sep 01, 2022 9:43 am
:( ... ich fürchte dass ich mit meinen Ausführungen den Rahmen sprenge, der in einem Forum wie diesem hier üblich ist. Dafür will ich mich entschuldigen.
Ich versuche das ganze erstmal ad acta zu legen und hoffe, dass sich das - wenn ich trotzdem mit den Übungen im Tutorial bzw. aus den Buch weitermache - alles irgendwie lichten wird. ;-)
Das hier ist nicht Facebook oder Twitter.
Klar sollte es sich im Rahmen halten, aber es wird nach Zeit oder Möglichkeit geantwortet.


So... das habe ich heute früh hier beantwortet - jetzt könnte es auch mal abgeschickt werden. :D
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.

Grandpa
Beiträge: 5
Registriert: Mi Aug 31, 2022 11:37 am
Wohnort: Frankenmarkt

Re: Anfängerfrage zu "Funktion liefert einen Wert zurück"

Beitrag von Grandpa » Sa Sep 03, 2022 3:35 pm

Nochmals vielen Dank für das Eingehen auf meine Frage.
Wie ich schon im letzten Posting geschrieben habe, lege ich das mal ad acta. Dennoch hab ich was gelernt, auch wenn der totale Durchblick nicht da ist, aber das Erlernen einer (Programmier-) Sprache ist mitunter eine längere Reise ;-)

Hab unter den FAQ's gelesen, man möge es bitte unterlassen einen Thread einfach kommentarlos zu schließen, wenn man selber eine Lösung für die ursprünglich gestellte Frage gefunden hat.
Nun, das ist bei mir zwar nicht der Fall, aber ich bin mir jetzt im Unklaren über die Vorgehensweise.
Zum einen ist mir nicht klar wie diesen Thread schließen könnte und zum anderen - da ich auch in Sachen User
-Foren ein Anfänger bin - ob es Sinn macht, den Thread noch offen lassen, den es geht ja hier nicht um was "weltbewegendes".

Nachsatz zu:
Xin hat geschrieben:
Merke: Wer Ordnung hellt ist nicht zwangsläufig eine Leuchte.
Dann besteht bei mir ja noch durchaus Hoffnung :D

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

Re: Anfängerfrage zu "Funktion liefert einen Wert zurück"

Beitrag von Xin » So Sep 04, 2022 10:28 am

Grandpa hat geschrieben:
Sa Sep 03, 2022 3:35 pm
Nochmals vielen Dank für das Eingehen auf meine Frage.
Wie ich schon im letzten Posting geschrieben habe, lege ich das mal ad acta. Dennoch hab ich was gelernt, auch wenn der totale Durchblick nicht da ist, aber das Erlernen einer (Programmier-) Sprache ist mitunter eine längere Reise ;-)
Ich habe 1986 angefangen und ich lerne weiterhin dazu. Es ist eine Reise ohne Ziel. Das Ziel ist die Reise.
Grandpa hat geschrieben:
Sa Sep 03, 2022 3:35 pm
Hab unter den FAQ's gelesen, man möge es bitte unterlassen einen Thread einfach kommentarlos zu schließen, wenn man selber eine Lösung für die ursprünglich gestellte Frage gefunden hat.
Nun, das ist bei mir zwar nicht der Fall, aber ich bin mir jetzt im Unklaren über die Vorgehensweise.
Zum einen ist mir nicht klar wie diesen Thread schließen könnte und zum anderen - da ich auch in Sachen User
-Foren ein Anfänger bin - ob es Sinn macht, den Thread noch offen lassen, den es geht ja hier nicht um was "weltbewegendes".
Es bedeutet, dass wenn Du eine Frage gestellt hast und die Lösung selbst gefunden hast, Du bitte die Antwort selbst schreibst.
Nichts ist undankbarer, als wenn man das Internet nach genau dieser Frage durchsucht und reihenweise Leute findet, deren Frage man liest und feststellt, die haben genau das gleiche Problem wie ich und die dann erklärten "Hab die Lösung gefunden". Das bringt den Suchenden nicht weiter.
Und was weltbewegend ist, ist von Person zu Person unterschiedlich. Als ich mit C anfing, habe ich zwei Tage gebraucht, bis ich ein Hello World kompilieren konnte... da war halt noch kein Internet, bzw. ich hatte keinen Zugang. Da hätte ich mir auch gewünscht, dass jemand diese Banalitäten erklärt.

Alles gut.

Lernst Du mit dem C-Kurs hier von der Seite oder mit einem anderen Tutorial?
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.

Grandpa
Beiträge: 5
Registriert: Mi Aug 31, 2022 11:37 am
Wohnort: Frankenmarkt

Re: Anfängerfrage zu "Funktion liefert einen Wert zurück"

Beitrag von Grandpa » So Sep 04, 2022 4:54 pm

Xin hat geschrieben:
Lernst Du mit dem C-Kurs hier von der Seite oder mit einem anderen Tutorial?
Ich bin auf dieses Tutorial gestossen:
https://www.tutorials.at/c/c-oder-cplusplus.html
Der Betreiber dieser Seite hat unter dem link "Forum" auf diese Seite hier verwiesen.

Ich suche halt auch immer wieder im Netz, was andere zu einem bestimmten Thema zu sagen haben.

Ausserdem benutze ich noch dieses Buch hier: Thomas Theis; Einstieg in C / 2.Auflage, 2017.

Meine Motivation C zu lernen hat eigentlich mit dem Wunsch zu tun, ins Programmieren von Mikrocontollern einzusteigen. Ich hab zwar aufgrund meiner beruflichen Vergangenheit gutes Wissen die Hardware betreffend aber sobald es um die Software geht stehe ich sehr bald "auf der Leitung" .... typisches Elektriker-Problem halt :mrgreen:
Beim durchgehen diverser Programm-Codes verliere ich schnell den Überblick was da geschieht.
So dachte ich mir, fang mal mit den Basics im Programmieren an, im Wissen dass natürlich jede Mikrocontroller-Familie ihre Hardware-spezifischen Eigenheiten hat. Ebenso, dass im Fall von z.B.: Arduino, hier soweit ich das verstanden hab, kein reines C bzw. C++ verwendet wird, es aber sehr viele Gemeinsamkeiten gibt.

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

Re: Anfängerfrage zu "Funktion liefert einen Wert zurück"

Beitrag von Xin » Di Sep 06, 2022 11:09 am

Grandpa hat geschrieben:
So Sep 04, 2022 4:54 pm
Xin hat geschrieben:
Lernst Du mit dem C-Kurs hier von der Seite oder mit einem anderen Tutorial?
Ich bin auf dieses Tutorial gestossen:
https://www.tutorials.at/c/c-oder-cplusplus.html
Der Betreiber dieser Seite hat unter dem link "Forum" auf diese Seite hier verwiesen.
Gerade mal C-Tutorial gegooglet und die Seite ist immernoch auf Seite 1 bei Google. Ich glaube, ich muss mich mal mit SEO beschäftigen... :-D

Ansonsten verweise ich auch mal auf unser Tutorial. Aber lern so weiter, dass Du voran kommst. Nutzt ja nix, wenn Du laufend von einer Quelle zur nächsten springst.
Grandpa hat geschrieben:
So Sep 04, 2022 4:54 pm
Beim durchgehen diverser Programm-Codes verliere ich schnell den Überblick was da geschieht.
Es dauert, bis man sich in einem Programm heimisch fühlt.
Grandpa hat geschrieben:
So Sep 04, 2022 4:54 pm
So dachte ich mir, fang mal mit den Basics im Programmieren an, im Wissen dass natürlich jede Mikrocontroller-Familie ihre Hardware-spezifischen Eigenheiten hat. Ebenso, dass im Fall von z.B.: Arduino, hier soweit ich das verstanden hab, kein reines C bzw. C++ verwendet wird, es aber sehr viele Gemeinsamkeiten gibt.
Dir stehen - soweit ich weiß - nicht alle Libs zur Verfügung, bzw. mangels Betriebsystem kannst Du das Betriebssystem auch nicht um Speicher bitten, wie Du das bei normaler Anwendungsprogrammierung machen würdest. Somit ist C/C++ nicht vollständig für Arduino etc. verfügbar, weil diese Library-Funktionen entsprechend nicht verfügbar sind.
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.

Antworten