admin
|
|
« : Kwiecień 04, 2011, 11:07:38 » |
|
W Pascalu istnieje możliwość deklarowania własnych typów zmiennych. Przykład deklaracji nowego typu zmiennych o nazwie marek będącego tablicą 1000 elementową.
program r7; uses crt,dos; type marek= array[1..1000] of real; var x,y,z:real; a:marek; begin a[1]:=1; readkey; end.
|
|
|
Zapisane
|
|
|
|
admin
|
|
« Odpowiedz #1 : Kwiecień 11, 2011, 07:25:22 » |
|
Przykład 2. Full wypas, wykorzystanie definicji typu
program rurka; uses crt,dos; type marta=array[1..10,1..10] of integer; malwina= array[1..10,1..10,1..10] of byte; miecio= array[1..10] of malwina; var a:integer; b:marta; begin clrscr; b[1,1]:=5; readkey; end.
|
|
|
Zapisane
|
|
|
|
admin
|
|
« Odpowiedz #2 : Kwiecień 11, 2011, 07:39:25 » |
|
Przykład 3. Zadeklarować typ tablicowy 10x10 o nazwie marta i wpisać do zmiennej b typu marta naprzemienne liczby 0 i 1. program rurka; uses crt,dos; type marta=array[1..10,1..10] of integer; malwina= array[1..10,1..10,1..10] of byte; miecio= array[1..10] of malwina; var a,c,d:integer; b:marta; begin clrscr;d:=0; for a:=1 to 10 do begin for c:=1 to 10 do begin d:=d+1;d:=d mod 2;b[a,c]:=d;end; end;
for a:=1 to 10 do begin writeln; for c:=1 to 10 do begin write(b[a,c]:3);end; end;
readkey; end.
|
|
|
Zapisane
|
|
|
|
admin
|
|
« Odpowiedz #3 : Kwiecień 11, 2011, 10:03:19 » |
|
Przykład 4. Proszę napisać program który do tablic: imie, nazwisko, wiek, ocena wczyta dane wpisywane z klawiatury. Program wykonać korzystając z procedur.
program rurka; 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.
|
|
« Ostatnia zmiana: Kwiecień 11, 2011, 10:58:31 wysłane przez admin »
|
Zapisane
|
|
|
|
admin
|
|
« Odpowiedz #4 : Kwiecień 11, 2011, 11:58:33 » |
|
program rurka; 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(a,' 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; procedure pokaz1; var a:integer; begin clrscr; write('Podaj ktory rekord wyswietlic(1-4): ');readln(a); writeln('Imie: ',imie[a]); writeln('nazwisko: ',nazwisko[a]); writeln('wiek: ',wiek[a]); writeln('ocena: ',ocena[a]); writeln; end;
begin clrscr; ktory; clrscr;delay(1000);pokaz1; readkey; end.
|
|
|
Zapisane
|
|
|
|
admin
|
|
« Odpowiedz #5 : Kwiecień 18, 2011, 07:24:09 » |
|
Zadanie 5. Program zbudowany jeszcze na tablicach, tworzy prosta bazę danych. W bazie danych zmienną porządkująca jest zmienna ktory (pełni funkcję ID). Do bazy mamy możliwość wpisywania danych i wyświetlania dowolnego rekordu.
program baza1; Uses crt,dos;
Var Imie,nazwisko,telefon:array[1..50] of string; c,c2:char; ktory:byte; t:byte;
PROCEDURE Wprowadz; Begin ClrScr; ktory:=ktory+1; Write('Imie : '); ReadLn( imie[ktory] ); Write('Nazwisko : '); ReadLn( nazwisko[ktory] ); Write('Telefon : '); ReadLn( telefon[ktory] ); End;
PROCEDURE Wyswietl; Begin ClrScr; Write('Numer wpisu ? (1..', ktory ,') :'); ReadLn(t); WriteLn('Imie : ',imie[t] ); WriteLn('Nazwisko : ',nazwisko[t] ); WriteLn('Telefon : ',telefon[t] ); WriteLn; Write('Wcisnij jakis klawisz...'); c2:=readkey; End; procedure poczatek; Begin ktory:=0; Repeat ClrScr; Write('1. Nowy wpis 2. Wyswietlenie wpisu 3.Koniec programu : '); Repeat c:=readkey; Until (c='1') OR (c='2') OR (c='3'); If c='1' Then Wprowadz; If c='2' Then Wyswietl; Until c='3'; end; begin poczatek; End.
|
|
« Ostatnia zmiana: Kwiecień 18, 2011, 09:35:16 wysłane przez admin »
|
Zapisane
|
|
|
|
admin
|
|
« Odpowiedz #6 : Kwiecień 18, 2011, 08:06:47 » |
|
Rekordy: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 zastosowania program a2; uses dos,crt; type student =record nazwisko: string[25]; imie:string[20]; ocena: integer; grupa:string[3]; end;
|
|
|
Zapisane
|
|
|
|
admin
|
|
« Odpowiedz #7 : Kwiecień 18, 2011, 08:23:23 » |
|
Przykład 6. Baza studentów wykorzystująca rekordy.
program a2; uses dos,crt; type student =record nazwisko: string[25]; imie:string[20]; ocena: integer; grupa:string[3]; end; var dane: array[1..5] of student; v:integer; procedure odczytaj; begin for v:=1 to 5 do begin writeln('wiersz nr: ',v); writeln('podaj nazwisko /25/'); readln(dane[v].nazwisko); writeln('podaj imie /20/'); readln(dane[v].imie); writeln('podaj ocene /int/'); readln(dane[v].ocena); writeln('podaj grupe /3/'); readln(dane[v].grupa); end; end; procedure wyswietl; var v:integer; begin for v:=1 to 5 do begin with dane[v] do begin writeln('Nazwisko: ',nazwisko); writeln('Imie: ',imie); writeln('Grupa: ',grupa); writeln('Ocena: ',ocena); end; end; end; begin clrscr; odczytaj; clrscr; wyswietl; readkey; end.
|
|
« Ostatnia zmiana: Kwiecień 18, 2011, 08:25:20 wysłane przez admin »
|
Zapisane
|
|
|
|
admin
|
|
« Odpowiedz #8 : Kwiecień 18, 2011, 12:16:12 » |
|
Program Leniak;
program zyzio; uses crt,dos; type pies=record imie: string; wiek:integer; masa:byte; dlugosc:byte; end; var dziamdziak: array[1..5] of pies; x:integer;
begin x:=0; repeat x:=x+1; write(x,' Rekord zwany rowniez krotka, to pozioma struktura danych okreslajaca jedn obiekt'); writeln( 'Rekord sklada sie z pol opisujece dokladnie cech obiektu '); delay(100);
until keypressed;
end.
|
|
« Ostatnia zmiana: Kwiecień 18, 2011, 12:19:34 wysłane przez admin »
|
Zapisane
|
|
|
|
admin
|
|
« Odpowiedz #9 : Maj 23, 2011, 07:57:10 » |
|
Zadanie XXL. Proszę napisać program w którym zostaną zadeklarowane dwa różne typy rekordowe. Pierwszy o nazwie miasto składający się z pól: nazwa,imie_burmistrza, nazwisko_burmistrza, wiek, liczba_mieszkancow, kod_pocztowy Drugi o nazwie mieszkaniec, składający się z pól: imie, nazwisko, miasto, ulica, nr_domu, plec. W programie umieścić zmienne : miasto1 tablica 10 elementowa typu miasto ; obywatel tablica 5 elementowa typu mieszkaniec. (2)
Napisać procedurę wprowadzająca dane do zmiennych miasto1, obywatel. W procedura powinna zadawać pytanie o kontynuację dalszego wprowadzania danych. (3) Napisać procedurę wyświetlania dowolnego rekordu z zmiennej miasto1 lub obywatel. (4) Napisać procedurę wyszukiwania rekordów o tych samych polach. Np. szukamy wszystkich osób którzy noszą imie np. Zenon. (5)
program sprawdzian; uses crt,dos; type miasto=record imie_b:string; nazwisko_b:string; nazwa:string; wiek:byte; liczba_mieszkancow:longint; kod_pocztowy:string;
end; mieszkaniec=record imie:string; nazwisko:string; miasto:string; ulica:string; nr: string; plec:char; end; var miasto1 :array[1..10] of miasto; obywatel : array[1..5] of mieszkaniec; z:byte; y:char;
procedure wprowadz1; begin z:=1;clrscr; repeat write('podaj nazwe miasta: ');readln(miasto1[z].nazwa); write('podaj imie burmistrza: ');readln(miasto1[z].imie_b); write('podaj nazwisko burmistrza: ');readln(miasto1[z].nazwisko_b); write('podaj liczbe mieszkancow miasta: ');readln(miasto1[z].liczba_mieszkancow); write('podaj kod pocztowy miasta: ');readln(miasto1[z].kod_pocztowy); writeln('Czy chcesz dalej wprowadzac:'); y:=readkey; z:=z+1; until ((y='N') or (y='n') or (z=11) ); end;
begin clrscr; wprowadz1; end.
|
|
« Ostatnia zmiana: Maj 23, 2011, 10:17:14 wysłane przez admin »
|
Zapisane
|
|
|
|
|