|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
09.06.2008, 23:02 | #1 | |
Регистрация: 08.06.2008
Сообщений: 5
|
помогите. массив не взамодействует с функцией. какая-то ошибка стека.
ЗАДАНИЕ: создать функцию, которая будет заполнять нужный мне массив (одномерный массивы определенного размера). Т.е. чтобы каждый раз, при заполнении 2 и более одинаковых массивов, не писать стандартно:
for i:=1 to n do readln(a[i]); а использовать отдельную для этого отдельную функцию. ВОТ МОЙ КОД: Цитата:
!!!ОШИБКА 202 - ПЕРЕПОЛНЕНИЕ СТЕКА. Как исправить код так чтобы все работало. |
|
10.06.2008, 00:37 | #2 |
Форумчанин
Регистрация: 06.06.2008
Сообщений: 105
|
Во-первых -
x - глобальная переменная, зачем ее передавать в функцию? Во вторых - функция возвращает конкретное число, в данном случае x[n]; И ты в массив а присваиваешь лишь одно число. Тебе просто надо в цикле скопировать массив. |
10.06.2008, 06:18 | #3 | |
Старожил
Регистрация: 13.10.2007
Сообщений: 2,740
|
Цитата:
Сначала в разделе типов объявляется: type Tmass=array [1..100] of integer; А в функции function fill_mas (x: Tmass):integer; Сейчас посмотрим какой результат выдает ваша функция? Она выдает одно число типа Integer, а это вообще не массив. Кроме того, по-моему это Паскаль, а в Паскале массивов array of integer, т.е. динамических массивов нет. И вообще для создания массива больше подходит процедура. Вот как это примерно выглядит. Это самый примитивный вариант. В зависимости от задачи, процедуру можно еще кое-чем нагрузить. Код:
Последний раз редактировалось puporev; 10.06.2008 в 06:42. |
|
10.06.2008, 08:05 | #4 | |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
Цитата:
А дело тут в том что вот тут : a[n]:=fill_mas(x[n]); в функцию передается число а надо... что??? Правильно! Таким образом исправление будет выглядеть так: a[n]:=fill_mas(x); P.S. Хотя должен признаться что тоже не понял задумку автора...
I'm learning to live...
|
|
10.06.2008, 08:12 | #5 |
Старожил
Регистрация: 13.10.2007
Сообщений: 2,740
|
Поскольку в Паскале динамических массивов по умолчанию, т.е. array of integer нет по определению, то объявлять так параметр нельзя, а объявлять параметр как a:array[1..11]of integer тем более нельзя.
И вообще внесите предлагаемые вами изменения в код автора темы и посмотрите, что у Вас выйдет. |
10.06.2008, 08:32 | #6 | ||
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
Цитата:
Цитата:
I'm learning to live...
Последний раз редактировалось Stilet; 10.06.2008 в 08:34. |
||
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
помогите с функцией | 1234 | Общие вопросы Delphi | 5 | 30.08.2008 10:55 |
Помогите с функцией | Родион | Общие вопросы Delphi | 3 | 08.05.2008 19:18 |
Ошибка переполнения стека из-за использования рекурсий | Morrigan13 | Помощь студентам | 5 | 02.04.2008 08:04 |
Какая то ошибка! | aesoem | БД в Delphi | 3 | 06.03.2008 18:18 |
помогите с функцией | zetrix | Microsoft Office Excel | 0 | 31.10.2006 07:32 |