1. Algorytm- w matematyce oraz informatyce skończony ciąg jasno zdefiniowanych czynności, koniecznych do wykonania pewnego rodzaju zadań. Słowo "algorytm" pochodzi od starego angielskiego słowa algorism, oznaczającego wykonywanie działań przy pomocy liczb arabskich (w odróżnieniu od abacism - przy pomocy abakusa), które z kolei wzięło się od nazwiska, które nosił Muhammad ibn Musa al-Chuwarizmi , matematyk perski z IX wieku.
2.Kasjer w danym sklepie powinien wydać resztę przy minimalnej liczbie monet lub banknotów. Dzięki temu redukujemy problem do wypłacenia mniejszej ilości pieniędzy.
3.
Krok 1: Ustalenie wartości początkowych
Krok
2: Sprawdzamy, ile razy najwyższy nominał mieści się w kwocie do wydania
Krok
3: Obliczamy resztę do wydania: poprzednia kwota - obliczona ilość *
nominał
Krok 4: Przechodzimy do niższego nominału
Krok 5: Jeśli reszta do
wydania = 0 [stop] w przeciwnym razie powtarzamy kroki 2 - 4
Schemat blogowy (1)
Schemat blogowy (2)
Exel..
Rozwiązywanie
problemu przy pomocy Turbo Pascal (listing)
Sposób 1.
program wydawanie_reszty; uses crt; var reszta :
longint;
begin
clrscr;
writeln('podaj kwote: '); readln(reszta);
writeln;
writeln(reszta div 200, ' banknotow 200zl');
reszta:=reszta mod
200;
writeln(reszta div 100, ' banknotow 100zl');
reszta:=reszta mod
100;
writeln(reszta div 50, ' banknotow 50zl');
reszta:=reszta mod
50;
writeln(reszta div 20, ' banknotow 20zl');
reszta:=reszta mod
20;
writeln(reszta div 10, ' banknotow 10zl');
reszta:=reszta mod
10;
writeln(reszta div 5, ' monet 5zl');
reszta:=reszta mod
5;
writeln(reszta div 2, ' monet 2 zl');
reszta:=reszta mod
2;
writeln(reszta, ' monet 1 zl');
repeat until
keypressed;
end.
Sposób 2.
program Reszta; {obliczenia w petli WHILE}
uses
crt;
const N: Array [1..8] of integer = (200, 100, 50, 20, 10, 5, 2,
1);
var i,P,R: longint;
begin
clrscr;
Write('Podaj resztę do
wypłacenia: ');
ReadLn(R);
i:=1;
while (R>0) do {dopóki
nie wydano całej reszty}
begin
if R>= N[i] then
{sprawdź czy można wydać danym nominałem}
begin
P:= R div N[i]; {ile razy wydać dany
nominał}
R:= R - (P*N[i]); {zmniejsz resztę o wydany
nominał}
WriteLn(N[i], ' x ', P); {wypisz
wynik}
end;
inc(i); {rozpatrz
kolejny nominał}
end;
repeat until keypressed;
end.
Rozwiazywanie problemu przy pomocy C++
(listing)
//Wydawanie reszty, C++
#include
<iostream>
#include <stdlib.h>
using namespace std;
int
main(int argc, char *argv[])
{
//tablica dostepnych nominalow
int
N[8]={200, 100, 50, 20, 10, 5, 2, 1};
int R,P, i;
cout << "Podaj
reszte do wyplacenia: ";
cin >> R;
i=0;
while
(R>0) //dopoki nie wydano calej reszty
{
if (R >= N[i])
//sprawdz czy mozna wydac danym nominalem
{
P=R / N[i]; //ile
razy wydac dany nominal
R=R-(N[i]*P); //zmniejsz reszte o wydany
nominal
cout << N[i] << " x " << P << endl;
//wypisz wynik
}
i++; //rozpatrz kolejny nominal
}
system("PAUSE");
return 0;
Muhammad ibn Musa Al-Khwarizmi