Einfaches Programm auf der Programmiersprache CAPL verstehen

OP #4773665
Lesenswert?
• ▲
▼
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
Lesenswert?
• ▲
▼
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 #4773750
Lesenswert?
• ▲
▼
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
Lesenswert?
• ▲
▼
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
Lesenswert?
• ▲
▼
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
Lesenswert?
• ▲
▼
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
Lesenswert?
• ▲
▼
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
Lesenswert?
• ▲
▼
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

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren