MPDI2 Informatyka – ćw.7
Programowanie Pascal (1)
Pisanie kodu i wykonywanie programu
Uruchomić środowisko programistyczne Borland Delphi. Zapoznać się z
elementami pulpitu. Wybrać z menu
File-New-Other..- Console Application
(two-
rzenie nowej aplikacji konsolowej). Pojawi się okienko, w którym będziemy pisać
kod programu.
Struktura programu
program nazwa;
//nagłówek
{$APPTYPE CONSOLE}
uses SysUtils;
blok deklaracyjny (definicje)
begin
część wykonawcza (instrukcje do wykonania)
end.
Szkielet kodu jest już utworzony, należy tylko wprowadzać elementy dekla-
racyjne i instrukcje wykonawcze.
Uruchomienie programu i jego wykonanie odbywa się przy pomocy przyci-
sku
Run
. W dodatkowym oknie konsoli pojawią się wówczas informacje zawarte
w instrukcjach wyjścia (write, writeln).
Deklaracja zmiennych
Deklaracje zmiennych wprowadzonych przez użytkownika umieszczamy w bloku
poprzedzonym słowem kluczowym var, w następującej, ogólnej postaci:
var
lista nazw zmiennych: nazwa_lub_opis_typu1;
lista nazw zmiennych: nazwa_lub_opis_typu2 ;
....;
Podstawowe typy zmiennych to:
integer
– typ całkowitoliczbowy
real
– typ liczbowy dziesiętny
boolean
– typ logiczny
char
– typ znakowy (1 znak!)
string
– typ łańcuchowy (dłuższy tekst)
Zatem, gdy potrzebne nam są w programie zmienne, dla wczytania danych lub prze-
chowywania obliczonej wartości, wymyślamy nazwę (identyfikator), określamy typ i
umieszczamy w bloku deklaracyjnym po słowie
var
.
Identyfikatory (nazwy) zmiennych muszą się
zaczynać od litery
, a potem ciąg liter,
cyfr i
znaku _ (bez spacji). Duże i małe litery nie są rozróżniane.
Podstawowe instrukcje wykonawcze programu
Instrukcje wykonywane są po kolei od pierwszej do ostatniej (o ile program nie po-
siada "skoków", wywołań podprogramu itp.). Każdą instrukcję kończymy średnikiem ;
Instrukcja
przypisania
Jest ona podstawową, prostą instrukcją w większości języków programowania. Za
jej pomocą zmiennym nadawane są wartości w trakcie wykonywania programu.
identyfikator_zmiennej := wyrażenie ;
Wyrażenia budujemy podobnie jak w Excelu – stosując:
stałe, zmienne, operatory + - * / oraz standardowe funkcje.
Instrukcje
wejścia/wyjcia
Do
wprowadzenia
wartości do zmiennej w trakcie wykonania programu (standar-
dowym urządzeniem wejścia jest klawiatura) służy instrukcja (wykonanie procedury
standardowej) read(readln) – „czytaj”, o postaci:
readln
read
(lista zmiennych) ;
Wewnątrz { } - alternatywny wybór
Instrukcją (procedurą standardową)
wyprowadzania
danych (domyślnie na ekran)
jest write(writeln) – „pisz” – o strukturze:
writeln
write
(lista elementów) ;
Elementy listy można formatować:
wyrażenie:
m
- gdzie m to liczba znaków szerokości pola
wyrażenie_rzeczywiste:m:
n
- gdzie n to liczba miejsc dziesiętnych
Instrukcja warunkowa if.. then..else.. (jeżeli.. to.. w przeciwnym razie..)
Służy ona do warunkowego wykonywania dowolnej instrukcji (grupy instrukcji).
Używamy dwóch postaci instrukcji.
Postać skrócona:
if
W
B
then
Instrukcja ;
”je
ż
eli”
”to”
W instrukcji wykonywane jest badanie warunku logicznego W
B
, a następnie:
- jeśli W
B
= true to Instrukcja jest wykonywana,
- jeśli W
B
= false to Instrukcja jest ignorowana.
Postać pełna:
if
W
B
then
Instrukcja_1
else
Instrukcja_2 ;
”je
ż
eli” ”to”
”w przeciwnym przypadku”
Pętla „liczona” for..do..
Postać instrukcji jest następująca:
for
Z := W
1
downto
to
W
2
do
Instrukcja ;
W
1
i W
2
to wartości całkowite licznika – początkowa i końcowa.
Instrukcja powtarzana jest dla każdej wartości zmiennej Z, zmieniającej się od W
1
do
W
2
z krokiem co 1.
downto stosujemy, gdy W
1
jest większe od W
2
, wtedy odliczanie jest wsteczne.
Uwaga: jeżeli wewnątrz if lub for wykonana ma być więcej niż jedna in-
strukcja – otaczamy je słowami begin i end
Pętla warunkowa repeat..until.. (powtarzaj .. aż..)
Postać ogólna instrukcji:
repeat
ciąg instrukcji
until
W
B
;
Ciąg instrukcji jest wykonywany aż wyrażenie logiczne W
B
będzie prawdą.
Oczywiście instrukcje muszą mieć wpływ na wartość W
B
, tak aby pętla kiedyś się
skończyła.
Ć
wiczenie
Wpisać poniższe kody przykładowych programów, wykonać je – przeanalizować
i zrozumieć ich działanie.
Przykład 1
program Project1;
{$APPTYPE CONSOLE}
uses
SysUtils;
//deklaracja zmiennej a typu całkowitoliczbowego
var
a:integer;
begin
„powtarzaj”
„aż”
//wypisanie komunikatu na ekranie ( wewn
ą
trz ' ')
write('podaj bok kwadratu :');
// odczyt zmiennej a z klawiatury
readln(a);
write('pole kwadratu wynosi :');
write(a*a);
readln;
// ostatnia instrukcja po to aby zatrzymac wyniki
// na ekranie – naci
ś
ni
ę
cie ENTER zamknie konsol
ę
end.
Przykład 2 - Instrukcja warunkowa
if
– obliczanie pierwiastków równania kwa-
dratowego
program Project2;
{$APPTYPE CONSOLE}
uses
SysUtils;
var
a,b,c,delta,x1,x2:real;
begin
write('podaj a='); readln (a);
write('podaj b='); readln (b);
write('podaj c='); readln (c);
delta:=b*b-4*a*c;
// := operator przypisania, nadania warto
ś
ci
if (delta <0) then
//instrukcja warunkowa
write('rozwiazanie nie istnieje');
if (delta = 0) then
write('x1=',-b/2/a);
if delta >0 then
begin
x1:=(-b-sqrt(delta))/2/a;
//sqrt funkcja pierwiastka arytmetycznego
x2:=(-b+sqrt(delta))/2/a;
write('x1=',x1,' x2=',x2);
end
;
readln;
end.
Przykład 3 - Obliczenia numeryczne w „pętli” liczonej
for
program Project3;
{$APPTYPE CONSOLE}
uses
SysUtils;
var
i:integer;
// deklaracja zmiennej rzeczywistej
kat:real;
begin
writeln(' stopnie sin cos');
//petla - zmiana licznika od 0 do 10
for i:=0 to 10 do
begin
//uzywamy wbudowanej stałej pi
kat:=(i*30)*pi/180;
writeln(i*30:10,sin(kat):10:6,cos(kat):10:6);
end
;
readln;
end.
Uwaga:wykonywa
ć
program ”krok po kroku”, naciskaj
ą
c
klawisz F7 i obserwowa
ć
przebiegi „p
ę
tli”
Przykład 4 - Tabliczka mnożenia – pętla zagnieżdżana for
Program tabliczka_mno;
{$APPTYPE CONSOLE}
uses
SysUtils;
var
w,k:integer;
begin
for w:=1 to 10 do
begin
for k:=1 to 10 do
write (w*k:4);
//tylko ta instrukcja w p
ę
tli po k
writeln;
//nowy wiersz
end
;
readln;
end.
Przykład 5 - Pętla zagnieżdżana for z warunkowaniem licznika
program choinka;
{$APPTYPE CONSOLE}
uses
SysUtils;
var
w,k:integer;
begin
for w:=1 to 10 do
begin
for k:=1 to w do
write('*');
writeln;
end
;
readln;
end.
Przykład 6 - generacja liczb losowych – pętla warunkowa repeat..until..
program Project4;
{$APPTYPE CONSOLE}
uses
SysUtils;
var
l_kom,l_usera,licznik:integer;
begin
randomize;
//ustawienie zarodka liczb losowych aby losowac
//za kazdym uruchomieniem inn
ą
liczb
ę
licznik:=0;
// wylosowanie liczby i umieszczenie w zmiennej
l_kom:=
random
(100);
repeat
// poczatek petli
//zwiekszenie licznika o jeden
licznik:=licznik+1;
write('Podaj liczbe:');
readln(l_usera);
if (l_kom>l_usera) then
writeln('Podales za mala liczbe');
if (l_kom<l_usera) then
writeln('Podales za duza liczbe');
until
l_kom=l_usera;
//koniec petli
writeln(' Brawo - zgadles za ',licznik,' razem');
readln;
end.
Zadania
1.
Przeanalizować przykłady z ćwiczenia. Wprowadzać celowe błędy (brak deklara-
cji zmiennej, brak średników na końcu instrukcji itp.) i zrozumieć komunikaty.
2.
Utworzyć programy:
a.
program dla podanego R oblicza objętość kuli.
b.
podajemy dwie liczby całkowite, a następnie ich iloczyn – program informuje
nas, czy podaliśmy prawidłowy wynik - wykorzystać instrukcję warunkową.
c.
podajemy liczbę – program informuje, czy podana liczba znajduje się w prze-
dziale (-5; 5) – wykorzystać instrukcję warunkową.
d.
program losuje 6 liczb całkowitych z przedziału 1 do 49 (wykorzystać pętlę).
e.
program wypisuje na ekranie liczby nieparzyste od 1 do 99 (wykorzystać pę-
tlę).