admin
|
 |
« : Listopad 07, 2011, 11:50:37 » |
|
WstĂŞp czyli rozwaÂżania wprowadzajÂące. W pamiĂŞci komputera znak graficzny jakim jest litera lub cyfra reprezentowany jest w postaci liczby. Inaczej mĂłwiÂąc w pamiĂŞci komputera wraz z Âładowaniem systemu wczytywana jest tablica znakĂłw (liter, cyfr i znakĂłw specjalnych). JeÂżeli w poleceniu wypisania na ekranie uÂżyjemy np. write('A'), to wydrukowana zostanie oczywiÂście litera "A" bez wnikania w tablicĂŞ znakĂłw. Dlaczego tak siĂŞ dzieje? WciskajÂąc klawisz na klawiaturze wysÂłany zostaje do pamiĂŞci kod wciÂśniĂŞtego klawisza (jest to wÂłaÂśnie kod ASCII), po odszukaniu w pamiĂŞci odpowiadajÂącej danej wartoÂści kodu znaku, zostanie on wydrukowany na ekranie. Gorzej jest, jeÂżeli zaÂżyczymy wydrukowania znaku ktĂłrego nie ma na klawiaturze. Wtedy naleÂży posÂłuÂżyĂŚ siĂŞ bezpoÂśrednim dostĂŞpem do znakĂłw wÂłaÂśnie przez przesÂłanie do systemu kodu ASCII odpowiadajÂącego danemu znakowi.
Jak w Pascalu wyÂświetliĂŚ znak jeÂżeli znamy jego kod ASCII ? Odczytanie znaku oznaczonej w tablicy kodĂłw ASCII jako x jest moÂżliwe dziĂŞki poleceniu Chr(x);
Np. w tablicy ASCII znakowi 'A' odpowiada liczba = 65, a znakowi 'a' liczba = 97. Je¿eli w programie wpiszê polecenie: writeln(chr(65)); to na ekranie powinna pojawiÌ siê litera 'A'. Dziêki poleceniu chr(x) istnieje mo¿liwoœÌ wyœwietlania znaków niedostêpnych bezpoœrednio z klawiatury. Do takich znaków mo¿na zaliczyÌ znaki: Enter - chr(13), Backspace - chr(Spoko; Escape -chr(27). Funkcj¹ odwrotn¹ do chr() jest funkcja ord(x); wprowadzenie polecenia write(ord('A')) wyœwietla kod przyporz¹dkowany w tabeli kodów ASCII literze A czyli 65.
|
|
« Ostatnia zmiana: Listopad 07, 2011, 12:02:26 wysłane przez admin »
|
Zapisane
|
|
|
|
admin
|
 |
« Odpowiedz #1 : Listopad 07, 2011, 12:21:53 » |
|
Zadanie 1. W¹tpliwoœÌ. NapisaÌ program który bêdzie wyœwietla³ kody ASCII wciœniêtych klawiszy. Wyjœcie z pêtli za pomoc¹ klawisza: 'ESCAPE'. .
Program Glodna_aska; uses crt,dos; var a,b,z,w:word; c:char; begin clrscr; a:=0; repeat a:=a+1; write(a:5); c:=readkey; writeln(' ',ord(c)); until c=(chr(27));
end.
|
|
|
Zapisane
|
|
|
|
admin
|
 |
« Odpowiedz #2 : Listopad 07, 2011, 13:07:08 » |
|
program rambler; uses crt,dos; var x,y,a,b: word; c:char; begin y:=2; a:=1;c:=chr(219); repeat y:=y+a; gotoxy(30,y); write(c);delay(100); clrscr; if (y=1) or (y=20) then a:=-a;
until keypressed; end.
|
|
|
Zapisane
|
|
|
|
admin
|
 |
« Odpowiedz #3 : Listopad 21, 2011, 08:19:31 » |
|
Zadanie 2. ProszĂŞ napisaĂŚ program proszÂący o podanie liczby od 0 do 255. NastĂŞpnie wyÂświetlajÂący znak o wprowadzonym kodzie ASCII.
program ascii; uses crt,dos; var x:integer; begin repeat clrscr; gotoxy(10,10); write('Podaj liczbe (0-255): ');readln(x); gotoxy(10,12); write('Wprowadzony kod odpowiada znakowi ',chr(x),' w kodzie ASCII'); gotoxy(10,16); write('Wcisnij dowolny klawisz');readkey; until x=0; end.
|
|
|
Zapisane
|
|
|
|
admin
|
 |
« Odpowiedz #4 : Listopad 21, 2011, 10:15:59 » |
|
PrzykÂład 3. NapisaĂŚ program ktĂłry korzystajÂąc z pĂŞtli repeat until wyÂświetli kolejne kody (od 0 do 255) i odpowiadajÂące im znaki ASCII.
program fryga; uses crt,dos; var x:integer; begin clrscr; x:=0; repeat write(x:3,chr(x):2); x:=x+1; until x=256; readkey; end.
|
|
« Ostatnia zmiana: Listopad 28, 2011, 08:43:17 wysłane przez admin »
|
Zapisane
|
|
|
|
admin
|
 |
« Odpowiedz #5 : Listopad 21, 2011, 10:24:10 » |
|
Program 4. NapisaĂŚ program ktĂłry bĂŞdzie pozwalaÂł na wpisywanie znakĂłw z klawiatury bezpoÂśrednio na ekran. W linijce poniÂżej bĂŞdÂą wyÂświetlane odpowiadajÂące znakom kody ASCII>
program fryga; uses crt,dos; var x:integer; y:char; begin clrscr; x:=0; repeat gotoxy(x+1,10); y:=readkey; write(y); gotoxy(x+1,12);write(ord(y)); x:=x+4; until y='1'; readkey; end.
|
|
« Ostatnia zmiana: Listopad 21, 2011, 10:42:59 wysłane przez admin »
|
Zapisane
|
|
|
|
admin
|
 |
« Odpowiedz #6 : Listopad 21, 2011, 11:03:38 » |
|
Program 5. NapisaĂŚ program ktĂłry pozwala wpisywaĂŚ tekst. LinijkĂŞ niÂżej wyÂświetla go zaszyfrowany w postaci znakĂłw ktĂłrych wartoÂści przesuniĂŞte sÂą w kodzie ASCII o 25.
program fryga; uses crt,dos; var x,z:integer; y:char; begin clrscr; x:=0; repeat gotoxy(x+1,10); y:=readkey; z:=ord(y)+35; write(y); gotoxy(x+1,12);write(chr(z)); x:=x+1; until y='1'; readkey; end.
|
|
|
Zapisane
|
|
|
|
admin
|
 |
« Odpowiedz #7 : Listopad 21, 2011, 11:24:11 » |
|
PrzykÂład 6. NapisaĂŚ program dziaÂłajÂący jak przykÂład z zadania 5 lecz zakoĂączenie wpisywania znakĂłw wymaga wciÂśniĂŞcia klawisza "ESC".
program fryga; uses crt,dos; var x,z,b:integer; y:char; begin clrscr; x:=0; repeat gotoxy(x+1,10); y:=readkey; z:=ord(y)+35; write(y); gotoxy(x+1,12);write(chr(z)); x:=x+1; until ord(y)=27; readkey;
|
|
|
Zapisane
|
|
|
|
admin
|
 |
« Odpowiedz #8 : Listopad 21, 2011, 11:44:10 » |
|
Polecenie generujÂące liczby pseudolosowe w T.Pascalu. Wyznaczenie liczby losowej wymaga zainicjowania funkcji poleceniem Randomize; W programie aby wylosowaĂŚ liczbĂŞ uÂżywamy polecenia random(x); gdzie x jest liczbÂą okreÂślajÂącÂą zakres losowanych liczb. Np. random(30) oznacza, Âże losowana liczba bĂŞdzie z zakresu 0..30.
[b]Zadanie 5. NarysowaĂŚ 5 krzyÂżykĂłw losowo rozmieszczonych na ekranie monitora. WykorzystaĂŚ pĂŞtlĂŞ repeat until.[/b]
program lipa; uses crt,dos; var x,y,x1,y1,ile:integer; begin x:=0;clrscr;textcolor(green); randomize; ile:=0; repeat ile:=ile+1; x1:=1+random(50); y1:=1+random(10); y:=0; repeat x:=0; repeat gotoxy(x1+x,y1+y); if(x=5) or (y=5) then begin textcolor(yellow); write(chr(178));end; x:=x+1; until x=11; y:=y+1; until y=11; until ile=5; readkey; end.
|
|
« Ostatnia zmiana: Listopad 21, 2011, 12:00:35 wysłane przez admin »
|
Zapisane
|
|
|
|
|