![]() |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code], либо быть опубликованы на нашем PasteBin в режиме вечного хранения.
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
![]() ![]() |
![]() |
Lodar' |
![]()
Сообщение
#1
|
Новичок ![]() Группа: Пользователи Сообщений: 38 Пол: Мужской Репутация: ![]() ![]() ![]() |
задача такая: Cоставить программу определяющюю сдачу с рубля наименьшим количеством монет.
Используемые монеты: 1коп, 2коп, 3коп, 5коп, 10коп, 15коп, 20коп, 50коп |
volvo |
![]()
Сообщение
#2
|
Гость ![]() |
Стоп... Это - олимпиадная задача: Здесь - условия , поэтому тема пока закрыта... Решения олимпиадных задач с олимпиад, проходящих в настоящее время - не будет...
Добавлено через 12 мин. P.S. Приводи свою попытку решения задачи, если она у тебя есть, поможем разобраться что не так. |
Lodar' |
![]()
Сообщение
#3
|
Новичок ![]() Группа: Пользователи Сообщений: 38 Пол: Мужской Репутация: ![]() ![]() ![]() |
program Pr1;
const
Nmonet=8;
type
Tmassive=array[1..Nmonet] of real;
var
sdaha,price:real;
monet:Tmassive;
numb:integer;
function Podshet(const rnd:real):integer;
var
tmp:real;
i,count:integer;
begin
count:=0;
tmp:=rnd;
i:=1;
repeat
if tmp-monet[i]>=0 then
begin
tmp:=tmp-monet[i];
count:=count+1;
end
else
i:=i+1;
until tmp=0 ;
Podshet:=count;
end;
procedure fillMass;
begin
monet[1]:=0.5;
monet[2]:=0.2;
monet[3]:=0.15;
monet[4]:=0.1;
monet[5]:=0.05;
monet[6]:=0.03;
monet[7]:=0.02;
monet[8]:=0.01;
end;
begin
fillMass;
writeln('Vvedite LLEHY TOBAPA');
readln (price);
sdaha:=1-price;
numb:=Podshet(sdaha);
writeln(numb);
readln;
end.
|
amega |
![]()
Сообщение
#4
|
![]() ? ![]() ![]() ![]() Группа: Пользователи Сообщений: 283 Пол: Мужской Репутация: ![]() ![]() ![]() |
да че мучатся давать здачу нада по 1 коп, шоб побольше было
![]() все просто, береш масив от 1 до 8. будем щитать что а1 это 1 коп, а2 - 2 коп .... берем здачу смотрим если она больше 50 коп то отнимаем 50 и а8:=а8+1 иначе смотрим если она меньше 50 то смотрим для 25 и так пока здача не стала 0. на выходе получается масив де каждый елемент соответствует количеству монет ![]() хехе пока я набирал текст уже програмку напечатали))) Сообщение отредактировано: amega - |
Lodar' |
![]()
Сообщение
#5
|
Новичок ![]() Группа: Пользователи Сообщений: 38 Пол: Мужской Репутация: ![]() ![]() ![]() |
написанная мной прога не работает. Подскажите пожалуйста где что не так? и где что можно улучшить
|
volvo |
![]()
Сообщение
#6
|
Гость ![]() |
Lodar', задача решается гораздо проще - по вышеописанному алгоритму:
program Pr1;
const
Nmonet=8;
type
Tmassive=array[1..Nmonet] of integer;
const
monet:Tmassive = (50, 20, 15, 10, 5, 3, 2, 1);
var
price: integer;
count, total: integer;
i: integer;
begin
writeln('Vvedite LLEHY TOBAPA');
readln (price);
i := 1;
while price > 0 do begin
count := 0;
while price >= count * monet[i] do inc(count);
dec(count);
if count > 0 then begin
writeln(count, ' coins of ', monet[i]);
dec(price, count * monet[i]);
inc(total, count);
end;
inc(i);
end;
writeln('total coins: ', total);
readln;
end.
|
amega |
![]()
Сообщение
#7
|
![]() ? ![]() ![]() ![]() Группа: Пользователи Сообщений: 283 Пол: Мужской Репутация: ![]() ![]() ![]() |
Цитата Стоп... Это - олимпиадная задача: Здесь - условия а как ты узнал что эта олимпиадная задача, если ты по таким сайтам сидиш то не мог бы дать ссылки на такие олимпиады ![]() |
![]() ![]() |
![]() |
Текстовая версия | 18.04.2025 23:07 |