initialisieren? Was heißt das?

  • Hallo,

    ich habe zusammen mit meinem Arbeitskollegen ein Programm geschrieben was mir digitale Werte von einem A/D Wandler auf mein Raspberry Pi bringen soll, allerdings ist der jetzt im Urlaub und ich habe folgendes Problem...

    # include <stdio.h>
    # include <stdlib.h>

    int main (int argc, char *argv[])

    initialisieren
    while (0)

    {
    int max(5);
    act = wertholen ();
    if (act>max [4])
    Wert einordnen (act);
    float wertholen ();
    {
    float wert;
    float max;
    wert= adwandler holen ();
    if (wert>grenze)
    {
    for (inti = 0; ic 10.000; itt)
    {
    wert= adwandler holen ();
    if (wert>max)
    max=wert;
    delay (100);

    }
    return max;
    }
    voit wert einordnen (float act)
    {
    if (act>max [0]);
    {
    max [4]=max [3];
    max [3]=max [2];
    max [2]=max [1];
    max [1]=max [0];
    max [0]= act;

    }
    else if (act>max [1]);
    {
    max [4]=max [3];
    max [3]=max [2];
    max [2]=max [1];
    max [1]=act;
    }
    else if (act>max [2]);
    {
    max [4]=max [3];
    max [3]=max [2];
    max [2]=act;
    }
    else if (act>max [3]);
    }
    max [4] = max [3];
    max [3] = act;
    }
    else if (act>max [4])
    {
    max [4]=act;
    }

    }

    ... allerdings läuft es nicht, der Profiler sagt es liegt am Wort initialisieren:

    "Fehler: expected function body after function declarator
    initialisieren"

    das kommt dann als Fehlermeldung.

    Jetzt bin ich ratlos und weiß grad nicht so wirklich weiter und möchte meinen Kollegen nicht in seinem Urlaub stören :)

    Ich hoffe ihr könnt mir schnell helfen.

    Gruß

  • Hallo Mave,

    suche im Quelltext mal nach

    Code
    initialisieren

    Taucht dies als Prozedur / Funktion auf, dann ist der bessere Vorschlag, die betreffende Zeile

    Code
    initialisieren

    zu ändern in:

    Code
    initialisieren();

    Gutes Gelingen

    Andreas

    Ich bin wirklich nicht darauf aus, Microsoft zu zerstören. Das wird nur ein völlig unbeabsichtigter Nebeneffekt sein.
    Linus Torvalds - "Vater" von Linux

    Linux is like a wigwam, no windows, no gates, but with an apache inside dancing samba, very hungry eating a yacc, a gnu and a bison.

  • Hallo Tell,

    soll wohl heißen:

    Code
    for (int i = 0; i< 10000; i++)

    wohl irgendwo abgeklimpert / abgekupfert.

    Über Sinn und Unsinn solcher Aktionen frage und denke ich schon lange nicht mehr nach. Es geht nichts über ein solides Erlernen einer Programmiersprache und deren Anwendung in praktischen Übungen und komplexer werdenden Aufgaben.

    Ob der Sourcecode jemals einen Compiler (welchen?) gesehen haben mag?

    Egal...

    Beste Grüße

    Andreas

    Ich bin wirklich nicht darauf aus, Microsoft zu zerstören. Das wird nur ein völlig unbeabsichtigter Nebeneffekt sein.
    Linus Torvalds - "Vater" von Linux

    Linux is like a wigwam, no windows, no gates, but with an apache inside dancing samba, very hungry eating a yacc, a gnu and a bison.

    Einmal editiert, zuletzt von Andreas (21. August 2014 um 00:23)

  • Hallo,

    danke erst mal für die vielen Hilfestellungen.
    Ich habe jetzt mal "// initialisieren" probiert, da zeigt er mir "while (0)" als Fehler an.
    Und wenn ich "initialisieren ()" mache, wird das ebenfalls als Fehler anerkannt.

    Gruß

  • Hallo,

    als erstes solltest du deinen ersten Post nochmal bearbeiten und deinen Programmcode über die Code-Funktion es Forums posten. Das sieht dann aus, wie in Post #3. Das erleichtert das lesen des Codes um ein vielfaches und man kann dir besser helfen. :)

    Außerdem ist es auch hilfreich, wenn du zu den jeweiligen Fehlern, die der Compiler meldet, die entsprechende Fehlermeldung mit dazu postest.

    Die while(0)-Schleife verwundert mich gerade ein bisschen? Was wolltet ihr damit bezwecken? So wie es jetzt programmiert ist, prüft er nämlich die Bedingung für die Schleife, auf Grund der 0 erkennt er "false" und die ganzen Anweisungen, die in der Schleife stehen, werden nie ausgeführt.

  • Aterus:
    Auch wenn man die While-Schleife entfernt, oder sie durch ein while(1) ersetzt, wird der Compiler sich noch nicht freuen.


    Das sind mal nur die Fehler die ich beim Überfliegen gefunden habe. Der Compiler wird also bis all das behoben ist noch ziemlich viel zu meckern haben. Es würde vermutlich weniger Arbeit machen, sich den Aufbau des Programms nochmal zu überlegen und es neu zu programmieren - Sofern man denn Verständnis der verwendeten Sprache hat.

    Einmal editiert, zuletzt von Padarom (21. August 2014 um 08:46)

  • Hallo mave1887,

    Programmieren ist eine Kunst - sie besteht nicht nur darin, irgendeinen Code abzutippen.


    Hallo,
    ...
    Und wenn ich "initialisieren ()" mache, wird das ebenfalls als Fehler anerkannt.

    Gruß

    Habe ich wirklich

    Code
    initialisieren()

    geschrieben? Schau noch mal genau nach. Oft kommt es auf den Fliegendreck am Ende ausgewählter Zeilen an.

    Beste Grüße

    Andreas

    Ich bin wirklich nicht darauf aus, Microsoft zu zerstören. Das wird nur ein völlig unbeabsichtigter Nebeneffekt sein.
    Linus Torvalds - "Vater" von Linux

    Linux is like a wigwam, no windows, no gates, but with an apache inside dancing samba, very hungry eating a yacc, a gnu and a bison.

    Einmal editiert, zuletzt von Andreas (21. August 2014 um 13:05)

  • Hallo mave1887,
    also ich kann Andreas da nur recht geben.
    Der Code strotzt derartig vor Fehlern dass ich es kaum als C code erkennen kann.

    z.B ist die main Funktion nicht in Klammern gesetzt, also meckert der Kompiler spaetestens in der 4ten Zeile.

    Da gehen Funktionsdeklarationen, -definitionen und -aufrufe wild durcheinander, von Syntaxfehlern einmal abgesehen.

    Ich kann dir nur dringendst raten, dir ein C Tutorial zu suchen, es aufmerksam und sorgfaeltig durchzuarbeiten und dann in ein paar Tagen nochmal zu versuchen.

  • Hallo Mave1887,

    die Frage, die sich mir jetzt stellt:

    Ist C die geeignete Sprache, wenn der "Entwickler" offenbar große Abneigung gegen Syntax und Semantik dieser Sprache so offen zur Schau stellt.

    Auch der liberalste C-Compiler wird mit dem Code nicht viel anzufangen wissen. Aber er dürfte so ziemlich jeden vorgesehenen Fehler, zu dem der Compiler einstmals angewiesen wurde, ausspucken.

    Dann kann man eine alte Programmierer-Regel anwenden: Nur die ersten maximal 4 Compilier-Fehler ernst nehmen und beseitigen - dann neu kompilieren! :bravo2:

    Aber mach Dir nichts draus, jeder hat mal so oder ähnlich angefangen.

    Und wie nurazur schon schrieb: Besorg Dir ein gutes C-Buch, arbeite es durch, lerne aus den Beispielprogrammen und Übungen. Nach zwei Wochen bekommst Du kleine Progrämmchen ohne C-Buch hin. Nach 4 Wochen kommen Dir konkrete Vorstellungen, wie Du dieses und andere Problemchen selber programmieren kannst - oder Du stampfst C wieder ein, weil Dir die Sprache nicht zusagt.


    Beste Grüße

    Andreas

    Ich bin wirklich nicht darauf aus, Microsoft zu zerstören. Das wird nur ein völlig unbeabsichtigter Nebeneffekt sein.
    Linus Torvalds - "Vater" von Linux

    Linux is like a wigwam, no windows, no gates, but with an apache inside dancing samba, very hungry eating a yacc, a gnu and a bison.

  • Ok, danke hilfreicheren Aussagen.
    Ich habe leider Gottes kaum Erfahrung mit C, bzw. generell mit Programmieren. Daher habe ich mich an meinen Kollegen gewendet.
    Dann bleibt mir wohl nichts anderes übrig, als mich da jetzt richtig hinter zuklemmen und C zu lernen.

    Aber bevor ich das tue, ist einfacher Python zu lernen, oder C, bzw. was wäre sinnvoller für mein Vorhaben?

    Gruß

  • Hallo Mave1887,

    Aber bevor ich das tue, ist einfacher Python zu lernen, oder C, bzw. was wäre sinnvoller für mein Vorhaben?

    Gruß

    Tja, wenn Du gar keine Erfahrung mit Programmieren hast, würde ich mich erst mal umschauen, was es so alles gibt.

    Es gibt Programmiersprachen, bei denen Du beim Überfliegen des Listings "verstehst", was da vor sich geht. Bei anderen Programmiersprachen verstehst du es auch nach tieferer Analyse nicht wirklich.

    Frage: Mit welcher Programmiersprache fühlst Du Dich wohler?

    Hier im Forum gibt es reichlich Tutorials für verschiedene Programmiersprachen - außerhalb des Forums auch.

    Prinzipiell gibt es Programmiersprachen, die für einen blutigen Einsteiger wesentlich leichter zu erlernen sind und wesentlich frustfreier zu Lösungen führen, als dies sprachenbedingt bei C oder Python möglich sein kann.

    Wirf vielleicht mal einen Blick auf meine Signatur...

    Beste Grüße

    Andreas

    Ich bin wirklich nicht darauf aus, Microsoft zu zerstören. Das wird nur ein völlig unbeabsichtigter Nebeneffekt sein.
    Linus Torvalds - "Vater" von Linux

    Linux is like a wigwam, no windows, no gates, but with an apache inside dancing samba, very hungry eating a yacc, a gnu and a bison.

  • Hallo Andreas,

    ein bisschen Erfahrung hab ich schon, so kleine Abläufe kann ich schon gestalten, aber halt eben nur simple sachen.
    Ich denke da ich gerne bei einer Programmiersprache belieben möchte, lerne ich Python, da ein anderes Skript auch ein Python geschrieben wurde.

    Wenn ihr mir jetzt geraten hättet, C zu lernen, hätte ich das Skript auch in C irgendwo gefunden.

    Gruß
    Mave


  • ....Wenn ihr mir jetzt geraten hättet, C zu lernen, hätte ich das Skript auch in C irgendwo gefunden.

    ich hätte ja C gesagt, aber da bin ich hier alleine

    C weil man leichter zum Atmel AVR-Studio, Arduino oder zum Pi wechseln kann und zurück.
    Mit Phyton geht das nicht.

    Ich habe mit C angefangen, bin über PC zu Atmel gekommen dann zu Arduino und PI und kann meine eigenen C-Sourcen an vielen Stellen nutzen ohne neu schreiben zu müssen.

    lasst die PIs & ESPs am Leben !
    Energiesparen:
    Das Gehirn kann in Standby gehen. Abschalten spart aber noch mehr Energie, was immer mehr nutzen. Dieter Nuhr
    (ich kann leider nicht schneller fahren, vor mir fährt ein GTi)

Jetzt mitmachen!

Du hast noch kein Benutzerkonto auf unserer Seite? Registriere dich kostenlos und nimm an unserer Community teil!