Darmowe Forum
Grudzieñ 22, 2024, 12:55:47 *
Witamy, Go¶æ. Zaloguj siê lub zarejestruj.
Czy dotar³ do Ciebie email aktywacyjny?

Zaloguj siê podaj±c nazwê u¿ytkownika, has³o i d³ugo¶æ sesji
Aktualno¶ci: Forum zosta³o uruchomione!
 
   Strona g³ówna   Pomoc Zaloguj siê Rejestracja  
Strony: [1]
  Drukuj  
Autor W±tek: Kod ASCII  (Przeczytany 21702 razy)
admin
Administrator
Ekspert
*****
Wiadomo¶ci: 821


Email
« : 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
Administrator
Ekspert
*****
Wiadomo¶ci: 821


Email
« 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
Administrator
Ekspert
*****
Wiadomo¶ci: 821


Email
« 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
Administrator
Ekspert
*****
Wiadomo¶ci: 821


Email
« 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
Administrator
Ekspert
*****
Wiadomo¶ci: 821


Email
« 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
Administrator
Ekspert
*****
Wiadomo¶ci: 821


Email
« 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
Administrator
Ekspert
*****
Wiadomo¶ci: 821


Email
« 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
Administrator
Ekspert
*****
Wiadomo¶ci: 821


Email
« 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
Administrator
Ekspert
*****
Wiadomo¶ci: 821


Email
« 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
Strony: [1]
  Drukuj  
 
Skocz do:  

Powered by SMF 1.1.11 | SMF © 2006-2008, Simple Machines LLC | Sitemap

Polityka cookies
Darmowe Fora | Darmowe Forum

mylittlepony shaggydogss polski-serwer-rpg gang-nd spw