1 / 10

Prezentácia

Prezentácia. POLE. Štruktúrovaný údajový typ POLE. Jednorozmerné pole. Ukážka programu. Výsledok programu Pole1 Viacrozmerné pole. Ukážka programu. Výsledok programu Pole2. Jednorozmerné pole.

Télécharger la présentation

Prezentácia

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Prezentácia POLE

  2. Štruktúrovaný údajový typ POLE • Jednorozmerné pole. • Ukážka programu. • Výsledok programu Pole1 • Viacrozmerné pole. • Ukážka programu. • Výsledok programu Pole2

  3. Jednorozmerné pole • Pri programovaní nevystačíme s jednoduchými údajovými typmi ako napr: var i,j,k :integer a podobne. Najviac aplikácií je takých, kde je výhodné jednotlivé údaje zorganizovať do väčších údajových jednotiek, napr: pri spracovaní štatistických údajov, údajov o výrobnom programe a podobne. V jazyku Pascal sú takéto údajové typy. Teraz sa naučíme údajový typ POLE, konkrétne jednorozmerné. • Definíciu typu jednorozmerného pola umiestňujeme v programe do časti definícií a deklarácií a má tvar : type m : array[ti]of tz Vyhradené sú slová type -znamená typ array- označuje, že ide o pole of- znamená z čoho budú zložky pola m-je identifikátor (meno) daného pole, ti-index, tz-typ zložiek. Napríklad definícia: var a : array [ 1..100]of real znamená, vyhradenie miesta pre 100 reálnych čísiel, ktoré v programe píšeme ako a[1],a[2],... ,a[100]. Inak by sme museli definovať 100 premenných var a1,a2,...,a100 : real, čo by bolo pracné.

  4. Z Príklad č.1- Pole1 : Vypočítaj 16 hodnôt funkcií y=sin(x), y=cos(x), x je z intervalu <0,2Pí>, zapamätaj ich do polí a vypíš na obrazovku tabuľku s hodnotami x, y Definície: i : integer; krok,x : real; Si[1..16], Co[1..16], x[1..16] : array Krok:=2*Pí /15; x:=0 i:=1 Si[i]:=Sin(x); Co[i]:=Cos(x); x1[i]:=x; x:=x+krok; i=16? - i:=i+1 + i:=1 Výpis na obrazovku: x1[i], Si[i], Co[i] i=16? - i:=i+1 + K

  5. Ukážka programu Pole1 program pole1; Uses fdelay,Crt; var i : integer; x,p,krok,x1 : real; si : array [1..16] of real; co : array [1..16] of real; x1 : array [1..16] of real; begin ClrScr;krok:=2*Pi/15; x:=0; for i:=1 to 16 do begin si[i]:=Sin(x); co[i]:=Cos(x); x1[i]:=x; x:=x+krok; end; writeln(' Por.c. x:<0;2*Pi> y=Sin(x) y=Cos(x)'); for i:=1 to 16 do writeln(i:6,x1[i]:12:2,si[i]:12:2,co[i]:12:2); readln; end.

  6. Výsledok programu Pole1 Por.c. x: <0;2*Pi> y=Sin(x) y=Cos(x) 1 0.00 0.00 1.00 2 0.42 0.41 0.91 3 0.84 0.74 0.67 4 1.26 0.95 0.31 5 1.68 0.99 - 0.10 6 2.09 0.87 - 0.50 7 2.51 0.59 - 0.81 8 2.93 0.21 - 0.98 9 3.35 - 0.21 - 0.98 10 3.77 - 0.59 - 0.81 11 4.19 - 0.87 - 0.50 12 4.61 - 0.99 - 0.10 13 5.03 - 0.95 0.31 14 5.45 - 0.74 0.67 15 5.86 - 0.41 0.91 16 6.28 0.00 1.00

  7. Viacrozmerné POLE Jazyk Pascal dovoľuje, aby vznikala hierarchická štruktúra, ktorej hĺbka takmer nie je obmedzená. Z hľadiska premennej typu pole to znamená, že aj zložky budú typu pole a ich zložky zase môžu byť typu pole, atď. Dostávame tak pole polí – viacrozmerné pole. Definícia typu pole, ktoré je dvojrozmerné môžeme napísať takto : Type m: array[ti1] of array [ti2] of tz Skrátený zápis : type m : array[t1,t2]of tz Príklad definície : var matica : array [1..20] of array [1..30] of real, alebo var matica : array [1..20,1..30] of real ; takto si vyhradíme v programe 20*30 miest pre reálne čísla (20 riadkov a 30 stĺpcov). Napr. Matica[i,j] označuje reálne číslo, ktoré je v i-tom riadku a v j-tom stĺpci

  8. 1 Z Príklad č.2 – Pole2 : Zadaj 9 reálnych čísiel 3 riadky a 3 stĺpce a11,a12,a13, a21,a22,a23, a31,a32,a33 tak, aby sa zapamätali do dvojrozmerného poľa a potom vypočítaj súčty stĺpcov a riadkov a vypíš na obrazovku prehľadne: načítané čísla a k tomu vpravo súčty riadkov a dole súčty stĺpcov. a11 a12 a13 súčet 1. riadku a21 a22 a23 súčet 2. riadku a31 a32 a33 súčet 3. riadku Stl.1 Stl.2 Stl.3 Definuj array a[1..3,1..3], SumR[1..3], SumR[1..3] real, i,j integer i:=1 Sumr[i]:=0 SumS[i]:=0, pre i=1,2,3 j:=1 i:=1 SumR[i]:=SumR[i]+a[i,j] SumS[j]:=SumS[j]+a[i,j] (suma stlpce a riadky) Výpis a[ i,j] j:=1 Načítaj a[i,j] - j=3 j:=j+1 - j=3 + j:=j+1 + Výpis suma i-teho riadku SumR[ i] - i:=i+1 i=3 + 1 i=3 + - Výpis sumy stĺpcov SumS[ j] pre j=1,2,3 i:=i+1 Koniec

  9. Program Pole2 program pole2; Uses fdelay,Crt; var i,j : integer; a : array [1..3,1..3] of real; sumr : array [1..3] of real; sums : array [1..3] of real; begin ClrScr; writeln('Zadaj 3x3 cisiel'); for i:=1 to 3do sums[i]:=0; for i:=1 to3do begin writeln; for j:=1 to 3do begin write(' a[',i:1,’,’,j:1,‘]='); read(a[i,j]); end; end; writeln; write('Zadane cisla a vypocet suctu riadkov a stlpcov : '); for i:=1 to3do begin sumr[i]:=0; writeln; for j:=1 to3do begin sumr[i]:=sumr[i]+a[i,j]; sums[j]:=sums[j]+a[i,j]; write(a[i,j]:8:1); end; write(' Sucet riadku ',i:1,'. ',sumr[i]:8:1) end; writeln; write('Sucty po stlpcoch'); writeln; for j:=1 to3do write(sums[j]:8:1); readln; readln; end.

  10. Výsledok programu POLE2 Zadaj 3x3 cisiel a[1,1]= 1 a[1,2]= 1 a[1,3]= 1 a[2,1]= 2 a[2,2]= 2 a[2,3]= 2 a[3,1]= 3 a[3,2]= 3 a[3,3]= 3 Zadane cisla a sucty riadkov a stlpcov: 1.0 1.0 1.0 Sucet riadku 1. 3.0 2.0 2.0 2.0 Sucet riadku 2. 6.0 3.0 3.0 3.0 Sucet riadku 3. 9.0 Sucty stlpcov : 6.0 6.0 6.0

More Related