Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 12.06.2011, 20:34
Dima170792 Dima170792 вне форума
Новичок
 
Регистрация: 02.04.2011
Сообщения: 61
Репутация: 10
По умолчанию Вывести список трёхзначных чисел,которые делятся на произведение своих цифр в 5 колон

Доброго времени суток ув.форумчане ! нужна ваша помощь в решении задачи по информатике.язык программирования Delphi7.Задача:Вывести список трехзначных чисел,которые делятся на произведение своих цифр в 5 колонках.Поставить защиту от деления на 0!По возможности выложите полный код программы!Заранее благодарен.
Ответить с цитированием
  #2  
Старый 12.06.2011, 21:00
Аватар для Gravitas
Gravitas Gravitas вне форума
Новичок
 
Регистрация: 12.06.2011
Сообщения: 61
Версия Delphi: 7
Репутация: 38
По умолчанию

Цитата:
в 5 колонках
По какому критерию их распасовывать нужно?
__________________
Gravitas
Ответить с цитированием
  #3  
Старый 12.06.2011, 21:17
Аватар для Gravitas
Gravitas Gravitas вне форума
Новичок
 
Регистрация: 12.06.2011
Сообщения: 61
Версия Delphi: 7
Репутация: 38
По умолчанию

Цитата:
program Schitalovo;

{$APPTYPE CONSOLE}

uses
SysUtils;

var
i,z,c:integer;
x:string;
begin
for i:=100 to 999 do begin
x:=IntToStr(i);
z:=StrToInt(x[1]);
for C:=2 to length(x) do
z:=z*StrToInt(x[c]);
if z<>0 then begin
if (StrToInt(x) mod z) = 0 then
WriteLn(x);
end;
end;
ReadLn;
end.
Вроде бы работает как надо.
Вставил подсчитывание. Чисел получилось 20. Т.е. по 4 числа в столбце.
__________________
Gravitas

Последний раз редактировалось Gravitas, 12.06.2011 в 21:21.
Ответить с цитированием
  #4  
Старый 12.06.2011, 22:21
Dima170792 Dima170792 вне форума
Новичок
 
Регистрация: 02.04.2011
Сообщения: 61
Репутация: 10
По умолчанию

Спасибо за код!Вы не моглибы помочь-я непонимаю как єто организовать в Delphi 7!
Ответить с цитированием
  #5  
Старый 12.06.2011, 22:29
Аватар для Gravitas
Gravitas Gravitas вне форума
Новичок
 
Регистрация: 12.06.2011
Сообщения: 61
Версия Delphi: 7
Репутация: 38
По умолчанию

Цитата:
Сообщение от Dima170792
Спасибо за код!Вы не моглибы помочь-я непонимаю как єто организовать в Delphi 7!
Это оно и есть.
File => New => Other => Console Application
И вставляйте код туда.
__________________
Gravitas
Ответить с цитированием
  #6  
Старый 12.06.2011, 22:30
Аватар для angvelem
angvelem angvelem вне форума
.
 
Регистрация: 18.05.2011
Адрес: Омск
Сообщения: 3,970
Версия Delphi: 3,5,7,10,12,XE2
Репутация: выкл
По умолчанию

Эх, опоздал.
Ответить с цитированием
  #7  
Старый 12.06.2011, 23:33
Dima170792 Dima170792 вне форума
Новичок
 
Регистрация: 02.04.2011
Сообщения: 61
Репутация: 10
Печаль

Цитата:
Сообщение от Gravitas.
Это оно и есть.
File => New => Other => Console Application
И вставляйте код туда.
ПРОБЛЕМА В ТОМ ЧТО МНЕ НУЖНО НЕ КОНСОЛЬНОЕ А ОКОННОЕ ПРИЛОЖЕНИЕ!ЕСЛИ ВОЗМОЖНО-ПОМОГИТЕ ОРГАНИЗОВАТЬ!
Ответить с цитированием
  #8  
Старый 13.06.2011, 02:12
lmikle lmikle вне форума
Модератор
 
Регистрация: 17.04.2008
Сообщения: 8,048
Версия Delphi: 7, XE3, 10.2
Репутация: 49089
По умолчанию

1. Не надо капсить.
2. Выводи в Memo в окне.
Ответить с цитированием
  #9  
Старый 13.06.2011, 09:56
Аватар для Gravitas
Gravitas Gravitas вне форума
Новичок
 
Регистрация: 12.06.2011
Сообщения: 61
Версия Delphi: 7
Репутация: 38
По умолчанию

На форму кинь Memo и кнопку. В обработчике клика по кнопке (Button1Click):
Код:
var
 i,z,c:integer;
 x:string;
 begin
 for i:=100 to 999 do begin
 x:=IntToStr(i);
 z:=StrToInt(x[1]);
 for C:=2 to length(x) do
 z:=z*StrToInt(x[c]);
 if z<>0 then begin
 if (StrToInt(x) mod z) = 0 then
 Memo1.Lines.Add(x);
 end;
 end;
end;
__________________
Gravitas
Ответить с цитированием
  #10  
Старый 13.06.2011, 11:32
ART ART вне форума
Продвинутый
 
Регистрация: 13.02.2006
Адрес: Магнитогорск
Сообщения: 669
Репутация: 14745
По умолчанию

Мой код получше вроде )

Код:
procedure Solve;
var
 i, j: integer;
begin
 for i := 100 to 999 do begin
  j := (i div 100) * ((i div 10) mod 10) * (i mod 10);
  if j <> 0 then
   if i mod j = 0 then begin
    //тут добавляем как надо
  end;
 end;
end;
Ответить с цитированием
  #11  
Старый 13.06.2011, 11:41
Аватар для Gravitas
Gravitas Gravitas вне форума
Новичок
 
Регистрация: 12.06.2011
Сообщения: 61
Версия Delphi: 7
Репутация: 38
По умолчанию

Ему бы и в том еще разобраться(
__________________
Gravitas
Ответить с цитированием
  #12  
Старый 13.06.2011, 13:41
Dima170792 Dima170792 вне форума
Новичок
 
Регистрация: 02.04.2011
Сообщения: 61
Репутация: 10
Радость

Теперь все!Спасибо Gravitas.!
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

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

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 17:23.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter