Darmowe Forum

Turbo Pascal => Podstawy Turbo Pascal => W±tek zaczêty przez: admin Listopad 27, 2010, 19:32:24



Tytu³: KOd ASCII
Wiadomo¶æ wys³ana przez: admin Listopad 27, 2010, 19:32:24
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(8); Escape -chr(27).


Tytu³: Odp: KOd ASCII
Wiadomo¶æ wys³ana przez: admin Listopad 29, 2010, 11:23:18
Zadanie 1. Wy¶wietlanie kodów ASCII , czyli tzw Matrix.

program as;
uses crt,dos;
var x:integer;
begin clrscr;
x:=1;
repeat
textcolor(green);
x:=x+1; write(chr(x):4);

until keypressed;
end.


Tytu³: Odp: KOd ASCII
Wiadomo¶æ wys³ana przez: admin Listopad 29, 2010, 11:30:16
Zadanie 2. Program prosi o podanie liczby z przedzia³u 0..255 i wy¶wietla znak odpowiadaj±cy wprowadzonej liczbie.

program as;
uses crt,dos;
var x:integer;
begin clrscr;
x:=1;
repeat
write('Podaj kod: ');readln(x);
if((x<255) and (x>=0)) then
writeln(' Wprowadzono kod =', x,' co odpowiada znakowi: ',chr(x))
else writeln('wprowadzono bledny kod!!!!');
until x=17;
readkey;

end.


Tytu³: Odp: KOd ASCII
Wiadomo¶æ wys³ana przez: admin Listopad 29, 2010, 11:45:20
Funkcja ord()
Funkcja ord jest funkcj± odwrotn± do funkcji char()
Jest podobna do funkcji Chr(), tylko, ¿e w niej zamieniane jest na odwrót, nie liczby na znaki, tylko znaki na liczby :) ;D
np. ord('A')=65 ord('a')=97 ord('2')=50 itd. np.


Tytu³: Odp: KOd ASCII
Wiadomo¶æ wys³ana przez: admin Listopad 29, 2010, 11:48:28
Zadanie 2. Program ten czeka na wci¶niêcie znaku,po wci¶niêciu klawisza wy¶wietla go  podaj±c jednocze¶nie jego kod ASCII. Dzia³a tak d³ugo póki nie wci¶niemy klawisza ESC.


program a1;
uses crt,dos;
var a:char;
begin
repeat a:=ReadKey;
writeln(a,'i jego kod ASCII =  ',ord(a));
until a=Chr(27);
End.


Tytu³: Odp: KOd ASCII
Wiadomo¶æ wys³ana przez: admin Listopad 29, 2010, 12:29:40
Zadanie 3. Kodowanie znaków

program as;
uses crt,dos;
var x:char;
y,z:integer;
begin clrscr;
y:=1; z:=1;
repeat
x:=readkey;
y:=ord(x);

gotoxy(z,10);
write(x);

gotoxy(z,12);
write(chr(y+5));

gotoxy(z,14);
write((chr(y)));


z:=z+1;
until x=chr(27);
readkey;

end.


Polityka cookies
Darmowe Fora | Darmowe Forum

shaggydogss articz mylittlepony proskills blackmoon