Pseint ile temel programlama (bölüm 3)

Bu, öğreticinin devamıdır Pseint ile temel programlama (bölüm 2), bu sefer programlamak için neyin gerekli olduğunu açıklayacağım.

GÖREV

Atama, bir değişkenin oluşturulduğu ve / veya değiştirildiği, bellek alanına erişebileceğimiz tanımlayıcısı aracılığıyla ona atıfta bulunan bir süreçtir.

atamanın sözdizimi şöyledir:

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

Burada [değişken], [ifade] değerlendirmesinin değerini alan değişkendir. Her ikisi de geçerlidir, bu nedenle hangisinin kullanıldığı önemli değildir (PSeInt'i doğru yapılandırmışlarsa), ancak bence ilkini doğru olanı olarak oluşturuyorum.

Atamadan önce [değişken] yoksa, [değişken] oluşturuldu, varsa önceki değer yok edilir ve yerine yenisi yerleştirilir. Bu nedenle haritalama, yıkıcı bir işlem olarak kabul edilir.

OKUMA

Okuma, kullanıcıdan söz konusu verileri bir değişkende saklaması için bir veri veya verinin talep edildiği işlemdir.

sözdizimi şöyledir:

Leer variable_1,variable_2,...,variable_n;

burada [değişken_ {1,2, n}], kullanıcı tarafından verilen değeri alan değişken veya değişkenlerdir, birden fazla değişken istenmesi durumunda, önce ilkini, sonra ikincisini ve bu şekilde tüm değerleri almış.

Bu aynı zamanda yıkıcı bir işlevdir.

YAZI

Yazma, ekranda bir karakter dizisinin ve / veya bir veya daha fazla değişkenin yazıldığı süreçtir.

sözdizimi şöyledir:

Escribir expresion_1,expresion_2,...,expresion_n;

burada [ifade_ {1,2, n}] görüntülenecek karakter dizeleri ve / veya değişkenlerdir.

Ekrana konulacak verinin alınmasının yanı sıra yazı yazmak da satır atlamasını engelleyen "Atlamadan" veya "Aşağı gitmeden" talimatını da alır.

Yazmak, argümanlar arasına boşluk eklemez, yani şunu koyarsanız:

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

bu durumda "olamundo" gösterecektir, çünkü "a" ve "b" arasında a ve b arasındaki boşluğu belirten bir karakter dizisi yoktur, bu nedenle doğru şekilde görüntülenebilmesi için şöyle yazılır:

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

bu durumda, "dalga" ve "dünya" arasında boşluk olan bir karakter dizisi olan »» ekleyin ve sonra boşlukla birlikte "dalga dünyası" gösterecektir.

VARSA

Bu, belirli bir koşulu değerlendiren ve söz konusu koşulun doğruluğunu ve / veya yanlışlığını, yani koşulun karşılanıp karşılanmadığını kontrol eden bir cümledir.

Sözdizimi şöyledir:

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

"Else" ibaresi zorunlu değildir, bu durumda eğer koşul yanlışsa, talimatları dikkate almayın ve cümle yokmuş gibi devam edin, bu durumda kalır:

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

"Hata" maddesinin konulup konulmaması o programın ihtiyaçlarına bağlıdır.

GÖRE

Cümle, seçenek olarak 2'den fazla seçenek sunan kesin bir sayısal değişkeni değerlendirdiğinden, bu, bir önceki seçenek yalnızca 2 seçenek verebildiği için "If-Then" den farkıdır.

Sözdizimi şöyledir:

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

«1 numara» dan sonra görebileceğiniz gibi «:» vardır ve bundan sonra yürütülecek talimatlar «sayısal değişken = sayı1» durumunda, ikinci örnekte «sayı2, sayı3» olduğu anlamına gelir. «sayısal değişken = sayı2 veya sayı3" ise, "talimatlar" yürütülecektir, bu, 2 olasılığın aynı komutları yürütmesi gerektiğinde yararlıdır.

Ayrıca olasılıklardan hiçbirinin yerine getirilmemesi durumunda uygulanan "Başka Bir Şekilde" hükmü de vardır.

SÜRE

Önce bir koşulu değerlendiren, sonra yerine getirilirse bir dizi talimatı yürüten, ardından koşulu yeniden değerlendiren ve doğruysa aynı komutları tekrar yürüten ve koşula kadar bu şekilde devam eden tekrar eden bir fonksiyondur. yanlış.

eğer koşul baştan yanlışsa asla çalıştırılmayacak ve her zaman doğruysa sonsuz bir döngüye yerleştirilecektir, talimatlarda sondan kaçınmak için bir noktada koşulun yanlış olduğunu gösteren bir şey olmalıdır. döngüyü bitirebilir.

sözdizimi şöyledir:

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

E KADAR TEKRAR EDİN

Bu, öncekine çok benzer bir işlevdir, ancak öncekinden farklı olarak, bu, sondaki koşulu kontrol eder, yani komut, aynı zamanda talimatı yerine getirmek yerine, en az 1 kez yürütülecektir. true, koşul yerine getirilmezse, ancak koşul yerine getirildiğinde yürütülmesini istiyorsanız, "until" yerine "while" kullanın.

sözdizimi şöyledir:

Repetir
[Instrucciones] hasta que [condicion]

TO

Bu ifade, öncekilerden farklı olarak, bir değişken için belirli sayıda bir komut yürütür, bu döngü, çok güçlü bir sözdizimine sahip olmasının yanı sıra, söz konusu değişkenin değerini kendi başına değiştirir.

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

"Değişken", "başlangıç ​​değeri" ni alan ve talimatları uygulayan, ardından "değişken" artı "adımı" ekleyen ve "değişken", "son değer" e eşit olana kadar talimatları yeniden yürüten değişkendir.

"[Adım] ile" kaldırılırsa, varsayılan olarak "adım" ın 1'e eşit olduğunu bilir, ayrıca [adım] belirtilmezse ve "başlangıç ​​değeri" "nihai değerden" büyükse, bu adımdan geçecektir. ters sıra, yani "Adım" -1'dir

ALT SÜREÇ / FONKSİYON

Bir iş parçacığı veya işlev, diğerinin içindeki bir programdır ve bu alt program bir veya daha fazla değer alır, bunları çalıştırır ve bir başkasını döndürür. Sözdizimi

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

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

burada "dönüş değişkeni", bunu yürütmek için "arg_1, arg_2, arg_n" parametrelerini alan "işlev adı" işlevi tarafından döndürülen değeri içeren değişkendir

DİĞER

Bunlar yalnızca diğerlerini tamamlayan işlevlerdir ve yalnızca tamamlayıcı işlevler oldukları için karmaşık bir sözdizimine sahip değildir.

Temiz ekran

Bu işlev, yorumlayıcıdaki herhangi bir nesnenin ekranını temizler

Bekleme Anahtarı

Bu işlev, kullanıcının programa devam etmek için bir tuşa basmasını bekler.

beklemek X {İkincisi, Milisaniye}

bu işlev programa devam etmek için saniye veya milisaniye cinsinden bir süre bekler

Not: Gecikme için özür dilerim ama diğer konularla meşguldüm bu yüzden yazamadım


Yorumunuzu bırakın

E-posta hesabınız yayınlanmayacak. Gerekli alanlar ile işaretlenmiştir *

*

*

  1. Verilerden sorumlu: Miguel Ángel Gatón
  2. Verilerin amacı: Kontrol SPAM, yorum yönetimi.
  3. Meşruiyet: Onayınız
  4. Verilerin iletilmesi: Veriler, yasal zorunluluk dışında üçüncü kişilere iletilmeyecektir.
  5. Veri depolama: Occentus Networks (AB) tarafından barındırılan veritabanı
  6. Haklar: Bilgilerinizi istediğiniz zaman sınırlayabilir, kurtarabilir ve silebilirsiniz.

  1.   Guille dijo

    Yürütmeyi durdurmadan tuşları yakalamak için işlevleriniz yok mu? Adam asmaca oyunu programlamak eğlenceli olsa da, 9 yaşındaki çocuklara daha çekici gelen hareketli bir şey yapmak için.

    Bir şeyi işle_digo
    a <-1;
    yanal <-30;
    aşağı <-5;
    A = 1 Yaparken
    Temiz ekran;
    c <-1;
    satır <- "";
    tekrar
    satır <-line + "";
    c <-c + 1;
    C = lateral olana kadar
    satır <-line + "X";
    c <-1;
    tekrar
    Yazmak " ";
    c <-c + 1;
    C = aşağı-1 olana kadar
    Yazı çizgisi;
    tekrar
    Yazmak " ";
    c 2 Sonra
    aşağı <-down-1;
    Evet bitir
    "s":
    <15'in altındaysa O zaman
    aşağı 2 Sonra
    yanal <-lateral-1;
    Evet bitir
    "d":
    Yanal <50 ise
    yanal <-lateral + 1;
    Evet bitir
    "0":
    a <-2;
    Saniyeler Sonu
    Bitiş Zamanı
    EndProcess

  2.   Guille dijo

    Yukarı çıkarsan başarısız ol, 23 ve 28. satırları değiştirsen iyi olur
    -23 c = 15'e kadar
    +23 c = 18'e kadar
    y
    -28 Aşağı ise> 2 Sonra
    +28 Aşağı ise> 3 Sonra

    1.    xnmm dijo

      Katkı için teşekkürler ama bir cümleyi başka bir cümle içinde açman gibi sorunlar var ama başladığı cümle içinde bitmeli yani konulamaz

      Bir şeyi işle
      a <- 0;
      okumak;
      a 25'e eşit değilse
      a eşit değildir 0 do
      okumak;
      Evet bitir
      bitince

      döngünün "eğer öyleyse" ifadesinin içinde başlayıp dışında biterken gördüğünüz gibi, böyle bir şey mümkün değildir.

      Hala katkısını takdir ediyorum
      İşlemi sonlandır

      1.    Guille dijo

        Teşekkürler, ama bence kodu buraya koymak daha çok sorun, kod türüne nasıl yerleştireceğimi bilmiyorum ve girinti olmadan çıkıyor.

        Program iyi çalışıyor. "A" değişkeni, kullanıcı sıfır yazdığında döngüden çıkmak için kullanıyorum. Bir çıkış () veya ara koyabilirsiniz; koşullu olarak ona bakar ve değişkeni kaydederim. Seçeneklerdir.

        Selamlar.

      2.    Guille dijo

        Boşluklar ve etiketler için sekmeleri değiştirmeyi deneyeceğim 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 dijo

        Kodumdaki içe aktarma hatalarıyla dolu, sekmelerle tekrar deneyeceğim:
        Bu, algo.psc dosyası olacaktır.

        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 dijo

        İlginçtir, kod etiketli yorum yenir, silinir, aralarında ne olursa olsun, örneğin satırlar arası
        tekrar
        Yazmak " ";
        c
        c'den sonra bir
        ve sonra 3 ile devam eder Sonra
        abajo
        Genel olarak, bunu hangi kodlara göre koymak güvenilir değildir.

  3.   Guille dijo

    Nasıl olduğunu görmek için sembollerin atamasını = olarak değiştiriyorum.

    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 dijo

      Kodun bir kısmını yemeye devam eder, kod etiketi başarısız olur, yazıyı olduğu gibi bırakmalıdır.

      1.    xnmm dijo

        Merhaba, daha önce cevapladığını göremediğim için üzgünüm ama iyi
        çünkü kodu iyi yayınlayamıyorsunuz çünkü bana mail ile göndermiyorsunuz, bu yüzden konuya çok fazla dönüş yapmıyorsunuz.