Rozwiązywanie problemów- problem kasjer, wydawanie reszty
1.Lista kroków
Opis słowny algorytmu wydawania reszty.
Dane: Kwota pieniędzy do wydania, nominały banknotów i bilonu uporządkowane malejąco
Wyniki: Ilość poszczególnych nominałów banknotów i bilonu
Dane: Kwota pieniędzy do wydania, nominały banknotów i bilonu uporządkowane malejąco
Wyniki: Ilość poszczególnych nominałów banknotów i bilonu
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 -
Schematy blokowe
3. Microsoft Excel i VBA.
Microsoft Excel (pełna nazwa Microsoft Office Excel)
– arkusz kalkulacyjny produkowany przez firmę Microsoft dla systemów
Windows i MacOS. Pierwsza wersja programu przeznaczona dla Windows
trafiła na rynek w roku 1987 i stała się przebojem. Postępujący sukces
rynkowy programu sprawił, że w roku 1993 programy pakietu Microsoft
Office zostały przeprojektowane tak, by przypominać wyglądem arkusz
Excel. Od wersji 5 wydanej w 1993 program zawiera wbudowany język Visual
Basic. Od wersji 4.0 dostępny w wersji polskiej.
Aplikacja jest powszechnie używana w firmach i instytucjach, a także
przez użytkowników domowych. Jej główne zastosowanie to dokonywanie
obliczeń (np. wydatków) zestawionych w formie tabelarycznej. W tym
użyciu mają zastosowanie liczne funkcje matematyczne, finansowe i
bazodanowe dostępne w programie.
Visual Basic for Applications (VBA) – język programowania oparty na Visual Basicu (VB) zaimplementowany w aplikacjach pakietuMicrosoft Office oraz kilku innych, jak na przykład AutoCAD i WordPerfect. Ta uproszczona wersja Visual Basica służy przede wszystkim do automatyzacji pracy z dokumentami, na przykład poprzezmakropolecenia.
4. Języki programowania.
Pascal – język programowania wysokiego poziomu opracowany przez Niklausa Wirtha w 1970 roku, pascal
zwany czasem Turbo Pascalem lub w skrócie TP, co błędnie można
skojarzyć z Telekomunikacją Polską.
Pascal, wbrew powszechnej opinii, jest językiem programowania, mimo że
często myli się go ze wspaniałym kucharzem Pascalem Brodnickim. Język
ten przez wielu błędnie zbudowanych programistów uważany jest za wyższy
poziomem od innych, jednak może być to mylny trop. Krążą plotki że
nawet dinozaury w tym języku już nie programują. Język ten jest
klasycznym językiem ze zwykłym bałaganem kodu
źródłowego. Programiści, którzy zaczynają
się uczyć Pascala, muszą obowiązkowo przebyć lekcję
wychodzenia z zaplątanych labiryntów, ponieważ w trakcie pracy mogliby
się przez przypadek zaplątać w zaplątany kod źródłowy. Pascal pozwala na
tworzenie prostych aplikacji, z uwzględnieniem wymagań zajmowania
potwornej ilości miejsca na dysku twardym.
''Pisanie w Pascalu jest jak pisanie wierszem,
inne C-podobne języki to zwykła proza i krzaki.''
Lamer o Pascalu
Turbo Pascal
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 reszte do wyplacenia: ');
ReadLn(R);
i:=1;
while (R>0) do {dopoki nie wydano calej reszty}
begin
if R>= N[i] then {sprawdz czy mozna wydac danym nominalem}
begin
P:= R div N[i]; {ile razy wydac dany nominal}
R:= R - (P*N[i]); {zmniejsz reszte o wydany nominal}
WriteLn(N[i], ' x ', P); {wypisz wynik}
end;
inc(i); {rozpatrz kolejny nominal}
end;
repeat until keypressed;
end.
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.
C++
//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;
}
Brak komentarzy:
Prześlij komentarz