Einfaches Programm auf der Programmiersprache CAPL verstehen

OP #4773665
Hallo,

ich wollte die Grundlagen von CAPL-Programmiersprache kennenlernen.

Dabei gibt es ein Programmbeispiel. Ich wollte das Beispiel betrachten 
und verstehen wie das Programm Schrittweise funktioniert:


byte binary Array[16]  // Was passiert in der Zeile? Ist hier Datentyp
                          BYTE deklariert mit Array? Was ist 16 ?
int number = 1234;     // Warum gerade 1234? Wie wollten Sie hier mit 
der
                          Variable number benutzen? Was bringt die?
int index = 0;         // Wofür ist die Variable index? Warom ist die =0 
?

while ( number !=0)    //Solange Variable  number ungleich 0
{
   binaryArray[index++]=number % 10;     //Was passiert in der Zeile?
   number = number /10                    Was passiert in der Zeile? Es
                                          wurde aber schon in der
                                          vorherigen Zeile durch 10
                                          geteilt? Warum auch hier?
}


-> REsultat 11010010     wie kommt man aufs Ergebnis?


=======================     ==========================



Und zweites Programmchen: es geht um Beispiel mit Datenyp Funktion:

void PrintMe (int num, char msg[])    //  Wird hier Funktion PrintMe
                                          deklariert? Mit Variablen 1)
                                          num von Typ int und 2) msg von
                                          Typ char.

                                          WElche Rolle spielen die
                                          Variablen? Was bedeuten [] bei
                                          msg?
{
    write ("%d %s",num msg);
}

PrintMe(1,"Fehler");          //Funktionsaufruf    Was bedeutet 1 und
                                "Fehler"?   Wofür sind die?

long Mult(int x, int y)        //Was ist Mult, x, y ?
{
int i;
long result;                    //Was ist result und wofür ist die?
result = 1;

for (i = 1; i <= y; i++)
     result *= x;               //Was passierz in der Zeile?

return result;
}

xy = Mult(2,4);                  //Funktionsaufruf   Warum brauvht man
                                   hier Funktion aufzurufen? Kan man
                                   welchen Ergebnis sehen? Warum xy sind
                                   nebeneinander geschrieben und kein
                                    Zeichen (z.B. *) dazwieschen?
Gast #4773678
Hi

> Es wurde aber schon in der vorherigen Zeile durch 10
>geteilt?

Nö

>number % 10;

heißt

number mod 10

>ich wollte die Grundlagen von CAPL-Programmiersprache kennenlernen.

Was ist denn das? Erinnert mich irgendwie an C

MfG Spess
Gast #4773682
spess53 schrieb:
> Was ist denn das? Erinnert mich irgendwie an C

CAPL ist eine von Vector Informatik entwickelte Programmier-
sprache, die in den weit verbreiteten Software-Werkzeugen
CANoe und CANalyzer zur Verfügung steht.
Gast #4773709
CAPL ist ein unglaublicher Krampf. Das ist VBA noch richtig gut dagegen. 
Sowas kann man nicht als Programmiersprache bezeichnen. Und ja, ich 
weiß, wovon ich spreche.
S.
Gast #4773750
Im ersten Snippet muss
    byte binary Array[16]
wahrscheinlich
    byte binaryArray[16]
heißen. Damit wird es eine sinnvolle Defnition und weiter unten auch so 
benutzt.

Der Rest sieht eigentlich sehr nach Standard-C aus.
Gast #4773751
Stefan schrieb:
> CAPL ist ein unglaublicher Krampf. Das ist VBA noch richtig gut
> dagegen.
> Sowas kann man nicht als Programmiersprache bezeichnen. Und ja, ich
> weiß, wovon ich spreche.
> S.

Hat das irgendwas mit der Frage des TO zu tun?
Hilft ihm das irgendwie weiter?
Gast #4773759
Hel B. schrieb:
> void PrintMe (int num, char msg[])    //  Wird hier Funktion PrintMe
>                                           deklariert? Mit Variablen 1)
>                                           num von Typ int und 2) msg von
>                                           Typ char.
>
>                                           WElche Rolle spielen die
>                                           Variablen? Was bedeuten [] bei
>                                           msg?
> {
>     write ("%d %s",num msg);
> }

PrintMe ist eine Prozedur (= Funktion ohne Rückgabewert) die zwei 
Argumente erwartet. Das erste muss ein Integer sein und wird innerhalb 
der Prozedur als Variable num zur Verfügung gestellt. Das zweite 
Argument ist ein Array aus char Elemeten - sprich ein String.

Hel B. schrieb:
> long Mult(int x, int y)        //Was ist Mult, x, y ?
> {

Das ist jetzt eine Funktion, die ein Ergebnis vom Typ long zurückgibt.

Hel B. schrieb:
> long result;                    //Was ist result und wofür ist die?

einfach nur eine Variable vom Typ long

Hel B. schrieb:
> result *= x;               //Was passiert in der Zeile?

Das, was schon in result steht, wird mit x multipliziert.

Hel B. schrieb:
> xy = Mult(2,4);                  //Funktionsaufruf   Warum brauvht man

xy ist eine neue Variable und wir mit dem Rückgabewert der Funktion 
gefüllt.
#4773777
JJ schrieb:
> Im ersten Snippet muss
>     byte binary Array[16]
> wahrscheinlich
>     byte binaryArray[16]
> heißen. Damit wird es eine sinnvolle Defnition und weiter unten auch so
> benutzt.
>
> Der Rest sieht eigentlich sehr nach Standard-C aus.

Es geht hier aber um eine der vielen C-Erweiterungen...

Um die zu verstehen muss man wohl vorher den K&R gelesen haben, was dem 
OP irgendwie entgangen ist. Und nein, C ist als Programmiersprache nicht 
selbsterklärend.
Gast #4773886
Erwin D. schrieb:
> Hat das irgendwas mit der Frage des TO zu tun?
> Hilft ihm das irgendwie weiter?

Er könnte sich überlegen, ob er sinnvoll ist, in diesen Auswuchs von 
Programmiersprache Zeit zu investieren oder ob er damit in eine 
Sackgasse läuft.

Besser könnte er solche Grundlagen anhand einer weit verbreiteten 
Programmiersprache lernen.
Gast #4773918
W.A. schrieb:
> Er könnte sich überlegen, ob er sinnvoll ist, in diesen Auswuchs von
> Programmiersprache Zeit zu investieren
Manchmal hat man die Wahl, manchmal nicht.
Ich durfte auch schon Druckertreiber für Data General AOS/VS erstellen. 
Da war die Wahl auch sehr begrenzt.

JJ schrieb:
> Im ersten Snippet muss
>     byte binary Array[16]
> wahrscheinlich
>     byte binaryArray[16]
Unwahrscheinlich.
Ich vermisse in c auch manchmal binary Arrays.
Die Ausgabe sieht so aus, als wäre das schon richtig so.
(leider kenne ich CAPL nicht gut genug)

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 10 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.