Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

RusFAQ.ru: Программирование на языке Pascal


РАССЫЛКИ ПОРТАЛА RUSFAQ.RU

/ КОМПЬЮТЕРЫ И ПО / Языки программирования / Pascal

Выпуск № 440
от 06.09.2007, 17:05

Администратор:Калашников О.А.
В рассылке:Подписчиков: 243, Экспертов: 57
В номере:Вопросов: 1, Ответов: 4


Вопрос № 100452: Hi эксперты... Как передать в функцию двумерный массив типа string... пишу так: function foo(var s: array[100] of string): word; begin s[0]:= 'la-la-la'; s[1]:= 'tra-la-la'; ... result:= 0; end; Н...

Вопрос № 100.452
Hi эксперты...

Как передать в функцию двумерный массив типа string...
пишу так:
function foo(var s: array[100] of string): word;
begin
s[0]:= 'la-la-la';
s[1]:= 'tra-la-la';
...
result:= 0;
end;

Не понимаю почему компилятор(turbo pascal) выдает ошибку в заголовке функции...
Вообше, как вы уже поняли, мне нужен список, который я бы передовал этой функции и в ней его заполнял...есть другие варианты?
Отправлен: 01.09.2007, 16:49
Вопрос задал: Ragnarog (статус: Посетитель)
Всего ответов: 4
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Coupler
Здравствуйте, Ragnarog!
Нужно объявить тип массива, который Вы хотите передать в функцию, через type. Исправленный вариант в приложении.

Приложение:

Ответ отправил: Coupler (статус: Практикант)
Ответ отправлен: 01.09.2007, 16:55

Отвечает: Багиев Александр
Здравствуйте, Ragnarog!
Просто запрещено в качестве параметра передавать массив.
Зато можно создать новый тип на основе массива и использовать его в качестве типа параметра:

Приложение:

Ответ отправил: Багиев Александр (статус: 1-ый класс)
Ответ отправлен: 01.09.2007, 21:01

Отвечает: Дмитрий С.
Здравствуйте, Ragnarog!
вы неправильно задали массив - поэтому он и ругается. правильнее будет так:

function foo(var s: array[1..100] of string): word;

а при обращении к массиву - тоже возможна "нецензурщина" :) :

s[0]:= 'la-la-la';

в данном случае - у Вас нет элемента №0. Следует обращаться к первому..сотому
---------
Наши программисты самые программистые программисты!..
Ответ отправил: Дмитрий С. (статус: 3-ий класс)
Ответ отправлен: 03.09.2007, 15:44

Отвечает: Зенченко Константин Николаевич
Здравствуйте, Ragnarog!

У Вас компилятор выдает ошибки "ожидается идентификатор типа" или "предполагается OF".
Все дело в синтаксисе Паскаля: Заголовок процедуры или функции может содержать список формальных параметров, например так: (параметры; параметры; ... параметры). Каждая группа параметров может быть записана в одной из следующих форм:
идентификатор, идентификатор : тип { Список параметров - значений }
Var идентификатор, идентификатор : тип { Список переменных параметров }

Другими словами в заголовке функции должен быть указан один из стандартных(integer, boolean,char,real и т.д.) или объявленных пользователем типов. Тип пользователя можно объявить в секции Type программы.
Type myType=s: array[1..100] of string;
и использовать его:
function foo(var s:myType): word;
В данном случае компилятор ругается на присутствие зарезервированного слова ARRAY в заголовке функции. Ошибка будет появлятся и при использовании других зарезервированных слов: RECORD или SET.

Удачи!
---------
И только наступив на грабли мы приобретаем драгоценный опыт!
Ответ отправил: Зенченко Константин Николаевич (статус: Специалист)
Ответ отправлен: 03.09.2007, 20:55


Отправить вопрос экспертам этой рассылки

Приложение (если необходимо):

* Код программы, выдержки из закона и т.п. дополнение к вопросу.
Эта информация будет отображена в аналогичном окне как есть.

Обратите внимание!
Вопрос будет отправлен всем экспертам данной рассылки!

Для того, чтобы отправить вопрос выбранным экспертам этой рассылки или
экспертам другой рассылки портала RusFAQ.ru, зайдите непосредственно на RusFAQ.ru.


Форма НЕ работает в почтовых программах The BAT! и MS Outlook (кроме версии 2003+)!
Чтобы отправить вопрос, откройте это письмо в браузере или зайдите на сайт RusFAQ.ru.


© 2001-2007, Портал RusFAQ.ru, Россия, Москва.
Авторское право: ООО "Мастер-Эксперт Про"
Техподдержка портала, тел.: +7 (926) 535-23-31
Хостинг: "Московский хостер"
Поддержка: "Московский дизайнер"
Авторские права | Реклама на портале
Версия системы: 4.58 от 30.08.2007
Яндекс Rambler's Top100
RusFAQ.ru | MosHoster.ru | MosDesigner.ru | RusIRC.ru
Kalashnikoff.ru | RadioLeader.ru | RusFUCK.ru

В избранное