3 / 3 / 1
Регистрация: 03.01.2010
Сообщений: 69
1

Ошибка в выводе данных в Memo

14.05.2011, 20:45. Показов 1680. Ответов 4
Метки нет (Все метки)

Всем привет! Не могу разобраться, где криво накодил... Тема избитая - совершенные числа. Само нахождение чисел верное, а вот с выводом беда, как ни пробовал, верно не выводит
Посмотрите свежим взглядом, где накосячил, а то уже мозг кипит...

Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
procedure TForm1.Button1Click(Sender: TObject);
Var
x,y,z,a,n:integer;
stroka:string;
begin
x:=StrToInt(Edit1.Text);
n:=x-1;
Memo1.Clear;
If x<1000 then
              begin
              z:=0;
              for y:=1 to n do
                  if x mod y=0 then z:=z+y;
                  if z=x then
                  Memo1.Lines.Add(FloatToStr(x));
              end
Else Form2.Visible:=True;
end;
Вложения
Тип файла: rar СовЧисла.rar (169.6 Кб, 9 просмотров)
__________________
Помощь в написании контрольных, курсовых и дипломных работ здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
14.05.2011, 20:45
Ответы с готовыми решениями:

Ошибка в выводе данных
ShowMessage(&quot;Вы ответили на &quot;+i+&quot;вопросов правильно&quot;); ошибка: class1.h(436): E2085 Invalid...

Ошибка в выводе данных
здравствуйте. подскажите, пожалуйста, где ошибка ? #include &lt;iostream.h&gt; #include &lt;stdlib.h&gt;...

Ошибка в выводе данных
Всем привет. Помогите с программой: она работает, но не корректно. :) Сперва программа должна...

Ошибка при выводе данных
Вот пример из книжки #include &lt;stdarg.h&gt; #include &lt;stdlib.h&gt; #include &lt;stdio.h&gt; double *...

4
376 / 329 / 89
Регистрация: 26.05.2010
Сообщений: 750
14.05.2011, 21:35 2
Delphi
1
if z=x then  Memo1.Lines.Add(FloatToStr(x));
это условие не выполнится никогда, чет значит неверно в твое алгоритме.
0
3 / 3 / 1
Регистрация: 03.01.2010
Сообщений: 69
14.05.2011, 22:04  [ТС] 3
Почему не выполнится? Если сумма делителей числа будет равна самому числу (это как раз характеристика совершенных чисел) то выполнится. Например, если вводить 6, 28 или 496 (первые три совершенных числа до 8000) то они будут выведены в Memo...
0
5589 / 2192 / 459
Регистрация: 20.11.2009
Сообщений: 7,334
Записей в блоге: 1
15.05.2011, 03:05 4
у тебя цикл прокручивает только первое условие, второе условие в цикл не входит уже получается, поэтому и выходит билиберда с выводом, попробуй тело цикла взять в begin .. end, как я понял из кода, что чисел будет не 1, получается что цикл не касается ничего кроме первого условия...
1
Почетный модератор
64071 / 47482 / 32733
Регистрация: 18.05.2008
Сообщений: 115,185
15.05.2011, 06:45 5
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
procedure TForm1.Button1Click(Sender: TObject);
Var x,y,z,a:integer;
begin
x:=StrToInt(Edit1.Text);
If x<1000 then
 begin
   for y:=1 to x-1 do
     begin
      z:=0;
      for a:=1 to y div 2 do
      if y mod a=0 then z:=z+a;
      if z=y then Memo1.Lines.Add(IntToStr(y))
     end;
 end
Else Form2.Visible:=True;
end;
И Мемо чуть раздвинь по высоте, в то три числа не входят....
1
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
15.05.2011, 06:45

Ошибка при выводе данных
Здравствуйте. Есть текстовый файл где построчно записаны данные о лекарстве в виде &quot;Название&quot;...

Ошибка при выводе данных из БД
Доброго дня. Не могу сообразить... Ошибка следующая Warning: mysqli_fetch_array() expects...

Ошибка при выводе данных из бд
Здравствуйте прошу не кидать тапками только начал изучать php и это первый раз когда обращаюсь в...

Ошибка при выводе данных
Не могу понять,в чем ошибка? &lt;form method=&quot;post&quot; action=&quot;forum.php&quot;&gt; Name of topic&lt;input...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.