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

Delphi Sources



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

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 11.12.2009, 21:54
Asira Asira вне форума
Новичок
 
Регистрация: 11.12.2009
Сообщения: 76
Репутация: -26
По умолчанию Помогите пожалуйста найти ошибки в элементарной программе

Дан одномерный целочисленный массив. Составить программу для решения следующих задач, используя сначала процедуры (функции) с циклами, а затем рекурсивные процедуры (функции):
Найти сумму элементов массива, являющихся точными квадратами
Не могу найти ошибку из-за которой ничего не выводит

Код:
uses
  SysUtils;
type mas=array[1..10] of integer;
procedure Vvod(var m:mas);
var i:integer;
begin
for i:=1 to 10 do
begin
write('m[',i,']=');
readln(m[i]);
end;
end;
procedure vivod(m:mas);
var i: integer;
begin
for i:=1 to 10 do
write(m[i],' ');
end;
procedure su1(m:mas;var s1:integer);
var i,n:integer;
begin
s1:=0;
for i:=1 to 100 do
begin
for n:=1 to 100 do
begin
if m[i]=sqr(n) then s1:=s1+m[i];
end;
end;
end;
procedure su2(m:mas;var s2:integer);
var i,k:integer;
begin
s2:=0;
if i>0 then
begin
if m[i]=sqr(k) then s2:=s2+m[i];
end;
su2(m,s2);
readln;
end;
var i,s1,s2:integer;
    m:mas;
begin
Vvod(m);
 vivod(m);
su1(m,s1);
su2(m,s2);
writeln(s1);
writeln(s2);
readln;
end.

lmikle: пользуемся тегами!!!
Ответить с цитированием
  #2  
Старый 11.12.2009, 22:09
lmikle lmikle вне форума
Модератор
 
Регистрация: 17.04.2008
Сообщения: 8,093
Версия Delphi: 7, XE3, 10.2
Репутация: 49089
По умолчанию

1. А где директива {$APPTYPE CONSOLE}?

2. Процедура su1.
У тебя массив до скольких? А цикл по нему до скольких?

3. Процедура su2.
Где инициализация i? Или там вообще в ифе неправильно условие.
Ответить с цитированием
  #3  
Старый 11.12.2009, 22:15
Kapitoshka438 Kapitoshka438 вне форума
Начинающий
 
Регистрация: 09.11.2009
Сообщения: 145
Репутация: 238
По умолчанию

У вас абсолютно неверная рекурсивная процедура. В ней объявляется переменная i и происходит обращение к i-му элементу массива. А чему равно значение i в это время? Да чему угодно.
Ответить с цитированием
  #4  
Старый 11.12.2009, 22:20
Asira Asira вне форума
Новичок
 
Регистрация: 11.12.2009
Сообщения: 76
Репутация: -26
По умолчанию

Директива есть, просто тут не напечатала.. массив одномерный целочисленный от 1 до 10
да ошибка вроде бы в рекурсии, я не знаю как её исправить...(
Помогите исправить рекурсию..?!!!!!!!!

Последний раз редактировалось Asira, 12.12.2009 в 14:01.
Ответить с цитированием
Ответ


Delphi Sources

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

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

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

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


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


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

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