Tek boyutlu tamsayı dizisinin doğru açıklaması. Tamsayıların tek boyutlu dizilerinin teknolojik haritası. Diğer veri yapıları

Dizi Dizi, aynı türdeki öğelerin dizideki konumunu belirleyen indekslere göre sıralanan adlandırılmış bir koleksiyonudur. Dizilerin işlenmesiyle ilgili çeşitli problemlerin çözümü aşağıdaki gibi tipik problemlerin çözümüne dayanmaktadır: - dizi elemanlarının toplanması; - belirtilen özelliklere sahip bir öğeyi arayın; - dizi sıralama. Tek boyutlu dizi Dizi öğesi değeri Dizi öğesi dizini


Dizi açıklaması Dizi açıklamasının genel biçimi: vararray var: dizi [.. of ] of ; var aarrayof var a: tamsayı dizisi; const barrayof const b: tamsayı dizisi = (4, 2, 3, 5, 7); Dizi elemanlarının türü Dizi adı Maksimum indeks değeri Minimum indeks değeri Dizinin 1. elemanının değeri Sabit değerlere sahip b dizisi sabitlerin açıklaması bölümünde anlatılmıştır.


Bir diziyi doldurmanın yolları 1 yol. Her değeri klavyeden girme: forto doread for i:=1 ila 10 do read (a[i]); Yöntem 2. Atama operatörünü kullanma (formülü kullanarak): forto do for i:=1 ila 10 do a[i]:=i; 3 yollu. Atama operatörünü kullanma (rastgele sayılarla): rastgele rastgele; forto do for i:=1 ila 10 do a[i]:=random(100);


Bir dizinin çıktısını alma 1 yolu. Dizi elemanları bir boşlukla ayrılmış bir dizeye yazılabilir: fortodo for i:=1 - 10 do write (a[i], " "); Yöntem 2. Yorumlarla birlikte çıktı: fortodo for i:=1 ila 10 do writeln ("a[", i, "]=", a[i]); a=4a=1a=6a=3a=8a=5a=9a=4a=8a=7


Dizinin bildirilmesi Dizinin doldurulması Dizi programının çıktısının alınması n_1; var i: tamsayı; a: tam sayı dizisi; A dizisini (10) rastgele sayılarla doldurmak ve dizi öğelerinin çıktısını almak i:=1'den 10'a kadar başlar, a[i]:=random(50); i:=1 ila 10 için şunu yazın (a[i],` `); son.


Dizi elemanlarının toplamının hesaplanması Dizi elemanlarının toplamı, terimlerin sırayla eklenmesiyle gerçekleştirilir: s Toplamanın sonucunun sırayla toplanacağı bir bellek hücresi (değişken s) belirlenir.s değişkenine bir başlangıç ​​değeri atanır. 0 - s toplamının sonucunu etkilemeyen bir sayı. Dizinin her elemanı için s değişkeninden geçerli değeri ile okunur ve dizi elemanının değerine eklenir; Elde edilen sonuç s değişkenine atanır.


Dizi elemanlarının toplamının hesaplanması s = 0 Programın ana parçası: s:=0; s:=0; i:=1'den n'ye kadar s:=s+a[i]; i:=1'den n'ye kadar s:=s+a[i]; s = s + a s = 0+ a s = s + a s = 0+ a+ a s = s + a s = 0+ a+ a+ a …… s = s + a s = 0+a+a+a +a


Dizi elemanlarının toplamını hesaplama programı n_2; var s, i: tamsayı; a: tam sayı dizisi; başlangıç ​​s:=0; s:=0; i:=1 ila 10 için a[i]:=random(50); yapın i:=1 ila 10 için şunu yazın (a[i],` `); i:=1 ila 10 için s:=s+a[i]; i:=1 ila 10 için s:=s+a[i]; writeln("s=", s); son.




1) Üstteki kartı alın ve tahtaya en büyük sayıyı yazın (hatırlayın). 2) Bir sonraki kartı alın ve sayıları karşılaştırın. Kartta daha yüksek bir sayı varsa bu sayıyı yazın. Sayıları yazılı olan bir kart destesindeki en büyük elemanı bulma: Geriye kalan tüm kartlar için 2. adımda açıklanan adımları tekrarlayın. Bir dizinin en büyük elemanı için arama düzenlerken, dizinini aramak daha doğrudur. !


Bir dizi programındaki en büyük öğeyi bulma programı n_3; imax var s, i, imax: tamsayı; a:tamsayı dizisi; başlangıç ​​s:=0; s:=0; i:=1 ila 10 için a[i]:=random(50); yapın i:=1 ila 10 için şunu yazın (a[i],` `); imax:=1 imax:=1 i:=2 10 i:=2 ila 10 için a[i]>a imax:=i; eğer a[i]>a ise imax:=i; write (" En büyük öğe a[",imax,"]=", a) write (" En büyük öğe a[",imax,"]=", a) end. a imax:=i; eğer a[i]>a ise imax:=i; write ("En büyük öğe a[",imax,"]=", a) write ("En büyük öğe a[",imax,"]=", a) end.">


Verilen özelliklere sahip bir dizi elemanı bulma Değeri verilen bir değere eşit olan bir elemanı aramanın sonucu şöyle olabilir: n - a[n]= xх -n - a[n]= x olacak şekilde bir dizi elemanının indeksi, burada x belirli bir sayıdır; dizide gerekli elemanın bulunamadığına dair bir mesaj Burada: üç, 4. elemana eşittir; on, 1. ve 9. elementlere eşittir; 12'ye eşit bir element yoktur.


50'ye eşit bir eleman arayın Program, program n_4 koşulunu karşılayan son elemanı buldu; var n, i: tamsayı; a:tamsayı dizisi; i:=1 ila 10 için başla a[i]:=random(60); i:=1 ila 10 için şunu yazın (a[i],` `); n:=0; n:=0; i:=1 ila 10 için i:=1 ila 10 için yapın, eğer a[i]=50 ise o zaman n:=i; a[i]=50 ise n:=i; eğer n=0 ise yaz(" Hayır ") yoksa yaz (i) eğer n=0 sonra yaz(" Hayır ") yoksa yaz (i) bitir.


50 program n_5'e eşit olan elemanı arayın; var n, i: tamsayı; a:tamsayı dizisi; i:=1 ila 10 için başla a[i]:=random(60); i:=1 ila 10 için şunu yazın (a[i],` `); ben:=0; ben:=0; tekrar i:=i+1; ben:=i+1; (a[i]=50) veya (i=10)'a kadar; (a[i]=50) veya (i=10)'a kadar; eğer a[i]=50 ise write(i) if a[i]=50 ardından write(i) else write(" Hayır ") sonu. Koşulu sağlayan ilk öğe programda bulunur.


Öğe sayısını sayma Sayma için, istenen öğe her bulunduğunda değeri bir artan bir değişken eklenir. program n_6; var k, i: tamsayı; a:tamsayı dizisi; i:=1 ila 10 için başla a[i]:=random(60); i:=1 ila 10 için şunu yazın (a[i],` `); k:=0; k:=0; i:=1 10 için i:=1 ila 10 yapın, eğer a[i]>50 k:=k+1; a[i]>50 ise k:=k+1; ("k = ", k) yaz(" k = ", k) son 50 k:=k+1; a[i]>50 ise k:=k+1; ("k = ", k) write("k = ", k) end.">


N_7 koşul programını karşılayan elemanların değerlerinin toplamı; var s, i: tamsayı; a:tamsayı dizisi; i:=1 ila 10 için başla a[i]:=random(60); i:=1 ila 10 için şunu yazın (a[i],` `); s:=0; s:=0; i:=1 10 için i:=1 - 10 yapın a[i]>10 (a[i] 10 ve (a[i] 1"> 10 (a[i] 10 ve (a[i]"> 1" title="105013 1421501021 koşulunu sağlayan elemanların değerlerinin toplamı program n_7; var s, i: integer; a:tamsayı dizisi ; begin i:=1 ila 10 için yapın a[i]:=random(60); i:=1 ila 10 için yazın (a[i],` `); s:=0; s:=0; i:=1 10 i:=1 ila 10 için a[i]>1 yapın"> title="105013 1421501021 program n_7 koşulunu sağlayan elemanların değerlerinin toplamı; var s, i: tamsayı; a:tamsayı dizisi; i:=1 ila 10 için başla a[i]:=random(60); i:=1 ila 10 için şunu yazın (a[i],` `); s:=0; s:=0; i:=1 10 için i:=1 ila 10 yapın a[i]>1"> !}


Bir diziyi sıralama 1. Dizideki maksimum öğe seçilir 2. Maksimum ve ilk öğe değiştirilir (ilk öğe sıralanmış olarak kabul edilir) 3. Dizinin sıralanmamış kısmında maksimum öğe yeniden seçilir; dizinin ilk sıralanmamış öğesiyle yer değiştirir. 3. adımdaki eylemler, bir sıralanmamış öğe kalana kadar (minimum) dizinin sıralanmamış öğeleriyle tekrarlanır. Dizi öğelerinin seçime göre azalan sırada sıralanması aşağıdaki gibi gerçekleştirilir:


Dizi Dizini Değerini Sıralama Adım Özeti:


A sonra imax:=j; x:=a[i]; a[i]:=a; a:=x; son; i:=1 ila 10 için şunu yazın (a[i],` `); son; program n_8; imax var n, i, j, x, imax: tamsayı; a:arrav o" title="Bir diziyi i:=1'den 9'a kadar sıralamak imax:=i ile başlar; j:=i+1'den 10'a kadar yapmak if a[j]>a sonra imax:= j ; x:=a[i]; a[i]:=a; a:=x ; end; i:=1'den 10'a kadar do write (a[i],` `); end; program n_8; imax var n, i, j, x, imax: tamsayı; a:arrav o" class="link_thumb"> 21 !} Bir diziyi i:=1'den 9'a kadar sıralamak imax:=i; ile başlar j:=i+1 ila 10 için şunu yapın: if a[j]>a sonra imax:=j; x:=a[i]; a[i]:=a; a:=x; son; i:=1 ila 10 için şunu yazın (a[i],` `); son; program n_8; imax var n, i, j, x, imax: tamsayı; a:tamsayı dizisi; begin for i:=1 ila 10 do read (a[i]); i:=1 ila 10 için şunu yazın (a[i],` `); a sonra imax:=j; x:=a[i]; a[i]:=a; a:=x; son; i:=1 ila 10 için şunu yazın (a[i],` `); son; program n_8; imax var n, i, j, x, imax: tamsayı; a:arrav o"> a sonra imax:=j; x:=a[i]; a[i]:=a; a:=x ; end; i:=1 ila 10 için şunu yazın (a[i] ,` `); bitiş; program n_8; imax var n, i, j, x, imax: tamsayı; a:tamsayı dizisi; i:=1 ila 10 için başla (a[i]); i için: =1'den 10'a kadar yaz (a[i],` `); 01924365 96543210"> a sonra imax:=j; x:=a[i]; a[i]:=a; a:=x; son; i:=1 ila 10 için şunu yazın (a[i],` `); son; program n_8; imax var n, i, j, x, imax: tamsayı; a:arrav o" title="Bir diziyi i:=1'den 9'a kadar sıralamak imax:=i ile başlar; j:=i+1'den 10'a kadar yapmak if a[j]>a sonra imax:= j ; x:=a[i]; a[i]:=a; a:=x ; end; i:=1'den 10'a kadar do write (a[i],` `); end; program n_8; imax var n, i, j, x, imax: tamsayı; a:arrav o"> title="Bir diziyi i:=1'den 9'a kadar sıralamak imax:=i; ile başlar j:=i+1 ila 10 için şunu yapın: if a[j]>a sonra imax:=j; x:=a[i]; a[i]:=a; a:=x; son; i:=1 ila 10 için şunu yazın (a[i],` `); son; program n_8; imax var n, i, j, x, imax: tamsayı; a:arrav o"> !}


En önemli şey, bir dizinin, dizideki öğelerin konumunu belirleyen indekslere göre sıralanan, aynı türden öğelerin adlandırılmış bir koleksiyonu olmasıdır. Programlama dilleri, diziler ve tablolar gibi veri yapılarını uygulamak için dizileri kullanır. Bir programda kullanılmadan önce dizinin tanımlanması gerekir. Tek boyutlu bir dizinin genel açıklaması: var: dizi […] of element_type; Diziyi ister klavyeden her elemanın değerini girerek, isterseniz de elemanlara bazı değerler atayarak doldurabilirsiniz. Diziyi doldurup ekranda görüntülerken parametreli bir döngü kullanılır. Dizilerin işlenmesiyle ilgili çeşitli sorunların çözümü aşağıdaki gibi tipik görevlere dayanmaktadır: dizi öğelerinin toplanması; belirtilen özelliklere sahip bir öğeyi arayın; dizi sıralama.


Sorular ve Görevler Bir dizi aynı anda tamsayı ve gerçek değerleri içerebilir mi? Dizi açıklaması neden gereklidir? Bu şekilde oluşan bir dizi hakkında ne söyleyebilirsiniz? a) i:=1 ila 10 için a[ i ]:= random(101)-50 yapın; b) i:=1 ila 20 için a[ i ]:= i yapın; c) i:=1 ila 5 için a[ i ]:= 2* i -1 yapın; Sorunu Pascal'da çözecek bir program yazınız. Bazı bölgelerde N ev var. Her evde kaç kişinin yaşadığı biliniyor. İlk veriler (sakin sayısı), N öğe içeren doğrusal bir A tablosu kullanılarak sunulur: A - 1. evin sakinlerinin sayısı, A - 2. evin sakinlerinin sayısı, ..., A[N] - sayı N evinin sakinlerinin sayısı. Genel durumda, A[ i ] i'nin 1'den n'ye kadar tüm değerleri aldığı i evinin sakinlerinin sayısıdır (i =1,n). İşin sonucu s ile gösterilir. Evin sakinlerinin sayısını 50 ila 200 kişi arasında rastgele bir sayı ve ev sayısını n = 30 olarak düşünün. Problemi Pascal'da çözecek bir program yazın. Okul basketbol takımına alımlar açıklandı. Bu takıma girmek isteyen N öğrencinin her birinin boyu bilinmektedir. Takım oyuncusunun boyunun en az 170 cm olması gerekiyorsa takıma girme şansı olan adayların sayısını sayın.Takım için başvuranın boyunu 150 ila 200 cm aralığında rastgele bir sayı olarak düşünün, ve başvuranların sayısı n = 50. Örnek giriş verileri Örnek çıktı Sıcaklığı girin Pazartesi >> 12 Salı >> 10 Çarşamba >> 16 Perşembe >> 18 Cuma >> 17 Cumartesi >> 16 Pazar >> 14 Haftanın ortalama sıcaklığı: 14.71 Haftalık ortalama sıcaklığı hesaplayan bir program yazınız. Başlangıç ​​verileri klavyeden girilir. On tamsayıdan oluşan bir dizi verildi. Bu dizinin kaç elemanının maksimum değere sahip olduğunu belirleyin. 20 kişilik bir sınıfta Rus dilinde bir dikte yazıyorlardı. Bir dikte için alınan ikili, üçlü, dörtlü ve beşli sayıları sayan bir program yazın. Tamsayı dizileri a ve b, on dik üçgenin bacaklarının uzunluklarını içerir: a [ i ] ilk bacağın uzunluğudur, b[ i ] i'inci üçgenin ikinci bacağının uzunluğudur. Alanı en büyük olan üçgeni bulun. Numarasını, bacak uzunluklarını ve alanını yazdırın. Bu tür birkaç üçgenin olduğu durumu düşünün. On Avrupa ülkesi hakkındaki bilgileri n (ülkenin adı), k (nüfus), s (ülkenin alanı) dizilerine girin. Ülke adlarını artan nüfus yoğunluklarına göre sıralayınız. > 12 Salı >> 10 Çarşamba >> 16 Perşembe >> 18 Cuma >> 17 Cumartesi >> 16 Pazar >> 14 Haftalık ortalama sıcaklık: 14.71 Haftalık ortalama sıcaklığı hesaplayan bir program yazınız. Başlangıç ​​verileri klavyeden girilir. On tamsayıdan oluşan bir dizi verildi. Bu dizinin kaç elemanının maksimum değere sahip olduğunu belirleyin. 20 kişilik bir sınıfta Rus dilinde bir dikte yazıyorlardı. Bir dikte için alınan ikili, üçlü, dörtlü ve beşli sayıları sayan bir program yazın. Tamsayı dizileri a ve b, on dik üçgenin bacaklarının uzunluklarını içerir: a [ i ] ilk bacağın uzunluğudur, b[ i ] i'inci üçgenin ikinci bacağının uzunluğudur. Alanı en büyük olan üçgeni bulun. Numarasını, bacak uzunluklarını ve alanını yazdırın. Bu tür birkaç üçgenin olduğu durumu düşünün. On Avrupa ülkesi hakkındaki bilgileri n (ülkenin adı), k (nüfus), s (ülkenin alanı) dizilerine girin. Artan nüfus yoğunluğuna göre ülkelerin adlarını yazdırın.">


Temel özet Klavye girişi Bir dizi, dizideki öğelerin konumunu belirleyen indekslere göre sıralanan, aynı türden öğelerin adlandırılmış bir koleksiyonudur. var dizi var: element_type dizisi [.. / ]; Değer atama Diziyi doldurma Elemanları toplama Dizi elemanlarını sıralama Özelliklerde eleman bulma Dizi işleme görevleri


Bilgi kaynakları 1. sayılar.jpg - sayılar sayılar.jpg klavye rastgele sayılar 4. – sayılar 5. içerik/uploads/2012/01/ _ jpg - sayılar içerik/uploads/2012/01/ _ jpg sayıları olan çocuk 7. içerik / theme/rttheme9/timthumb.php?src= wp-content/uploads/mas-slider-two.jpg&w=940&h=320&zc=1 – sayılar içerik/themes/rttheme9/timthumb.php?src= wp-content/uploads/ mas -slider-two.jpg&w=940&h=320&zc= sayılar abaküslü çocuk matryoshka bebeklerini sıralıyor

Bugün sınıfta yeni bir konsepte bakacağız sıralamak. Sıralamakaynı türden sıralı bir veri kümesidir. Başka bir deyişle dizi, her öğesi dizinin bir öğesi olan bir tablodur. Diziler tek boyutlu veya iki boyutlu olabilir. Tek boyutlu dizi– bu doğrusal bir tablodur, yani öğeleri bir satır veya sütunda düzenlenmiş bir tablo. İki boyutlu dizi

İndirmek:


Ön izleme:

Kostanay bölgesi, Mendykarinsky bölgesi, Budyonnovskaya orta öğretim okulu,

BT öğretmeni

Doşçanova Gulzhan Baygarievna

9. sınıf

Ders: Dizi kavramı. Tek boyutlu ve iki boyutlu diziler. Dizi öğesi.

Dersin ilerleyişi:

  1. Zamanı organize etmek.
  2. Ev ödevlerini kontrol ediyorum.
  3. Yeni malzemenin açıklanması.
  4. Problem çözme.
  5. Ev ödevi.
  1. Zamanı organize etmek.Sınıfın derslere hazır olup olmadığını kontrol edin, öğrencilerin yoklamasını yapın.
  1. Ev ödevlerini kontrol ediyorum.Ödev problemlerini doğru çözdüğünüzden emin olun. Önceki dersin teorik materyalini güçlendirin.
  1. Yeni malzemenin açıklanması.

Bugün sınıfta yeni bir konsepte bakacağız sıralamak . Sıralamak - aynı türden sıralı bir veri kümesidir. Başka bir deyişle dizi, her öğesi dizinin bir öğesi olan bir tablodur. Diziler tek boyutlu veya iki boyutlu olabilir.Tek boyutlu dizi– bu doğrusal bir tablodur, yani öğeleri bir satır veya sütunda düzenlenmiş bir tablo.İki boyutlu dizidikdörtgen bir masadır, yani birden fazla satır ve sütundan oluşan tablo.(Doğrusal ve dikdörtgen tabloların posterlerini gösterin. Sınıfta interaktif tahtanız varsa bu konuda bir sunum hazırlayabilirsiniz.) çeşitli türler diziler.)

Bu doğrusal tabloda yedi öğe vardır. Bu tablonun her öğesi bir harfi temsil eder.

Dizi öğeleri sayısal veya metin değerleri olabilir. Var değişkeni kısmında dizi şu şekilde yazılır:

x: dize dizisi;

bu giriş size, değerleri string değerleri olan 7 öğe içeren tek boyutlu bir dizi (doğrusal tablo) verildiğini belirtir.

İki boyutlu bir dizi şu şekilde gösterilir:

y: tam sayı dizisi;

Bu dizinin elemanları 4 satır ve 5 sütun halinde yazılan tam sayılardır.

Tek boyutlu bir dizinin elemanı şu şekilde yazılır: X – tek boyutlu bir dizinin beşinci elemanı X (anlamı “O” harfidir), sen – iki boyutlu bir dizinin ikinci satırında ve üçüncü sütununda bulunan bir öğe sen (değeri 15'tir).

Şimdi sorunları çözmeye geçelim. (Görevler sınıfın hazırlık düzeyi dikkate alınarak seçilmelidir.)

  1. Problem çözme. Bir blok diyagram oluşturun ve aşağıdaki sorunları çözecek bir program oluşturun:
  1. Belirli bir dizide X Gerçel sayıların 10'dan büyük olanlarının aritmetik ortalamasını belirleyin.

Öncelikle problemi analiz edelim; öğrencilerin problemin koşullarını net bir şekilde anlamalarını sağlamalıyız; örnek olarak 9 elementten oluşan bir tablo verebiliriz.

program özeti;

x: gerçek dizisi;

s,c: gerçek;

k, n: tamsayı;

başlamak

k=1'den 9'a kadar

başlamak

writeln('X DEĞERİNİ GİRİN[', k,']');

readln(x[k]);

son;

(herhangi bir gerçek sayıyı temsil eden tablo öğelerini girin)

s:=0; n:=0; (öğelerin toplamını ve sayısını sıfıra sıfırlayın)

k:=1'den 9'a kadar

başlamak

eğer x[k]>10 ise s:=s+x[k]; ile başlayın n:= n+1; son;

son;

(10'dan büyük elemanların toplamını ve sayısını hesaplıyoruz)

c=s/n; (aritmetik ortalamayı bulun)

writeln('c=',c); (Sonucun ekranda gösterilmesi)

Son.

  1. Birkaç dairenin alanları verilmiştir. Bunlardan en küçüğünün yarıçapını bulun.

Sorunu çözmeden önce öğrencilerle bir dairenin alanının yarıçapa nasıl bağlı olduğunu öğrenin. (Yarıçap küçükse alan da küçüktür.) Yapılan analize göre sorunu yollardan biriyle çözün.

İlk yol:

Program çemberi_1;

S, R: gerçek dizisi;

x: gerçek; k, n: tamsayı;

başlamak

k=1'den 10'a kadar

başlamak

R[k]:=kare(S[k]/pi);

son;

x:=R(1); n:=1;

k için:=2'den 10'a kadar

başlamak

eğer R[k]

son;

writeln('YARIÇAP ',n,' DAİRE – EN KÜÇÜK R=', R[n]);

Son.

İkinci yol:

Program çemberi_2;

S: gerçek dizisi;

R, x: gerçek; i, k: tamsayı;

başlamak

k=1'den 10'a kadar

başlamak

writeln('', k,' DAİRE ALANINI GİRİN'); readln(S[k]);

son;

x:=S(1); k:=1;

i için:=2'den 10'a kadar

başlamak

eğer S[k]

son;

R:=kare(x/pi); writeln('YARIÇAP', n ,' DAİRE – EN KÜÇÜK R=',R);

Son.

  1. Ev ödevi. Sayfa 90-97. (N.T. Ermekov, V.A. Krivoruchko, L.N. Kaftunkina Bilişim 9. sınıf, Almatı “Mektep” 2005)

Aşağıdaki sorunları çözün:

  1. 12 tam sayıdan oluşan bir Y dizisinde çift olanların aritmetik ortalamasını belirleyin.
  2. Birkaç karenin alanları verilmiştir. Bunlardan en büyüğünün köşegen uzunluğunu bulun.
  1. Dersi özetlemek.Notları öğrencilere duyurun ve onlar hakkında yorum yapın. Öğrencilerin problemlere çözümlerini analiz edin.

DERS:

Dersin organizasyon aşaması:

  • Selamlar

Öğretmen:

Bugün "Tek Boyutlu Diziler"e bakıyoruz. Önceki derslerden programlamada kullanılan birçok veri türünün (sayıların) olduğunu hatırlıyoruz. Onlara isim verin.

Öğrenci:

Aşağıdaki gibi veri türleri Tüm Ve Gerçek.

Tüm:

  • bayt -128 ila 127;
  • kısa -32,768'den 32,767'ye;

Öğretmen:

Sıralamak

Dizi açıklaması:

Var<имя_массива>:sıralamak [<минимальное_значение_индекса>. <максимальное_значение_индекса>] ile ilgili<тип данных>;

Örnek: var a: tamsayı dizisi;

A

const a: Tamsayı dizisi = (1, 4, 7, 14, 25);

Diziyi doldurma:

Bir diziyi doldurmanın birkaç yolu vardır. Şimdi onlara bakalım.

için ben:=1 ile 10 Yapmak oku(a[i]);

için ben:=1 ile 10 Yapmak a[i]:=i;

rastgele

için ben:=1 ile 10 Yapmak a[i]:= rastgele(100);

Bir diziden öğelerin çıktısını almak:

Pascal'ın;

rastgele.

için ben:=1 ile 10 Yapmak yaz(a[i], " ");

için ben:=1 ile 10 Yapmak writeln("a[", i, ", a[i]);

Bir örneğe bakalım:

var A: sıralamak ile ilgili tamsayı;

rastgele

için ben:=1 ile 10 Yapmak

A[i]:= rastgele

yazmak(A[Ben]," ");

Sonuçlar:

Öğretmen:

Öğrenci:

Belge içeriğini görüntüle
"Tam sayıların tek boyutlu dizileri"

Ders:"Tam sayıların tek boyutlu dizileri"

Ders türü: Yeni materyal öğrenme

Dersin amacı: Bir dizinin temel yeteneklerini öğrenin ve ayrıca bir dizinin nasıl programlanacağını öğrenin.

Görevler:

    "ARASSY" kavramını tanıyın;

    Dizinin bir programlama nesnesi olarak açıklaması;

    Bir diziden veri doldurma ve çıktı alma seçeneklerini keşfedin.

Teçhizat:

    Sınıfta öğretmenin ekranını görüntülemek için Ekranlı bir Projektör bulunmaktadır;

    Dersin ana aşamalarını gösteren pano;

    Öğrencilerin işledikleri konuları pratik olarak pekiştirmeleri için 14 bilgisayar.

DERS:

Dersin organizasyon aşaması:

    Selamlar

    Öğrenci devamsızlığının kontrol edilmesi

Öğretmen:

Arkadaşlar bugün Pascal'da programlamanın yeni bir aşamasını öğrenmeye başlıyoruz.

Bugün "Tek Boyutlu Diziler"e bakıyoruz. Önceki derslerden programlamada kullanılan birçok veri türünün (sayıların) olduğunu hatırlıyoruz. Onlara isim verin...

Öğrenci:

Aşağıdaki gibi veri türleri Tüm Ve Gerçek.

Tüm:

    bayt -128 ila 127;

    kısa -32,768'den 32,767'ye;

    int -2 147 483 648 ila 2 147 483 647;

Gerçek (kayan nokta sayıları):

    4,9*10-324'ten 1,7*10308'e kadar gerçek;

Öğretmen:

Sıralamak ortak bir ad atanabilen, aynı türden (dizi öğeleri) sıralı bir değişkenler kümesidir, ancak tüm öğeler farklı sayılara (indekslere) sahip olacaktır.

Dizi açıklaması:

Herhangi bir nesneyi programda kullanmadan önce değişkenler listesinde bildirilmesi gerekir. Bu nedenle dizinin de bildirilmesi gerekir.

Bir dizi tanımlamak için şunları belirtmelisiniz: DİZİ ADI + DİZİ ELEMANLARININ SAYISI + dizide kullanılan VERİ TÜRÜ.

Var: dizi [ .. ] ile ilgili ;

Örnek: var a: tamsayı dizisi;

Bu, adı verilen tek boyutlu bir tamsayı dizisini tanımlar. A. Minimum ve maksimum indeks sayısı 1'den 15'e kadardır. Sabitlerin açıklama bölümünde bir dizi de tanımlanabilir, buna göre dizinin elemanları programın çalışması sırasında değiştirilemez.

const a: Tamsayı dizisi = (1, 4, 7, 14, 25);

Bu durumda bir dizi oluştururken hemen ona öğeler ekliyoruz.

Diziyi doldurma:

Bir diziyi doldurmanın birkaç yolu vardır. Hadi onlara bakalım...

1) Klavyeden eleman değerlerini girmek için bir döngü kullanın:

için ben:=1 ile 10 Yapmak oku(a[i]);

2) Dizi elemanlarının değerini atama operatörünü kullanarak ayarlayabilirsiniz:

için ben:=1 ile 10 Yapmak a[i]:=i;

3) Bir prosedür kullanarak diziyi doldurma rastgele. Üretime izin verir rastgele numaralar bizim durumumuzda bunlar 0'dan 99'a kadar (dahil) sayılardır ve dizimizi bu sayılarla dolduracaktır.

için ben:=1 ile 10 Yapmak a[i]:= rastgele(100);

Bir diziden öğelerin çıktısını almak:

Programlama dillerinde programa sayı ve veri girmenin yanı sıra bunları ekranda (konsolda) gösterme olanağımız da bulunmaktadır. Bizim durumumuzda bugün dizi verilerinin konsola çıktılanması işlemleri üzerinde çalışacağız. Pascal'ın;

Sayılar prosedür kullanılarak rastgele oluşturulmuş olabileceğinden, programı yazarken belirttiğimiz sayıları biliyor olabiliriz veya bilmeyebiliriz. rastgele.

Dizi öğeleri, bir boşlukla ayrılmış olarak veya ayrıntılı bir yorumla birlikte konsola gönderilebilir.

1) Numaraları boşluklarla ayırın ve normal Yaz komutunu kullanarak çıktı alın:

için ben:=1 ile 10 Yapmak yaz(a[i], " ");

2) Aşağıdakileri belirteceğiniz bir yorum yazdığınızda: DİZİN NUMARASI ve tersi, bu dizine karşılık gelen NUMARA belirtilecektir. Tüm öğeler Writeln komutu kullanılarak konsola yazdırılacaktır; kelimenin sonundaki LN, her yeni dizi öğesinin konsolda yeni bir satıra yazdırılacağını belirtir.

için ben:=1 ile 10 Yapmak writeln("a[", i, ", a[i]);

Bir örneğe bakalım:

var A: sıralamak ile ilgili tamsayı;

rastgele(rasgele sayı üretecini başlatmaya yarayan (veya buna aynı zamanda oluşturma da denir) bir prosedür)

için ben:=1 ile 10 Yapmak

A[i]:= rastgele(19); (sıfırdan 18'e kadar rastgele bir sayı üreten işlev: rastgele(n+1))

yazmak(A[Ben]," ");

Sonuçlar:

Öğretmen:

Bugünkü derste şunu öğrendik?

Öğrenci:

Dizi programlamanın temellerini öğrendim. Duyuruları, doldurmaları Farklı yollar, ayrıca ayrıntılı yorumları kullanarak çıktı alın.

Anahtar Kelimeler:

  • sıralamak
  • dizi açıklaması
  • diziyi doldurma
  • dizi çıkışı
  • dizi işleme
  • sıralı arama
  • sıralama

Şu ana kadar basit veri türleriyle çalıştık. Pratik problemleri çözerken veriler genellikle çeşitli veri yapılarında, örneğin dizilerde birleştirilir. Programlama dilleri, diziler ve tablolar gibi veri yapılarını uygulamak için dizileri kullanır.

Tek boyutlu dizileri ele alacağız.

Dizilerin işlenmesiyle ilgili çeşitli sorunların çözümü, aşağıdaki gibi tipik sorunların çözülmesine dayanmaktadır:

  • dizi elemanlarının toplanması;
  • belirtilen özelliklere sahip bir öğeyi arayın;
  • dizi sıralama.

4.7.1. Dizi açıklaması

Bir programda kullanılmadan önce bir dizinin tanımlanması, yani dizinin adı, dizi elemanlarının sayısı ve tipinin belirtilmesi gerekir. Bu, bir dizi için gerekli türde bir hücre bloğunu bellekte tahsis etmek için gereklidir. Dizi açıklamasının genel görünümü:

var<имя_массива>:sıralamak [<мин_знач_индекса> .. <макс_знач_индекса>] ile ilgili<тип__элементов>;

Örnek

var a: tamsayı dizisi;

Burada on tam sayı değerinden oluşan bir a dizisini tanımlıyoruz. Bu ifade yürütüldüğünde, bilgisayar belleğinde tamsayı tipinde on hücre tahsis edilecektir.

Sabit değerlere sahip küçük bir dizi, sabitler bölümünde açıklanabilir:

const b: tamsayı dizisi = (1, 2, 3, 5, 7);

Bu durumda, ardışık hafıza hücreleri basitçe tahsis edilmez; ilgili değerler hemen bunlara girilir.

4.7.2. Bir Diziyi Doldurma

Diziyi ister klavyeden her elemanın değerini girerek, isterseniz de elemanlara bazı değerler atayarak doldurabilirsiniz. Bu durumda parametreli bir döngü kullanılabilir.

Örneğin yukarıda açıklanan dizinin elemanlarının değerlerini klavyeden girmek için a kullanılır sonraki döngü parametre ile:

i:=l ila 10 için okuyun (a:=i;

Programın aşağıdaki parçası, 10 öğeden oluşan a tamsayı dizisinin, değerleri 0 ile 99 arasında değişen rastgele sayılarla doldurulmasını düzenler:

4.7.3. Dizi çıkışı

Çoğu durumda dizi elemanlarının değerlerinin ekranda görüntülenmesi yararlı olur. Yani dizi değerleri rastgele oluşturulmuşsa orijinal dizinin ne olduğunu bilmeniz gerekir. Ayrıca dizinin işlendikten sonra ne hale geldiğini de bilmeniz gerekir.

Dizi elemanları bir boşlukla ayrılarak bir dizgeye yazılabilir:

i:=1 ila 10 için şunu yazın (a[i], ");

Yorumları içeren aşağıdaki çıktı daha görseldir:

i:=1'den 10'a kadar do writeln("a[", i, ")=", a[i]);

Tartışılan örneklere dayanarak, aşağıdakileri yapan kendiniz bir program yazmaya çalışın: değerleri 0 ile 99 arasında değişen 10 öğeden oluşan bir tamsayı dizisini rastgele doldurun; çıktı dizisi a ekrana.

4.7.4. Dizi öğelerinin toplamını hesaplama

Dizi elemanlarının toplamı, basit değişkenlerin değerlerinin toplanmasıyla aynı prensibe göre gerçekleştirilir: terimlerin birer birer eklenmesiyle:

  1. toplama sonucunun sırayla toplanacağı bir bellek hücresi (değişken s) belirlenir;
  2. s değişkenine başlangıç ​​değeri 0 atanır - toplama sonucunu etkilemeyen bir sayı;
  3. her dizi elemanı için mevcut değeri s değişkeninden okunur ve dizi elemanının değerine eklenir; ortaya çıkan sonuç s değişkenine atanır.

Açıklanan süreç aşağıdaki şekilde açıkça tasvir edilebilir:

İşte bu sorunun çözümünün ana kısmı:

Dizi elemanlarının toplamının hesaplanması ve toplama sonucunun ekranda görüntülenmesi için bölüm 4.7.3'te oluşturulan dizi oluşturma programını tamamlayın.

4.7.5. Bir dizide sıralı arama

Programlamada arama, en yaygın hesaplama dışı görevlerden biridir.

Aşağıdaki tipik arama görevleri ayırt edilebilir:

  1. dizinin en büyük (en küçük) öğesini bulun;
  2. Değeri belirli bir değere eşit olan bir dizi öğesi bulun.

Bilgisayar tüm nesne dizilerini aynı anda karşılaştıramaz. Her adımda yalnızca iki nesneyi karşılaştırabilir. Bu nedenle programın dizi öğelerinin sıralı görüntülenmesini ve sonraki görüntülenen öğenin değerinin belirli bir örnekle karşılaştırılmasını organize etmesi gerekir.

Birinci türdeki problemlerin çözümünü (en büyük (en küçük) unsuru bulma) ayrıntılı olarak ele alalım.

Her birinin üzerinde bir sayı yazılı olan kart yığını şeklinde tek boyutlu bir dizi düşünelim. O zaman bir dizinin en büyük elemanını bulma fikri şu şekilde temsil edilebilir:

  1. üstteki kartı alın (dizinin ilk elemanı), karttaki sayıyı, bakılanların en büyüğü olarak hatırlayın (tahtaya tebeşirle yazın); kartı bir kenara koyun;
  2. bir sonraki kartı alın; kartta ve tahtada yazılı sayıları karşılaştırın; karttaki sayı daha büyükse, tahtada yazılı sayıyı silin ve karttaki sayının aynısını buraya yazın; yeni sayı daha büyük değilse mevcut girişi panoda bırakacağız; kartı bir kenara koyun;
  3. destedeki kalan tüm kartlar için 2. adımda açıklanan adımları tekrarlayın.

Sonuç olarak görüntülenen dizinin en büyük değeri tahtaya yazılacaktır.

Bir dizi elemanının değerine indeksi ile erişildiği için, tek boyutlu bir dizideki en büyük elemana yönelik bir arama düzenlenirken indeksine bakmak daha doğrudur. Gerekli indeksi imax olarak gösterelim. Daha sonra oluşturduğumuz dizide yukarıda anlattığımız algoritmayı Pascal dilinde şu şekilde yazabiliriz:

Değerleri 0 ile 99 arasında olan 10 elemanlı bir a tamsayı dizisi oluşturan ve bu dizinin en büyük elemanını arayan bir programı kendiniz yazın.

Dizide maksimum değere eşit birden fazla öğe varsa, o zaman bu program bunlardan ilkini (ilk oluşum) bulacaksınız. Maksimum öğelerin sonuncusunu içermesi için programda nelerin değiştirilmesi gerektiğini düşünün. Bir dizinin minimum elemanını bulmak için kullanılabilecek şekilde program nasıl dönüştürülmelidir?

İkinci tip bir problemin çözülmesinin sonucu (değeri belirli bir değere eşit olan bir dizi öğesinin bulunması) şu şekilde olabilir:

  • n, a[n] = x olacak şekilde dizi öğesinin indeksidir; burada x belirli bir sayıdır;
  • dizide istenen öğenin bulunamadığına dair bir mesaj.

Oluşturduğumuz dizide 50'ye eşit bir değer için arama algoritması şu şekilde görünebilir:

Bu program bir dizinin tüm elemanlarını tek tek inceler. Dizide değerleri belirli bir sayıya eşit olan birkaç öğe varsa program sonuncuyu bulacaktır.

Çoğu durumda, karşılık gelen değere sahip ilk öğeyi bulmanız ve diziyi daha fazla taramayı durdurmanız gerekir. Bu amaçla aşağıdaki programı kullanabilirsiniz:

Burada algoritmanın yürütülmesi iki durumdan birinde kesintiye uğrayacaktır:

  1. dizide verilene eşit olan ilk eleman bulunur;
  2. dizinin tüm öğeleri tarandı.

Programın tam metnini yazın ve bilgisayarınızda çalıştırın.

Genellikle bir koşulu karşılayan öğelerin sayısını belirlemeniz gerekir. Bu durumda, istenen öğe her bulunduğunda değeri bir artırılan bir değişken eklenir.

Aşağıdaki program parçasında hangi öğelerin sayıldığını belirleyin.

Elemanların değerlerinin toplamını belirlemek gerekiyorsa, dizinin bulunan elemanının değerinin eklendiği değere bir değişken eklenir.

Aşağıdaki program parçasında değerleri toplanan dizi öğelerinin hangi koşulu karşıladığını belirleyin.

İki kişinin tam metnini yazın en son programlar ve bunları bilgisayarınızda çalıştırın.

4.7.6. Bir diziyi sıralama

Bir diziyi sıralamak (sıralamak), elemanlarının değerlerini belirli bir sıraya göre yeniden dağıtmayı kastediyoruz.

Bir dizideki ilk elemanın en küçük değere sahip olduğu ve sonraki her elemanın değerinin bir önceki elemanın değerinden az olmadığı sıraya artan denir.

Bir dizideki ilk elemanın en büyük değere sahip olduğu ve sonraki her elemanın değerinin bir önceki elemanın değerinden fazla olmadığı sıraya azalan sıra denir.

Sıralamanın amacı, elemanların daha sonra aranmasını kolaylaştırmaktır: sıralı bir dizide istenen elemanı bulmak daha kolaydır.

Veritabanlarıyla çalışırken sıralamayla zaten karşılaştınız. Şimdi bu işlemin mekanizmasını uygulamak için olası seçeneklerden1 birini ele alacağız - seçim sıralaması.

Seçime göre sıralama (örneğin azalan) şu şekilde gerçekleştirilir:

  1. dizideki maksimum öğe seçilir;
  2. maksimum ve ilk öğeler değiştirilir (ilk öğe sıralanmış olarak kabul edilir);
  3. dizinin sıralanmamış kısmında yeniden maksimum öğe seçilir; dizinin ilk sıralanmamış öğesiyle yer değiştirir;
  4. paragraf 3'te açıklanan eylemler, sıralanmamış bir öğe kalana kadar sıralanmamış dizi öğeleriyle tekrarlanır (değeri minimum olacaktır).

a = (0, 1, 9, 2, 4, 3, 6, 5) dizisi örneğini kullanarak seçim sıralama işlemini ele alalım.

Sekiz elemanlı bu dizide 7 kere maksimum eleman seçme işlemini gerçekleştirdik. N elemanlı bir dizide bu işlem n-1 kez gerçekleştirilecektir. Sebebini açıkla.

Açıklanan algoritmayı uygulayan programın bir parçası:

Burada bir döngüyü diğerinin içinde kullandık. Bu tasarıma iç içe döngü denir.

Örnekte ele alınan a dizisi için programın tam metnini yazın ve bilgisayarda çalıştırın.

“Programlamada Etkileşimli Gösterimler” web sitesinde (http://informatika.kspu.ru/flashprog/demos.php), seçime göre ve başka yollarla sıralama sürecini daha kapsamlı bir şekilde sunmak için etkileşimli görsel yardımlarla çalışabilirsiniz.

En önemli

Dizi, dizideki öğelerin konumunu belirleyen indekslere göre sıralanan, aynı türden öğelerin adlandırılmış bir koleksiyonudur. Programlama dilleri, diziler ve tablolar gibi veri yapılarını uygulamak için dizileri kullanır.

Bir programda kullanılmadan önce dizinin tanımlanması gerekir. Tek boyutlu bir diziyi tanımlamanın genel görünümü:

var<имя_массива>:sıralamak [<мин_знач_индекса> ..
<макс_знач_индекса>] element_type'in;

Diziyi ister klavyeden her elemanın değerini girerek, isterseniz de elemanlara bazı değerler atayarak doldurabilirsiniz. Diziyi doldurup ekranda görüntülerken parametreli bir döngü kullanılır.

Dizilerin işlenmesiyle ilgili çeşitli sorunların çözümü aşağıdaki gibi tipik görevlere dayanmaktadır: dizi öğelerinin toplanması; belirtilen özelliklere sahip bir öğeyi arayın; dizi sıralama.

Sorular ve görevler


Ders konusu

Ders Kitabı: Bosova L. L. Bilişim: 9. sınıf ders kitabı - M.: BINOM. Bilgi Laboratuvarı, 2017. - 184 s. : hasta.

Ders türü:

Dersin Hedefleri:

  • eğitici
  • gelişen
  • besleyici

:

  1. Kişisel UUD:
  2. Bilişsel UUD:
  3. İletişimsel UUD:
  4. Düzenleyici UUD:

Teçhizat

Yazılım

Belge içeriğini görüntüle
"Teknolojik harita Tek boyutlu tamsayı dizileri"

Bilgi bloğu

Ders konusu: Tam sayıların tek boyutlu dizileri.

Ders Kitabı: Bosova L. L. Bilişim: 9. sınıf ders kitabı - M.: BINOM. Bilgi Laboratuvarı, 2017. – 184 s. : hasta.

Ders türü: yeni materyal öğrenme dersi.

Dersin Hedefleri:

    eğitici: Öğrencilerin “tek boyutlu dizi”, “dizi öğesinin değeri”, “dizi öğesinin indeksi” kavramlarını tanımalarına yönelik etkinlikleri düzenlemek; öğrencilerin bir programlama dilinde tek boyutlu bir diziyi işlemek için hazır yürütme ve basit döngüsel algoritmalar yazma yeteneğini geliştirmeleri için koşullar yaratmak;

    gelişen: konuya olan ilginin artmasına yardımcı olun; öğrenciler arasında algoritmik düşüncenin gelişimini teşvik etmek; mantıksal düşünmenin, bilişsel ilginin ve öğrencilerin hafızasının gelişimini teşvik etmek;

    besleyici: Sorunların çözümünde bağımsızlığın oluşumunu teşvik etmek; takım birliğini ve birbirlerine karşı saygılı tutumların oluşmasını teşvik etmek.

Evrensel öğrenme etkinlikleri (UAL) oluşturuldu:

    Kişisel UUD:

    1. eğitim faaliyetlerini gerçekleştirirken fantezi ve hayal gücü;

      eğitim faaliyetleri gerçekleştirme arzusu.

    Bilişsel UUD:

    1. mantıksal eylemler ve işlemler;

      problemlerin çözümüne yönelik model ve diyagramların oluşturulması ve dönüştürülmesi;

      en çok seçim etkili yollar Belirli koşullara bağlı olarak sorunları çözmek.

    İletişimsel UUD:

    1. kendi fikrinizi ve konumunuzu formüle etmek.

    Düzenleyici UUD:

    1. Eylemlerinizi göreve ve uygulama koşullarına uygun olarak planlamak.

Teçhizat: Kişisel bilgisayar(PC), multimedya projektörü, ekran.

Yazılım: sunum “Tek boyutlu tamsayı dizileri.”

Ders planı

Sahne

Zaman

    Zamanı organize etmek

    Bilgiyi güncelleme

    Yeni materyal öğrenme

    Öğrenilenlerin pekiştirilmesi

    Özetleme

    Ev ödevi

Dersler sırasında

Öğretmen faaliyetleri

Öğrenci aktiviteleri

    Zamanı organize etmek

Selamlama, derse hazır olup olmadığını kontrol etme, çocukların dikkatini düzenleme.

Dersin iş ritmine dahil olun.

    Bilgiyi güncelleme

gerçek tip gerçek 8 bayt tamsayı -2147483648'den 2147483647'ye ve işgal et 4 bayt Pascal ABC'si.

Veri türlerini hatırlayın.

    Yeni materyalin sunumu

Tanım:

var A sıralamak eleman türü ile ilgili tamsayı.

yapı dizi öğesi değerleri.

100 element tip tamsayı 4 bayt 400 bayt

başlatma.

İçin dizi girişi N Ben N o da şöyle olacak tamsayı N değer 5.

için. Döngüyü yazalım i için 1'den n'ye.

Ben-bu dizi elemanının oku(a[i]).

Değiştirilmiş dizi giriş döngüsü

Programın nasıl çalıştığına dair örnek

a[i]:= ben rastgele rastgele rastgele

Çözüm için Niçin ben:=1 ile N Yapmak Ben

Dizi çıkış döngüsü

N N

N Ben A

N için ben:=1 ile N YapmakBen

için ben:=1 ile N Yapmak Ben

için

Kaynak programlar

Ders tarihlerini ve ders konularını yazınız.

Dizinin tanımını yazın.

Slayttaki dizi bildirimi örneğine bakın.

Bunu bir not defterine yazın.

Bir örnek düşünün ve yazın.

Boyutu hesaplayın ve kaydedin rasgele erişim belleği diziyi depolamak için gerekli olacak.

Öğretmenle birlikte dizilerle yapılabilecek işlemleri düşünürler.

"Başlatma" tanımını kaydedin.

Sorunu düşünün.

Sorunu düşünün.

Sorunu düşünün.

Sorunu düşünün.

Yaptığınız işi affetmek için göreve bir açıklama girmeyi düşünün.

Programın sonucunu düşünün.

Bir başlatma örneği düşünün: atama komutunu kullanarak başlatın.

Kolaylık sağlamak için kullanıyoruz rastgele.

Dizi öğelerinin değerlerini görüntülemenin bir örneğini düşünün.

Programları öğretmenle birlikte kaydedin.

Sorunu tahtada tek başınıza çözün, gerisini not defterlerinde çözün ve tahtadaki kişiye yardım edin.

Bu diziyi öğe öğe birden elliye kadar rastgele sayılarla doldurun.

Programın doğruluğunu kontrol edip takibini yapıyorlar.

Programın yürütülmesinin sonucunu düşünün.

    Çalışılan materyalin konsolidasyonu.

Şimdi bilgisayarınıza gidin ve aşağıdaki görevleri kendiniz tamamlayın:

Zaman kaldıysa (eğer yoksa ödevinizi yapın).

Bilgisayarın başına otururlar ve görevleri tamamlarlar:

    Ders özeti

Peki, bugünkü derste neler öğrendiniz ve öğrendiniz?

Dersi öğretmenle özetleyin:

Bugünkü derste şunu öğrendik:

Ne oldu:

  1. Sıralamak aynı türdeki öğelerin dizideki konumunu belirleyen indekslere göre sıralanan adlandırılmış bir koleksiyonudur.

    Ne olduğunu öğrendik" Başlatma».

Öğrendi:

    Bir dizi bildirin.

    Doldurun.

    Bir dizi görüntüleyin.

    Ev ödevi

Ödevinizi yazın.

2.2.1 – 2.2.3 (dahil) noktalarını öğrenin.

Ders yapısı

    Organizasyon aşaması (1 dk).

    Bilgiyi güncelleme (4 dk).

    Yeni materyalin sunumu (10 dk).

    Test çalışması (15 dk).

    Pratik kısım (12 dk.).

    Ders özeti, ödev (3 dk).

Dersler sırasında

    Organizasyonel.

    Bilginin güncellenmesi.

Bilgisayar bilimi derslerinde iki sayısal türdeki bireysel değişkenlerle çalıştık. Onları hatırlayalım. Bir gerçek tip gerçek aşağıdaki değer aralığına sahip olan ve alan 8 bayt rasgele erişim belleği. Ve ayrıca bir tam sayı türü tamsayı değişkenleri aralıktaki değerleri alabilen -2147483648'den 2147483647'ye ve işgal et 4 bayt rasgele erişim belleği. Programlama ortamı için RAM değer aralıkları ve boyutları verilmiştir. Pascal ABC'si.

Programı yazarken aynı türden çok sayıda değişkeni saklamamız gerektiği ve bunların tam sayısının bilinmediği bir durum ortaya çıkabilir. Dizilerin kullanılması gereken yer burasıdır.

    Yeni materyalin sunumu.

Dizi, aynı türdeki öğelerin dizideki konumunu belirleyen indekslere göre sıralanan adlandırılmış bir koleksiyonudur.

Tek boyutlu dizileri ele alacağız.

Diziyle herhangi bir işlem yapmadan önce onu değişken bildirimi bölümünde bildirmeniz gerekir. var. Önce dizinin adı yazılır örneğin A, ardından iki nokta üst üsteden sonra işlev sözcüğü gelir sıralamak dan çevrilmiştir İngilizce ve "dizi" anlamına gelir. Sonraki köşeli parantez yazmamız gerekiyor elemanları için endeks aralığıörneğin birinciden onuncuya kadar. Bundan sonra belirtmemiz gerekiyor eleman türü dizi, bu amaçla bir servis kelimesi yazılır ile ilgili, ardından öğe türü tamsayılar gelir, yani tamsayı.

Değişken bildirimi bölümünde bir tamsayı dizisi bildirmek.

Dizi elemanlarının değerleri önceden biliniyorsa ve programın yürütülmesi sırasında değişmeyeceklerse, bunu sabit açıklama bölümünde bildirebilirsiniz. yapı. Bu, değişken açıklaması bölümündekiyle aynı şekilde yapılır, ancak türü belirttikten sonra bir “=” işareti bulunur ve ardından aşağıdakiler virgülle ayrılmış olarak parantez içinde sırayla listelenir. dizi öğesi değerleri.

Bir dizi bildirirken şunu hatırlamak önemlidir: depolamak için belirli bir miktarda RAM tahsis edilir. Örneğin, bir diziyi depolamak için gerekli olacak RAM boyutunu hesaplayalım. 100 element tip tamsayı. Pascal ABC'de bu türden bir değişken, 4 bayt RAM, daha sonra bu tür 100 değişkeni depolamak gerektirir 400 bayt. Bu, belirli bir diziyi depolamak için gereken RAM miktarıdır.

Dizilerle yapılan bazı işlemlere bakalım. Dizileri pratik olarak kullanabilmek için elemanlarına belirli değerlerin nasıl ayarlanacağını veya girileceğini bilmeniz gerekir.

Bir değişkene veya dizi öğesine değer atamaya veya değer girmeye denir. başlatma.

İçin dizi girişi kaç element girmemiz gerektiğini bilmemiz gerekiyor. Bu amaçla ayrı bir tamsayı değişkeni tanımlayalım, onu çağıralım N. Ayrıca çalıştığımız elemanın indeks değerine sahip bir değişkene de ihtiyacımız var. şu an, hadi onu arayalım Ben boyutu geçmeyeceği için N o da şöyle olacak tamsayı. Diyelim ki beş tamsayıdan oluşan bir dizi girmemiz gerekiyor, bunun için atadık N değer 5.

Diziler belirli bir sırayla, örneğin baştan sona, öğe öğe girilir. “For” döngüsü burada bize yardımcı olacaktır veya için. Döngüyü yazalım i için 1'den n'ye. Fonksiyon kelimeleri arasında daha fazlası başlamak Ve son Döngünün gövdesini yazalım. Basitçe dizi elemanlarının değerlerini tek tek okuyabilirsiniz; bunun için döngü gövdesinde tek bir okuma komutu yeterlidir

Ben-bu dizi elemanının oku(a[i]).

Giriş olarak 5 elemanlı bir diziyi kabul eden bir program

Birkaç rakamdan oluşan bir dizi girdiğimiz için girerken kafamızın karışması kolay olabiliyor. Bu nedenle, hangi dizi elemanının girilmesi gerektiğini belirten açıklayıcı bir mesaj görüntülenmelidir, ardından döngünün gövdesi aşağıdaki gibi değiştirilebilir:

Değiştirilmiş dizi giriş döngüsü

Programı çalıştıralım. Gördüğünüz gibi program beş öğeden oluşan bir diziyi girdi olarak kabul ediyor.

Programın nasıl çalıştığına dair örnek

Dizi aynı zamanda atama komutu kullanılarak da başlatılabilir, bu durumda döngünün gövdesi yalnızca bir komut içerecektir: a[i]:= ben. Bazen bir dizinin elemanlarına bir dizi rastgele değer atamak uygun olabilir. Bunu yapmak için komutu yazın rastgele ve öğelere bir değer atanır rastgele, bundan sonra parantez içinde ve virgüllerle ayrılmış olarak, izin verilen maksimum değer bir artırılarak, örneğin yüz olarak gösterilir, bu durumda program diziyi sıfırdan doksan dokuza kadar rastgele sayılarla dolduracaktır. Lütfen şu komutu kullandığınızı unutmayın: rastgele Pascal ortamında ABC gerekli değildir. Diğer ortamlarda bu komutu atlarsanız, programı her başlattığınızda dizi aynı şekilde doldurulacaktır.

Çoğu zaman dizi elemanlarının değerlerini ekranda görüntülemeniz gerekir. Çözüm Tıpkı girdi gibi, öğe öğe gerçekleştirilir. Bu durumda tıpkı girişte olduğu gibi bir döngü kullanabilirsiniz. için. Dizi 1'den 1'e kadar doldurulursa N eleman, daha sonra döngü yazılır için ben:=1 ile N Yapmak ve bu döngünün gövdesinde bir çıkış komutu olacak Ben-dizinin bu elemanı. Bir boşluk üzerinden sonuca varalım.

Dizi çıkış döngüsü

Böylece dizi elemanlarını nasıl başlatacağımızı ve değerlerini ekranda nasıl göstereceğimizi öğrendik. dizisini kabul edecek bir program yazalım. N tamsayı elemanlarını dolduracak ve ardından 1'den 50'ye kadar rastgele sayılarla dolduracak ve ekranda gösterecektir. Anlam N Klavyeden girilir ve 70'i geçmez.

Bu program için bir değişkene ihtiyacımız var N dizinin boyutunun yanı sıra bir değişkeni de saklayacak Ben dizinin kendisinin yanı sıra elemanların indeks değerlerini de saklayacak A ve boyutu 70'ten büyük olmadığından element indekslerinin aralığını 1'den 70'e kadar göstereceğiz.

Şimdi programın gövdesini yazalım. Bir sayı girme isteği görüntüleyeceğiz N sayıp bir sonraki satıra geçiyoruz. Daha sonra dizi elemanlarının değerlerini girmeniz gerekir. Bu, bir döngü kullanılarak öğe öğe yapılır için ben:=1 ile N Yapmak. Döngünün gövdesi, giriş isteyen açıklayıcı bir mesajın çıktısını içerecektir. Ben-bu dizi elemanının yanı sıra onu okumak ve bir sonraki satıra geçmek için bir komut.

Şimdi bu diziyi de eleman eleman birden elliye kadar rastgele sayılarla dolduralım. Bunu yapmak için döngüyü yazıyoruz “ için ben:=1 ile N Yapmak atama komutunu içerecek olan Ben-dizinin bu elemanının toplamı 1 ve 0'dan 49'a kadar rastgele bir sayıdır.

Bundan sonra tekrar döngüyü kullanarak için, dizinin elemanlarını ekranda tek satırda ve bir boşlukla ayrılmış olarak görüntüleyin.

Programın kaynak kodu

Programı çalıştıralım. Dizi 4 sayıdan oluşsun. Ve elemanlarının değerleri sırasıyla: 10, 20, 30, 40 olacaktır. Buna yanıt olarak programımız birden elliye kadar dört rastgele sayıdan oluşan bir dizi gösterdi. Program düzgün çalışıyor.




Tepe