İndiyə qədər biz sadə məlumat növləri ilə işləmişik - məntiqi (boolean), tam (tam, söz, bayt, longint), real (real), simvol (char). Bu dörd əsas tipdən istifadə etməklə istənilən alqoritm proqramlaşdırıla bilər. Amma müxtəlif haqqında məlumat emal etmək real dünya daha mürəkkəb struktura malik məlumatlar tələb olunur. Ən sadə skalyar tiplərə əsaslanan belə mürəkkəb konstruksiyalar strukturlar adlanır. Struktur əsas skalyar verilənlərdən ibarət olan bəzi kompozit verilənlər növüdür.Əgər struktur təsvir olunduğu proqramın bütün icrası ərzində strukturunu dəyişməzsə, belə struktur statik adlanır.
Demək olar ki, bütün proqramlaşdırma dillərində həyata keçirilən ən ümumi struktur massivdir.
Massivlər məhdud sayda komponentlərdən ibarətdir və massivin bütün komponentləri əsas tip adlanan eyni tipə malikdir. Massiv quruluşu həmişə vahiddir. Massiv tam, real və ya char tipli elementlərdən və ya eyni tipli digər elementlərdən ibarət ola bilər. Bununla belə, buradan belə nəticəyə gəlmək olmaz ki, massiv komponentləri yalnız skalyar tipə malik ola bilər.
Massivin başqa bir xüsusiyyəti ondan ibarətdir ki, onun hər hansı bir komponentinə istənilən yolla daxil olmaq mümkündür. Bunun mənası nədi? Proqram öz seriya nömrəsi (indeks) ilə lazım olan elementi dərhal əldə edə bilir.
Massiv elementinin nömrəsi çağırılır indeks. İndeks kimi təyin olunan sıra tipli qiymətdir indeks növü bu massivdən. Çox vaxt bu tam ədəddir (tam ədəd, söz və ya bayt), lakin məntiqi və xarakterli də ola bilər.
Paskalda massivin təsviri. Paskalda massivin tipi xüsusi sözdən istifadə edilməklə müəyyən edilir massiv(İngilis dili – massiv) və onun proqramdakı bəyanı belə görünür:
Növ< имя _ типа >= T massivi [I];
burada I massiv indeks tipi, T onun elementlərinin növüdür.
Dərhal təsvir edilə bilər tip dəyişənlər massiv, yəni. dəyişən təsviri bölməsində:
Var a,b: T massivi [ I ];
Tipik olaraq, bir indeks növü hər hansı bir sıra tipinin müəyyən bir dəyər diapazonu ilə xarakterizə olunur: I 1 .. I n . Məsələn, indekslər 1..20 və ya " a ".." n " diapazonunda dəyişə bilər.
Bu halda Paskal massivinin uzunluğu aşağıdakı ifadə ilə xarakterizə olunur:
ord (I n)- ord (I 1)+1.
Burada, məsələn, iki növ bəyannamə var: 10 tam ədəddən ibarət Paskal massivi kimi vektor və 256 simvoldan ibarət sətir:
Növ
Vektor=tam ədəd massivi;
Stroka=xarakter massivi;
Massiv indeksindən istifadə etməklə siz istənilən massivin ayrı-ayrı elementlərinə adi dəyişən kimi daxil ola bilərsiniz: siz həmin elementin qiymətini əldə edə, ona ayrıca qiymət təyin edə və ifadələrdə istifadə edə bilərsiniz.
Vektor və sətir tiplərinin dəyişənlərini təsvir edək:
Paskalda massivin indeksinin açıq şəkildə göstərilməsinə ehtiyac yoxdur. Siz massiv indeksi kimi indeks növünə uyğun dəyişən və ya ifadədən istifadə edə bilərsiniz. Başqa sözlə, indekslər hesablana bilər.
Bu mexanizm çox güclü proqramlaşdırma vasitəsidir. Lakin bu, ümumi bir səhv yaradır: hesablamanın nəticəsi etibarlı indeks dəyərləri diapazonundan kənarda ola bilər, yəni mövcud olmayan elementə daxil olmaq üçün cəhd ediləcəkdir. Bu ümumi xəta "hüduddan kənar massiv" adlanır.
Paskal massivi xətası olan proqram nümunəsiProqram primer_error;
Növ
vektor=söz massivi;
var
n:tam;
a:vektor;
başlamaq
n:=45;
a:=25;
son.
Baxmayaraq ki bu proqram dilin sintaksisinə tamamilə uyğundur və tərcüməçi onu “darıxacaq”; icra mərhələsində Paskal massivi hüdudlardan kənarda olduqda xəta baş verəcək. n = 45, n * 2 = 90 ifadəsi olduqda, kompüter a massiv elementinə daxil olmağa çalışacaq, lakin 80 ölçülü bir massiv təsvir edildiyi üçün belə element yoxdur.
Biz bunu güman edəcəyik yaxşı proqram qeyri-mövcud massiv elementlərinə daxil olmağa cəhd edilərsə, xəbərdarlıq mesajı göstərməlidir. Massivin həm sağ, həm də sol sərhədlərindən mümkün kənarlaşmaları yoxlamaq artıq olmaz, çünki ifadənin qiymətinin hesablanması nəticəsində sərhədin solunda yerləşən ədədin nəticədə olması mümkündür. Paskal massivi.
Bütün bunlardan belə nəticəyə gələ bilərik: proqramçı massiv indeksləri ilə işləyərkən çox diqqətli olmalıdır.
Bildiyiniz kimi, məlumat növünün müəyyən edilməsi, icazə verilən dəyərlərin diapazonunu, kompüterdə daxili təmsili, habelə bu tip verilənlər üzərində icazə verilən əməliyyatlar toplusunu məhdudlaşdırmaq deməkdir. Biz verilənlərin tipini Paskal massivi kimi təyin etdik. Bu məlumat növü üzərində hansı əməliyyatlar müəyyən edilir? Bütün massivlərdə və yalnız massivlər eyni tipdə olduqda yerinə yetirilə bilən yeganə hərəkət təyinatdır. Əgər proqram eyni tipli iki dəyişəni təsvir edirsə, məsələn,
Var
a , b: real massiv;
sonra dəyişəndən istifadə edə bilərsiniz a dəyişənə dəyər təyin edin b(a:= b). Bu halda massivin hər bir elementi a massivdən müvafiq qiymət təyin olunacaq b. Paskal massivlərində bütün digər hərəkətlər element-element yerinə yetirilir (vacibdir!) .
Massiv elementlərinin qiymətlərini daxil etmək üçün indeks dəyərini ardıcıl olaraq birincidən sonuncuya qədər dəyişməli və müvafiq elementi daxil etməlisiniz. Bu hərəkətləri həyata keçirmək üçün müəyyən sayda təkrarlama ilə bir döngədən istifadə etmək rahatdır, yəni. sadə arifmetik dövrə, burada loop parametri dəyişən olacaq - Paskal massivinin indeksi. Element dəyərləri klaviaturadan daxil edilə bilər və ya təyinat operatorundan istifadə edərək təyin edilə bilər.
Paskal massivinin daxiletmə proqramının nümunə fraqmentiVar
A: tam ədəd massivi;
Başlayın
i üçün:=1-dən 10-a qədər
Readln(a[i]); (i-ci element klaviaturadan daxil edilir)
İndi Paskal massivinin avtomatik doldurulması halını nəzərdən keçirək təsadüfi ədədlər, bunun üçün funksiyadan istifadə edəcəyik təsadüfi (N).
Paskal massivini təsadüfi ədədlərlə doldurmaq üçün proqramın nümunə fraqmentiVar
I: bayt; (dəyişən I massiv indeksi kimi daxil edilir)
Başlayın
i üçün:=1-dən 10-a qədər
A[i]:= təsadüfi(10); (Massivin i-ci elementinə 0-dan 10-a qədər "təsadüfi" tam ədəd verilir)
Paskalda massivin çıxışı həm də element-element, döngədə həyata keçirilir, burada parametr birincidən sonuncuya qədər ardıcıl olaraq bütün dəyərləri götürərək massiv indeksidir.
Paskal massivinin çıxış proqramının nümunə fraqmentiVar
A: tam ədəd massivi;
I: bayt; (dəyişən I massiv indeksi kimi daxil edilir)
Başlayın
i üçün:=1-dən 10-a qədər
Yazın(a[i]," "); (massiv sətirə çıxarılır, hər elementdən sonra boşluq çap olunur)
Çıxış da müvafiq indeksi göstərən bir sütunda edilə bilər. Amma bu halda nəzərə almaq lazımdır ki, massiv böyükdürsə, bütün elementlər ekrana sığmaya bilər və sürüşmə baş verəcək, yəni. Ekranın bütün sətirləri doldurulduqda, növbəti element çap olunacaq və yuxarı element ekrandan kənara köçürüləcək.
Paskal massivini sütunda göstərmək üçün nümunə proqramVar
A: tam ədəd massivi;
I: bayt; (dəyişən I massiv indeksi kimi daxil edilir)
Başlayın
i üçün:=1-dən 10-a qədər
Writeln("a[", i,"]=", a[i]); (massiv elementlərinin bir sütunda göstərilməsi)
Ekranda, məsələn, aşağıdakı dəyərləri görəcəyik:
a =2
a =4
a =1 və s.
Tapşırıq: iki n ölçülü vektor verilmişdir. Bu vektorların cəmini tapın.
Problemin həlli:
var a, b: tam ədəd massivi;
Problemin həllində irəliləyiş:
c [ i ]= a [ i ]+ b [ i ];
Proqram mətni:
Nümunə vektor cəmi proqramıproqram xülasəsi;
Var
a, b, c: tam ədədlər massivi;
I, n: bayt;
Başlayın
Write("massiv ölçüsünü daxil edin:");
Readln(n);
i:=1 üçün n etmək
Readln(a[i]); (a massiv girişi)
i:=1 üçün n etmək
Readln(b[i]); (massiv girişi b)
i:=1 üçün n etmək
C[i]:=a[i]+b[i]; (massivlərin cəminin hesablanması)
i:=1 üçün n etmək
yaz (c[i]," "); (massiv çıxışı ilə)
son.
1 Metod (klaviatura doldurulması. Dinamikgirişdata)
M:tam ədədlər massivi;
Mən üçün:=1-dən 10-a qədər başlayın
Write("Enter ",I," value ");
2 Metod (təsadüfi ədəd generatorundan istifadə etməklə)
M: tam ədəd massivi;
Mən üçün:=1 - 25 Başlayın
M[I]:=Təsadüfi(50);
3 Metod (statik məlumat girişi)
M: tam ədəd massivi = (31,28,31,30,31,30,31,31,30,31,30,31);
Mən üçün:=1-dən 9-a qədər
1.4 Problemin həlli nümunələri
1. Massiv elementlərinə qiymətlərin axtarışı və təyin edilməsi alqoritmləri
1. Klaviaturadan daxil edilmiş tam ədədlərlə doldurulmuş n ölçülü massivin emalı üçün proqram yaradın. Müsbət massiv elementlərinin indekslərini və qiymətlərini çap edin.
A: ARRAY OF INTEGER;
(Massivin doldurulması)
I ÜÇÜN:=1 EDƏN NƏ BAŞLAYIN
Write("Enter ",I," massiv elementi "); ReadLn(A[I]);
(Masiv Elementlərinin Emalı)
I ÜÇÜN:=1 EDƏN NƏ
IF A[I]>0 THEN WriteLn("Müsbət element = ",A[I]," indeksi = ",I);
2. Y=sin(x-1)/2x funksiyasının qiymətlərinin hesablanması və çapı üçün proqram yaradın. 6 elementdən ibarət X massivində arqument dəyərlərini təyin edin. Funksiya dəyərlərini Y massivinə yazın.
X,Y:REAL MASSİVİ;
MƏN ÜÇÜN:=1-dən 6-ya kimi başlayın
Write("Daxil edin ",I," arqument dəyəri "); ReadLn(X[I]);
MƏN ÜÇÜN:=1-dən 6-ya kimi başlayın
Y[I]:=SIN(X[I]-1)/(2*X[I]);
WriteLn(" X= ",X[I]:4:1," Y=",Y[I]:5:2);
3. 30 elementdən ibarət M massivi verilmişdir. Massiv elementləri ixtiyari tam ədədlərdir. Hər beşinci və müsbət elementin dəyərini göstərin. Göstərilən elementləri sətirə çıxarın.
M:BÜTÜN SAYILI;
ClrScr; Randomize;
WriteLn("Masivi element qiymətləri");
I ÜÇÜN:=1-dən 30-a qədər BAŞLAYIN
M[I]:=Təsadüfi(20)-4; Write(M[I]:3);
WriteLn("Hər beşinci və müsbət massiv elementinin dəyərləri");
Mən isə<=30 DO Begin
ƏGƏR M[I] > 0 OLARSA Write(M[I]:3);
Müstəqil həllər üçün nümunələr:
Klaviaturadan daxil edilmiş tam ədədlərlə və N dəyəri ilə doldurulmuş 10 ölçülü birölçülü massiv verilmişdir. Mənfi elementləri N ilə əvəz edin. Dəyişdirilmiş massivi bir sətirdə göstərin.
-15 ilə 20 aralığında təsadüfi ədədlərlə doldurulmuş N ölçüsünün birölçülü massivi verilmişdir. Mütləq dəyəri >10 olan massiv elementlərinin dəyərlərini göstərin.
Təsadüfi ədədlərlə doldurulmuş N ölçüsünün birölçülü massivi verilmişdir. Element mənfi olarsa, massivin hər üçüncü elementinin kvadratını çəkin. Dəyişdirilmiş massivi ekranda göstərin.
Y=(sinx+1)cos4x funksiyasının qiymətlərinin hesablanması və çapı üçün proqram yaradın. Arqument dəyərlərini 10 elementdən ibarət X massivində təyin edin. Funksiya dəyərlərini Y massivinə yazın.
25 elementdən ibarət A massivinin elementlərindən qaydaya uyğun olaraq eyni ölçülü D massivi əmələ gətirir: ilk 10 element Di=Ai+i, qalanları isə Di=Ai düsturu üzrə tapılır. -i.
Dərsdə Paskalda birölçülü massivlərlə necə işləmək, təsadüfi ədədlər generatorundan - funksiyadan necə istifadə etmək izah edilir. təsadüfi Paskalda. Fibonaççi ədədlərinin əldə edilməsi nümunəsi nəzərdən keçirilir.
Saytdakı materiallar Paskal proqramlaşdırma dilinin praktiki mənimsənilməsinə yönəlib. Qısa nəzəri məlumat mövzu ilə bağlı materialın tam əhatə olunduğunu iddia etmir; lazımi məlumatları internetdə tapa bilərsiniz böyük miqdarda. Tapşırıqlarımıza Paskalda praktiki proqramlaşdırma bacarıqları əldə etmək imkanı vermək daxildir. Həll edilmiş vizual nümunələr və tapşırıqlar artan mürəkkəblik ardıcıllığı ilə təqdim olunur ki, bu da materialı sıfırdan öyrənməyi asanlaşdıracaq.
Paskalda iki növ massiv var: birölçülü və ikiölçülü.
Paskalda birölçülü massivin təyin edilməsi belə səslənir: birölçülü massiv eyni verilənlər növünə aid olan, eyni ada malik olan müəyyən sayda elementdir və hər bir elementin öz indeksi - seriya nömrəsi var.
Paskalda massivin təsviri (bəyannamə) və onun elementlərinə çıxış aşağıdakı kimidir:
Massiv bəyannaməsi
var uzunluğu: massiv [ 1 .. 3 ] tam ədəd; başlanğıc uzunluğu[ 1 ] : = 500 ; dlina[ 2 ] : = 400 ; dlina[ 3 ] : = 150 ; ... var uzunluğu: tam ədəd massivi; başlanğıc uzunluğu:=500; uzunluq:=400; uzunluq:=150; ...
elan et ölçüsü sabit vasitəsilə istifadə edilə bilər:
Bundan əlavə, serialın özü də ola bilər Sabit, yəni. proqramda onun bütün elementləri əvvəlcədən müəyyən edilmişdir. Belə bir massivin təsviri belə görünür::
const a: massiv [ 1 .. 4 ] tam ədəd = (1 , 3 , 2 , 5 ); |
const a:tam ədəd massivi = (1, 3, 2, 5);
Ardıcıl rəqəmlərlə doldurma:
Nəticə: A = 8, A = 9, A = 10, ..., A[N] = A + 1
Klaviatura girişi:
Misal: Paskalda massivin necə daxil edildiyinə baxaq:
writeln("elementlərin sayını daxil edin:"); readln(n); (əgər kəmiyyət əvvəlcədən məlum deyilsə, biz bunu xahiş edirik) for i:= 1 to n do begin write("a[", i, "]="); oxumaq(a[i]); ...son; ...
✍ Nümunə nəticə:
Elementlərin sayını daxil edin: 3 a=5 a=7 a=4
Misal: Paskalda massivin necə göstərilməsinə baxaq:
1 2 3 4 5 6 7 8 9 10 11 12 13 | var a: massiv [ 1 .. 5 ] tam ədəd; (beş elementdən ibarət massiv) i:integer ; a[ 1] başla: = 2 ; a[ 2 ] : = 4 ; a[ 3 ] : = 8 ; a[ 4 ] : = 6 ; a[ 5 ] : = 3 ; writeln("A massivi:"); i üçün: = 1-dən 5-ə qədər yazın (a[ i] : 2 ); (massiv elementlərinin çıxışı) son. |
var a: tam ədəd massivi; (beş elementdən ibarət massiv) i: tam ədəd; başlamaq a:=2; a:=4; a:=8; a:=6; a:=3; writeln("A massivi:"); i:= 1-dən 5-ə qədər yazın(a[i]:2); (çıxış massivinin elementləri) sonu.
✍ Nümunə nəticə:
A massivi: 2 4 8 6 3
Massivlərlə işləmək üçün ən çox Paskalda parametrlə istifadə olunur, çünki siz adətən massivdə neçə elementin olduğunu bilirsiniz və elementlərin indeksləri kimi dövrə sayğacından istifadə edə bilərsiniz.
Massiv 0 tapşırığı. Həqiqi ölçülər massivini göstərməlisiniz 6 (yəni altı element); massivi giriş dəyərləri ilə doldurun və elementləri ekranda göstərin. İki döngədən istifadə edin: birincisi elementləri daxil etmək üçün, ikincisi çıxış üçün.
Paskalda massivlərin işlənməsi, eləcə də massivin doldurulması adətən for loopundan istifadə etməklə baş verir.
Massiv elementlərinin qiymətlərini daim tələb etməmək üçün Random funksiyası tərəfindən həyata keçirilən Paskalda təsadüfi ədədlər generatorundan istifadə olunur. Əslində, psevdo-təsadüfi nömrələr yaradılır, amma məsələ bu deyil.
0-dan n-ə qədər ədədlər yaratmaq üçün (n-in özünün dəyəri daxil deyil, tam ədəd intervalında tam ədədlər; i:integer; start randomize; i:=1-dən 10-a qədər f[i]:=random(10) başlayır; ( interval ) yaz (f[i]," "); son; son.
✍ Nümunə nəticə:
9 8 9 2 0 3 6 9 5 0
İntervaldakı həqiqi ədədlər üçün və ekranda elementləri göstərin: hər bir elementi göstərmək üçün üç mövqe müəyyənləşdirin.
Massivlə işləməyin ən ümumi nümunəsi Paskalda bir sıra Fibonaççi ədədlərinin çıxışıdır. Gəlin bunu nəzərdən keçirək.
Misal: Fibonacci nömrə seriyası: 1 1 2 3 5 8 13…
f[ 0 ] : = 1 ; f[ 1 ] : = 1 ; f[ 2 ] : = 2 ; ... f:=1; f:=1; f:=2; ...
f[ 2 ] : = f[ 0 ] + f[ 1 ] ; f[ 3 ] : = f[ 1 ] + f[ 2 ] ;
f[ i] : = f[ i- 2 ] + f[ i- 1 ] ; f[i]:=f+f;
Seriyanın elementləri üçün düstur aldıq.
Misal:İlk 20 Fibonaççi rəqəmini hesablayın və çap edin.
1 2 3 4 5 6 7 8 9 10 11 | var i: integer ; f: massiv [0 .. 19] tam ədəd; başlanğıc f[ 0 ] : = 1 ; f[ 1 ] : = 1 ; i üçün: = 2-dən 19-a qədər başlayır f[ i] : = f[ i- 1 ] + f[ i- 2 ] ; writeln (f[ i] ) sonu ; son. |
var i:integer; f:arrayof integer; başlamaq f:=1; f:=1; i:=2-dən 19-a qədər f[i]:=f+f başlayır; writeln(f[i]) sonu; son.
Bu misalda ədəd seriyası ilə işləmə prinsipi aydın olur. Adətən, bir sıra sırasını əldə etmək üçün bu seriyanın hər bir elementini təyin etmək üçün bir düstur tapılır. Beləliklə, Fibonaççi ədədləri vəziyyətində bu düstur-qayda f[i]:=f+f kimi görünür. Buna görə də massiv elementlərini formalaşdırarkən for loopunda istifadə edilməlidir.
Massiv 2 tapşırığı. 10 sıra verilir ixtiyariədədlər: a, a, ... , a (random() funksiyasından istifadə edin). Qonşu ədədlərin üçlüklərinin cəmini hesablayın və çap edin: a+a+a , a+a+a , a+a+a , …… , a+a+a
Psevdokod:
Maksimum elementi indeksinə görə tapmaq:
Array_min tapşırığı: Massivin minimum elementini tapın. Elementi və onun indeksini çap edin.
Massiv 4 tapşırığı. 10 tam elementdən ibarət massiv verilmişdir. Mənfi olanların sayını tapın və nömrəni ekranda göstərin.
Massiv 5 tapşırığı. Daxil edilmiş n ədədin (massiv) minimum və maksimumunu tapın. Bu elementlər arasındakı məsafəni təyin edin. 3 2 6 1 3 4 7 2 >>> min=1, maksimum=7, məsafə=3
Massiv 6 tapşırığı.Ölçüdə tam ədəd massivi verilmişdir N. Bütün daxil olan çıxış bu massiv indekslərinin azalan ardıcıllığı ilə cüt ədədlər, eləcə də onların sayı K. N=4 mas: 8 9 2 5 >>> 2 8 kəmiyyət= 2
Massiv 7 tapşırığı. Klaviaturadan 5 elementdən ibarət massiv daxil edin, orada iki maksimum elementi və onların nömrələrini tapın.
Misal:
İlkin massiv: 4 -5 10 -10 5 maksimum A=10, A=5
Birölçülü massivlərlə işləməyin mürəkkəb nümunəsinə baxaq:
Misal: 10 ədəddən ibarət massiv verilmişdir. İstifadəçinin daxil etdiyi nömrənin massivdə olub-olmadığını müəyyənləşdirin. Əgər varsa, çıxış "tapıldı", Əgər olmasa - "tapılmadı".
Tapşırıqın çətinliyi sözləri çap etməkdir "tapıldı" və ya "tapılmadı" bir dəfə lazımdır.
Həllini göstərin
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | var f: massiv [ 1 .. 10 ] tam ədəd; bayraq:boolean ; i, c: tam ədəd; təsadüfiləşdirməyə başlayın; i üçün: = 1-dən 10-a qədər başlayır f[ i] : = random(10 ) ; yaz (f[ i] , " " ); son; bayraq: = false ; yazın( "nümunə daxil edin"); readln(c); i üçün: = 1-dən 10-a qədər do əgər f[ i] = c sonra writeln ("tapıldı" ) başlasın; bayraq: = true ; fasilə ; son; əgər bayraq= false onda writeln ("tapılmadı" ); son. |
var f: tam ədəd massivi; bayraq:boolean; i,c:tam; təsadüfiləşdirməyə başlayın; i:=1-dən 10-a qədər başlayır f[i]:=təsadüfi(10); yaz (f[i]," "); son; bayraq:=false; writeln("nümunə daxil edin"); readln(c); i:=1-dən 10-a qədər edin, əgər f[i]=c, onda başlamaq writeln("tapıldı"); bayraq:=true; fasilə; son; if flag=false then writeln("tapılmadı"); son.
Gəlin nəzərdən keçirək effektiv həll:
Tapşırıq: massivdə X-ə bərabər olan elementi tapın və ya onun mövcud olmadığını müəyyənləşdirin.
Alqoritm:
Paskal variantı 2-də həll. while döngüsü:
Sizi massivdə elementin axtarışının ətraflı video analizinə baxmağa dəvət edirik (effektiv alqoritm):
Massiv 8 tapşırığı. 10 elementdən ibarət massivi intervalda təsadüfi ədədlərlə doldurun və X-ə bərabər olan bütün elementlərin nömrələrini çap edin.
Misal:
İlkin massiv: 4 0 1 2 0 1 3 4 1 0 Nə axtarırıq? 0 A, A, A
Misal: massiv elementlərini 1 mövqe sola sürüşdürün, birinci element sonuncunu əvəz edir.
Alqoritm:
A:=A; A:=A;... A:=A[N];
Proqram:
Massiv 9 tapşırığı. 10 elementdən ibarət massivi [-10..10] intervalında təsadüfi ədədlərlə doldurun və sola tsiklik sürüşmə həyata keçirin. birinci element olmadan.
Misal:İlkin massiv: 4 -5 3 10 -4 -6 8 -10 1 0 Nəticə: 4 3 10 -4 -6 8 -10 1 0 -5
Bir massivin necə yenidən təşkil edildiyinə və ya tərsinə çevrilməsinə baxaq.
Misal: massiv elementlərini tərs qaydada yenidən təşkil edin
Həll:
Alqoritm:
Psevdokod:
Proqram:
Massiv 10 tapşırığı. 10 elementdən ibarət massivi [-10..10] intervalında təsadüfi ədədlərlə doldurun və sonuncudan başqa bütün elementləri tərsinə çevirin.
Misal: Mənbə massivi: -5 3 10 -4 -6 8 -10 1 0 4 Nəticə: 0 1 -10 8 -6 -4 10 3 -5 4
Misal: massivdə bəzi şərti təmin edən elementləri tapın (məsələn, mənfi) və onları başqa massivə köçürün
Həll:
Həll: sayma sayğacından istifadə edərək tapılan elementlərin sayını hesablayın, B yerində növbəti elementi quraşdırın. Dəyişəndən istifadə edərək saymaq təyin edilməlidir 1 .
B massivinin çıxışı:
writeln("Seçilmiş elementlər"); i:=1 üçün saymaq-1 yazmaq (B[i], " ")
Massiv tapşırığı 11. Massivi intervalda təsadüfi ədədlərlə doldurun və 0 ilə bitən bütün ədədləri başqa massivə yazın.
Misal: Mənbə massivi: 40 57 30 71 84 0 ilə bitir: 40 30
Bubble çeşidlənməsi
Paskalda icra:
1 2 3 4 5 6 7 8 | i üçün: = 1-dən N- 1-ə qədər j üçün başlayın: = N- 1-dən i-yə qədər edin, əgər A[ j] > A[ j+ 1 ] olarsa, onda : = A[ j] ; A[ j] : = A[ j+ 1 ] ; A[ j+ 1 ] : = с; son; son; |
i:=1-dən N-1-ə qədər j üçün başlayır:=N-1-dən i-yə qədər A[j] > A olarsa, onda:= A[j]-dan başlayır; A[j] := A; A := c; son; son;
Massiv 12 tapşırığı. 10 elementdən ibarət massivi intervalda təsadüfi ədədlərlə doldurun və massivin birinci yarısını artan, ikincisini isə azalan ardıcıllıqla çeşidləyin (“Bubble” metodundan istifadə etməklə). Misal: Mənbə massivi: 14 25 13 30 76 58 32 11 41 97 Nəticə: 13 14 25 30 76 97 58 41 32 11
Seçimlə çeşidləmə
i:= 1-dən N-1-ə qədər min:= i başlayır; j:= i+1 üçün N üçün A[j] edin< A then min:=j; if min <>i sonra başlayıram c:=A[i]; A[i]:=A; A:=c; son; son;
Massiv 13 tapşırığı: 10 elementdən ibarət massivi intervalda təsadüfi ədədlərlə doldurun və onu rəqəmlərin cəminə görə artan qaydada çeşidləyin Misal: Mənbə massivi: 14 25 13 12 76 58 21 87 10 98 Nəticə: 10 21 12 13 14 25 76 58 87 98
Tez çeşidləmə və ya tez çeşidləmə
Alqoritm:
Paskalda icra:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | prosedur QSort ( birinci, sonuncu: tam ); var L, R, c, X: tam ədəd; birinci olarsa başlayın< last then begin X: = A[ (first + last) div 2 ] ; L: = first; R: = last; while L <= R do begin while A[ L] < X do L: = L + 1 ; while A[ R] >X do R: = R - 1 ; əgər L<= R then begin c: = A[ L] ; A[ L] : = A[ R] ; A[ R] : = c; L: = L + 1 ; R: = R - 1 ; end ; end ; QSort(first, R) ; QSort(L, last) ; end ; end . |
prosedur QSort(birinci, sonuncu: tam ədəd); var L, R, c, X: tam ədəd; birinci olarsa başlayın< last then begin X:= A[(first + last) div 2]; L:= first; R:= last; while L <= R do begin while A[L] < X do L:= L + 1; while A[R] >X do R:= R - 1; əgər L<= R then begin c:= A[L]; A[L]:= A[R]; A[R]:= c; L:= L + 1; R:= R - 1; end; end; QSort(first, R); QSort(L, last); end; end.
Massiv 14 tapşırığı:
10 elementdən ibarət massivi [-50..50] diapazonunda təsadüfi ədədlərlə doldurun və onu sürətli çeşidləmə alqoritmindən istifadə edərək çeşidləyin.
Birölçülü massivin elementlərini dəyərlərlə doldura bilərik: klaviaturadan dəyərlər daxil etməklə; təsadüfi; formuluna görə. Birölçülü massivləri təyin etmək üsulları Döngülər rəqəmli massiv qiymətlərini daxil etmək və çıxarmaq üçün istifadə olunur. Prosedura istinadla parametr, verilmiş tipli Mssiv massivi və doldurulacaq massiv xanalarının sayına cavabdeh olan tam dəyişən n götürür. Təsadüfi olaraq birölçülü massivin formalaşması.
Əgər bu iş sizə uyğun gəlmirsə, səhifənin aşağı hissəsində oxşar işlərin siyahısı var. Axtarış düyməsini də istifadə edə bilərsiniz
Doldurma.
Birölçülü massivin elementlərini dəyərlərlə doldura bilərik:
Klaviaturadan dəyərlərin daxil edilməsi;
təsadüfi;
Formula görə.
Döngülər rəqəmli massiv dəyərlərini daxil etmək və çıxarmaq üçün istifadə olunur.
Birölçülü massivi iki yolla təşkil edəcək prosedurları nəzərdən keçirək
1) təsadüfi,
2) klaviaturadan elementlərin daxil edilməsi
Tutaq ki, biz tam ədədlər massivi ilə işləyəcəyik. Elementlərin maksimum sayının 50-yə bərabər olması bizim üçün kifayət etsin. Prosedura istinadla parametr, verilmiş tipli Massiv massivi və tam dəyişən götürür. n , doldurulacaq massiv xanalarının sayına cavabdehdir. Bizə yerli dəyişənə də ehtiyac olacaq i , döngə parametri kimi çıxış edəcək və massivdə elementin yerini təyin edən nömrəni təyin etmək üçün istifadə olunur.
1. Təsadüfi olaraq birölçülü massivin formalaşması. Hər bir elementin qiymətini Random(10) təsadüfi funksiyasının nəticəsini təyin edək. Biz operator üçün siklikdən istifadə edərək massivin doldurulmasını təyin edəcəyik, onun gövdəsində təsadüfi nömrə Random(10) funksiyası ilə hesablanır, bundan sonra bu dəyər növbəti funksiyaya təyin olunur. i - massivin elementi.
Prosedur InsertMas1(Var massiv:mas; n:integer);
I: tam ədəd;
Başlayın
Randomize;
i:=1 üçün n etmək
Massiv[i] := Təsadüfi(10);
Son;
2. Klaviaturadan elementlərin daxil edilməsi ilə birölçülü massivin yaradılması.
Prosedur InsertMas2(Var massiv:mas; n:integer);
I: tam ədəd;
Başlayın
i:=1 üçün n etmək
Başlayın
yaz ("Daxil et", yəni ,"ci massiv elementi");
readln(massiv[i]);
son;
son;
Massiv ekranda aşağıdakı kimi göstərilir:
Prosedur PrintMas(massiv:mas; n:integer);
I: tam ədəd;
Başlayın
i üçün:=1-dən n-ə qədər
Write(Array[i]:5);
Son.
Yadda saxlamalıyıq ki, hər üç halda bir dövrə təşkil etmədən edə bilmərik.
Massivin maksimum (minimum) elementinin tapılması.
Birölçülü massivimiz olsun:
20,-2, 4, 10,7, 21,-12, 0, 4, 17.
Maksimum elementi tapmaq lazımdırsa, hansı əməliyyatları yerinə yetirmək lazım olduğunu düşünək. Təbii ki, müqayisə əməliyyatı Biz həmişə massivin bütün elementləri arasında “qaçan” bir cütü müqayisə etməyi düşünmürük. Maksimum (minimum) elementi tapmaq üçün alqoritmi elə quracağıq ki, bir cüt ədədi müqayisə edək, müqayisə hərəkətini tələb olunan sayda dəfə təkrarlayacağıq.
Beləliklə, iki suala cavab verməliyik:
1) əlaqə əməliyyatını təşkil edən cütə hansı ədədlər daxildir;
2) müqayisə əməliyyatının neçə dəfə təkrarlanması lazımdır. max adlı əlavə dəyişən təqdim edək. Bu nömrələrdən biri olacaq, ikinci nömrə serialın növbəti elementidir. Birinci müqayisə əməliyyatını həyata keçirmək üçün max dəyişəninə bəzi ilkin qiymət təyin etmək lazımdır. Burada iki seçim ola bilər:
1) max dəyişəninə massivin birinci elementini təyin edin;
2) massivin bütün elementlərindən açıq-aydın az olan bir nömrə təyin edin.
Massiv birinci ilin hər qrupundakı tələbələrin sayı haqqında məlumatları ehtiva edir. Qrup nömrəsinin massivdəki nömrənin seriya nömrəsinə uyğun gəldiyini fərz edərək (biz belə bir qrup olduğunu güman edirik) maksimum tələbə sayı olan qrupu müəyyənləşdirin.
Başqa sözlə, maksimum elementi və onun sayını tapmalıyıq.
proqram max_num;
tip mas=massiv[ 1.. 10] bayt;
var a: mas;
ədəd, i: bayt;
maksimum: bayt;
başlamaq
(blok doldurun)
i:=l-dən 7-yə qədər
readln(a[i]);
(maksimum və onun sayını axtarın)
maksimum:==0;
(bu massiv üçün ən kiçik ədədi daxil edin)
i:=l-dən n-ə qədər
əgər a[i]>max, onda başlayın
ədəd:=i;
maks:=a[i]
son;
writeln("maksimum tələbələrin sayı=",maks);
writeln("qrup nömrəsi=",sayı);
son.
3) Massivin cüt elementləri arasında minimum elementi tapın.
İzahat: massivin birinci elementini min dəyişənə təyin edə bilmərik, çünki qəribə ola bilər. Buna görə də, bu məlumat növü üçün çox böyük rəqəm seçməliyik.
elan etsək massivin elementləri tam ədəddir, onda bunun kimi sayı +32767 olacaq.
min_even proqramı;
a:tam ədəd massivi;
i:tam;
min:tam;
başlamaq
i:=l üçün 10 do beein
writeln("növbəti massiv elementini daxil edin");
readln(a[i]);
son;
min:=32767;
i üçün:=l-dən 10-a qədər
əgər (a[i] əgər min=32767 isə writeln ("massivdə cüt elementlər yoxdur") else writein ("massivin cüt elementləri arasında minimum element=",min) son. Diqqət edin: min dəyişənin dəyərinin dəyişib-dəyişmədiyini yoxlamaq lazımdır, çünki hətta elementlər də olmaya bilər. Sizi maraqlandıra biləcək digər oxşar əsərlər.vshm> Serialdan dərs: " Proqramlaşdırma dili Pascal» Massivi elan etdikdən sonra onunla işləyə bilərsiniz. Məsələn, massiv elementlərinə dəyərlər təyin edin və ümumiyyətlə onları adi dəyişənlər kimi qəbul edin. Müəyyən elementə daxil olmaq üçün siz kvadrat mötərizədə massiv identifikatorunu (ad) və element indeksini göstərməlisiniz. Məsələn, Mas, A girişi MAS massivinin ikinci elementinə və A massivinin onuncu elementinə daxil olmağa imkan verir. İkiölçülü massivlə işləyərkən n-ölçülü massivlə iki indeks müəyyən edilir - n. indekslər. Məsələn, Matr girişi M massivinin dördüncü sütununun dördüncü sətirində yerləşən elementin dəyərini emal etmək üçün əlçatan edir. Massivin indekslənmiş elementləri indekslənmiş dəyişənlər adlanır. Siz massivin hüdudlarından kənara çıxa bilməzsiniz. Yəni Mas massivində beş element varsa, o zaman altıncı və ya səkkizinci elementə daxil olmaq xəta ilə nəticələnəcək. Birölçülü massivlərlə işləyərkən yaranan tipik əməliyyatlara baxaq. Massivin doldurulması və çıxarılması yalnız element-element edilə bilər, yəni əvvəlcə birinci elementə dəyər təyin edə bilərsiniz, sonra ikinci və s, onu ekranda göstərməklə eyni - biz birinci, ikinci, üçüncü, və s. sonuna qədər. Paskalda massiv elementlərinin eyni vaxtda daxil/çıxış vasitələri yoxdur, ona görə də dəyərlər element-element daxil edilir. Dəyərlər təyinat operatorundan istifadə edərək massiv elementinə təyin edilə bilər və ya Read və ya Readln operatorlarından istifadə edərək klaviaturadan daxil edilə bilər. For döngəsində massivin bütün elementlərini təkrarlamaq çox rahatdır. Birölçülü massivləri doldurmağın yolları: 1. Massiv elementlərinin qiymətlərinin klaviaturadan daxil edilməsi. Readln operatorundan istifadə edildiyi üçün hər bir dəyər yeni sətirə daxil ediləcək. 2. Massivin doldurulması intervaldan təsadüfi yaradılan ədədlər. Təsadüfi bir ədəd sensoru - təsadüfi funksiyanı bağlayırıq. 3. Doldurma massiv formuluna görə. Hər bir massiv elementinə düsturla hesablanmış bir dəyər verilir. Massivin hər bir elementi onun sıra nömrəsinin (indeksinin) üçqat dəyərinə bərabərdirsə, prosedur belə görünəcək: 4. Fayldan rəqəmlərin oxunması. Əvvəlcədən hər birində 30 ədəd olan bir neçə sətir yazan mətn faylı yaratmalısınız. Nəticə element dəyərləri massiv ekrana daxiletmə, giriş kimi, dövrədə element-element yerinə yetirilir. Çıxış üçün Write və ya Writeln operatorlarından istifadə edəcəyik. Giriş parametrləri olaraq birincidən başlayaraq təkcə massivi deyil, həm də buraxılması lazım olan elementlərin sayını prosedura keçirəcəyik (massivdə elementləri çıxarıb əlavə etdikdə bu bizə lazım olacaq). Misal 1. Klaviaturadan massivi doldurun və ekranda göstərin. Həll. Proqram iki prosedurdan istifadə edəcək: Init1 proseduru (klaviaturadan massivi doldurmaq) və Çap proseduru (massivin ekranda göstərilməsi). Misal 2. Mətn faylından massivi doldurun və onu ekranda göstərin. Mətn faylında bir neçə sətir var, hər sətirdə 30 rəqəm var. Siz birölçülü massivi necə doldurmağı və onu ekranda göstərməyi öyrəndiniz. Növbəti dərsdə birölçülü massivlərin işlənməsi alqoritmləri ilə tanışlığı davam etdirəcəyik.8729.
MƏHDUD MAŞININ TƏRİFİ VƏ SPESİFİKASYON ÜSULLARI. SİNTEZ PROBLEMİ. ELEMENTARY MAŞINLAR
189,1 KB
Sonlu dövlət maşınının tərifi və təyini üsulları. MƏHDUD MAŞININ TƏRİFİ VƏ SPESİFİKASYON ÜSULLARI. Sonlu dövlət maşınının tərifi. Sonlu dövlət maşınının təyini üsulları.
3552.
Kimya fənni üzrə fərdi ev tapşırığı. Kimya ev tapşırığı
475,47 KB
Təlimatlara aşağıdakı mövzular üzrə fərdi ev tapşırıqları daxildir: qeyri-üzvi birləşmələrin sinifləri, kimyəvi ekvivalent, atom quruluşu, kimyəvi əlaqə, kimyəvi termodinamika, kimyəvi kinetika, məhlulların konsentrasiyası, ion reaksiyaları və duzların hidrolizi, redoks reaksiyaları, elektrokimyəvi proseslər, metalların xassələri.
12127.
Fennoskandiya qalxanının şimal-şərqində paleoproterozoy laylı mafik massivlərinin strateji mineralları (PGM, Ni, Co, Cr, Cu)
17,77 KB
İnkişafın qısa təsviri. Analoqlarla müqayisədə inkişafın üstünlükləri. İnkişafın mühüm istiqaməti kəşfiyyat və kəşfiyyat mərhələlərində ağır dağ-mədən və qazma avadanlıqlarından geniş istifadəni kəskin şəkildə azaltmaqla ətraf mühitə mənfi texnogen təsirin minimuma endirilməsidir. İnkişafın kommersiya istifadə sahələri.
9554.
RİYAZİYYAT. METODOLOJİ TƏLİMAT VƏ VƏZİFƏLƏR
268,34 KB
“Riyaziyyat” akademik fənni orta ixtisas təhsili məzunlarının minimum məzmununa və hazırlıq səviyyəsinə dair dövlət tələblərini həyata keçirmək üçün nəzərdə tutulmuşdur.
18129.
Yaradıcı tapşırıqlar təxəyyülün inkişafı vasitəsi kimi
91,06 KB
Bu tədqiqatlar tədris prosesində şagirdlərin yaradıcılıq fəaliyyətinin təşkilinə dair elmi fikirlərin və praktiki yanaşmaların müxtəlifliyini əks etdirir, lakin təxəyyülün inkişaf etdirilməsi vasitəsi kimi təlim prosesində kiçik yaşlı məktəblilərə məqsədyönlü şəkildə yaradıcı tapşırıqların verilməsi aspekti hələ də yetərincə olmayıb. oxudu. Fəlsəfi psixoloji və pedaqoji ədəbiyyatın təhlilində müəyyən edilmiş ziddiyyətlər əsasında, eləcə də ibtidai məktəblərin təcrübəsinin öyrənilməsi nəticəsində nəzəri...
19517.
Bukva mağazasının avtomatlaşdırılması üçün texniki şərtlərin hazırlanması
155,63 KB
Müştərinin tələblərinə əsaslanan malların səlahiyyətli satışı, yəni mütəxəssislərlə məsləhətləşmə. Buna görə də mağazanın bazarın vəziyyəti haqqında məlumat alması və bazarı mövcud mal və xidmətlər haqqında məlumatla təmin etməsi zəruridir. Media ilə qarşılıqlı əlaqə mağazanın özü, malları və xidmətləri haqqında məlumatları təqdim etməkdən ibarətdir; sonradan bu məlumatlardan mal və xidmətlər bazarı tərəfindən qəbul edilən noutbuk mağazası üçün reklam yaradılacaq. Məhsul növlərinin genişləndirilməsi Mağazanın üstünlükləri: Geniş təcrübə...
3548.
Kimyadan ev tapşırığı və onların yerinə yetirilməsi üçün göstərişlər
229,61 KB
Bu ev tapşırıqları tədris planına uyğun olaraq bütün ixtisasların tələbələrinin kimya kursu üzrə sistemli işləməsi üçün nəzərdə tutulmuşdur. Tapşırıqların yerinə yetirilməsi tələbələrin müstəqil iş bacarıqlarının inkişafına kömək edir.
19091.
TƏHLİL EDİLMİŞ LAYİHƏT ÜÇÜN TEXNİKİ XÜSUSİYYƏTLƏRİN VƏ ƏSAS TEXNİKİ TƏLƏBLƏRİN TƏHLİLİ
911,42 KB
Server otağı (server otağı və ya sadəcə server otağı) server və telekommunikasiya avadanlıqlarının yerləşdirilməsi və istismarı üçün xüsusi yaradılmış və saxlanılan şəraitə malik ayrılmış texnoloji otaqdır. Server otağında icazə verilən temperatur olmalıdır
1763.
Məlumatı saxlamaq üçün C++ standart şablon kitabxanası (STL) konteynerindən istifadə edərək tapşırığın sinif kimi həyata keçirilməsi
190,6 KB
C++ dilinin sintaksisi C dilindən miras qalmışdır.Dizayn prinsiplərindən biri C dili ilə uyğunluğu saxlamaq idi.Lakin C++ ciddi şəkildə C-nin yuxarı çoxluğu deyil; hər iki C tərtibçisi tərəfindən eyni dərəcədə uğurla tərcümə oluna bilən bir çox proqram...
10124.
Reklam xidmətlərinin göstərilməsi, təmizlik xidmətləri, təhlükəsizlik və işçi heyəti üçün texniki şərtlərin hazırlanması
31,88 KB
Reklam xidmətlərinin texniki şərtlərinin hazırlanması: reklam xidmətlərinin hüquqi tənzimlənməsi. Təmizlik xidmətləri üçün texniki şərtlərin hazırlanması: əsas anlayışlar və xidmət növləri. Təhlükəsizlik xidmətləri üçün texniki şərtlərin hazırlanması: hüquqi tənzimləmə. Kadr xidmətləri üçün texniki şərtlərin hazırlanması: əsas anlayışlar.
Birölçülü massivin dəyərlərlə doldurulması
Massiv elementlərinin qiymətlərinin ekranda göstərilməsi