Компьютерный форум
Правила
Вернуться   Компьютерный форум > Форум программистов > Языки программирования > Pascal
Перезагрузить страницу простая задачка, но в коде где-то ошибка...
Ответ
 
Опции темы Опции просмотра
  (#1 (permalink)) Старый
sergey1801 sergey1801 вне форума
Member
 
Сообщений: 58
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 23.10.2008
По умолчанию 31.10.2008, 23:14

доброго всем времени суток!
вот задача:
Товар стотит N рублей.
у покупателя неограниченное количество монет достоинством 1, 5, 10 и 50 рублей.
какое минимальное количество монет потребуется ему для оплаты товара?

Вот требования:
Выводится сообщение "Сколько стоит товар"
Проверяется правильность введенного пользователем числа.
Считается минимальное количество монет, для оплаты товара
и количество монет каждого достоинства.

Тест:

Сколько стоит товар: 163
7
1 рубль: 3
5 рублей: 0
10 рублей: 1
50 рублей: 3

вот мое решение:
Код:
uses crt;
var
    n,a,a1,b,b1,c,c1,d,d1,sum:integer;

begin
repeat
 clrscr;
  write(' Vvedite stoimost tavara : ');
  readln(n);
  writeln;
 until n>0;
  begin
    if n>=50 then
      begin
     a:=n div 50;
     a1:=n mod 50;
      end
      else   begin a1:=n; a:=0; end;
    if a1>=10 then
      begin
     b:=a1 div 10;
     b1:=a1 mod 10;
      end
      else   begin b1:=a1; b:=0;
   if b1>=5 then
      begin
     c:=b1 div 5;
     c1:=b1 mod 5;
      end
      else   begin c1:=b1; c:=0; end;
   if c1>=1 then
      begin
     d:=c1 div 1;
     d1:=c1 mod 1;
      end
      else begin d:=0 end;
   sum:=a+b+c+d;
  writeln('qena: ',n);
  writeln('vsego monet: ',sum);
  writeln('1 rub: ',d);
  writeln('5 rub: ',c);
  writeln('10 rub: ',b);
  writeln('50 rub: ',a);
  readkey;
end;
end;
end.
вроде правильно все(проверял на листке свое решение-все правильно вроде), но не все цифры ( цены ) "берет", попробуйте сами.....например 56,107 выдаст результат, 190-нет.
подскажите в чем ошибся я...
спасибо всем если что заранее...)
Ответить с цитированием
  (#2 (permalink)) Старый
programer4ever programer4ever вне форума
Member
 
Сообщений: 326
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 06.04.2006
По умолчанию 01.11.2008, 00:08

Не вижу никакого смысла использовать div и mod :
Код:
var price,count,m50,m10,m5,m1: integer;
begin
 readln(price);
 while price > 0 do
  begin
   if price>=50 then
    begin
     price:=price-50;
     inc(count);
     inc(m50);
    end
   else
   if price>=10 then
    begin
     price:=price-10;
     inc(count);
     inc(m10);
    end
   else
   if price>=5 then
    begin
     price:=price-5;
     inc(count);
     inc(m5);
    end
   else
    begin
     price:=price-1;
     inc(count);
     inc(m1);
    end
  end;

  writeln('Nu*no ',count,' monet:');
  writeln('50 = ',m50);
  writeln('10 = ',m10);
  writeln('5  = ',m5);
  writeln('1  = ',m1);

  readln;
end.
Ответить с цитированием
  (#3 (permalink)) Старый
Dian Dian вне форума
Member
 
Сообщений: 5,243
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 17.09.2004
По умолчанию 01.11.2008, 06:48

Не, div и mod как раз на месте. Просто в первом посте многовато лишнего кода.

Код:
var
  i, price: integer;
  n50, n10, n5, n1: integer;
begin
  Readln(price);

  n50 := price div 50;
  price := price mod 50;

  n10 := price div 10;
  price := price mod 10;

  n5 := price div 5;
  price := price mod 5;

  n1 := price; 
end.
Ответить с цитированием
Ads
Ответ

Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Trackbacks are Вкл.
Pingbacks are Вкл.
Refbacks are Выкл.


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Ошибка в коде web-programm Pascal 2 15.10.2011 12:56
Робота SQL+PHP Ошибка в коде помогите пож. Elfen PHP 2 29.12.2010 20:17
турфирма (ошибка в коде :( ) Discover Prolog 0 08.12.2010 15:27
Самая простая задачка на Visual Prolog 7.2 esprit_bel Prolog 5 12.10.2010 09:15
Простая задачка про шахматы как вывести результат kost Игры разума 8 16.08.2010 11:17
Простая задачка. Нужно красивое решение. 12345 Prolog 8 15.08.2009 00:26
Простая задачка, но.... Джейн_Эйр Prolog 2 06.03.2008 14:57
очень простая, короткая, интересная задачка Шуре Prolog 2 26.12.2007 17:16
Как определить в чем ошибка в коде -=DeN=- С/С++ 3 30.11.2005 14:50
Как узнать что ошибка программы или же ошибка в программном коде Vasis Delphi 0 01.07.2004 16:09
Ошибка в программном коде Windows Anonymous Вопросы начинающих программистов 1 17.05.2004 02:22
Ошибка в коде как исправить Anonymous Java 7 08.09.2003 13:09



Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.
Нardforum.ru - компьютерный форум и программирование, форум программистов