Turbo Pascal by SWIFT (4)

Dziś pokaże jak ma wyglądać kod programu, który będzie dodawał dwie liczby,
które to zostaną podane przez użytkownika programu.
Umiemy już definiować zmienne, napiszemy więc program w którym zdefiniujemy
dwie zmienne a i b typu WORD

program program8;
var
a : Word;
b : Word;
begin
Write ('Podaj liczbe a: ');
ReadLn (a);
Write ('podaj liczbe b: ');
ReadLn (b);
WriteLn ('Podano dwie liczby: ',a,'+',b,'=',a+b);
ReadLn
end.

Download:
program8.exe
program8.pas

W wyniku otrzymaliśmy [przyjmując, że liczby podane przez użytkownika to
a=111 i b=234]:

Podaj liczbe a: 111
Podaj liczbe b: 234
Podano dwie liczby: 111+234=345

W podobny sposób można tworzyć programy odejmujące, mnożące i dzielące
liczby, jeden program może także dodawać/odejmować/dzielić więcej liczb niż
dwie, teraz zajmiemy się napisaniem programu, który dodaje dwie liczby a i b,
oraz odejmuje od nich liczbę c:

program program9;
var
a : Word;
b : Word;
c : Word;
begin
Write ('Podaj liczbe a: ');
ReadLn (a);
Write ('podaj liczbe b: ');
ReadLn (b);
Write ('podaj liczbe b: ');
ReadLn (c);
WriteLn ('Podano dwie liczby: ',a,'+',b,'-',c,'=',a+b-c);
ReadLn
end.

Download:
program9.exe
program9.pas

W wyniku otrzymamy [dla a=1, b=2 c=3]:

Podaj liczbe a: 1
Podaj liczbe b: 2
Podaj liczbe c: 3
Podano trzy liczby: 1+2-3=0

Wszystko jest OK, jeśli suma liczb a i b jest większa lub równa od liczby c,
jednak gdy suma ta jest mniejsza otrzymamy [dla a=1, b=2, c=4]:

Podaj liczbe a: 1
Podaj liczbe b: 2
Podaj liczbe c: 4
Podano trzy liczby: 1+2-4=65535

Spowodowane jest to tym, że zmienna typu WORD przyjmuje wartości
od 0 do 65535 i jeśli wynik jest mniejszy od zera zmienna uznaje liczbę
65535 jako -1 i tak kolejno na przykład -10 jako 65526, ...
Na rozwiązanie tego problemu jest bardzo prosty sposób, zamiast zmiennej
typu WORD wstawiamy inną, na przykład INTEGER, przyjmuje ona wartości
od -32768 do 32767:

program progra10;
var
a : Integer;
b : Integer;
c : Integer;
begin
Write ('Podaj liczbe a: ');
ReadLn (a);
Write ('podaj liczbe b: ');
ReadLn (b);
Write ('podaj liczbe b: ');
ReadLn (c);
WriteLn ('Podano dwie liczby: ',a,'+',b,'-',c,'=',a+b-c);
ReadLn
end.

Download:
progra10.exe
progra10.pas

Teraz uruchamiamy program i jako liczby a, b, c wpisujemy takie, aby wynik był
mniejszy od zera, ja otrzymałem [dla a=1, b=0, c=10]:

Podaj liczbe a: 1
Podaj liczbe b: 0
Podaj liczbe c: 10
Podano trzy liczby: 1+0-10=-9

Jak widać po kłopocie, problem pojawi się znowu jeśli wynik będzie mniejszy
od -32768 lub większy od 32767, ale to też nie problem, zmienna typu LONGINT
może "obsługiwać liczby 10 cyfrowe i to zarówno dodatnie jak i ujemne, jednak
zmiennych tego typu należy unikać, a szczególnie w dużej ilości.
W programie progra10 jako liczby a,b,c można podać wartości ujemne, program
używając zmiennej typu INTEGER bez trudu sobie z nimi poradzi.

To tyle, w następnej lekcji zajmiemy się instrukcjami prostymi w Turbo Pascalu,
takimi jak instrukcja przypisania, instrukcja skoku, czy instrukcja pusta.
Omówię też instrukcje złożoną wchodzącą w skład instrukcji strukturalnych.


SWIFT
swift@friko.internet.pl
http://swift1.w.interia.pl



 

  Copyright 2001 at-online. Wszelkie prawa zastrzeżone.