![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
|
|
#1
|
|||
|
|||
|
Дан одномерный целочисленный массив. Составить программу для решения следующих задач, используя сначала процедуры (функции) с циклами, а затем рекурсивные процедуры (функции):
Найти сумму элементов массива, являющихся точными квадратами Не могу найти ошибку из-за которой ничего не выводит Код:
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
|
|||
|
|||
|
1. А где директива {$APPTYPE CONSOLE}?
2. Процедура su1. У тебя массив до скольких? А цикл по нему до скольких? 3. Процедура su2. Где инициализация i? Или там вообще в ифе неправильно условие. |
|
#3
|
|||
|
|||
|
Директива есть, просто тут не напечатала.. массив одномерный целочисленный от 1 до 10
да ошибка вроде бы в рекурсии, я не знаю как её исправить... ![]() (Помогите исправить рекурсию..?!!!!!!!! Последний раз редактировалось Asira, 12.12.2009 в 14:01. |
|
#4
|
|||
|
|||
|
У вас абсолютно неверная рекурсивная процедура. В ней объявляется переменная i и происходит обращение к i-му элементу массива. А чему равно значение i в это время? Да чему угодно.
|