Darmowe Forum
Maj 04, 2024, 09:50:33 *
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 7082 razy)
admin
Administrator
Ekspert
*****
Wiadomości: 821


Email
« : 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(Spoko; Escape -chr(27).
« Ostatnia zmiana: Listopad 28, 2010, 20:22:55 wysłane przez admin » Zapisane
admin
Administrator
Ekspert
*****
Wiadomości: 821


Email
« Odpowiedz #1 : 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.
Zapisane
admin
Administrator
Ekspert
*****
Wiadomości: 821


Email
« Odpowiedz #2 : 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.
Zapisane
admin
Administrator
Ekspert
*****
Wiadomości: 821


Email
« Odpowiedz #3 : 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 Uśmiech Duży uśmiech
np. ord('A')=65 ord('a')=97 ord('2')=50 itd. np.
Zapisane
admin
Administrator
Ekspert
*****
Wiadomości: 821


Email
« Odpowiedz #4 : 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.
Zapisane
admin
Administrator
Ekspert
*****
Wiadomości: 821


Email
« Odpowiedz #5 : 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.
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

forumszkoly noname elitserienspeedway luksburg justplay