Darmowe Forum
Kwiecień 15, 2025, 19:57:20 *
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 22097 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

polski-serwer-rpg blackmoon articz proskills shaggydogss