Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 22.05.2012, 15:04   #1
Лиза_
 
Регистрация: 11.04.2011
Сообщений: 9
По умолчанию Задача в Pascal ABC

Дано натуральное число a, a<10. Верно ли следующее утверждение: произведение цифр данного числа больше 25?
Помогите пожалуйста написать программу к задаче!!
Лиза_ вне форума Ответить с цитированием
Старый 22.05.2012, 15:08   #2
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Лиза, или вы опечатались, или задача БЕССМЫСЛЕНА.
для любого натурального числа a, a<10 количество цифр всегда 1 (одна цифра).
поэтому ни а каком произведении речи быть не может!
Serge_Bliznykov вне форума Ответить с цитированием
Старый 22.05.2012, 15:19   #3
Лиза_
 
Регистрация: 11.04.2011
Сообщений: 9
По умолчанию

Да, я ошиблась a>10
Лиза_ вне форума Ответить с цитированием
Старый 22.05.2012, 17:20   #4
@нтошка
Помог? Дави весы!
Пользователь
 
Регистрация: 15.05.2012
Сообщений: 25
По умолчанию

Вот код:

Код:
program p1;
var
    otv,a:integer;
    i:integer;
    s:string;
begin
    cls;
    repeat
        writeln('Введите число, большее 10');
        readln(a);
    until a>10;
    s:=inttostr(a);
    otv:=1;
    for i:=1 to length(s) do
    begin
        otv:=strtoint(s[i])*otv;
        if otv > 25 then
        begin
            writeln('Произведение цифр больше 25');
            exit;
        end;
    end;
    writeln('Произведение цифр меньше либо равно 25');
end.
@нтошка вне форума Ответить с цитированием
Старый 23.05.2012, 10:00   #5
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

нормальное решение.

рискну предполжить более "честный" вариант - без использования преобразования строковых данных:
Код:
program p1;
var
    otv,a:integer;
    i:integer;
begin
    cls;
    repeat
        writeln('Введите число, большее 10');
        readln(a);
    until a>10;
    otv:=1;
    while (otv<=25) and (a>0) do
    begin
      otv := otv * (a mod 10);
      a := a div 10;
    end;
    if otv > 25 then
      writeln('Произведение цифр больше 25')
    else
      writeln('Произведение цифр меньше либо равно 25');
end.
Serge_Bliznykov вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Pascal abc задача Alina305 Помощь студентам 2 18.12.2011 22:09
задача Pascal ABC EvilCry Помощь студентам 2 26.10.2011 20:28
Задача на Pascal ABC 1 antony sky Паскаль, Turbo Pascal, PascalABC.NET 1 09.05.2011 10:54
Задача на Pascal ABC 2 antony sky Паскаль, Turbo Pascal, PascalABC.NET 1 09.05.2011 10:54