Program: wielofunkcyjny kalkulator.
Zawierający możliwość obliczenia:
- silni,
- NWD,
- NWW,
- dodawania,
- odejmowania,
- mnożenia,
- dzielenia,
- wypisania dzielników,
- pierwiastku,
- potęgi.
Program będzie działać tak długo i przyjmować argumenty od użytkownika, aż nie zostanie wypisana cyfra 0.
Kompilator: Turbo Pascal
Kod programu:
Program kalkulator;
uses crt;
var a,b:longint;
f:Byte;
{---------------------------------Silnia-------------------------------------}
function silnia(a:Byte):longint;
var i,c:longint;
begin
c:=1;
for i:=1 to a do c:=c*i;
silnia:=c
end;
{----------------------------------NWD---------------------------------------}
function nwd(a,b:integer):integer;
begin
repeat
if a>b then a:=a-b else b:=b-a;
until a=b;
nwd:=a;
end;
{----------------------------------NWW---------------------------------------}
function nww(a,b:integer):Real;
begin
nww:=a*b/nwd(a,b);
end;
{-------------------------------Dodawanie------------------------------------}
function dodawanie(a,b:integer):longint;
begin
dodawanie:=a+b;
end;
{-------------------------------Odejmowanie----------------------------------}
function odejmowanie(a,b:integer):longint;
begin
odejmowanie:=a-b;
end;
{--------------------------------Mnozenie------------------------------------}
function mnozenie(a,b:integer):longint;
begin
mnozenie:=a*b;
end;
{--------------------------------Dzielenie-----------------------------------}
function dzielenie(a,b:integer):Real;
begin
dzielenie:=a/b;
end;
{--------------------------------Dzielniki-----------------------------------}
function dzielniki(a:longint):String;
var i:integer;
s,j:string;
begin
s:='1';
for i:=2 to a do
begin
Str(i, j);
if a mod i = 0 then s:=s+', '+j;
end;
dzielniki:=s;
end;
{--------------------------------Pierwiastek---------------------------------}
function pierwiastek(a,b:integer):real;
begin
if b<>0 then
pierwiastek:=exp(1/b*ln(a))
else pierwiastek:=0;
end;
{---------------------------------Potega-------------------------------------}
function potega(a,b:integer):real;
var i,w:integer;
begin
if b=0 then potega:=1
else if b<0 then
begin
b:=-b;
w:=1;
for i:=1 to b do w:=w*a;
potega:=1/w;
end
else
begin
w:=1;
for i:=1 to b do w:=w*a;
potega:=w;
end;
end;
{---------------------------------------------------------------------------}
begin
repeat
clrscr;
Writeln('1 - dodwanie');
Writeln('2 - odejmowanie');
Writeln('3 - mnozenie');
Writeln('4 - dzielenie');
Writeln('5 - NWW');
Writeln('6 - NWD');
Writeln('7 - potega');
Writeln('8 - pierwiastek');
Writeln('9 - silnia');
Writeln('10 - dzielniki liczby');
Writeln('0 - koniec programu');
Writeln('Wprowadz numer opcji: ');
read(f);
Case f Of
1 :
begin
Writeln('Wprowadz liczbe a: ');
Read(a);
Writeln('Wprowadz liczbe b: ');
Read(b);
Writeln('Wynik dodawania to: ',dodawanie(a,b));
end;
2 :
begin
Writeln('Wprowadz liczbe a: ');
Read(a);
Writeln('Wprowadz liczbe b: ');
Read(b);
Writeln('Wynik odejmowania to: ',odejmowanie(a,b));
end;
3 :
begin
Writeln('Wprowadz liczbe a: ');
Read(a);
Writeln('Wprowadz liczbe b: ');
Read(b);
Writeln('Wynik mnozenia to: ',mnozenie(a,b));
end;
4 :
begin
Writeln('Wprowadz liczbe a: ');
Read(a);
Writeln('Wprowadz liczbe b: ');
Read(b);
Writeln('Wynik dzielenie to: ',dzielenie(a,b):0:2);
end;
5 :
begin
Writeln('Wprowadz liczbe a: ');
Read(a);
Writeln('Wprowadz liczbe b: ');
Read(b);
Writeln('Najmniejsza Wspolna Wielokrotnosc tych liczb to: ',NWW(a,b):0);
end;
6 :
begin
Writeln('Wprowadz liczbe a: ');
Read(a);
Writeln('Wprowadz liczbe b: ');
Read(b);
Writeln('Najwiekszy Wspolny Dzielnik tych liczb to: ',NWD(a,b):0);
end;
7 :
begin
Writeln('Wprowadz podstawe potegi: ');
Read(a);
Writeln('Wprowadz wykladnik potegi: ');
Read(b);
Writeln('Wynik potegowania to: ',potega(a,b):0:2);
end;
8 :
begin
Writeln('Wprowadz liczbe do pierwiastkowania: ');
Read(a);
Writeln('Wprowadz stopien pierwiastka: ');
Read(b);
Writeln('Wynik potegowania to: ',pierwiastek(a,b):0:2);
end;
9 :
begin
Writeln('Wprowadz liczbe a: ');
Read(a);
Writeln('Silnia z ',a,' to: ',silnia(a):0);
end;
10 :
begin
Writeln('Wprowadz liczbe a: ');
Read(a);
Writeln('Dzielniki liczby ',a,' to: ',dzielniki(a));
end;
0 : Writeln('Koniec programu');
else Writeln('Zly wybor, sprobuj jeszcze raz');
end;
Writeln('Nacisnij dowolny klawisz, aby wrocic do menu...');
readkey;
until f=0;
end.