Cel mai simplu calculator, rezolvarea problemelor la programare

Scrieți un program care va adăuga, scădea, multiplica sau împărți două numere. Numerele și semnul operațiunii sunt introduse de utilizator. După efectuarea calculului, programul nu trebuie să se termine, ci trebuie să solicite date noi pentru calcule. Programul trebuie să se termine prin introducerea caracterului "0" ca semn al operației. În cazul în care utilizatorul introduce un caracter nevalid (nu „0“, „+“, „-“, „*“, „/“), atunci programul trebuie să-l informeze despre eroare și încă o dată cere o operațiune de semn. De asemenea, să informeze utilizatorul cu privire la imposibilitatea de a diviza de la zero, 0 în cazul în care acesta este introdus ca un divizor.







Explicarea problemei și a algoritmului de soluție

Porniți o buclă infinită.

  1. Solicitați intrarea semnului de funcționare.
  2. Dacă introduceți "0", rupeți bucla cu operația de întrerupere.
  3. Dacă unul dintre semnele de operații aritmetice a fost introdus, în funcție de caracter a fost introdus, efectuați operația aritmetică corespunzătoare. Procedând astfel, atunci când împărțiți, verificați dacă a fost introdus zero. Dacă este, ieșiți mesajul, altfel divizați.
  4. În caz contrar, raportați caracterul introdus incorect.

Codul sursă în limbajul de programare Pascal

var
x. y. z. reale;
semneze. char;
începe
în timp ce adevărul începe
scrie # 40; 'Sign:' # 41; ; readln # 40; semn # 41; ;
dacă semnul = '0' atunci se rupe;
dacă te conectezi # 91; '+'. '-'. '*'. '/' # 93; apoi începe
scrie # 40; 'x =' # 41; ; readln # 40; x # 41; ;
scrie # 40; 'y =' # 41; ; readln # 40; y # 41; ;
semn de caz
'+'. începe z. = x + y; writeln # 40; z. 5. 2 # 41; se încheie;
'-'. începe z. = x-y; writeln # 40; z. 5. 2 # 41; ; se încheie;
'*'. începe z. = x * y; writeln # 40; z. 5. 2 # 41; ; se încheie;
'/'. dacă y <> Atunci începeți
z. = x / y;
writeln # 40; z. 5. 2 # 41;
capăt
altfel
writeln # 40; "Diviziunea cu zero!" # 41; ;
se încheie;
capăt
altfel scriteln # 40; Semnătură rea! # 41;
se încheie;
end.

Exemplu (exemple) de executare a programului în Pascal

semn: 8
Semnul rău.
semn: 4
Semnul rău.
semn: -
x = 5
y = 6
- 1,00
semn: +
x = 4,45
y = 10,66
15.11
semn: *
x = - 3.4
y = - 67
227.80
semn: /
x = - 78
y = 123
- 0.63
semn: /
x = 9
y = 0
Diviziunea prin zero.
semnul: i
Semnul rău.
semn: 0

Codul sursă în limbajul de programare C

principal # 40; # 41; # 123;
float x. y;
char semn = '+';
în timp ce # 40; semn! = '0' # 41; # 123;
printf # 40; "Zodiac" # 41; ;
scanf # 40; "% c% * c". semn # 41; ;
dacă # 40; semn == '0' # 41; # 123; pauză; # 125;
dacă # 40; semn == '+' || semn == '-' || semn == '*' || semn == '/' # 41; # 123;
printf # 40; "x =" # 41; ;
scanf # 40; "% f% * c". x # 41; ;
printf # 40; "y =" # 41; ;






scanf # 40; "% f% * c". y # 41; ;
comutator # 40; semn # 41; # 123;
cazul "+".
printf # 40; "% .2f \ n". x + y # 41; ;
pauză;
cazul "-".
printf # 40; "% .2f \ n". x - y # 41; ;
pauză;
caz "*".
printf # 40; "% .2f \ n". x * y # 41; ;
pauză;
caz "/".
dacă # 40; y! = 0 # 41; printf # 40; "% .2f \ n". x / y # 41; ;
altceva printf # 40; "Diviziunea prin zero! \ N" # 41; ;
# 125;
# 125;
altceva printf # 40; "Semnul de funcționare nevalid specificat \ n" # 41; ;
# 125;
# 125;

Exemplul (exemplele) executării programului în limba C

Semnează: 7
Semnal de funcționare nevalid
Semnează: 3
Semnal de funcționare nevalid
Semnează: +
x = 4
y = 5
9.00 am
Semnează:
x = 0
y = 0
Diviziunea prin zero.
Semnează: -
x = - 34,4
y = -2
- 32.40
Semnează: 0

Caracteristicile soluției în limbajul de programare C

Când introduceți date, trebuie să scăpați de caracterul de linie nouă. Acest lucru se face prin formatul "% * c".

Codul sursă în limba de programare Python

imprimare # 40; "Zero ca semn al operațiunii va termina programul" # 41;
în timp ce este adevărat:
s = intrare # 40; "Semnul (+, -, *, /):" # 41;
dacă s == '0'. pauză
dacă e # 40; '+'. '-'. '*'. '/' # 41; :
x = float # 40; intrare # 40; "x =" # 41; # 41;
y = float # 40; intrare # 40; "y =" # 41; # 41;
dacă s == '+':
imprimare # 40; "% .2f"% # 40; x + y # 41; # 41;
elif s == '-':
imprimare # 40; "% .2f"% # 40; X-y # 41; # 41;
elif s == '*':
imprimare # 40; "% .2f"% # 40; x * y # 41; # 41;
elif s == '/':
dacă y! = 0:
imprimare # 40; "% .2f"% # 40; x / y # 41; # 41;
altceva:
imprimare # 40; "Divizia de zero!" # 41;
altceva.
imprimare # 40; Semn de funcționare greșit! # 41;

Exemplu (e) pentru executarea unui program în Python

Zero ca semn de operație va duce la terminarea programului
marca # 40; +, -, *. / # 41;. h
Semnal de funcționare nevalid.
marca # 40; +, -, *. / # 41;. +
x = 78,456
y = 23,567
102.02
marca # 40; +, -, *. / # 41;. -
x = 3,44
y = 10,25
- 6,81
marca # 40; +, -, *. / # 41;. *
x = 0,012
y = - 2,15
- 0,03
marca # 40; +, -, *. / # 41;. /
x = 5
y = 0
Diviziunea prin zero.
marca # 40; +, -, *. / # 41;. /
x = - 2.3
y = 5
- 0,46
marca # 40; +, -, *. / # 41;. 0

Cod sursă în limba de programare KuMir

Cel mai simplu calculator
devreme
lucru x. y
sim
nc până atunci
ieșire "Semn:"
input s
dacă s = '0' atunci ieșirea este totală
dacă s = '+' sau s = '-' sau s = '*' sau s = '/' atunci
ieșire "x ="
intrare x
ieșire "y ="
intrare y
selecție
cu s = '+'. ieșire x + y. ns
cu s = '-'. ieșire x - y. ns
cu s = '*'. ieșire x * y. ns
la s = '/'.
dacă y = 0 atunci ieșirea este "Divide cu zero!". ns
altfel rezultatul este x / y. ns
toate
toate
altfel
ieșire "Semn de funcționare nevalid". ns
toate
KC
joc

Exemplu (exemple) de executare a programului în limba Kumir

Semnează: +
x = 5,67
y = - 4
1,67
Semnează:
x = 5
y = 0
Diviziunea prin zero.
semneze: # 41;
Semnal de funcționare nevalid
Semnează:
x = 3
y = 10
0.3
Semnează: 0

Cod sursă în limba de programare de bază

a = 1
în timp ce a = 1
intrare ":". $ $
dacă s $ = "0" atunci
a = 0
altfel
în cazul în care s $ = "+" sau s $ = "-" sau s $ = "*" sau s $ = "/", atunci
intrare "x:". x
intrare "y:". y
dacă s $ = "+", atunci imprimați x + y
dacă s $ = "-", atunci imprimați x-y
dacă s $ = "*" atunci imprimați x * y
dacă s $ = "/" și y <> 0 atunci
tipăriți x / y
altfel
tipăriți "Diviziunea prin zero"
endif
altfel
print "Semnul poate fi +, -, *, /"
endif
endif
endwhile

Exemplu (e) de executare a programului în limba de bază

semn: /
x: 9
y: 0
Diviziunea prin zero
semn: -
x: 9
y: -8
17
Diviziunea prin zero
semn: /
x: 9
y: -8
- 1.125
semn: 0

Caracteristicile soluției în limba de programare de bază

Nu există nicio declarație de pauză, operatorul de selecție a cazurilor.

Nu utilizați dacă-altceva atunci când efectuați operații aritmetice, deoarece acest lucru afectează foarte mult lizibilitatea programului. Deși logica ar fi mai corectă.

Există o eroare "împărțirea la zero" când nu ar trebui să fie.







Articole similare

Trimiteți-le prietenilor: