Follow me on Twitter!

Lösung der Übungsaufgabe zu Funktionen

 Kategorien:              Mikrocontroller

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 .]


Ähnliche Artikel

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

Keinen passenden
Artikel gefunden...?


... dann hilft vielleicht
die Suche!

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...

5 Kommentare
Hier kannst Du den Artikel kommentieren: »

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

    an ;-)

  2. 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.

  3. 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

  4. 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.

  5. 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

Kommentiere hier den Artikel:

Abonnieren ohne einen Kommentar abzugeben