środa, 9 listopada 2016

Rozwiązywanie problemów

1.Sformułowanie problemu.
2.Rozwiązanie problemu. 

a) 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
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

b) SCHEMAT BLOKOWY: 

Prezentacja kolejnych czynności w projektowanym algorytmie.







c) REALIZACJA:
  •  PROGRAM MS Exel




  •  PROGRAM Turbo Pascal
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.




  • PROGRAM 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;

  •  PROGRAM VBA
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.

Brak komentarzy:

Prześlij komentarz