Форум программистов
 
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.

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

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

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

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

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

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

Вот код:

Код:

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
Сообщений: 24,613
Репутация: 5352
По умолчанию

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

рискну предполжить более "честный" вариант - без использования преобразования строковых данных:
Код:

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 вне форума   Ответить с цитированием
Ответ

Опции темы

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

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

Быстрый переход

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


19:03.


Powered by vBulletin® Version 3.8.8 Beta 2
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.

RusProfile.ru


Справочник российских юридических лиц и организаций.
Проекты отопления, пеллетные котлы, бойлеры, радиаторы
интернет магазин respective.ru