|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
27.11.2013, 01:06 | #1 |
Пользователь
Регистрация: 11.11.2013
Сообщений: 74
|
Работа с записями и файлом
Что неправильно? Сейчас компилятор выдаёт ошибку "Строка 23 столбец 16 Переменная не является именем массива"
Код:
Последний раз редактировалось orandzheviyman; 27.11.2013 в 01:19. |
27.11.2013, 01:29 | #2 |
Старожил
Регистрация: 02.03.2008
Сообщений: 2,499
|
В процедуре Poisk локальная переменная ALLbooks имеет тип longint, а никакой не массив. Она - просто " тезка " глобальной ALLbooks
И еще - кавычку забыли в Код:
Последний раз редактировалось type_Oleg; 27.11.2013 в 01:34. |
27.11.2013, 01:35 | #3 | |
Пользователь
Регистрация: 11.11.2013
Сообщений: 74
|
Цитата:
PROCEDURE Poisk (Q:longint); или как? Я что-то совсем не оч с этими процедурами и функциями( |
|
27.11.2013, 08:03 | #4 |
Участник клуба
Регистрация: 05.11.2013
Сообщений: 1,601
|
Да, можно. Все равно с глобальной переменной работаете.
|
27.11.2013, 09:51 | #5 | |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
Цитата:
Но я бы рекомендовал, если есть возможность ИЗБАВЛЯТЬСЯ в коде от использования ГЛОБАЛЬНЫХ переменных. в вашем случае код может выглядеть так (я позволил себе ещё кое-что изменить в вашем коде так, как посчитал нужным ): Код:
|
|
27.11.2013, 10:21 | #6 | |
Пользователь
Регистрация: 11.11.2013
Сообщений: 74
|
Цитата:
Код:
__________________ Оверквотинг (overquoting) на форуме запрещён. Не злоупотребляйте избыточным цитированием. Если Вы отвечаете на предыдущее сообщение, нет необходимости приводить его полностью в своем ответе. В крайнем случае выберите нужный фрагмент и процитируйте его. Модератор. Последний раз редактировалось Serge_Bliznykov; 27.11.2013 в 10:49. |
|
27.11.2013, 11:07 | #7 | |||
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
Цитата:
Цитата:
Давайте поступим так, вы прочитаете про параметры процедур/функций (в любом учебники или интернете), потом, если вопросы останутся - вы их зададите. Если вкратце, через параметры мы передаём все необходимые для работы данной процедуры/функции величины. Передаются они с помощью т.н. ФОРМАЛЬНЫХ параметров. указываем имя параметра и его тип. Перед именами допускаются модификаторы var (означает, что параметр передаётся по ссылке и все изменения, внесённые в этот параметер внутри процедуры/функции отразятся на реальном(фактическом) параметре, который мы передадим. Именно с помощью данного модификатора можно обеспечить возвращение нескольких значений из процедуры или функции (функция от процедуры, кстати, отличается только тем, что функция ещё возвращает своё значение, но только одно (одного типа). А указав несколько параметров с модификатором var можно их все вернуть. Так, например, мы поступаем в процедуре CreateNewFile - данная процедура возвращает не только введённый массив, но и количество элементов в массиве (параметер N) и даже имя файла, куда мы писали данные. Модификатор const перед именем переменной означает, что внутри процедуры/функции запрещено изменять значение данного параметра. когда вызываем процедуру/функцию на место формальных параметров подставляем ФАКТИЧЕСКИЕ значения. Внимание, перечень фактических параметоров должен СТРОГО соответствовать перечню объявленных формальных параметров, как порядок, так и тип и модификатор. например, если мы объявили формальный FileName типа string с модификатором var, то данную процедуру НЕЛЬЗЯ вызвать, указать строковую константу: Код:
Цитата:
Это всё просто для облегчения жизни пользователя (чтобы не запоминать имя файла, в который записали значения). можно и так сделать: Код:
Код:
|
|||
27.11.2013, 12:32 | #8 |
Пользователь
Регистрация: 11.11.2013
Сообщений: 74
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Работа с записями | сергей817 | Паскаль, Turbo Pascal, PascalABC.NET | 2 | 24.03.2013 10:06 |
Работа с записями | Falcao | Паскаль, Turbo Pascal, PascalABC.NET | 6 | 03.12.2012 23:35 |
Работа с записями | dima-intro | Помощь студентам | 1 | 26.12.2010 13:43 |
Работа с записями | Nitriyc | Помощь студентам | 4 | 05.12.2009 19:30 |
Работа с записями | Viata | Паскаль, Turbo Pascal, PascalABC.NET | 3 | 24.06.2009 09:03 |