internet pencereler Android
Genişletmek

Şube komutanlığı tam olarak değil. Yönergeler ve görevler BASIC'te dallanma örnekleriyle algoritmalar

Konular: “BASIC'te dallanma ve döngü programları, çalışma

dizilerle."

Görev birkaç bölümden oluşuyor:

- konuyla ilgili ders materyalini okuyun (s. 1-5) ve örnekleri analiz edin;

- uygulamak1. Egzersiz(s. 5);

- konuyla ilgili ders materyalini okuyun (s. 6-8) ve örnekleri analiz edin;

- uygulamakegzersiz yapmak2 (İle.8-9 );

- konuyla ilgili ders materyalini okuyun (s. 9-14) ve örnekleri analiz edin;

- uygulamakgörev 3(s.14);

- “matris” kavramını ve matrislerle çalışma örneklerini tanıyın (s. 15-17).

Çözülmüş ödevleri okulun e-posta adresine bir mektupla gönderin.

"Konu" bölümünde "Kaverina N. E. bilgisayar bilimi" ifadesini belirtin. Metnin başında

harfler soyadınızı, sınıfınızı, ödevin tamamlanma tarihini ve

iş numaraları (13 - 1 7 ). Ödevleri kopyalayın ve ardından cevapları yazın.

DİKKAT! Ödev 12 Ocak'a kadar teslim edilmelidir.

Algoritmalarda ve programlarda dallanma.

Bu konuyla ilgili ders materyalini gözden geçirin, örnekleri analiz edin,

Herhangi bir sorunuz varsa, onlara bir mektupla sorun.

Dallanma algoritması duruma bağlı olarak bir veya başka bir eylem dizisinin gerçekleştirildiği bir algoritmadır.

Çoğu durumda, bir dizi eylemin belirli koşullar altında, diğerinin ise başka koşullar altında gerçekleştirilmesi gerekir.

Programın tamamı komutlardan (operatörlerden) oluşur. Komutlar basit veya bileşik olabilir (içinde başka komutların yer aldığı komutlar). Bileşik komutlara genellikle kontrol yapıları denir. Bu, bu ifadelerin programın ilerleyişini kontrol ettiğini vurgulamaktadır.

Basic'te bir koşullu ifade yazmayı düşünelim.

Operatörün basit bir formu şuna benzer:

EĞER<УСЛОВИЕ>DAHA SONRA<ОПЕРАТОР>

EĞER<УСЛОВИЕ>
<ОПЕРАТОР 1>
<ОПЕРАТОР 2>

<ОПЕРАТОР
N> SON EĞER

Eğer durum doğrudur, ardından program gerçekleştirir anahtar kelimeden sonra gelen operatör DAHA SONRA(veya anahtar kelimeden bir dizi ifade DAHA SONRAönce IF SONU) ve ardından olağan prosedürü takip edin. Eğer durum Gerçekleştirilemedi , ardından operatör daha sonra DAHA SONRA(veya bir dizi ifade DAHA SONRAönce IF SONU) Olumsuz gerçekleştirilen ve program hemen normal çalışmaya geri döner.
Tasarım EĞER... O ZAMAN koşulun geçerliliğine bağlı olarak ifadenin yürütülmesine veya bu ifadenin atlanmasına olanak tanır.
Tasarım EĞER...SONRA...SON IF koşulun geçerliliğine bağlı olarak bir grup operatörün yürütülmesine veya bu operatör grubunun atlanmasına olanak tanır.

Koşullar Boole ifadesinin başka bir türüdür. Aşağıdakileri kullanıyorlar karşılaştırma operatörleri:

daha fazla veya eşit

daha az veya eşit

Karşılaştırma işaretinin sağında ve solunda aynı türe ait miktarlar bulunmalıdır. Karşılaştırma, DOĞRU veya YANLIŞ değerine sahip mantıksal bir değerle sonuçlanır.

Örnek:
5<7 - ИСТИНА;
8=12 - YANLIŞ (8'in 12'ye eşit olup olmadığını kontrol ediyoruz, 8=12 olduğunu iddia etmiyoruz kontrol ediyoruz);

Önceki tasarımlar, koşulun geçerliliğine bağlı olarak bir dizi ifadeyi atlamanıza veya yürütmenize olanak tanıyordu. Henüz şube değildi. Hesaplamaların çeşitli yönlere dağılmasına izin vermek için tasarım IF...THE...ELSE...END IF.

EĞER<УСЛОВИЕ>DAHA SONRA
<ОПЕРАТОРЫ 1>
BAŞKA
<ОПЕРАТОРЫ 2>
IF SONU

Koşul doğruysa (DOĞRU), o zaman<операторы 1>(arasında duran DAHA SONRA Ve BAŞKA), A<операторы 2>(arasında duran BAŞKA Ve IF SONU) atlanacaktır.
Koşul doğru değilse (YANLIŞ), o zaman<операторы 1>göz ardı edilir ve yürütülür<операторы 2>.

IF - if, THEN - o zaman, ELSE - aksi halde.

Eğer Oda karanlık, Daha sonraışığı açmak gerekiyor.

Eğer yağmur yağacak, Daha sonraŞemsiye almam lazım
aksi takdirde, şemsiye almayın.

Örnek: Girilen sayının belirli bir değere eşit olup olmadığını kontrol edin, eşitse sayıların eşitliği ile ilgili ekranda mesaj görüntüleyin.

REM bir sayıyı bir değerle karşılaştırır
GİRİŞ "Bir girin", a
EĞER a=7 O ZAMAN YAZDIR "Sayılar eşittir"
SON

Program başlatıldıktan sonra girilen değerin yediye eşit olup olmadığı kontrol edilir. Eşit ise ekranda “Sayılar eşittir” mesajı görüntülenir.

Örnek: İki sayıdan büyük olanı belirleyin, ekrana gösterin, ardından ikiyle çarpın ve sonucu ekrana gösterin.


GİRİŞ "Bir girin", a
GİRİŞ "b'yi girin", b
EĞER a>b O ZAMAN
PRINT "Daha büyük sayı: ", a
с=2*a
BAŞKA
PRINT "Büyük sayı: ", b
с=2*b
IF SONU
PRINT "sonuç: ", c
SON

Program önce her iki sayıyı da ister, ardından a>b koşulunu kontrol eder. Koşul doğruysa ekranda a sayısı görüntülenir, ardından bu sayı iki katına çıkar. Aksi takdirde ekranda b sayısı görüntülenir, ardından b sayısı iki katına çıkar. Son olarak ekranda büyük sayının iki katı değeri görüntülenir.

Lütfen dikkat: Programın bir dezavantajı vardır - girilen sayıların eşit olduğu durumu dikkate almaz. Bir koşulun diğerinin içine yerleştirilmesini kullanarak bunu düzeltelim.

REM iki sayıdan büyük olanı belirler...
GİRİŞ "Bir girin", a
GİRİŞ "b'yi girin", b
IF a=b TNEN
PRINT "Sayılar eşit"
с=2*a
BAŞKA
EĞER a>b O ZAMAN
PRINT "Daha büyük sayı: ", a
с=2*a
BAŞKA
PRINT "Büyük sayı: ", b
с=2*b
IF SONU
IF SONU
PRINT "sonuç: ", c
SON

Bu programda iki koşullu operatör vardır, birincisi sayıların eşitliği durumunu kontrol eder ve yerine getirilirse sayıların eşitliği ile ilgili bir mesaj görüntülenir, sayılar eşit değilse ikinci koşul kontrol edilir. ...

Örnek: İkinci dereceden bir denklemin çözülmesi.
İkinci dereceden bir denklemin çözümü diskriminantın değerine bağlıdır.

REM İkinci Dereceden Denklemi Çözme
INPUT "a katsayısını girin:" ve
GİRİŞ "b katsayısını girin: ", b
INPUT "C katsayısını girin: ", c
d=b*b-4*a*c
EĞER d<0 THEN
YAZDIR "Kök yok"
BAŞKA
EĞER d=0 SONRA
x=-b/(2*a)
PRINT "denklemin kökü: ", x
BAŞKA
x1=(-b-SQR(d))/(2*a)
x2=(-b+SQR(d))/(2*a)
PRINT "denklemin kökleri: ", x1, x2
IF SONU
IF SONU
SON

1. Egzersiz.

1. Çarpım tablosu (seçtiğiniz bir sütun) bilginizi test edecek bir program yazın. Yanıtlayanın sonraki adımlarını açıklamak için yorumları kullanın.

2. 3 sayı verilir (yorumlarla birlikte klavyeden girin) a, b, c. Büyük sayıyı seçip ekrana yazdıran bir program yazınız.

3. Aşağıdakileri biliyorsanız Y'nin değerini hesaplayacak bir program yazın:

Metinde o" görünüyor, tüm harflerin üzerinden geçmek gerekiyor. Bu programın basitliğine rağmen bir kişinin onu yürütmesi çok zordur ancak bir bilgisayar için bu birkaç saniye süren bir görevdir.

Yuvarlak robin algoritması - belirli sayıda veya belirli bir koşul karşılanana kadar tekrarlanması gereken eylemlerin açıklaması.

Tekrarlanan eylemlerin listesine döngünün gövdesi denir.

Örneğin, bir beden eğitimi dersinde stadyumun etrafında birkaç tur koşmanız gerekir.

Bu tür döngülere denir - karşı döngüler.

Basic'te aşağıdaki gibi yazılırlar:

FOR Counter=Başlangıç ​​Değeri TO Bitiş Değeri
döngü gövdesi
SONRAKİ [Sayaç]

Köşeli parantez içinde belirtilen parametreler isteğe bağlıdır (bunlar atlanabilir). Varsayılan olarak döngü adımı birdir, yani döngü gövdesinden geçtikten sonra her defasında sayaç bir artırılır.

Örnek: 1'den 100'e kadar tüm sayıları görüntüleyin. Bunu yapmak için aşağıdaki programı yazabilirsiniz:

REM 1'den 100'e kadar sayıların çıktısını alır
YAZDIR 1
YAZDIR 2
YAZDIR 3
YAZDIR 4
YAZDIR 5
YAZDIR 6
YAZDIR 7
...
YAZDIR 98
YAZDIR 99
YAZDIR 100
SON

Sadece 102 satır :-). Aynı program çok daha kısa yazılabilmesine rağmen:

REM 1'den 100'e kadar sayıların çıktısını alır
I=1 İLA 100 İÇİN
YAZDIR I
SONRAKİ
SON

Programı biraz düzelterek a'dan b'ye tüm sayıları yazdırmasını sağlayabilirsiniz.

REM a'dan b'ye sayıları yazdır
a=55
b=107
I=a İÇİN b İÇİN
YAZDIR I
SONRAKİ
SON

Bu durumda döngüden ilk geçişte sayaç a değişkeninin değerini alır ve ardından NEXT anahtar sözcüğüne kadar olan ifadeler yürütülür. Bundan sonra sayaç bir artırılır ve b değişkeninin değeriyle karşılaştırılır; eğer sayaç daha azsa döngü tekrar yürütülür.

Programın sayıları ters sırada yazdırmasını sağlamak kolaydır. Bunu yapmak için döngü adımının -1'e (eksi bir) eşit olması gerekir. Bu durumda döngü her tamamlandığında sayaç değeri bir azalacaktır.

REM Sayıları b'den a'ya yazdır
a=55
b=107
I=b İÇİN ADIM -1'E
YAZDIR I
SONRAKİ
SON

Örnek: İki basamaklı doğal sayıların toplamını hesaplayın.

REM İki basamaklı doğal sayıların toplamını hesaplayın
I=10 İLA 99 İÇİN
s=s+ı
SONRAKİ
PRINT "Sonuç = ",s
SON

Program, eylemleri her gerçekleştirdiğinde 10'dan 99'a kadar sayılar arasında geçiş yapar s=s+ı. Matematiksel açıdan bakıldığında bu tamamen anlamsız bir giriş ama gelin daha dikkatli bakalım.
Hesaplamalı bir problemi çözme süreci, değişkenlerin değerlerini sırayla değiştirme sürecidir. Bunun sonucunda belirli değişkenlerde bir sonuç elde edilir. Sonuç olarak değişken belirli bir değer alır atamalar. Hatırlarsınız atama, bir komutun çalıştırılması sonucunda, bir değişken için ayrılan hücreye belirli bir değerin girilmesidir.
Operasyon sonucunda a=5 değişken A 5 değerini alır.
Operasyon sonucunda с=a+b değişken İle değişken değerlerinin toplamına eşit bir değer alır A Ve B.
Operasyon sonucunda s=s+ı değişken S değişkenin önceki değerinin toplamına eşit bir değer alır S ve değişken değerler BEN. Yani, eğer atama işleminden önce değer S 5'e eşitti ve değişken BEN 3 ise işlemden sonra değişkenin değeri S 8'e eşit olacak (5+3, eski değer S+ değer BEN).
Bu, programımızı çalıştırdıktan sonra s değişkeninin 10'dan 99'a kadar tüm iki basamaklı sayıların toplamını depolayacağı anlamına gelir.

REM Bir sayının faktöriyelini hesaplayın
a=5
f=1
I=1 İÇİN a
f=f*ı
SONRAKİ
YAZDIR f
SON

Elbette, döngünün başlangıcından önce f değişkenine bire eşit bir değer atadığımızı fark etmişsinizdir. Aksi takdirde sonuç olarak sıfır alırız.

Görev 2.

1. Operatörün kullanılması İÇİN...SONRAKİ, X argümanı -5'ten +5'e 0,5'lik artışlarla değiştiğinde Y=5/X fonksiyonunun değerini hesaplayan ve yazdıran bir program yazınız.

2. Operatörün kullanılması İÇİN...SONRAKİ,İlk 10 tam sayının toplamını hesaplayacak ve sonucu ekranda gösterecek bir program yazınız.

3. Programı çalıştırmanın sonucunu yazın:

10 İÇİN X=1,5 İLE 0 ADIM -0,5

Diziler . Tek boyutlu diziler.

Aynı türden çok sayıda veriyle çalışırken dizilerin kullanılması çok uygundur.

Peki diziler nedir...
Dizi bir değişken türüdür. Aynı isim altında istediğiniz kadar değer saklamanıza olanak sağlar. Her özel dizi değerine sayısal bir indeks aracılığıyla erişilmelidir.

Dizi, aynı ada (tanımlayıcı) sahip ancak seri numaraları (indeksler) farklı olan bir değişkenler kümesidir.

Tipik olarak diziler, birçok ortak özelliğe sahip değişkenleri gruplamak için kullanılır. Örneğin, bir sınıfta 30 öğrenci varsa, her öğrencinin adı ayrı bir dize değişkeninde saklanabilir: isim1, isim2, ... Ancak 30 yeni değişken eklemek son derece sakıncalıdır. Daha basit bir şekilde yapılabilir: 30 öğeli bir dizi adı() bildirin. Belirli bir öğeye atıfta bulunulması gerektiğinde parantez içine bir indeks yerleştirilir.

Birçok dilde dizi elemanlarının sayılması sıfırdan başlar. Bu nedenle, ilk öğrencinin adı (sınıf kaydına göre) name(0) değişkeninde, ikinci öğrencinin adı name(1) değişkeninde ve sonuncunun (otuzuncu) adı name(29) değişkeninde saklanacaktır. değişken.

Bir diziyi kullanabilmek için öncelikle programda bildirilmesi gerekir. Bunu yapmak için operatörü kullanın DIM. Varsayılan olarak (operatör yoksa DIM programda) 10 öğeden oluşan bir dizinin verildiği kabul edilir.

TAM SAYI OLARAK DIM a(100)
Bu, her biri bir tam sayı olabilen yüz öğeden oluşan bir dizidir.
DIM adı(30) AS STRING
DIM mas(20)
Bu 20 öğeden oluşan bir dizidir; değişken türü açıkça belirtilmemiştir.

TAM SAYI OLARAK DIM mas1(10)

Dizi öğelerine erişme:

bir(24)
isim(5)
mas(2)
mas(3)

Dizilerin, farklı adlara sahip alışılagelmiş değişkenler kümesine göre temel avantajı şudur. İstenilen elemanın indeksinin sayı olarak değil değişken olarak yazılabileceği, hatta bir ifade kullanılarak hesaplanabileceği. Bu, dizilerin döngüler içinde kullanılmasını mümkün kılar; aslında diziler bunun için icat edilmiştir. Programda bir dizi varsa, büyük olasılıkla içinde bir döngü bulacaksınız.

Bir diziyi şu şekilde de bildirebilirsiniz:

TAM SAYI OLARAK DIM mas2(1 TO 10)

hatta şöyle:

TAM SAYI OLARAK DIM a2(5 TO 10)

Fark ne? Bu durumda dizi elemanlarının indekslenmesi sıfırdan değil, ihtiyacınız olan indeksten başlar (örnekte dizi mas2 1'den 10'a kadar indeksler var, dizi a2- 5'ten 10'a kadar).

Diyelim ki bir sınıfta 30 öğrenci var. Notlarını bir derse depolamak için bir dizi oluşturulduğunu varsayalım. TAM SAYI OLARAK DIM işareti(30). Aşağıdaki program her öğrenciye 3'ten 5'e kadar rastgele bir not verecektir. Elbette bu şekilde not veremezsiniz ancak bu örnek, sınıfta 30 değil de yüz öğrenci varsa programın daha karmaşık hale gelmediğini gösteriyor. ve elli milyon. Dizilerin ve döngülerin birleşimi inanılmaz basitlik sağlar.

REM Derecelendirmesi :)
TAM SAYI OLARAK DIM işareti(30)
I=0 İLA 29 İÇİN
işaret(I)=3+INT(RND*3)
SONRAKİ
SON

Basic dilinde rasgele sayılar oluşturmak için standart işlevi kullanın. RND. 0'dan 1'e kadar rastgele bir sayı oluşturur. Bunu 3 ile çarparak 0'dan 3'e kadar rastgele bir sayı elde ederiz. Ve bundan tamsayı kısmını alarak (INT işlevini kullanarak) bir tamsayı rastgele sayı elde ederiz. 0 ile 2 arasında değişir. Buna 3 sayısını ekleyerek, 3'ten az ve 5'ten fazla olmayan rastgele bir tahmin veririz.

Örnek: 15 elemanlı bir diziyi 1'den 10'a kadar rastgele sayılarla dolduracak bir program oluşturun. Dizinin ekranda görüntülenmesini sağlayın.


TAM SAYI OLARAK DIM mas(15)
I=0 İLA 14 İÇİN
mas(I)=1+INT(RND*10)
SONRAKİ
CLS
PRINT "Dizi çıkışı"
I=0 İLA 14 İÇİN
PRINT mas(I);
SONRAKİ
SON

CLS- ekranı temizleme. Açıklamada noktalı virgül (;) YAZDIR dizi öğelerini bir dizeye çıkarmanıza olanak tanır.

Aynı görev, ancak dizi bildiriminde farklı:

REM Dizi doldurma ve çıktı alma
TAM SAYI OLARAK DIM mas(1 TO 15)
I=1 İLA 15 İÇİN
mas(I)=1+INT(RND*10)
SONRAKİ
CLS
PRINT "Dizi çıkışı"
I=1 İLA 15 İÇİN
PRINT mas(I);
SONRAKİ
SON

Her şey çok basit. Hangi seçeneği kullanacağınız size kalmış.

Örnek: Negatif dizi öğelerinin sayısını yazdırın.

REM Negatif öğelerin sayısını yazdır

TAM SAYI OLARAK DIM mas(n)
I=0 İLA n-1 İÇİN

SONRAKİ
CLS
PRINT "Dizi çıkışı"
I=0 İLA n-1 İÇİN
PRINT mas(I);
SONRAKİ
I=0 İLA n-1 İÇİN
IF mas(I)<0 THEN k=k+1
SONRAKİ
YAZDIR
PRINT "Negatif öğe sayısı: ",k
SON

Negatif dizi elemanlarının sayısı bir döngüde sayılır:
I=0 İLA n-1 İÇİN
IF mas(I)<0 THEN k=k+1
SONRAKİ

Örnek: Bir dizinin en büyük elemanını ve sayısını hesaplayan bir program yazın.

En büyük dizi öğesini ve sayısını hesaplamanın REM'i
INPUT "Dizi öğelerinin sayısını girin", n
TAM SAYI OLARAK DIM mas(n)
I=0 İLA n-1 İÇİN
INPUT "Bir dizi elemanı girin", mas(I)
SONRAKİ
CLS
PRINT "Dizi çıkışı"
I=0 İLA n-1 İÇİN
PRINT mas(I);
SONRAKİ
maksimum=mas(0)
sayı=1
I=0 İLA n-1 İÇİN
IF mas(I)>maks O ZAMAN
maksimum=mas(I)
sayı=I+1
IF SONU
SONRAKİ
YAZDIR
PRINT "Maksimum öğe: ", maksimum, " sayı ile ", nomer
SON

Görev satırlarda gerçekleştirilir:
maksimum=mas(0)
sayı=1
I=0 İLA n-1 İÇİN
IF mas(I)>maks O ZAMAN
maksimum=mas(I)
sayı=I+1
IF SONU
NEXT Öncelikle en büyük elemanı dizinin ilk elemanı olarak alalım mas(0). Daha sonra tüm unsurları tek tek inceleyerek bunları değerle karşılaştırıyoruz. maksimum ve eğer mas(I)>maks, o zaman bu elemanı en büyüğü olarak alıyoruz.

Örnek: Bir diziyi artan düzende sıralamak için bir program oluşturun.

REM dizisi sıralaması
INPUT "Dizi öğelerinin sayısını girin", n
TAM SAYI OLARAK DIM mas(n)
I=0 İLA n-1 İÇİN
mas(I)=1+INT(RND*10)
SONRAKİ
CLS
PRINT "Dizi çıkışı"
I=0 İLA n-1 İÇİN
PRINT mas(I);
SONRAKİ
REM dizisi sıralaması
I=0 İLA n-2 İÇİN
J=I+1 İLA n-1 İÇİN
IF mas(I)>mas(J) SONRA
REM Daha küçük bir element bulursak yerlerini değiştiririz
a=mas(I)
kütle(I)=mas(J)
mas(J)=a
IF SONU
SONRAKİ J
SONRAKİ I
Dizi sıralamasının REM sonu
YAZDIR
PRINT "Çıktı sıralanmış dizi"
I=0 İLA n-1 İÇİN
PRINT mas(I);
SONRAKİ
SON

Bazen veri girmek için operatörleri kullanmak daha uygun olur VERİ Ve OKUMAK.
VERİ sonraki ifadeler tarafından okunacak değerleri belirtir OKUMAK. OKUMAK bu değerleri okur ve değişkenlere atar. ESKİ HALİNE GETİRMEK izin verir OKUMAK belirtilen ifadedeki değerleri yeniden hesaplayın VERİ.

VERİ sabitleri
OKUMA değişkenleri

Örnek: DATA operatörünü kullanarak bir diziye girme.

DATA'dan REM Veri girişi
TAM SAYI OLARAK DIM mas(5)
VERİ 2, -4, 1, 5, 9
REM dizi girişi
I=0 İLA 4 İÇİN
OKU mas(I);
SONRAKİ
REM dizisi çıkışı
I=0 İLA 4 İÇİN
PRINT mas(I);
SONRAKİ
SON

Görev 3.

1. 4'ten büyük dizi elemanlarının toplamını ve çarpımını hesaplayan bir program yazın. A dizisi 15 elemandan oluşur.

2. B dizisinin 20 elemandan oluşan minimum elemanını bulan bir program yazın.

3. 20 elemandan oluşan A ve B dizileri verilmiştir. A) Eğer x(I)=2*a(i)-b(i) olduğu biliniyorsa, 20 elemandan oluşan yeni bir X dizisi elde edecek bir program yazın. B) y(I)=a(i)+3*b(i) olduğu biliniyorsa, 15 elemandan oluşan yeni bir Y dizisi elde edecek bir program yazın.

Diziler. İki boyutlu diziler.

İki boyutlu diziler, hücreleri dizi elemanlarının değerlerini depolayan tablolar olarak düşünülebilir ve dizi elemanlarının indeksleri satır ve sütun numaralarıdır.

İki boyutlu diziler, değişkenler ve tek boyutlu dizilerle aynı şekilde bildirilir. Örneğin, 3 satır ve 4 sütun içeren bir tamsayı sayısal dizisi şu şekilde bildirilir:

TAM SAYI OLARAK DIM tablosu(3 ,4)

TAM SAYI OLARAK DIM tabl1(1 TO 3 ,1 TO 4)

İki boyutlu 9x9 dizi ve iç içe geçmiş iki döngü kullanarak çarpım tablosunu uygulayan bir programı kolayca oluşturabilirsiniz. Faktörler satır ve sütun indekslerinin değerleri olacak ve bunların çarpımları dizi elemanlarının değerleri olacaktır.

TAM SAYI OLARAK DIM tablosu(1 - 9, 1 - 9)

REM Çarpım tablosu
TAM SAYI OLARAK DIM tabum(1 TO 9, 1 TO 9)
REM Bir diziyi doldurma - çarpım tablosu oluşturma
I=1 İLA 9 İÇİN
J=1 İLA 9 İÇİN
tabum(I, J)=I*J
SONRAKİ J
SONRAKİ I

I=1 İLA 9 İÇİN
J=1 İLA 9 İÇİN
PRINT tabum(I, J);
SONRAKİ J
YAZDIR
SONRAKİ I
SON

Örnek: 3x4'lük bir tabloda negatif elemanların sayısını, çift elemanların toplamını ve ikinci satırdaki elemanların çarpımını hesaplayın.

REM miktarı hesapla...
TAM SAYI OLARAK DIM tablosu(1 - 3, 1 - 4)
REM Dizisi Doldurma
I=1 İLA 3 İÇİN
J=1 İLA 4 İÇİN
INPUT "Dizi öğesini girin:", tabl(I, J)
SONRAKİ J
SONRAKİ I
REM Bir diziyi ekranda tablo olarak gösterme
CLS
I=1 İLA 3 İÇİN
J=1 İLA 4 İÇİN
PRINT tablosu(I, J);
SONRAKİ J
YAZDIR
SONRAKİ I
REM gerekli hesaplamaları
k=0
s=0
p=1
I=1 İLA 3 İÇİN
J=1 İLA 4 İÇİN
IF tablosu(I, J)<0 THEN k=k+1
IF tabl(I, J) MOD 2 = 0 THEN s=s+tabl(I, J)
EĞER I=2 O ZAMAN p=p*tabl(I, J)
SONRAKİ J
SONRAKİ I
YAZDIR
"Sonucu:" YAZDIR
PRINT "negatif öğeler: ", k
PRINT "çift elemanların toplamı: ", s
PRINT "ikinci satırın elemanlarının çarpımı: ",p
SON

Ders 3

Algoritmalarda ve programlarda dallanma.

Dallanma algoritması, duruma bağlı olarak bir veya başka bir eylem dizisinin gerçekleştirildiği bir algoritmadır.

Çoğu durumda, bir dizi eylemin belirli koşullar altında, diğerinin ise başka koşullar altında gerçekleştirilmesi gerekir.

Programın tamamı komutlardan (operatörlerden) oluşur. Komutlar basit veya bileşik olabilir (içinde başka komutların yer aldığı komutlar). Bileşik komutlara genellikle kontrol yapıları denir. Bu, bu ifadelerin programın ilerleyişini kontrol ettiğini vurgulamaktadır.

Basic'te bir koşullu ifade yazmayı düşünelim.

Operatörün basit bir formu şuna benzer:

EĞER<УСЛОВИЕ>DAHA SONRA<ОПЕРАТОР>

EĞER<УСЛОВИЕ> <ОПЕРАТОР 1>[:<ОПЕРАТОР 2>:…:<ОПЕРАТОР N>]

Eğer durum doğrudur, ardından program gerçekleştirir anahtar kelimeden sonra gelen operatör DAHA SONRA(veya anahtar kelimeden bir dizi ifade DAHA SONRAönce son) ve ardından olağan prosedürü takip edin. Eğer yakalamakOlumsuz adil, ardından operatör daha sonra DAHA SONRA(veya bir dizi ifade DAHA SONRA) Olumsuz gerçekleştirilen ve program hemen normal çalışmaya geri döner.
Tasarım EĞER... O ZAMAN koşulun geçerliliğine bağlı olarak ifadenin yürütülmesine veya bu ifadenin atlanmasına izin verir. EĞER... SONRA... koşulun geçerliliğine bağlı olarak bir grup operatörün yürütülmesine veya bu operatör grubunun atlanmasına olanak tanır.

Koşullar Boole ifadesinin başka bir türüdür. Aşağıdakileri kullanıyorlar karşılaştırma operatörleri:

daha fazla veya eşit

daha az veya eşit

Karşılaştırma işaretinin sağında ve solunda aynı türe ait miktarlar bulunmalıdır. Karşılaştırma, DOĞRU veya YANLIŞ değerine sahip mantıksal bir değerle sonuçlanır.

5<7 - ИСТИНА;

8=12 -YANLIŞ (8'in 12'ye eşit olup olmadığını kontrol ediyoruz, 8=12 olduğunu iddia etmiyoruz kontrol ediyoruz);

Önceki tasarımlar, koşulun geçerliliğine bağlı olarak bir dizi ifadeyi atlamanıza veya yürütmenize olanak tanıyordu. Henüz şube değildi. Hesaplamaların çeşitli yönlere dağılmasına izin vermek için tasarım EĞER... SONRA... DİĞER...

EĞER<УСЛОВИЕ>DAHA SONRA<ОПЕРАТОРЫ 1>BAŞKA<ОПЕРАТОРЫ 2>
Koşul doğruysa (DOĞRU), o zaman<операторы 1>(arasında duran DAHA SONRA Ve BAŞKA), A<операторы 2>(sonra geliyor BAŞKA) atlanacaktır.
Koşul doğru değilse (YANLIŞ), o zaman<операторы 1>göz ardı edilir ve yürütülür<операторы 2>.

IF - if, THEN - o zaman, ELSE - aksi halde.

Eğer Oda karanlık, Daha sonraışığı açmak gerekiyor.

Eğer yağmur yağacak, Daha sonraŞemsiye almam lazım aksi takdirde, şemsiye almayın.

Örnek: Girilen sayının belirli bir değere eşit olup olmadığını kontrol edin, eşitse sayıların eşitliği ile ilgili ekranda mesaj görüntüleyin.

REM bir sayıyı bir değerle karşılaştırır
GİRİŞ "Bir girin", a
EĞER a=7 O ZAMAN YAZDIR "Sayılar eşittir"
SON

Program başlatıldıktan sonra girilen değerin yediye eşit olup olmadığı kontrol edilir. Eşit ise ekranda “Sayılar eşittir” mesajı görüntülenir.

Örnek: İki sayıdan büyük olanı belirleyin, ekrana gösterin, ardından ikiyle çarpın ve sonucu ekrana gösterin.


GİRİŞ "Bir girin", a
GİRİŞ "b'yi girin", b
IF a>b THEN PRINT "Büyük sayı: ", a:с=2*a
ELSE PRINT "Büyük sayı: ", b:с=2*b
PRINT "sonuç: ", c
SON

Program önce her iki sayıyı da ister, ardından a>b koşulunu kontrol eder. Koşul doğruysa ekranda a sayısı görüntülenir, ardından bu sayı iki katına çıkar. Aksi takdirde ekranda b sayısı görüntülenir, ardından b sayısı iki katına çıkar. Son olarak ekranda büyük sayının iki katı değeri görüntülenir.

Lütfen dikkat: Programın bir dezavantajı vardır - girilen sayıların eşit olduğu durumu dikkate almaz. Bir koşulun diğerinin içine yerleştirilmesini kullanarak bunu düzeltelim.

REM iki sayıdan büyük olanı belirler...
GİRİŞ "Bir girin", a
GİRİŞ "b'yi girin", b
IF a=b TNEN PRINT "Sayılar eşittir":с=2*a
ELSE IF a>b THEN PRINT "Daha büyük sayı: ", a: с=2*a
ELSE PRINT "Büyük sayı: ", b: с=2*b
PRINT "sonuç: ", c
SON

Bu programda iki koşullu operatör vardır, birincisi sayıların eşitliği durumunu kontrol eder ve yerine getirilirse sayıların eşitliği ile ilgili bir mesaj görüntülenir, sayılar eşit değilse ikinci koşul kontrol edilir. ...

Örnek: İkinci dereceden bir denklemin çözülmesi.
İkinci dereceden bir denklemin çözümü diskriminantın değerine bağlıdır.

REM İkinci Dereceden Denklemi Çözme
INPUT "a katsayısını girin:" ve
GİRİŞ "b katsayısını girin: ", b
INPUT "C katsayısını girin: ", c
d=b*b-4*a*c
EĞER d<0 THEN PRINT "Корней нет"
EĞER d=0 THEN x=-b/(2*a) : PRINT "denklemin kökü: ", x
ELSE x1=(-b-SQR(d))/(2*a): x2=(-b+SQR(d))/(2*a) : PRINT "denklem kökleri: ", x1, x2
SON

Mantıksal koşullar arandı basitŞubenin iki şubesi varsa ve karmaşık, eğer ikiden fazla şube varsa.

Ve ve

Yada yada

DEĞİL değil

Hesaplamak

Görev 1.

Tanım, kenarları A, B, C ikizkenar olan bir üçgendir.

GİRİŞ “A, B, C üçgeninin kenarlarının boyutlarını girin”; A,B,C

Visual Basic programındaki kod satırına program ifadesi denir. Program ifadesi, Visual Basic derleyicisi tarafından tanınan geçerli bir ifadeyi oluşturan Visual Basic anahtar sözcüklerinin, özelliklerinin, işlevlerinin, aritmetik veya mantıksal işleçlerinin ve sembollerinin birleşimidir.

93. Diziler ve döngü işlemleri

Ders 22. Döngü operatörleri For...Next ve For Every

VB.NET'teki döngüler diğer programlama dillerindeki döngülere benzer. Bu derste iki tür döngüye bakacağız - For...Next ve For Every döngüleri. For...Next döngüleri belirli sayıda yürütülür. Yani, döngünün kaç kez yürütülmesi gerektiğini önceden biliyorsanız For...Next döngüsünü kullanırız. For Every döngüsü, koleksiyonların ve dizilerin öğeleri üzerinde yineleme yapmak için kullanılır. Örneğin, Her Biri İçin'i kullanarak bir formdaki tüm öğeleri listeleyebilir (geçiş yapabilir) veya bir veritabanındaki tüm satırları işleyebilirsiniz.

For...Next operatörü için bir örnek:

Dim A(10) Tam Sayı Olarak

Tam Sayı Olarak Dim i

"Diziyi sayıların kareleriyle doldurun

"Dizi öğeleri alınıyor

Console.WriteLine(A(i))

Bu örnekte 10 tam sayıdan oluşan bir dizi önce sayıların kareleri ile doldurulmakta, daha sonra dizinin elemanları ekranda görüntülenmektedir. Bir çizgi yerine

Yazabilirsin

For...Next döngülerinde döngü sayacı (bu durumda i) otomatik olarak değişir.

Verilen örnekte döngüden her geçildiğinde sayaç 1 artırılıyor. Eğer farklı bir adıma ihtiyaç duyuyorsak Step ile yapıyı kullanırız:

i = 0 ila 9 için Adım 2

"Bir şeyler yapıyoruz

Bu döngü 5 kez yürütülecektir.

Şimdi For Every döngüsünü kullanan bir örneğe bakalım:

Tamsayı Olarak Dim z

Dim A(10) Tam Sayı Olarak

"A dizisini doldur

A'daki Her z için

Eğer z > 10 ise

Console.WriteLine(z)

Gördüğünüz gibi döngümüzde A dizisindeki tüm elemanların üzerinden geçiyoruz (bu In A yapısından görülebilir). Dizi elemanı 10'dan büyükse ekranda gösteririz.

Tipik olarak, Her Biri İçin döngüleri çeşitli koleksiyonlardaki öğeleri (örneğin, bir formdaki öğeler veya Windows'taki tüm yazı tipleri) numaralandırmak için kullanılır.

Problem çözerken veri setlerini kullanmak. VB'deki diziler. İndekslenmiş değişkenler. Dizilerin açıklaması. Dizi indekslerinin alt ve üst sınırlarının atanma sırası. Denetim dizileri. Denetim dizilerinin oluşturulma sırası. Bir dizi, indekslenmiş bir değişkeni depolamak için ayrılmış bir dizi bellek hücresi olabilir. X1,Y2, Zt+1, Mi,j+1 – indeks değişkenleri. => X(1), Y(2), Z(i+1), M(I, f+1) – YAPVU'da sayı serileriyle çalışmak için tasarlanmıştır. dlina (1), dlina (2), dlina (3) – tek boyutlu bir dizi. Dim dlina (1 ila 3) As Tamsayı - programdaki dizinin açıklaması; 1, dizinin alt sınırı, 3 ise dizinin üst sınırıdır. Dizi indekslemenin mutlaka 0 veya 1'den başlaması gerekmez. Index özelliği kullanılarak bir kontrol dizisi oluşturulur; Index özelliği atanarak bilgisayara bu nesnenin dizinin bir öğesi olarak kabul edildiğini söyleriz. Kontrol dizisi bir dizi numaralandırılmış nesneden oluşur. Oluşturma yöntemi: 1) Index özelliğinin tasarım aşamasında atanması. 2) Win'e kopyalayarak (kopyala/yapıştır). 3) Programlı olarak (Metni Yükle 1(1) - yöntem). Load, Text1(1) adlı bir nesneyi forma yükler. İki boyutlu diziler. Tek boyutlu olanlara benzer şekilde belirtilirler: Dim dlina (1 ila 3, 1 ila 4) İki yöndeki sınırların virgülle ayrılmış parantez içinde listelendiği Tamsayı olarak, ilk (1 ila 3) sınırlar dikeydir ve ikincisi yataydır (1'den 4'e). İki boyutlu bir dizinin bir öğesine erişme: dlina(1,3) – ilk satırdaki, üçüncü sütundaki öğe.

Veri dizileri birden fazla değişken değerini depolamak için kullanılır:

Statik x(2) Tam Sayı Olarak (x=0,1,2).

Dizinin boyutu önceden belirlenemiyorsa dinamik dizi kullanılır:

Tamsayı Olarak Dim Y().

Anahtar kelime sabitleri tanımlamak için kullanılır:

Sabit Pi = 3,142.

Prosedür parametresi olarak dizi

Rem Program_2.5 – Prosedür parametresi olarak dizi

Tam Sayı Olarak Dim n

Dim Bekar Olarak

Dim x(2) Tekli Olarak

x(1) = 5: x(2) = 15: s = 0

sumir(x(), n, s)’yi çağırın ‘ dizi elemanlarını toplama prosedürünü çağırın

MsgBox "s = " & Str(ler)

Alt toplam (x() Tekli Olarak, n Tamsayı Olarak, s Tekli Olarak)

Tam Sayı Olarak Dim i

Bir işlev, orijinal bir ad altında birleştirilmiş bir grup operatör olarak anlaşılmaktadır. Bir işlev adındaki son karakter, döndürdüğü değerin türünü belirler.

Kullanıcı tanımlı işlevler (kullanıcı tarafından oluşturulan kitaplık işlevleri değil), kod düzenleme penceresine Function anahtar sözcüğünden ve ardından parantez içinde gerekli argümanlarla birlikte işlev adından oluşan bir başlık girilerek bildirilir. Bundan sonra otomatik olarak aşağıdaki şablon görünür:

FUNCTION_NAME işlevi

Gerekli ifadeler, işlev adı ile İşlev Sonu anahtar sözcükleri arasındaki boşluğa eklenir.

Bir işlevi çağırırken ona herhangi bir değer (bağımsız değişken) iletilmesi gerekiyorsa, işlev adından sonraki başlıkta karşılık gelen değişkenler virgülle ayrılmış olarak listelenmelidir.

Bir fonksiyonu tanımlamak için genel sözdizimi şöyledir:

İşlev FUNCTION_NAME(PARAMETER_1[, PARAMETER_2]...)

OPERATÖR_1

[OPERATOR_2]

FUNCTION_NAME = İFADE

burada PARAMETRE, çağrıldığında işleve iletilen bir veri öğesidir; Statik – eğer bu anahtar kelime bir işlev bildiriminde mevcutsa, işlevin gövdesinde bildirilen yerel değişkenler, bu işleve yapılan çağrılar arasında değerlerini korur.

İşlevleri çağırma yöntemleri: X = fun1(Y) veya Call fun1 Y.

Bir işlevin bir karakter (dize) değeri döndürmesi gerekiyorsa, adındaki son karakter $ işareti olmalıdır.

Her işlev her zaman yalnızca bir değer döndürür.

Fonksiyon örnekleri:

1. Bir fonksiyondan parametre geçirmek

Rem Program_2.6 – Bir fonksiyondan parametre aktarma

Dim x Tekli Olarak, y Tekli Olarak, s Tekli Olarak

s = sumir(x, y) ' iki sayıyı toplama fonksiyonunu çağırın

MsgBox "s = " & Str(ler)

Fonksiyon toplamı! (x!, y!) ' iki sayının toplamı fonksiyonunun tanımı

özet! =x! +y!

Basit değişkenlere ek olarak değerleri depolamak için dizileri kullanabilirsiniz. Dizi, aynı ada ve farklı indekslere sahip değişkenlerin bir koleksiyonudur. Bu tür değişkenlerin her birine dizi öğesi denir. Bir dizide saklanan öğe sayısına dizinin boyutu denir. Dizinin boyutu RAM miktarına ve dizi elemanlarının veri tipine göre sınırlıdır. Tüm dizi elemanları aynı tiptedir. Bununla birlikte, dizi değişken tipteyse, bireysel öğeler farklı tipte veriler içerebilir. Örneğin, bazı öğeler sayılar olabilir, bazıları ise dizeler veya nesneler olabilir. Visual Basic'te sabit boyutlu diziler ve dinamik diziler vardır. Sabit boyutlu bir dizi, bildirildiğinde belirtilen sabit bir boyuta sahiptir. Dinamik diziler yürütme sırasında boyutu değiştirebilir. İki boyutlu dizi nedir? Bu, her bir elemanın konumu bir indeks tarafından değil iki tarafından belirlenen, aynı türden bir veri kümesidir. Örneğin, çocukluğundan beri "deniz savaşı" oynamış olanlar için, oyun alanının her hücresinin iki sembolle (bir harf ve bir sayı, örneğin A5 - "kaçırılan", I10) gösterilmesi bir keşif olmayacaktır. - “vur”, Z7 - “öldürüldü” ". Yalnızca BASIC'te tamsayıların indeks olarak kullanılması gelenekseldir. İki boyutlu dizilerin kullanımının gerçek hayattaki bir örneği, her izleyici için iki koordinata (bir sıra ve bir koltuk) sahip olan sinema veya tiyatro biletleridir."

Benzer diziler BASIC'te aynı dim operatörü kullanılarak tanımlanır, bundan sonra dizinin iki boyutu parantez içinde gösterilir - satır sayısı ve sütun sayısı.

PROGRAMLAMA DİLİ GÖRSEL BASIC. PROGRAMLAMA ŞUBELERİ

Visual Basic'te dallanma aşağıdakiler kullanılarak düzenlenir:

  • koşullu IF ifadesi;
  • yerleşik IIF işlevi;
  • CASE seçim operatörü.

Bir koşulu test etmek ve bir ifadeyi veya ifade bloğunu yürütmek için şunu kullanın: koşullu ifade IF...THEN. Bu operatör farklı sözdizimleriyle kullanılabilir: tek satırlı (doğrusal) ve çok satırlı (blok).

Doğrusal operatör aşağıdaki sözdizimine sahiptir:

Eğer<условие>Daha sonra<операторы!>

Blok operatörü aşağıdaki sözdizimine sahiptir:

Eğer<условие>Daha sonra
<блок операторов 1>
Eğer Sonlandır

Verilen koşul Doğru ise, ifade bloğu yürütülür, aksi takdirde ifade bloğu2 yürütülür. Else cümleciği belirtilmemişse, eğerKoşul karşılandığında kontrol, If'ten hemen sonra bir sonraki operatöre aktarılır.

If ifadesi yuvalanabilir, yani ifade bloklarının içine yerleştirilebilir. Birden fazla koşulu test etmek ve birkaç ifade bloğundan birini yürütmek için formun genişletilmiş bir koşullu ifadesini kullanın:

Eğer<условие 1>Daha sonra
<блок операторов 1>
Başka<условие 2>Daha sonra
<блок операторов 2>
Başka<условие n>Daha sonra
<блок операторов n>
Eğer Sonlandır

Bazı koşulların karşılanmasına veya başarısızlığına bağlı olarak değerlerden birini seçmek için aşağıdaki sözdizimine sahip IIF koşullu işlevini kullanın:

IIF(<условие>, <значение1>, <значение2>)

Bu fonksiyon, koşul doğruysa değer1'i, koşul yanlışsa değer2'yi döndürür.

Bir Boolean ifadesini True veya değerini döndüren bir koşul olarak kullanabilirsiniz.

Yanlış veya herhangi bir aritmetik ifade (sıfır değeri Yanlış'a eşdeğerdir ve sıfır olmayan bir değer Doğru'ya eşdeğerdir).

SELECT CASE ifadesi Tek bir koşulu test etmek ve birkaç ifade bloğundan birini yürütmek için kullanılır.

Operatör kayıt formatı:

Vaka Seç<проверяемое выражение>
Dava<список выражений 1>
<операторы 1>Dava<список выражений 2>
<операторы 2>Dava<список выражений 3>
<операторы 3>
Başka Durumda
<операторы группы Else>
Seçimi Sonlandır

Test edilen ifade Select Case ifadesinin başında değerlendirilir. Bu ifade herhangi bir türden (boolean, numeric, string) bir değer döndürebilir.

İfadelerin listesi, standart bir sınırlayıcı karakterle (noktalı virgül) ayrılmış bir veya daha fazla ifadeden oluşur.

Operatör çalıştırılırken bu listedeki öğelerden en az birinin test edilen ifadeyle eşleşip eşleşmediği kontrol edilir.

Bu ifade listesi nafaka aşağıdaki şekillerden birini alabilir:

  • <выражение>- belirli bir ifadenin ifadelerden biri ile çakışmasını kontrol eder - liste öğeleri;
  • <выражение 1>O<выражение 2>- belirli bir ifadenin belirtilen aralığa girip girmediğini kontrol eder;
  • < Is <логический оператор> < выражение>- belirli bir ifade için belirtilen koşulun yerine getirilip getirilmediğini kontrol eder.