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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 22.06.2010, 15:14   #1
Warfvare
Пользователь
 
Регистрация: 17.06.2010
Сообщений: 33
По умолчанию Где в программе ошибка?

составить алгоритм и программу нахождения суммы элементов массива с номерами 2,7,12,17,....
Но у меня выводит 0 подскажите где тут ошибка или есть какой то другой вариант? Проблема вроде с увеличением b;

Код:
procedure TForm1.Button1Click(Sender: TObject);
var a:array[1..20] of Integer;
    i,sum:Integer;
    b:Real;

begin
  Randomize;
  for i:=1 to 20 do
   begin
     a[i]:=Random(20);
      Edit1.Text:=Edit1.Text+IntToStr(a[i])+' ';
   end;

   sum:=a[2];
   B:=1.4;

   for i:=1 to 20 do
    begin
      if i / 5 =b then sum:=sum+a[i];
      b:=b+1;
    end;
    Edit2.Text:=IntToStr(sum);

end;

Последний раз редактировалось Stilet; 22.06.2010 в 15:50.
Warfvare вне форума Ответить с цитированием
Старый 22.06.2010, 15:22   #2
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

а так?
Код:
for i:=1 to 20 do
begin
if (i-2) mod 5 =0 then sum:=sum+a[i];
b:=b+1;
end;
а вообще, если шаг задан, то почему бы его не исопльзовать?!!
сравните:

Код:
sum :=0;
i := 2;
while i<=20 do begin
   sum := sum + a[i];
   i := i + 5;
end;  
Edit2.Text:=IntToStr(sum);
Serge_Bliznykov вне форума Ответить с цитированием
Старый 22.06.2010, 15:23   #3
Z1000000
Форумчанин
 
Регистрация: 04.05.2010
Сообщений: 495
По умолчанию

Код:
i / 5 =b
Это условие в твоем коде невыполнимо, потому что тип i - целое число, и все операции над ним будут давать результат целого типа.

Подойдет вот такой вариант.
Код:
sum:=0;
for i:=1 to 20 do
 begin
 if i mod 5 = 2 then begin sum:=sum+a[i];end;
 end;
Нажми на весы, поставь +
Для благодарностей : WebMoney WMR R252732729948
Z1000000 вне форума Ответить с цитированием
Старый 22.06.2010, 15:26   #4
Warfvare
Пользователь
 
Регистрация: 17.06.2010
Сообщений: 33
Радость

Код:
sum :=0;
i := 2;
while i<=20 do begin
   sum := sum + a[i];
   i := i + 5;
end;  
Edit2.Text:=IntToStr(sum);
[/QUOTE]

Все работает спасибо огромное
Warfvare вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Ошибка в программе forman Общие вопросы C/C++ 1 18.05.2010 22:47
подробнее о программе где сравнение массивов moda Паскаль, Turbo Pascal, PascalABC.NET 2 21.03.2010 15:19
Ошибка в программе larin1974 Помощь студентам 7 06.03.2010 20:44
С++ Ошибка в программе EwwwA Общие вопросы C/C++ 5 05.01.2009 23:12
Подскажите, где в программе ошибка gamer123 Паскаль, Turbo Pascal, PascalABC.NET 3 25.02.2008 03:09