6134


PEŁNY KURS TURBO PASCALA - część III
polecenia READ, READLN, podstawy zmiennych

Na poprzedniej lekcji dowiedziałeś się, że program mieści się w znacznikach BEGIN i END. Dowiedziałeś się również, że TP można zmusić, aby coś napisał. Na tej lekcji postaramy się go zmusić, aby coś odczytał. Załóżmy, że chcemy, aby komputer wprowadził do pamięci jakieś imię. Chcemy zrobić program, który zapyta jak mamy na imię, po czym wyświetli nam napis: „Cześć (i tu imię). Miłego dnia!!!. Umiesz już napisać taki tekst, ale jak zrobić, żeby komputer wstawił do tekstu imię. Ponadto najpierw trzeba o to imię zapytać, a dopiero potem wstawić. Do tego służą tzw. zmienne. Zmienne możemy oznaczać dowolną literą lub wyrazem. Załóżmy, że zmienną, która będzie reprezentować imię użytkownika, nazwiemy po prostu „imie” (bez polskich liter). W TURBO PASCALU każdą zmienną musimy najpierw zdeklarować zanim jej użyjemy. Zmienne deklarujemy poleceniem „VAR” i robimy to jeszcze przed programem (przed poleceniem BEGIN). Po słowie „VAR” wypisujemy wszystkie zmienne. W naszym programie będzie tylko jedna zmienna o nazwie „imie”. Po jej napisaniu trzeba jeszcze przypisać jej typ. Na razie poznasz tylko podstawowe typy zmiennych. Jak każdy wie, imię człowieka składa się z liter, więc jest to zwykły ciąg liter. Zmienna nasza będzie zatem typu STRING. Zapamiętajcie tę nazwę. Program, który zadeklaruje zmienną będzie więc wyglądał tak:

0x01 graphic

VAR
imie:string;

BEGIN

END.

0x01 graphic

Mamy więc program, który deklaruje zmienną typu STRING (czyli ciąg znaków). Teraz (w głównym bloku programu między BEGIN i END) musimy coś napisać, aby komputer spytał użytkownika jak ma na imię. Nic prostszego:

0x01 graphic

VAR
imie:string;

BEGIN
write('Jak masz na imię?');
END.

0x01 graphic

Już jesteśmy o krok dalej. Teraz musimy jakoś zatrzymać program, aby gość siedzący przed komputerem mógł napisać jak ma na imię i nacisnąć ENTER. Nic prostego. Do tego służy polecenie READ. Więc wstawmy to polecenia do naszego programu:

0x01 graphic

VAR
imie:string;

BEGIN
write('Jak masz na imię?');
read(imie);
END.

0x01 graphic

Zwróćcie uwagę na konstrukcję READ. W nawiasie podajemy zmienną, do której ma być zapisana wartość z klawiatury. To znaczy, że to, co użytkownik napisze będzie liczone jako zmienna „imie”. Do polecenia w nawiasie nie stosujemy cudzysłowu i pamiętamy, żeby na końcu postawić średnik. Kolejnym krokiem będzie wykombinowanie, aby program napisał ładne powitanie z imieniem. Robimy to następująco:

0x01 graphic

VAR
imie:string;

BEGIN
write('Jak masz na imię?');
read(imie);
write('Witaj ');
write(imie);
write('. Życzę miłego dnia!!!');
readln;
END.

0x01 graphic

No to po kolei. Jak już zauważyłeś aby wyświetlić zmienną wystarczy użyć zwykłego polecenia WRITE podając w nawiasie nazwę zmiennej (bez cudzysłowu). Zwróć uwagę na linię „write('. Życzę miłego dnia!!!'); Kropka przed zdaniem jest po to, aby zdanie zakończyło się po imieniu. Jest to zabieg stylistyczny i nie służy do niczego specjalnego. Wszystko razem po włączeniu powinno wyglądać tak: „Witaj Zenek. Życzę miłego dnia!!!”. Już wiesz po co ta kropka? Użytkownik nie wprowadzi jej przecież, a komputer nie zna naszego języka. Spróbuj bez kropki, a zobaczysz, co to znaczy estetyka programu. Ale jest to na szczęście niezbyt duży problem. A teraz jeszcze przeróbmy nasz kod programu, aby wyglądał on ładniej i miej miejsca zajmował. Tak, więc dobry kod programu wyglądałby tak:

0x01 graphic

VAR
imie:string;

BEGIN
writeln;
writeln('Jak masz na imię?');
writeln;
read(imie);
write('Witaj ',imie,'. Życzę miłego dnia!!!');
readln;
END.

0x01 graphic

W powyższym programie dodatkowo zostało dopisane zamiast WRITE, polecenie WRITELN, gdyż trzeba zauważyć, że nawet pytanie „Jak masz na imię?” musi ładnie wyglądać. Oprócz tego polecenia WRITELN; działają jak separator i nie pozwalają wszystkiego wyświetlić w jednej linii. Pokombinujcie z tymi poleceniami a zobaczycie, na czym to polega.

Teraz spróbujmy wzbogacić nasz program. Załóżmy, że użytkownik wpisze jako swoje imię jakieś bzdety (na przykład 150 liter). Program zadziała, ale pomyślcie jak będzie to wyglądać. Trzeba, więc dać ograniczenie, aby użytkownik nie mógł wprowadzić zbyt wielu liter. Nie jest to specjalnie trudne. Wystarczy do typu zmiennej przypisać coś takiego:

0x01 graphic

VAR
imie:string[10];

BEGIN
writeln;
writeln('Jak masz na imię?');
writeln;
read(imie);
write('Witaj ',imie,'. Życzę miłego dnia!!!');
readln;
END.

0x01 graphic

Jak się pewnie już domyśliłeś, zmienna ta będzie ograniczona do dziesięciu liter. Użytkownik będzie mógł wprowadzić więcej liter, ale wyświetlone zostanie tylko dziesięć.

A teraz zajmijmy się liczbami. Zbudujmy prosty kalkulator, który będzie dodawał do siebie dwie liczby. Program najpierw spyta, jakie mają to być liczby, a potem je doda. Sama zasada jest podobna jak w przykładach powyżej, z tym, że zmienna będzie innego typu. Poza tym będziemy potrzebować nie jednej a dwóch zmiennych. Użytkownik przecież ma wprowadzić dwie liczby. Istnieją różne typy zmiennych oznaczające liczby. Dla początkujących użyjemy zmiennej typu LONGINT. Nie będę tłumaczył na czym ona polega, ale powiem, że mieści w sobie liczby od kilku miliardów albo nawet i więcej do minus kilku miliardów albo i nawet mniej :))) Powinna więc zadowolić każdego. Dodam jeszcze, że zapamiętuje tylko liczby całkowite, więc ułamki zostawmy sobie, na kiedy indziej. Zatem zacznijmy robić program. Poniżej znajduje się kod, który bez problemu powinieneś rozumieć:

0x01 graphic

VAR
liczba1:longint;
liczba2:longint;

BEGIN
writeln;
writeln('Podaj pierwszą liczbę');
read(liczba1);
writeln('Podaj drugą liczbę');
read(liczba2);
write('Ich suma wynosi: ',liczba1+liczba2);
readln;
END.

0x01 graphic

Zrozumiałe? Jeżeli nie to nie wiem coś ty za jeden. Oczywiście liczby można nie tylko dodawać, ale i dzielić, odejmować, mnożyć, podnosić do kwadratu itp. ale o tym w innej części kursu. Zaraz pod słówkiem „VAR” widzimy dwie zmienne: liczba1 i liczba2. Oba są typu LONGINT, czyli tego samego typu. Po co więc pisać dwa razy tą samą rzecz. Poprawiony program będzie więc wyglądał tak:

0x01 graphic

VAR
liczba1,liczba2:longint;

BEGIN
writeln;
writeln('Podaj pierwszą liczbę');
read(liczba1);
writeln('Podaj drugą liczbę');
read(liczba2);
write('Ich suma wynosi: ',liczba1+liczba2);
readln;
END.

0x01 graphic

Widzicie jakie to proste? Zatem zmienne tego samego typu można w ten właśnie sposób oddzielić przecinkami (bez spacji). Niby to nic takiego, ale wyobraźcie sobie, że mamy 50 takich zmiennych. Zamiast do wszystkich dopisywać typ, wystarczy wypisać je po przecinku.

Teraz poznamy jeszcze jedną sztuczkę. Załóżmy, że chcemy, aby jakaś zmienna miała już jakąś wartość. Na przykład do powyższego programu. Niech użytkownik nie wprowadza żadnej liczby, a program ma już zapisane w sobie ich wartości. Do tego służy instrukcja przypisania. Stosuje ją się bardzo prosto. Np. liczba1:=71; W ten sposób przypisaliśmy liczbę 71 do zmiennej „liczba1”. Zwróćcie uwagę na znak przypisania. Jest to dwukropek i znak równości. Po tym wszystkim znajduje się oczywiście średnik. Zatem poniższy program nie zrobi nic innego, jak napisze liczbę 10:

0x01 graphic

VAR
liczba1,liczba2:longint;

BEGIN
liczba1:=2;
liczba2:=8;
write(liczba1+liczba2);
readln;
END.

0x01 graphic

Mam nadzieję, że wszyscy rozumieją, o co chodzi! Teraz nieco skomplikuję sprawę. Załóżmy, że chcemy, aby jedna zmienna była zależna od drugiej. Zróbmy pogram, który pyta użytkownika o jakąś liczbę i wyświetla ją pomnożoną przez 2. Można to zrobić w różny sposób. Spójrzcie na poniższy program. Jest to jeden ze sposobów.

0x01 graphic

VAR
liczba:longint;

BEGIN
writeln;
writeln('Podaj jakąś liczbę');
read(liczba);
write('Liczba ta pomnożona przez 2 wynosi ',liczba*2);
readln;
END.

0x01 graphic

Był to prosty sposób na pokazanie mnożenia (dokonujemy gwiazdką jakby co). Użytkownik wprowadził jakąś liczbę, a program ją wyświetlił, ale pomnożoną przez 2. A teraz spójrzcie na poniższy przykład. Działa on tak samo jak poprzedni, z tym, że jest inaczej zbudowany:

0x01 graphic

VAR
liczba,iloczyn:longint;

BEGIN
writeln;
writeln('Podaj jakąś liczbę');
read(liczba);
iloczyn:=liczba*2;
write('Liczba ta pomnożona przez 2 wynosi ',iloczyn);
readln;
END.

0x01 graphic

Był to nic innego jak przykład, że instrukcje przypisania można stosować nie tylko do liczb, ale i innych zmiennych, co daje nam już bardzo duże możliwości. Można przecież wykonać takie instrukcje przypisania jak: „liczba:=iloczyn*(iloczyn-1)-24” itp. O tym wszystkim dowiecie się później. Na razie najważniejsze jest, że wiecie, co to jest instrukcja przypisania i jak z niej korzystać. Teraz została jeszcze jedna sprawa. Jak przypisać do zmiennej typu STRING zwykły tekst. Nie jest to trudne. Wystarczy zastosować instrukcję przypisania, a samą wartość podać w cudzysłowie. Np: imie:='Franek';

Na koniec do omówienia zostało jeszcze polecenie READLN. Oprócz tego, że używamy READLN jak dotąd do przerywania programu, służy innym celom. Cele te jednak wykraczają jak na razie w wasz zakres wiedzy, więc może innym razem. Zapraszam więc do następnej części kursu.

1



Wyszukiwarka

Podobne podstrony:
analiza sem 2 lista nr5 id 6134 Nieznany (2)
6134
6134
06 Immunologia prelekcja 11 05 2007id 6134 (2)
6134
6134
6134
6134
6134
6134
6134
6134
6134
6134
analiza sem 2 lista nr5 id 6134 Nieznany (2)
6134

więcej podobnych podstron