Задача 20 урок 15 "Банкомат"
Primary tabs
Задача 20 урок 15 "Банкомат"
Пользователь вводит целое число - сумму в некоторой валюте, требуется выдать эту сумму купюрами наибольшего достоинства.
Напишите программу, которая в качестве результата скажет как именно надо разменять указанную сумму купюрами наибольшего достоинства (укажет количество для купюры каждого типа)
program bankomat; type myArr = array[1..4] of integer; var a, b: myArr; sum, K1, K2, K3, K4, i: integer; itog: boolean; procedure bank2(var b: myArr);//процедура перестроения достоинства var j, i, k: integer; //купюр, если их ввели не по порядку begin //100 1000 for k:=1 to 3 do //50 --> 500 begin //500 100 for i:=1 to 3 do //1000 50 if b[i]<b[i+1] then begin j:=b[i]; b[i]:=b[i+1]; b[i+1]:=j; end; end; end; procedure bank(sum: integer; a: myArr; var b: myArr; var itog: boolean); var ost: integer; //Процедура подбора купюр begin itog:=true; if sum mod a[1] = 0 then b[1]:= sum div a[1] else begin ost:=sum mod a[1]; b[1]:=(sum-ost) div a[1]; if ost mod a[2]=0 then b[2]:= ost div a[2] else begin b[2]:= ost div a[2]; ost:=ost mod a[2]; if ost mod a[3]=0 then b[3]:= ost div a[3] else begin b[3]:= ost div a[3]; ost:=ost mod a[3]; if ost mod a[4]=0 then b[4]:= ost div a[4] else itog:=false; end; end; end; end; begin itog:=false; writeln('Vvedite Summu:'); readln(sum); // запрос суммы для выдачи банкоматом writeln('vibrat dostoinstvo kupur:'); readln(K1); a[1]:=K1; readln(K2); a[2]:=K2; readln(K3); a[3]:=K3; readln(K4); a[4]:=K4; bank2(a);//отправляе массив на перестроение bank(sum, a, b, itog);//отправляем массив на подбор купюр if itog then for i:=1 to 4 do writeln(a[i],'$ X ',b[i]) else writeln('Error'); readln(); end.
- Log in to post comments
- 1000 reads