Kostenloser Elektrotechnik VIDEO-Kurs


mit VIDEO-Reihen zu den Themen:
Grundlagen der Elektrotechnik
Gleichstromnetze und Berechnungsverfahren
Wechselstrom und Drehstromnetze
Elektrische Maschinen
Regelungstechnik
Digitaltechnik
Mikrocontrollertechnik und C-Programmierung


Lösung der Übungsaufgabe zu Funktionen


In den vergangenen Artikeln bin ich auf die Behandlung von Funktionen und das Thema Parameterübergabe eingegangen.

Zum Abschluss gab es dann im Artikel der letzten Woche eine Aufgabe. Und zwar ging es darum, mit Hilfe von Funktionen den Umfang und die Fläche eines Kreises zu berechnen.

Als drittes sollte dann anschließend noch das Volumen eines Zylinders berechnet werden, wobei bei der zu programmierenden Funktion volumen() auf die Funktion flaeche() zurückgegriffen werden sollte.

Die Berechnung der Grundfläche des Zylinders sollte also nicht in der Funktion volumen() selbst, sondern sozusagen an die Funktion flaeche delegiert werden. Also ein Aufruf einer Funktion innerhalb einer Funktion.

Um weiterhin mit Integer-Werten rechnen zu können, hatte ich für PI=3 vorgegeben – was ja zu 95% auch so stimmt ;-)

Im ersten Video zeige ich Dir heute eine mögliche Lösung der Aufgabe.

Da das Video zu lang geworden wäre, habe ich das Video heute wieder geteilt. Im zweiten Teil werde ich das Programm zunächst einmal testen und dann den Quell-Code noch etwas nachbessern.

Auf viele Variablendefinitionen des ersten Videos kann man nämlich verzichten und somit das Programm kürzen und die Nutzung des Speicherplatzes optimieren. Gerade wenn man mit dem Programmieren beginnt, ist es häufig einfach den Code ein bisschen ausführlicher als nötig zu schreiben und dann im zweiten Schritt das Programm zu kürzen.

Später, wenn man etwas mehr Erfahrung in der C-Programmierung hat, fasst man automatisch an bestimmten Stellen mehrere Befehle zusammen. Aber auch dann sollte es m.E. nicht übertreiben. Man möchte ein C-Programm ja auch ein Jahr später noch verstehen können. Zu sehr komprimierter C-Code ist aber häufig schwer zu lesen.


So, dass war zunächst einmal eine Einführung in den Bereich Funktionen. In der nächsten Folge werde ich mich wieder unserem Kaffeeautomaten zuwenden und überprüfen, an welchen Stellen wir durch den Gebrauch von Funktionen unser Programm für den Kaffeeautomaten verbessern können.

Dieser Artikel ist Teil des Mikrocontroller-Kurses auf ET-Tutorials.de.

[ >> Hier geht es zurück zur Übersichtsseite des Mikrocontroller-Kurses .]


Hat Dir der Artikel geholfen? - Dann hilf dem Artikel ;-)

Lösung der Übungsaufgabe zu Funktionen:
1 Star2 Stars3 Stars4 Stars5 Stars
4,75 von 5 Punkten, basieren auf 4 abgegebenen Stimmen.
Stimme jetzt ab ! (auf die Sternchen klicken)
Loading ... Loading ...




Ähnliche Artikel

Folgende Artikel aus der gleichen Kategorie könnten Dich ebenfalls interessieren:

Funktionen in C, Parameterübergabe In der letzten Folge hatte ich bereits erläutert, wie Compiler und Linker und anschließend auch das ...

Lösung für eine Funktion zur Münzeingabe Im heutigen Artikel möchte ich eine mögliche Lösung für die Aufgabe aus dem letzten Artikel, nämlich...

Funktionen in C Ähnliche oder gleiche Befehle, die öfter genutzt werden kann man besser in Funktionen ausgliedern. F...

Kaffeeautomat-Funktion für die Münzauswertung Nach einem Ausflug in das Reich der Funktionen, geht es nun zurück zur Programmierung des Kaffeeauto...

Programmierung der Münzeingabe In der vergangenen Folge wurde exemplarisch das Setzen und Löschen der ersten drei Bits des Kaffeeau...

{ 6 Kommentare… sie unten lesen oder einen hinzufügen }

Augi

“Aber auch dann sollte es m.E. nicht übertreiben.”
Das stimmt. Es soll C-Programmierer geben, die fangen Funktionen grundsätzlich mit
return(
..
)

an ;-)

Günther

Hallo,
wann und wo wird das r dem radius zugewiesen? r wird über P1 eingelesen, aber ich finde keine Zeile
oder sehe den Zusammenhang nicht!
Evtl. kann mir einer hier helfen.

Gardener

Hallo Günther,
r wird über P1 eingelesen.
Anschließend wird u=umfang(r) aufgerufen, also der Funktion radius() dem Wert von r übergeben.

Diese Variable heißt aber innerhalb der Funktion umfang() radius.

Gardener

Wolfgang Bengfort

Exakt,
über den Stack wird nur der Wert von r übergeben.
Da die Funktion umfang() als

int umfang(int radius)
{

}

definiert ist, wird die Variable innerhalb der Funktion mit radius angesprochen.

Das habe ich im Video tatsächlich nicht deutlich genug gemacht.

Andreas Staudt

Hallo Wolfgang,
leider waren die letzten Videos von dir völlig verschwommen,egal in welcher Einstellung.Ich hoffe,dies ändert sich wieder und ist nur ein technisches Problem

Gruß
Andreas

Yevgen Blank

hallo Wolfgang,
hab jetzt koppiert das int radius hollt von P1 wert raus. Was ich nicht verstanden hab, wie gibt er u wert in Main zurück nach dem umfang berechnet hat? u- rechnung mache ich auserhalb Main.
vielen dank, eugen

Einen Kommentar hinterlassen