admin
|
|
« : Grudzieñ 13, 2010, 11:44:24 » |
|
Tablica jest pewn± struktur±, któr± mo¿na znale¼æ praktycznie w ka¿dym jêzyku programowania. Tablicê mo¿na sobie wyobraziæ jako szafê z szufladami. Do ka¿dej szuflady mo¿na w³o¿yæ okre¶lony typ zmiennej. Aby mo¿na by³o dotrzeæ do ka¿dej danej w szufladzie, szuflady s± ponumerowane. Numer szuflady pozwala j± ³atwo odszukaæ. Ka¿da tablica musi posiadaæ nazwê i liczbê komórek (czyli szuflad).
W przypadku Turbo Pascala deklaracja tablicy umieszczona jest w miejscu deklarowania zmiennych i wygl±da nastêpuj±co:
var tabliczka: array[1..10] of integer;nazw± tablicy jest tabliczka która posiada rozmiar 10 i mo¿na w niej umie¶ciæ liczby typu integer.Tablicê przedstawion± powy¿ej nazywamy tablic± jednowymiarow±. Jest to tablica z jednym rzêdem szuflad. Je¿eli chcemy wpisaæ warto¶æ do tablicy nale¿y wpisaæ np.: tabliczka[4]:=x;to do komórki (szuflady) o numerze 4 tablicy o nazwie tabliczka zostanie wpisana liczba x; Je¿eli musimy przechowaæ wiêcej danych tworzymy tablice dwu i wiêcej wymiarowych. Przyk³ad deklaracji tablicy dwu wymiarowej przedstawiono poni¿ej: var tabliczka: array[1..10,1..10] of integer;program storm; uses crt,dos; var tab: array[1..5] of integer;
begin tab[1]:=5; end.
|
|
« Ostatnia zmiana: Listopad 28, 2011, 10:50:39 wys³ane przez admin »
|
Zapisane
|
|
|
|
admin
|
|
« Odpowiedz #1 : Grudzieñ 13, 2010, 12:06:08 » |
|
Zadanie 1. Proszê napisaæ program który do tablicy wpisze podane z klawiatury 5 imion i nastêpnie wy¶wietli je na ekranie.
program tabl; uses crt,dos; var z: array[1..5] of string; v:integer; begin clrscr; for v:=1 to 5 do begin write('Podaj ',v,' imie: ');readln(z[v]); end; readkey; for v:=1 to 5 do begin writeln('Podales ',v,' imie: ',z[v]); end; readln; end.
|
|
« Ostatnia zmiana: Grudzieñ 13, 2010, 12:07:48 wys³ane przez admin »
|
Zapisane
|
|
|
|
admin
|
|
« Odpowiedz #2 : Grudzieñ 20, 2010, 11:01:38 » |
|
Zadanie 2. Prosty matrix na tablicy. W programie do tablicy dopisywany jest pierwszy wiersz. Tablica jest nastêpnie wy¶wietlana cyklicznie. powoduje to z³udzenie przesuwania siê na ekranie wierszy do do³u. Wprowadzenie spacji umo¿liwia przerwanie ci±gu znaków.
program misi; uses crt,dos; var x,y,z:byte; tab3:array[1..39,1..20] of byte; tab4:array[1..39,1..20] of byte; tab5:array[1..39,1..20] of byte; tab6:array[1..39,1..20] of byte; begin randomize; clrscr;
for y:=1 to 20 do begin for x:=1 to 39 do begin tab3[x,y]:=48+random(11);end; end;
for y:=1 to 20 do begin writeln; for x:=1 to 39 do begin tab5[x,y]:=tab3[x,y]; if tab3[x,y]=58 then write( chr(32):2) else write( chr(tab3[x,y]):2); end;end;
repeat delay(100);clrscr; for y:=1 to 20 do begin for x:=1 to 39 do begin if y=1 then begin tab4[x,y]:=48+random(12);tab6[x,y]:=random(10);end else begin tab4[x,y]:=tab3[x,y-1];tab6[x,y]:=tab5[x,y-1];end; end; end;
for y:=1 to 20 do begin for x:=1 to 39 do begin tab3[x,y]:=tab4[x,y]; gotoxy(2*x,y);textcolor(green);
if (tab3[x,y]=58) or(tab3[x,y]=59) then write( chr(32)) else write( chr(tab3[x,y])); end;end; until keypressed; readkey; end.
|
|
|
Zapisane
|
|
|
|
admin
|
|
« Odpowiedz #3 : Styczeñ 03, 2011, 09:35:08 » |
|
Zadanie 3. Proszê napisaæ program w którym zostan± zadeklarowane dwie tablice 10x10. Do ka¿dej tablicy nale¿y wpisaæ same 0. Nastêpnie wy¶wietliæ je na ekranie.
----------------------------------Nowe ----------------------------------------- program tab_3; uses crt,dos; var tab1: array[1..10,1..10] of byte; tab2: array[1..10,1..10] of byte; x,y: byte; begin clrscr; for x:=1 to 10 do begin for y:=1 to 10 do begin tab1[x,y]:=0; tab2[x,y]:=0; end;end;
gotoxy(5,5); write('Tablica 1'); for x:=1 to 10 do begin for y:=1 to 10 do begin gotoxy(5+x,5+y); write(tab1[x,y]) end;end;
gotoxy(20,5); write('Tablica 2'); for x:=1 to 10 do begin for y:=1 to 10 do begin gotoxy(20+x,5+y); write(tab2[x,y]) end;end;
readkey; end.
|
|
« Ostatnia zmiana: Styczeñ 03, 2011, 09:49:48 wys³ane przez admin »
|
Zapisane
|
|
|
|
admin
|
|
« Odpowiedz #4 : Styczeñ 03, 2011, 10:41:51 » |
|
Zadanie 4. Utworzyæ dwie tablice 10x10. Do ka¿dej z tablic wpisaæ liczby 0. Wy¶wietlaæ naprzemiennie jedn± tablicê w kolorze czerwonym drug± w bia³ym.
program tab_3; uses crt,dos; var tab1: array[1..10,1..10] of byte; tab2: array[1..10,1..10] of byte; x,y: byte; begin clrscr; for x:=1 to 10 do begin for y:=1 to 10 do begin tab1[x,y]:=0; tab2[x,y]:=0; end;end;
repeat clrscr; textcolor(white); gotoxy(5,5); write('Tablica 1'); for x:=1 to 10 do begin for y:=1 to 10 do begin gotoxy(5+x,5+y); write(tab1[x,y]) end;end; delay(200); clrscr; textcolor(red); gotoxy(20,5); write('Tablica 2'); for x:=1 to 10 do begin for y:=1 to 10 do begin gotoxy(20+x,5+y); write(tab2[x,y]) end;end; delay(200); until keypressed;
readkey; end.
|
|
« Ostatnia zmiana: Styczeñ 03, 2011, 10:49:30 wys³ane przez admin »
|
Zapisane
|
|
|
|
admin
|
|
« Odpowiedz #5 : Styczeñ 03, 2011, 11:04:28 » |
|
Zadanie 5. Dwie tabelki z poprzedniego zadania, s± ca³y czas widoczne tylko zmieniaj± siê naprzemiennie ich kolory.
program tab_5; uses crt,dos; var tab1: array[1..10,1..10] of byte; tab2: array[1..10,1..10] of byte; x,y,a: byte; begin clrscr; for x:=1 to 10 do begin for y:=1 to 10 do begin tab1[x,y]:=0; tab2[x,y]:=0; end;end; a:=0; repeat if a=0 then textcolor(white) else textcolor(red) ; gotoxy(5,5); write('Tablica 1'); for x:=1 to 10 do begin for y:=1 to 10 do begin gotoxy(5+x,5+y); write(tab1[x,y]) end;end; if a=0 then textcolor(red) else textcolor(white) ; gotoxy(20,5); write('Tablica 2'); for x:=1 to 10 do begin for y:=1 to 10 do begin gotoxy(20+x,5+y); write(tab2[x,y]) end;end; delay(200); a:=(a+1)mod 2; until keypressed;
readkey; end. --------------------------------NOWE -------------------------------- program tab_3; uses crt,dos; var tab1: array[1..10,1..10] of byte; tab2: array[1..10,1..10] of byte; x,y,a: byte; begin clrscr; for x:=1 to 10 do begin for y:=1 to 10 do begin tab1[x,y]:=0; tab2[x,y]:=0; end;end; a:=0; repeat if a=0 then textcolor(white) else textcolor(red) ; gotoxy(5,5); write('Tablica 1'); for x:=1 to 10 do begin for y:=1 to 10 do begin gotoxy(5+x,5+y); write(tab1[x,y]) end;end; delay(100); if a=0 then textcolor(red) else textcolor(white) ; gotoxy(5,5); write('Tablica 2'); for x:=1 to 10 do begin for y:=1 to 10 do begin gotoxy(5+x,5+y); write(tab2[x,y]) end;end; delay(100); a:=(a+1)mod 2; until keypressed;
readkey; end.
|
|
« Ostatnia zmiana: Styczeñ 03, 2011, 11:31:06 wys³ane przez admin »
|
Zapisane
|
|
|
|
admin
|
|
« Odpowiedz #6 : Styczeñ 03, 2011, 11:34:04 » |
|
Zadanie 6. Program z zadania 5 przerobiæ tak, aby do tablic wpisywany by³ znak o kodzie ASCII wynosz±cym 178.
program tab_6; uses crt,dos; var tab1: array[1..10,1..10] of char; tab2: array[1..10,1..10] of char; x,y,a: byte; begin clrscr; for x:=1 to 10 do begin for y:=1 to 10 do begin tab1[x,y]:=chr(178); tab2[x,y]:=chr(178); end;end; a:=0; repeat if a=0 then textcolor(white) else textcolor(red) ; gotoxy(5,5); write('Tablica 1'); for x:=1 to 10 do begin for y:=1 to 10 do begin gotoxy(5+x,5+y); write(tab1[x,y]) end;end; delay(100); if a=0 then textcolor(red) else textcolor(white) ; gotoxy(5,5); write('Tablica 2'); for x:=1 to 10 do begin for y:=1 to 10 do begin gotoxy(5+x,5+y); write(tab2[x,y]) end;end; delay(100); a:=(a+1)mod 2; until keypressed;
readkey; end.
|
|
« Ostatnia zmiana: Styczeñ 03, 2011, 11:48:23 wys³ane przez admin »
|
Zapisane
|
|
|
|
admin
|
|
« Odpowiedz #7 : Styczeñ 03, 2011, 12:33:45 » |
|
Zadanie 7. Program wykorzystuj±cy tablice jako macierz znakow±. Napisany program wy¶wietla du¿± cyfrê 2.
program tab_6; uses crt,dos; var tab1: array[1..10,1..10] of char; tab2: array[1..10,1..10] of char; x,y,a: byte; begin clrscr; for x:=1 to 10 do begin for y:=1 to 10 do begin tab1[x,y]:=' '; tab2[x,y]:=' '; end;end; tab1[3,4]:=chr(178);tab1[4,3]:=chr(178);tab1[5,3]:=chr(178);tab1[6,3]:=chr(178); tab1[7,4]:=chr(178);tab1[7,5]:=chr(178);tab1[7,6]:=chr(178);tab1[6,7]:=chr(178); tab1[5,8]:=chr(178);tab1[4,9]:=chr(178);tab1[3,10]:=chr(178);tab1[4,10]:=chr(178); tab1[4,10]:=chr(178);tab1[5,10]:=chr(178);tab1[6,10]:=chr(178);tab1[7,10]:=chr(178);
a:=0; repeat textcolor(white); gotoxy(5,5); write('Tablica 1'); for x:=1 to 10 do begin for y:=1 to 10 do begin gotoxy(5+x,5+y); write(tab1[x,y]) end;end; delay(300);
gotoxy(5,5); write('Tablica 2'); for x:=1 to 10 do begin for y:=1 to 10 do begin gotoxy(5+x,5+y); write(tab2[x,y]) end;end; delay(300); until keypressed;
readkey; end.
|
|
|
Zapisane
|
|
|
|
admin
|
|
« Odpowiedz #8 : Styczeñ 03, 2011, 12:54:38 » |
|
Zadanie 8. Wy¶wietlane s± naprzemiennie du¿e cyfry 1 i 2.
program tab_6_2; uses crt,dos; var tab1: array[1..10,1..10] of char; tab2: array[1..10,1..10] of char; x,y,a: byte; begin clrscr; for x:=1 to 10 do begin for y:=1 to 10 do begin tab1[x,y]:=' '; tab2[x,y]:=' '; end;end; tab1[3,4]:=chr(178);tab1[4,3]:=chr(178);tab1[5,3]:=chr(178);tab1[6,3]:=chr(178); tab1[7,4]:=chr(178);tab1[7,5]:=chr(178);tab1[7,6]:=chr(178);tab1[6,7]:=chr(178); tab1[5,8]:=chr(178);tab1[4,9]:=chr(178);tab1[3,10]:=chr(178);tab1[4,10]:=chr(178); tab1[4,10]:=chr(178);tab1[5,10]:=chr(178);tab1[6,10]:=chr(178);tab1[7,10]:=chr(178);
tab2[3,6]:=chr(178);tab2[4,5]:=chr(178);tab2[5,4]:=chr(178);tab2[6,3]:=chr(178); tab2[6,4]:=chr(178);tab2[6,5]:=chr(178);tab2[6,6]:=chr(178);tab2[6,7]:=chr(178); tab2[6,8]:=chr(178);tab2[6,9]:=chr(178);tab2[6,10]:=chr(178); tab2[7,4]:=chr(178);tab2[7,5]:=chr(178);tab2[7,6]:=chr(178);tab2[7,7]:=chr(178); tab2[7,8]:=chr(178);tab2[7,9]:=chr(178);tab2[7,10]:=chr(178);tab2[7,3]:=chr(178); a:=0; repeat textcolor(white); gotoxy(5,5); write('Tablica 1'); for x:=1 to 10 do begin for y:=1 to 10 do begin gotoxy(5+x,5+y); write(tab1[x,y]) end;end; delay(500);
gotoxy(5,5); write('Tablica 2'); for x:=1 to 10 do begin for y:=1 to 10 do begin gotoxy(5+x,5+y); write(tab2[x,y]) end;end; delay(500); until keypressed;
readkey; end.
|
|
|
Zapisane
|
|
|
|
admin
|
|
« Odpowiedz #9 : Styczeñ 03, 2011, 13:13:15 » |
|
Zadanie 9. Modyfikacja liczby 2.
program tab_6; uses crt,dos; var tab1: array[1..10,1..10] of char; tab2: array[1..10,1..10] of char; x,y,a: byte; begin clrscr; for x:=1 to 10 do begin for y:=1 to 10 do begin tab1[x,y]:=' '; tab2[x,y]:=' '; end;end; tab1[3,4]:=chr(178);tab1[4,3]:=chr(178);tab1[5,3]:=chr(178);tab1[6,3]:=chr(178); tab1[7,4]:=chr(178);tab1[7,5]:=chr(178);tab1[7,6]:=chr(178);tab1[6,7]:=chr(178); tab1[5,8]:=chr(178);tab1[4,9]:=chr(178);tab1[3,10]:=chr(178);tab1[4,10]:=chr(178); tab1[4,10]:=chr(178);tab1[5,10]:=chr(178);tab1[6,10]:=chr(178);tab1[7,10]:=chr(178);
tab2[3,6]:=chr(178);tab2[4,5]:=chr(178);tab2[5,4]:=chr(178);tab2[6,3]:=chr(178); tab2[6,4]:=chr(178);tab2[6,5]:=chr(178);tab2[6,6]:=chr(178);tab2[6,7]:=chr(178); tab2[6,8]:=chr(178);tab2[6,9]:=chr(178);tab2[6,10]:=chr(178); tab2[7,4]:=chr(178);tab2[7,5]:=chr(178);tab2[7,6]:=chr(178);tab2[7,7]:=chr(178); tab2[7,8]:=chr(178);tab2[7,9]:=chr(178);tab2[7,10]:=chr(178);tab2[7,3]:=chr(178); a:=0; repeat textcolor(white); gotoxy(5,5); write('Tablica 1'); for x:=1 to 10 do begin for y:=1 to 10 do begin gotoxy(15-x,5+y); write(tab1[x,y]) end;end; delay(500);
for x:=1 to 10 do begin for y:=1 to 10 do begin gotoxy(x+5,5+y); write(tab1[x,y]) end;end; delay(500);
for x:=1 to 10 do begin for y:=1 to 10 do begin gotoxy(x+5,18-y); write(tab1[x,y]) end;end; delay(500);
gotoxy(5,5); write('Tablica 2'); for x:=1 to 10 do begin for y:=1 to 10 do begin gotoxy(5+x,5+y); write(tab2[x,y]) end;end; delay(500);
for x:=1 to 10 do begin for y:=1 to 10 do begin gotoxy(15-x,5+y); write(tab2[x,y]) end;end; delay(500);
until keypressed;
readkey; end.
|
|
|
Zapisane
|
|
|
|
admin
|
|
« Odpowiedz #10 : Styczeñ 10, 2011, 09:11:29 » |
|
Zadanie X. Napisaæ program który do tablicy o nazwie A wpisze 10 liczb od 1 do 10. Nastêpnie do tablicy B przepisze liczby z tablicy A powiêkszone o 3. -------------------------Rozwi±zanie ----------------------------------- program X1; uses crt,dos; var A:array[1..10] of byte; B:array[1..10] of byte; z:byte;
begin
for z:=1 to 10 do begin A[z]:=z; end;
for z:=1 to 10 do begin B[z]:=A[z]+3; end; end. ----------------------------------Koniec---------------------------------------- Zadanie XX. Napisaæ program który do tablic imie , nazwisko wczyta podane z klawiatury 7 imion i nazwisk. Nastêpnie poprosi o podanie liczby i po jej podaniu wy¶wietli imie i nazwisko ukryte w odpowiedniej komórce tabel : imie, nazwisko. ---------------------------------Pocz±tek ------------------------------------------------ program XX1; uses crt,dos; var imie:array[1..7] of string; nazwisko :array[1..7] of string; z:byte;
begin clrscr; for x:=1 to 7 do begin
write('Podaj ',z,' imie: ');readln(imie[z]); write('Podaj ',z,' nazwisko: ');readln(nazwisko[z]); end; write('Podaj liczbe: ');readln(z); write(imie[z],' ',nazwisko[z]);
readkey; end. -----------------------------Koniec-------------------------------------------
|
|
« Ostatnia zmiana: Styczeñ 10, 2011, 10:51:48 wys³ane przez admin »
|
Zapisane
|
|
|
|
admin
|
|
« Odpowiedz #11 : Styczeñ 17, 2011, 08:50:27 » |
|
Zadanie 10. Napisaæ program w którym zadeklarowano tablicê A, B o wymiarach 10x10. Do tablicy A proszê wpisaæ literê A na g³ównej przek±tnej, do tablicy B litery A w dwóch przek±tnych. Pozosta³e miejsca maj± zostaæ zape³nione znakiem 0 (zero). -------------------------------------Rozwi±zanie--------------------------------------------------- program tablica; uses crt,dos; var x,y,z:byte; A: array[1..10,1..10] of char; B: array[1..10,1..10] of char; begin clrscr; for x:=1 to 10 do begin for y:=1 to 10 do begin if (x=y) then A[x,y]:='A' else A[x,y]:='0'; if (x=y) or (x=11-y) then B[x,y]:='A' else B[x,y]:='0'; end;end;
for x:=1 to 10 do begin writeln; for y:=1 to 10 do begin write(A[x,y]:2); end;end; readkey; clrscr; for x:=1 to 10 do begin writeln; for y:=1 to 10 do begin write(B[x,y]:2); end;end; readkey; end.
|
|
« Ostatnia zmiana: Styczeñ 17, 2011, 09:03:46 wys³ane przez admin »
|
Zapisane
|
|
|
|
admin
|
|
« Odpowiedz #12 : Styczeñ 17, 2011, 12:34:43 » |
|
Zadanie 11, z dwiema literkami.
program e; uses crt, dos; var x,y:byte; A: array[1..10,1..10] of byte; B: array[1..10,1..10] of byte; begin clrscr; for x:=1 to 10 do begin for y:=1 to 10 do begin A[x,y]:=0;end;end; A[2,2]:=1; A[3,2]:=1; A[4,2]:=1; A[5,2]:=1; A[5,3]:=1; A[5,4]:=1; A[4,5]:=1; A[3,6]:=1; A[2,7]:=1; A[3,7]:=1; A[4,7]:=1; A[5,7]:=1; for x:=1 to 10 do begin for y:=1 to 10 do begin B[x,y]:=0;end;end; B[4,1]:=1; B[5,1]:=1; B[6,1]:=1;B[7,1]:=1; B[4,2]:=1; B[4,3]:=1; B[4,4]:=1; B[5,4]:=1; B[6,4]:=1; B[7,4]:=1; B[8,5]:=1; B[8,6]:=1; B[8,7]:=1; B[8,8]:=1; B[7,9]:=1; B[6,10]:=1; B[5,10]:=1; B[4,10]:=1;
for y:=1 to 10 do begin writeln; for x:=1 to 10 do begin if A[x,y]=1 then begin gotoxy(35+x,y+10);write(chr(178));end; end;end;
readkey; clrscr; for y:=1 to 10 do begin writeln; for x:=1 to 10 do begin if B[x,y]=1 then begin gotoxy(35+x,y+10);write(chr(178));end; end;end;
readkey; end.
|
|
|
Zapisane
|
|
|
|
admin
|
|
« Odpowiedz #13 : Styczeñ 17, 2011, 13:06:27 » |
|
program e; uses crt, dos; var x,y:byte; A: array[1..10,1..10] of byte; B: array[1..10,1..10] of byte; begin clrscr; for x:=1 to 10 do begin for y:=1 to 10 do begin A[x,y]:=0;end;end; A[2,2]:=1; A[3,2]:=1; A[4,2]:=1; A[5,2]:=1; A[5,3]:=1; A[5,4]:=1; A[4,5]:=1; A[3,6]:=1; A[2,7]:=1; A[3,7]:=1; A[4,7]:=1; A[5,7]:=1; for x:=1 to 10 do begin for y:=1 to 10 do begin B[x,y]:=0;end;end; B[4,1]:=1; B[5,1]:=1; B[6,1]:=1;B[7,1]:=1; B[4,2]:=1; B[4,3]:=1; B[4,4]:=1; B[5,4]:=1; B[6,4]:=1; B[7,4]:=1; B[8,5]:=1; B[8,6]:=1; B[8,7]:=1; B[8,8]:=1; B[7,9]:=1; B[6,10]:=1; B[5,10]:=1; B[4,10]:=1; repeat clrscr; for y:=1 to 10 do begin for x:=1 to 10 do begin if A[x,y]=1 then begin gotoxy(35+x,y+10);write(chr(178));end; end;end;
delay(100);clrscr; for y:=1 to 10 do begin for x:=1 to 10 do begin if B[x,y]=1 then begin gotoxy(35+x,y+10);write(chr(178));end; end;end; delay(100); until keypressed; readkey; end.
|
|
|
Zapisane
|
|
|
|
admin
|
|
« Odpowiedz #14 : Styczeñ 24, 2011, 08:33:44 » |
|
program rysiu; uses crt,dos; var n: array[1..8,1..8] of byte; h:array[1..8,1..8] of byte; begin end. --------------------------------- Wersja rozwojowa------------------------------------------- program rysiu; uses crt,dos; var n: array[1..8,1..8] of byte; h:array[1..8,1..8] of byte; x,y: byte; begin for y:=1 to 8 do begin n[1,y]:=1;n[6,y]:=1; h[1,y]:=1;h[5,y]:=1;end; n[2,2]:=1;n[3,3]:=1;n[4,4]:=1; n[4,5]:=1;n[4,6]:=1;n[5,7]:=1; for x:=1 to 5 do h[x,4]:=1;
repeat for y:=1 to 8 do begin for x:=1 to 8 do begin gotoxy(10+x,1+y); if(n[x,y]=1) then write(chr(178)) else write(chr(32));end;end; delay(200); clrscr;
for y:=1 to 8 do begin for x:=1 to 8 do begin gotoxy(50+x,1+y); if(h[x,y]=1) then write(chr(178)) else write(chr(32));end;end; delay(200); clrscr;
until keypressed; readkey; end.
|
|
« Ostatnia zmiana: Styczeñ 24, 2011, 09:38:39 wys³ane przez admin »
|
Zapisane
|
|
|
|
|