PROGRAMOWANIE APLIKACJI UŻYTKOWYCH- WYKŁAD 7. 24.11.2010r.
1. DEKLARACJA TABLIC WIELOWYMIAROWYCH- PRZYKŁADY
rok_oceny1 :array [1..5] of array [2..5] of word;
rok_oceny2 :array [1..5,2..5] of word;
student_oceny :array [1..300,2..5] of byte;
tablica :array [`0'..'9',-5..12] of char;
trudne :array [1..10, Boolean, `A'..'Z'] of real;
rok_std_oc :array [1..5] of {rok}
array [1..2000] of {student}
array [1..10] of word {oceny}
{rozmiar: 5*200*10*2=20000}
2. ZMIENNE TABLICOWE- PRZYPISANIA
DOBRZE |
ŹLE |
|
|
3. PRZYKŁAD 1- TABLICE
zadanie: wypełnij tablicę TAB(-5..3,1..30)wartościami 0
I SPOSÓB
program Tablica2a;
var tab:array [-5..3,1..30] of Real;
begin
tab [-5,1]:=0; tab [-5,2]:=0;…tab [-5,30]:=0;
tab [-4,1]:=0; tabl [-4,2]:=0;…tab [-4,30]:=0;
…
tab [2,1]:=0 ; … tab[2,30]:=0;
tab [3,1]:=0; … tab [3,30]:=0;
dla k=1..30 tab[-5,k]:=0; dla w=-5..3
dla k=1..30 tab [-4,k]:=0; dla k=1..30
…
dla k=1..30 tab [3,k]:=0; tab[w,k]:=0;
II SPOSÓB
program tablica_2b;
var tab:array [-5..3,1..30] of Real;
begin
for w:=-5 to 3 do
for k:=1 to 30 do
tab [w,k]:=0;
end.
4. PTZYKŁAD 2- TABLICE
zadanie: wypełnić tablicę TAB(-5..3,1..30) kolejnymi wartościami 1,2…
program tablica_2;
const AP=-5;
AK=3;
BP=1;
BK=30;
var tab:array {AP..AK,BP..BK] of Real;
w,k: integer;
x: word;
begin
x=1;
for w:=AP to AK do
for k:=BP to BK do
begin
tab [w,k]:=x;
x:=x+1
end;
for w:=AP to AK do
for k:=BP to BK do
writeln (`element (`,w,',',k,')=',tab [w,k])
end.
5. PRZYKŁAD 3- TABLICE
zadanie: wprowadzanie i wyświetlanie elementów tablicy dwuwymiarowej
program tablica3;
const max_w=20; max_k=15;
var tab3:array [1..max_w,1..max_k] of integer;
w,k: byte; {-w-wiersz, k-kolumna-}
Begin
{-wprowadzanie danych do tablicy-}
for w:=1 to max_w do
for k:=1 to max_k do
begin
write (`Podaj element:');
readln (tab3[w,k]
end;
{-wyświetlanie danych wierszami-}
for w:=1 to max_w do
Begin
for k:=1 to max_k do
write (tab3[w,k]:8);
writeln
end
end.
6. PRZYKŁAD 4A- TABLICE
zadanie: wyznaczanie wartości maksymalnej
program maksymalna_wartosc;
const max_w=12;
max_k=16;
var tab:array [1..max_w,1..max_k] of integer;
max: integer;
w,k: byte;
begin
{--- wprowadzanie danych---}
max:=tab [1,1];
for w:=1 to max_w do
for k:=1 to max_k do
if max<tab[w,k] then max:=tab [w,k];
{---dalsza część program np. wyświetlanie wyników---}
end.
7. PRZYKŁAD 4B- TABLICE
zadanie: znaleźć wartość minimalną
program minimalna_wartosc;
const max_w=12;
max_k=16;
var tab:array [1..max_w,1..max_k] of integer;
min: integer;
w,k: byte;
begin
{--- wprowadzanie danych---}
min:=tab [1,1];
for w:=1 to max_w do
for k:=1 to max_k do
if min>tab[w,k] then min:=tab [w,k];
{---dalsza część program np. wyświetlanie wyników---}
end.
8. PRZYKŁAD 5- TABLICE
zadanie: ile elementów jest większych od 0
program liczba_elementow_dodatnich;
const max_w=12;
max_k=16;
var tab:array [1..max_w,1..max_k] of integer;
ile_dodatnich: integer;
w,k: byte;
begin
{--- wprowadzanie danych---}
ile_dodatnich:=0;
for w:=1 to max_w do
for k:=1 to max_k do
if tab[w,k]>0 then ile_dodatnich:=ile_dodatnich+1;
{---dalsza część program np. wyświetlanie wyników---}
end.
9. PRZYKŁAD 6- TABLICE
zadanie: obliczyć sumę elementów macierzy
program suma_elementow;
const max_w=12;
max_k=16;
var tab:array [1..max_w,1..max_k] of integer;
suma: integer;
w,k: byte;
begin
{--- wprowadzanie danych---}
suma:=0;
for w:=1 to max_w do
for k:=1 to max_k do
if tab[w,k]>0 then suma:=suma+tab[w,k];
{---dalsza część program np. wyświetlanie wyników---}
end.
10. TYP NAPISOWY-STRING
wartości zmiennej napisowej można wprowadzić za pomocą READLN, READ;
wartości zmiennej napisowej można wprowadzić za pomocą WRITE, WRITELN;
11.
12. PRZYKŁAD1- STRING
zadanie: wprowadzanie i wyświetlanie wartości napisu
program wyswietlanko_1;
var s:string;
i:byte;
begin
write (`Wprowadź napis:',);
readln(s);
{-wersja 1-}
writeln (1. Wprowadzona wartość to:', s);
{-wersja 2-}
write (2. Wprowadzona wartość to:');
for i:=1 to length (s) do
write (s[i]);
writeln
end.
13. PRZYKŁAD 2-STRING
zadanie: wprowadzany napis wyświetlić dużymi literami
program wyswietlanko_2;
var s:string;
i:byte;
begin
write (`Wprowadź napis:',);
readln(s);
for i:=1 to length (s) do
if {s[i])>='a') and (s[i]<='z')
then write (UpCase (s[i]))
else write (s[i]);
end.
14. PRZYKŁAD 3- STRING
zadanie: zamienić w zapisie wszystkie litery na duże
program Zamiana;
var s,sp:string;
i:byte;
begin
write (`Wprowadź napis:',);
readln(s);
sp:='';
for i:=1 to length (s) do
if {s[i])>='a') and (s[i]<='z')
then sp:=sp+ UpCase (s[i])
else sp:=sp+s[i];
s:=sp
end.
15. DEFINIOWANE WŁASNEGO TYPU
Składnia:
TYPE
identyfikator_typu1=array[idp..idk] of typ;
identyfikator_typu2=array[id1p..id1k,…,idNp..idNk] of typ;
Np.
type tablica=array [1..10,'A'..'Z'] of real;
str20=string[20];
var tab: tablica;
napis:str20;
16.
k
w