Tytu³: Rekordy Wiadomo¶æ wys³ana przez: admin Luty 13, 2012, 10:20:53 W Pascalu istnieje mo¿liwo¶æ deklarowania w³asnych typów zmiennych.
Przyk³ad deklaracji nowego typu zmiennych o nazwie wycior bêd±cego tablic± 1000 elementow±. program aa; uses crt,dos; type wycior= array[1..1000] of real; var x,y,z:real; a:wycior; begin a[1]:=1; readkey; end. Tytu³: Odp: Rekordy Wiadomo¶æ wys³ana przez: admin Luty 13, 2012, 10:57:50 Przyk³ad 1. Zadeklarowaæ trzy typy zmiennych , bêd±ce typu tablicowego (tablice dwu i trój wymiarowe).
program ramzes; uses crt,dos; type bobo=array['A'..'F',1..10] of integer; aska=array[1..30] of byte; lobo= array['A'..'H',1..10,1..10] of byte; robo= array[1..10] of bobo; var x:integer; y:robo; begin clrscr; {y[1,1,1]:=6;} readkey; end. Tytu³: Odp: Rekordy Wiadomo¶æ wys³ana przez: admin Luty 13, 2012, 10:59:48 Przyk³ad 2. Proszê napisaæ program który do tablic: imie, nazwisko, wiek, ocena wczyta dane wpisywane z klawiatury. Program wykonaæ korzystaj±c z procedur.
program ramzes2; uses crt,dos; var imie: array[1..10] of string; nazwisko:array[1..10] of string; wiek:array[1..10] of byte; ocena:array[1..10] of byte; a,c,d:integer; procedure wpisz( var a:integer); begin write('Podaj imie: ');readln(imie[a]); write('Podaj nazwisko: ');readln(nazwisko[a]); write('Podaj wiek: ');readln(wiek[a]); write('Podaj ocene: ');readln(ocena[a]); end; procedure ktory; var x:integer; begin x:=0; repeat x:=x+1; wpisz(x); until x=4; end; procedure pokaz; var a,b:integer; begin for a:=1 to 4 do begin writeln('Imie: ',imie[a]); writeln('nazwisko: ',nazwisko[a]); writeln('wiek: ',wiek[a]); writeln('ocena: ',ocena[a]); writeln; end; end; begin clrscr; ktory; clrscr;delay(1000);pokaz; readkey; end. Tytu³: Odp: Rekordy Wiadomo¶æ wys³ana przez: admin Marzec 05, 2012, 08:20:42 Rekord -Typ rekordowy jest po³±czeniem kilku tabel pod wspólna nazw±.
Deklaracja zmiennej rekordowej ma postaæ: Nazwa zmiennej:record; Nazwa-pola:typ-pola; Nazwa pola :typ-pola; end; Przyk³ad deklaracji rekordu Program rekord1; uses crt,dos; type dane=record imie:string[15]; nazwisko:string[20]; plec:char; wiek:byte; dochody: single; miasto :string; end; var pracownik:dane; begin end. Tytu³: Odp: Rekordy Wiadomo¶æ wys³ana przez: admin Marzec 05, 2012, 09:25:04 Przyk³ad 1. Napisaæ program deklaruj±cy typ rekordowy i zmienn± pracownik typu rekordowego. Nastepnie wczytaæ do rekordu dane pracownika.
Program rekord1; uses crt,dos; type dane=record imie:string[15]; nazwisko:string[20]; plec:char; wiek:byte; dochody: single; miasto :string; end; var pracownik: dane; begin write('Podaj nazwisko pracownika:');readln(pracownik.nazwisko); end. Tytu³: Odp: Rekordy Wiadomo¶æ wys³ana przez: admin Marzec 05, 2012, 10:04:55 Przyk³ad 1A. Podobne do poprzedniego tylko z wszystkimi pytaniami.
Program rekord1; uses crt,dos; type dane=record imie:string[15]; nazwisko:string[20]; plec:char; wiek:byte; dochody: real; miasto :string; end; var pracownik: dane; begin clrscr; write('Podaj imie pracownika:');readln(pracownik.imie); write('Podaj nazwisko pracownika:');readln(pracownik.nazwisko); write('Podaj nazwisko plec:');readln(pracownik.plec); write('Podaj nazwisko plec:');readln(pracownik.wiek); write('Podaj nazwisko plec:');readln(pracownik.dochody); write('Podaj nazwisko plec:');readln(pracownik.miasto); readkey; end. Tytu³: Odp: Rekordy Wiadomo¶æ wys³ana przez: admin Marzec 05, 2012, 10:25:36 Przyk³ad 2. Rekordy gdy mamy kilku pracowników
Program rekord1; uses crt,dos; type dane=record imie:string[15]; nazwisko:string[20]; plec:char; wiek:byte; dochody: real; miasto :string; end; var pracownik: array[1..5] of dane; begin clrscr; write('Podaj imie pracownika:');readln(pracownik[1].imie); write('Podaj nazwisko pracownika:');readln(pracownik[1].nazwisko); write('Podaj nazwisko plec:');readln(pracownik[1].plec); write('Podaj nazwisko plec:');readln(pracownik[1].wiek); write('Podaj nazwisko plec:');readln(pracownik[1].dochody); write('Podaj nazwisko plec:');readln(pracownik[1].miasto); end. Tytu³: Odp: Rekordy Wiadomo¶æ wys³ana przez: admin Marzec 05, 2012, 10:29:00 Przyk³ad 3. Zmodyfikowaæ przyk³ad 2, tak aby mo¿na by³o wprowadziæ dane 5 pracowników. Ograniczyæ wprowadzanie do 3 pierwszych pól.
Program rekord1; uses crt,dos; type dane=record imie:string[15]; nazwisko:string[20]; plec:char; wiek:byte; dochody: real; miasto :string; end; var pracownik: array[1..5] of dane; a:byte; begin clrscr; for a:=1 to 5 do begin write('Podaj imie ',a,' pracownika:');readln(pracownik[a].imie); write('Podaj nazwisko ',a,' pracownika:');readln(pracownik[a].nazwisko); write('Podaj nazwisko plec:');readln(pracownik[a].plec); write('Podaj wiek:');readln(pracownik[a].wiek); write('Podaj dochody:');readln(pracownik[a].dochody); write('Podaj miasto:');readln(pracownik[a].miasto); end; readkey; end. Tytu³: Odp: Rekordy Wiadomo¶æ wys³ana przez: admin Marzec 12, 2012, 08:39:12 Zadanie 4. Zadeklarowaæ rekord o nazwie uczen zawieraj±cy pola : imie, nazwisko, data_urodzenia, miasto, ulica. Nastêpnie zadeklarowaæ zmienn± o nazwie baza bêd±c± tablic± ( dowolnej wielko¶ci) bêd±cej typu uczen.
program a; uses crt,dos; type uczen=record imie: string; nazwisko:string; dat_ur: word; miasto: string; ulica: string; end; var baza:array[1..10] of uczen; begin end. Tytu³: Odp: Rekordy Wiadomo¶æ wys³ana przez: admin Marzec 12, 2012, 10:23:28 Zadanie ze sprawdzianu, poniedzia³ek
program a; uses crt,dos; type dane=record imie: string; nazwisko:string; wiek:integer; plec:char; dochody:word; miasto: string; end; var pracownik:array[1..6] of dane; var a:integer; begin clrscr; for a:=1 to 6 do begin write('Podaj imie: ');readln(pracownik[a].imie); write('Podaj nazwisko: ');readln(pracownik[a].nazwisko); write('Podaj wiek: ');readln(pracownik[a].wiek); write('Podaj plec: ');readln(pracownik[a].plec); write('Podaj dochody: ');readln(pracownik[a].dochody); write('Podaj miasto: ');readln(pracownik[a].miasto); end; Tytu³: Odp: Rekordy Wiadomo¶æ wys³ana przez: admin Marzec 12, 2012, 11:07:29 Zadanie 6. Napisaæ program który deklaruje zmienn± cz³owiek, bêd±c± typu rekordowego. W rekordzie proszê zadeklarowaæ dwa pola: imie , masa_ciala. Zadeklarowaæ zmienn± rank bêd±c± typu czlowiek. W programie g³ównym napisaæ:
1. pêtlê wprowadzaj±c± dane do pól zmiennej rank. 2. Algorytm wyszukuj±cy osobê o najmniejszej masie cia³a i wy¶wietlaj±cy jego imiê i masê cia³a. program a6; uses crt,dos; type czlowiek=record imie: string; masa:real; end; var rank : array[1..4] of czlowiek; a,d:integer; c:real; begin clrscr; for a:=1 to 4 do begin write(a,'Podaj imie: ');readln(rank[a].imie); write(' Podaj mase ciala: ');readln(rank[a].masa); end; c:=rank[1].masa; for a:=1 to 4 do begin if (rank[a].masa<c) then begin c:=rank[a].masa; d:=a;end; end; writeln('Osoba o najmniejszej masie ciala to...',rank[d].imie,' o masie: ',rank[d].masa:0:1); readkey; end. ---------tak samo jak wy¿ej, tylko obliczenia w procedurze misio --------------------------- program a6; uses crt,dos; type czlowiek=record imie: string; masa:real; end; var rank : array[1..4] of czlowiek; a,d:integer; c:real; procedure misio;begin clrscr; for a:=1 to 4 do begin write(a,'Podaj imie: ');readln(rank[a].imie); write(' Podaj mase ciala: ');readln(rank[a].masa); end; c:=rank[1].masa; for a:=1 to 4 do begin if (rank[a].masa<c) then begin c:=rank[a].masa; b:=a;end; end; writeln('Osoba o najmniejszej masie ciala to...',rank[d].imie,' o masie: ',rank[d].masa:0:1); readkey; end; begin misio; end. Tytu³: Odp: Rekordy Wiadomo¶æ wys³ana przez: admin Marzec 26, 2012, 08:53:59 Napisaæ program który prosi o podanie nazwiska i oceny ucznia. Imie i nazwisko umieszczone ma zostaæ w rekordzie. Zadeklarowaæ tablicê rekordów sk³adaj±ca siê z 10 pól. Nastêpnie wprowadziæ zmienne (nazwisko, ocena). Wykorzystuj±c sortowanie uporz±dkowaæ uczniów w kolejno¶ci otrzymanych ocen.
program as; uses crt, dos; type uczen = record nazwisko: string; ocena: Byte; end; procedure Sort(var X: array of uczen); var Temp: uczen; i: Integer; zmiana: Boolean; begin repeat zmiana:= False; for i:= 0 to High(X) - 1 do if X.ocena < X[i + 1].ocena then begin Temp:= X; X:= X[i + 1]; X[i + 1]:= Temp; zmiana:= True; end; until not zmiana; end; var uczniowie: array [0 .. 9] of uczen; i: Integer; begin Writeln('Prosze podac nazwiska i oceny 10 uczniow'); for i:= 0 to High(uczniowie) do begin Write('Uczen #', i + 1, ' nazwisko : '); Readln(uczniowie.nazwisko); Write('uczen #', i + 1, ' ocena : '); Readln(uczniowie.ocena); Writeln; end; Sort(uczniowie); Writeln; Writeln('Oceny po sortowaniu: '); Writeln('----------------------'); for i:= 0 to High(uczniowie) do begin Writeln('# ', i + 1, ' ', uczniowie.nazwisko, ' otrzymal ocene (', uczniowie.ocena, ')'); end; Write('Nacisnij dowolny klawisz by wyjsc'); Readln; end. |