pseintを使用した基本的なプログラミング(パート3)

これはチュートリアルの続きです pseintを使用した基本的なプログラミング(パート2)、今回はプログラミングに必要なものを説明します。

割り当て

割り当ては、変数が作成および/または変更されるプロセスであり、メモリ空間にアクセスできる識別子を使用して変数を参照します。

割り当ての構文は次のとおりです。

[variable]<- [expresion];
[variable]=[expresion];

ここで、[変数]は、[式]を評価する値を受け取る変数です。 どちらも有効なので、どちらを使用してもかまいません(PSeIntが正しく構成されている場合)が、私の意見では、最初のものを正しいものとして作成します。

割り当ての前に[変数]が存在しなかった場合は、[変数]が作成されました。存在した場合は、前の値が破棄され、新しい値がその場所に配置されます。 このため、マッピングは破壊的な操作と見なされます。

読書

読み取りとは、XNUMXつまたは複数のデータがユーザーから要求され、そのデータを変数に格納するプロセスです。

その構文は次のとおりです。

Leer variable_1,variable_2,...,variable_n;

ここで、[variable_ {1,2、n}]は、ユーザーが指定した値を受け取るXNUMXつまたは複数の変数です。複数の変数が要求された場合、最初に最初の変数を要求し、次にXNUMX番目の変数を要求します。すべての値を受け取りました。

これも破壊的な機能です。

書き込み

書き込みとは、文字列やXNUMXつ以上の変数が画面に書き込まれるプロセスです。

構文は次のとおりです。

Escribir expresion_1,expresion_2,...,expresion_n;

ここで、[expersion_ {1,2、n}]は、表示される文字列や変数です。

画面に表示されるデータの受信に加えて書き込みを行うと、行のジャンプを回避する「スキップなし」または「ダウンなし」の命令も受信します。

書くことは引数の間にスペースを追加しません、つまり、あなたが置くならば:

Proceso SinTitulo
a<- "ola";
b<- "mundo";
Escribir a,b;
FinProceso

この場合、«a»と«b»の間にaとbの間のスペースを示す文字列がないため、«olamundo»が表示されます。正しく表示されるように、次のように記述されます。

Proceso SinTitulo
a<- "ola";
b<- "mundo";
Escribir a,"",b;
FinProceso

この場合、«wave»と«world»の間のスペースであるスペースを持つ文字列である»»を追加すると、スペースとともに«waveworld»が表示されます。

もしそうなら

これは、特定の条件を評価し、その条件の真実性および/または虚偽性、つまり条件が満たされているかどうかをチェックする文です。

その構文は次のとおりです。

Si [condición a evaluar] Entonces
[instrucciones por verdadero] Sino
[instrucciones por falso] FinSi

「Else」句は必須ではありません。この場合、条件がfalseの場合、指示を無視して、文が存在しないかのように続行します。この場合は、次のようになります。

Si [condición a evaluar] Entonces
[instrucciones por verdadero] FinSi

「失敗」句が配置されたかどうかは、そのプログラムのニーズによって異なります。

によると

オプションとして2つ以上のオプションを与える厳密な数値変数を評価する文。これは、前の文では2つのオプションしか与えられないため、「If-Then」との違いです。

構文は次のとおりです。

Segun [variable numérica] Hacer
[número1]: [instrucciones] [número2],[número3]: [instrucciones] [...] De Otro Modo: [instrucciones] FinSegun

«number1»の後に«:»があり、その後、«数値変数= number1»の場合に実行される命令が配置されます。2番目の例では«number3、number2»です。これは、 «数値変数= number3またはnumber2 "then"命令 "が実行される場合、これはXNUMXつの可能性が同じ命令を実行する必要がある場合に役立ちます。

いずれの可能性も満たされない場合に実行される「別の方法で」という条項もあります。

一方

これは、最初に条件を評価し、次にそれが満たされると一連の命令を実行し、次に条件を再評価し、それがtrueの場合は同じ命令を再度実行し、条件がfalseになるまでこのように続行する反復関数です。

条件が最初からfalseの場合は実行されず、常にtrueの場合は無限ループに配置されます。命令の最後を回避するには、ある時点で条件を改ざんするものが必要です。ループを終了することができます。

その構文は次のとおりです。

Mientras [condición a evaluar] Hacer
[instrucciones] FinMientras

繰り返す-まで

これは前の関数と非常によく似た関数ですが、前の関数とは異なり、この関数は最後に条件をチェックします。つまり、コマンドが実行されているときに命令を実行する代わりに、コマンドが少なくとも1回実行されます。 trueの場合、条件が満たされていないときに実行されますが、条件が満たされている間に実行されるようにする場合は、「until」ではなく「while」を使用します。

その構文は次のとおりです。

Repetir
[Instrucciones] hasta que [condicion]

FOR

このステートメントは、前のステートメントとは異なり、変数の決定回数だけ命令を実行します。このサイクルは、問題の変数の値をそれ自体で変更するだけでなく、非常に強力な構文を備えています。

Para [variable] Desde [valor inicial] Hasta [valor Final] Con [paso] Hacer
[instruciones] FinPara

「変数」は、「初期値」を受け取って命令を実行し、「変数」と「ステップ」を加算して、「変数」が「最終値」と等しくなるまで命令を再実行する変数です。

「with [step]」が削除されると、デフォルトで「step」が1に等しいことがわかります。また、[step]が指定されておらず、「初期値」が「final value」より大きい場合も、逆順、つまり「ステップ」は-1です

サブプロセス/機能

スレッドまたは関数は別のプログラム内のプログラムであり、このサブプログラムはXNUMXつ以上の値を受け取り、それらを操作して別の値を返します。 その構文は

SubProceso [variable_de_retorno]<- [nombre de la funcion] ([arg_1],[arg_2],...,[arg_n])

acción 1;
acción 2;
.
.
.
acción n;
FinSubproceso

ここで、「return variable」は、これを実行するためにパラメーター「arg_1、arg_2、arg_n」を受け取った「functionname」関数によって返される値を含む変数です。

その他

これらは他の関数を補完するだけの関数であり、補完的な関数にすぎないため、複雑な構文はありません。

画面をクリア

この関数は、インタプリタ内のオブジェクトの画面をクリアします

待機キー

この関数は、ユーザーがキーを押してプログラムを続行するのを待ちます

待って バツ {第二に、ミリ秒}

この関数は、プログラムを続行するために秒またはミリ秒単位の時間を待機します

PS:遅れてすみませんが、他の事柄で忙しかったので書くことができませんでした


10コメント、あなたのコメントを残してください

コメントを残す

あなたのメールアドレスが公開されることはありません。 必須フィールドには付いています *

*

*

  1. データの責任者:MiguelÁngelGatón
  2. データの目的:SPAMの制御、コメント管理。
  3. 正当化:あなたの同意
  4. データの伝達:法的義務がある場合を除き、データが第三者に伝達されることはありません。
  5. データストレージ:Occentus Networks(EU)がホストするデータベース
  6. 権利:いつでも情報を制限、回復、削除できます。

  1.   Guille

    実行を停止せずにキーをキャプチャする機能がありませんか? 絞首刑執行人のゲームもプログラムするのが楽しいかもしれませんが、9歳の人にとってより魅力的な動きで何かをするために。

    some_digoを処理します
    a <-1;
    横方向<-30;
    ダウン<-5;
    a = 1 Do
    画面をクリア;
    c <-1;
    行<-"";
    繰り返す
    行<-行+ "";
    c <-c + 1;
    c =横方向まで
    行<-行+ "X";
    c <-1;
    繰り返す
    ""を書くには;
    c <-c + 1;
    c =ダウン-1まで
    行を書く;
    繰り返す
    ""を書くには;
    c2次に
    ダウン<-ダウン-1;
    はい終了
    "s":
    15未満の場合
    ダウン2次に
    ラテラル<-ラテラル-1;
    はい終了
    「d」:
    横方向<50の場合
    横方向<-横方向+1;
    はい終了
    「0」:
    a <-2;
    エンドセカンド
    終了します
    終了プロセス

  2.   Guille

    さて、上がれば失敗します。23行目と28行目を変更してください。
    -23 c = 15まで
    +23 c = 18まで
    y
    -28ダウン> 2の場合
    +28ダウンの場合> 3その後

    1.    xmm

      貢献してくれてありがとう、でもある文を別の文の中で開くなどの問題がありますが、それはそれが始まった文の中で終わらなければなりません、つまり、それは置くことができません

      何かを処理する
      a <-0;
      読む;
      aが25に等しくない場合
      aが0に等しくない間do
      読む;
      はい終了
      終了します

      「ifthen」ステートメントの内側で開始し、その外側で終了するループを見ると、このようなことは不可能です。

      私はまだ貢献に感謝します
      終了プロセス

      1.    Guille

        ありがとう、でもここにコードを入れるのはもっと問題だと思います。コードタイプに入れる方法がわからず、インデントなしで出てきます。

        プログラムは正常に動作します。 ユーザーがゼロを入力したときにループを終了するために使用する変数「a」。 出口()または休憩を入れることができます。 条件付きでそれを見て、変数を保存します。 それらはオプションです。

        ご挨拶。

      2.    Guille

        スペースとラベルのタブを変更してみます por si funciona algo:

        Proceso algo_digo
        a<-1;
        lateral<-30;
        abajo<-5;
        Mientras a=1 Hacer
        Borrar Pantalla;
        c<-1;
        linea<-"";
        Repetir
        linea<-linea+" ";
        c<-c+1;
        Hasta Que c=lateral
        linea<-linea+"X";
        c<-1;
        Repetir
        Escribir " ";
        c<-c+1;
        Hasta Que c=abajo-1
        Escribir linea;
        Repetir
        Escribir " ";
        c 3 Entonces
        abajo<-abajo-1;
        Fin Si
        "s":
        Si abajo < 15 Entonces
        abajo 2 Entonces
        lateral<-lateral-1;
        Fin Si
        "d":
        Si lateral < 50 Entonces
        lateral<-lateral+1;
        Fin Si
        "0":
        a<-2;
        Fin Segun
        Fin Mientras
        FinProceso

      3.    Guille

        それは私のコードからのインポートエラーでいっぱいです、私はタブで再試行します:
        これはファイルalgo.pscになります

        Proceso algo_digo
        a<-1;
        lateral<-30;
        abajo<-5;
        Mientras a=1 Hacer
        Borrar Pantalla;
        c<-1;
        linea<-"";
        Repetir
        linea<-linea+" ";
        c<-c+1;
        Hasta Que c=lateral
        linea<-linea+"X";
        c<-1;
        Repetir
        Escribir " ";
        c<-c+1;
        Hasta Que c=abajo-1
        Escribir linea;
        Repetir
        Escribir " ";
        c 3 Entonces
        abajo<-abajo-1;
        Fin Si
        "s":
        Si abajo < 15 Entonces
        abajo 2 Entonces
        lateral<-lateral-1;
        Fin Si
        "d":
        Si lateral < 50 Entonces
        lateral<-lateral+1;
        Fin Si
        "0":
        a<-2;
        Fin Segun
        Fin Mientras
        FinProceso

      4.    Guille

        興味深いことに、コードラベル付きのコメントは、たとえば行間など、その間にあるものは何でも食べられ、削除されます。
        繰り返す
        ""を書くには;
        c
        cの後にあります
        そしてそれは3で続きます
        ダウン
        全体として、これはどのコードに従って配置するかは信頼できません。

  3.   Guille

    シンボルを割り当てから=に変更して、それがどのようになるかを確認します。

    Proceso algo_digo
    a=1;
    lateral=30;
    abajo=5;
    Mientras a=1 Hacer
    Borrar Pantalla;
    c=1;
    linea="";
    Repetir
    linea=linea+" ";
    c=c+1;
    Hasta Que c=lateral
    linea=linea+"X";
    c=1;
    Repetir
    Escribir " ";
    c=c+1;
    Hasta Que c=abajo-1
    Escribir linea;
    Repetir
    Escribir " ";
    c=c+1;
    Hasta Que c=18
    Escribir "Dibujo una X (w,a,s,d y 0 para salir)";
    Leer mueve;
    Segun mueve Hacer
    "w":
    Si abajo > 3 Entonces
    abajo=abajo-1;
    Fin Si
    "s":
    Si abajo 2 Entonces
    lateral=lateral-1;
    Fin Si
    "d":
    Si lateral < 50 Entonces
    lateral=lateral+1;
    Fin Si
    "0":
    a=2;
    Fin Segun
    Fin Mientras
    FinProceso

    1.    Guille

      それはコードの一部を食べ​​続けます、コードタグは失敗します、それは書き込みをそのままにしておくべきです。

      1.    xmm

        こんにちはあなたが前に答えたのを見なかったことを残念に思いますがよく
        あなたはそれを私にメールで送らないのであなたはコードをうまく公開することができないのであなたは問題にそれほど多くの順番を与えません。