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
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
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
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
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.
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
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
İ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.
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
Kodun bir kısmını yemeye devam eder, kod etiketi başarısız olur, yazıyı olduğu gibi bırakmalıdır.
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.