7.2.. Napisati program za izračunavanje vrijednosti z prema izrazu:
Opis rješenja: Zadatak ima tri različita izraza za izračunavanje varijable y. Izložena je jedna od mogućih varijanti rješenja. Koristiće se dvije IF THEN ELSE naredbe i to tako da je druga IF naredba u ELSE dijelu prve naredbe. Prva IF naredba u dijelu THEN rješava jedna mogućnost, a sa druga IF naredba preostale dvije mogućnosti. Jasno je da se zadatak može riješiti i sa tri IF THEN naredbe, ili sa dvije IF THEN naredbe koje koriste GOTO naredbu za skok na kraj.
Opis programa: Logičkim izrazom a>0 u prvoj IF naredbi se provjerava da li je broj pozitivan. Ako je ovaj logički izraz istinit (a veće od 0) varijabla y prima vrijednost prema izrazu y:=b/a. Inače se sa drugom IF naredbom provjerava da li je vrijednost varijable a u intervalu -3<a<=0. Provjera ovog intervala se izvodi sa logičkim izrazom koji mora koristiti naredbu AND, budući da se varijabla može porediti samo sa jednim logičkim operatorom. Ako je ovaj logički izraz (-3<a AND a<=0) istinit varijabli y se pridružuje vrijednost prema izrazu: y:=a+3. Inače, ako je izraz lažan pridruživanje se izvodi sa izrazom y:=a+b.
Tabela 7.8. Izračunavanje vrijednosti z prema izrazima
Tekstualni algoritam |
Listing programa |
Ekran |
|
PROGRAM PP3_8; |
|
|
VAR |
|
|
a, b, y : Real; |
|
|
BEGIN |
|
|
Write('Dva broja '); |
Dva broja |
1. upis varijable a ,b |
Readln(a, b); |
3 6 |
2. ako je a>0 |
IF a>0 THEN |
|
2.1. tada je y=b/a |
y:=b/a |
|
inače, |
ELSE |
|
2.2. ako je -3<a AND a<=0 |
IF (-3<a) AND (a<=0) THEN |
|
2.2.1. tada je y=a+3 |
y:=a+3 |
|
inače je |
ELSE |
|
2.2.2. y=a+b |
y:=a+b; |
|
3. ispiši a, b, y |
Writeln('a=', a, ' b=', b, ' y=', y); |
a=3 b=6 y= 2 |
|
END. |
|
Listing programa:
PROGRAM P07211018;
USES
WinCrt;
VAR
a, b, y : Real;
BEGIN
Write('Dva broja ');
Readln(a, b);
IF a>0 THEN
y:=b/a
ELSE
IF (-3 < a) AND (a <=0 ) THEN
y:=a+3
ELSE
y:=a+b;
Writeln('a=', a, ' b=', b, ' y=', y);
END.
Ispis na ekranu:
Index
|
|