Wykład 07.12.2011
Identyfikator globalny – zdefiniowany (zadeklarowany) w bloku programu. Można je wykorzystać w całym tekście programu (z wyjątkami wynikającymi z „lokalności”).
Identyfikatory lokalne -
Program PROG; Var x:integer’ y:boolean; Procedure PROC; Var i:byte; X:char; Begin…end; {np. I:=12; x:=’S’; y:=true;} begin…end. {np: x:=-3 y:=true;} |
---|
Identyfikatory
Globalny : y
Lokalny : i
Globalny/Lokalny : x
2) Obszar działania identyfiaktora
Program A – obszar działania identyfikatora A,B,C,D,E,F
|
---|
Reguły związane z obszarami działania identyfikatorów:
Każdy identyfikator można użyć tylko w jego obszarze działania
Dowolny identyfikator może być zdefiniowany co najwyżej jeden raz w swoim obszarze działania.
3) Tablice dwuwymiarowe (nie obowiązują na kolokwium)
Zadanie: przydzielić nagrodę każdemu studentowi, którego średnia ocen jest większa od średniej dla całego roku.
Deklaracja tablicy dwu- i wielowymiarowej
Var T2: array [id1p..id1k] of Array [id2p..id2k] of typ; T2: array [id1p..id1k, id2p..id2k] of typ; |
---|
Przykłady:
Program Tablica_2B; Var tab: array [-5..3, 1..30 of real; |
---|
Zadanie: Wprowadzanie I wyświetlanie elementów tablicy dwuwymiarowej.
Program tablica2; Const max_w=20; max_k=15; Var tab2:array [1..max_w, 1..max_k] of integer; W,k:byte; {w-wiersz, k-kolumna} Begin {wprowadzanie danych tablicy} For w:=1 to max_w do For k:=1 to max_k do Begin writeln (‘Podaj element: ‘); Readln (tab2[w,k]) End; {wyświetlanie danych wierszami} For w:=1 to max_w do Begin For k:=1 to max_k do write(tab2[w,k]:8); Writeln End; End. |
---|
Zadanie2: Wyznaczanie wartości maxymalnej
Program Maksymalna_wartosc; Const max_w=12; max_k=16; Var tab2:array [1..max_w, 1..max_k] of integer; W,k:byte; {w-wiersz, k-kolumna} Max: integer; Begin {wprowadzanie danych tablicy} 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]; {zmieniamy znak na “>” aby znaleźć wartosc minilalna} |
---|
Zadanie3: Ile jest elementów większych od zera.
Program Ile_dodatnich Const max_w=12; max_k=16; Var tab2:array [1..max_w, 1..max_k] of integer; W,k:byte; Ile_dodatnich: integer; Begin Ile_dodatnich:=o; Fro 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ęść programu, wyświetlenie wyniku..} End. |
---|