Lösung der Übungsaufgabe zu Funktionen

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

Link: Mikrocontroller Teil 26-1

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.

Link: Mikrocontroller Kurs Teil 26 - 2

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



ET-Tutorials weiterempfehlen

Hat Dir der Artikel gefallen?
Dann unterstütze ET-Tutorials.de mit einer Empfehlung per Email an Deine Freunde .

Hinweis zum Datenschutz: Ich kann weder Deine noch die Email-Adresse Deiner Freunde sehen.

Ähnliche Artikel

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

» Kaffeeautomat-Funktion für die Münzauswertung
» Was machen Compiler und Linker ?
» Bedingungen und Vergleiche
» Array-Lösung mit Löschen des Bits
» Funktionen in C, Parameterübergabe

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

Kommentiere hier den Artikel:

Abonnieren ohne einen Kommentar abzugeben