
- •Информатика методические указания к контрольным работам
- •521200 – Социология
- •Введение
- •1. Учебно–методические материалы
- •2. Контрольное задание №1 Тема “Логические операции и построение графика нелинейной функции оптимизированной по одному из параметров”
- •2.1. Алгоритмы и схемы
- •Специальные символы
- •Типы данных
- •Выражения
- •Логические операции
- •Операции отношений
- •Порядок вычисления выражений
- •Операторы языка
- •Составной оператор
- •Условный оператор
- •Условный и арифметический операторы цикла
- •Массивы
- •Применение файлов и организация ввода–вывода
- •Вывод данных на экран производится обращением к стандартным процедурам:
- •2.3. Среда программирования Turbo Pascal 7.0
- •2.3.1. Система окон среды
- •2.3.1.1. Окна редактирования
- •2.3.1.2. Окна диалога
- •2.3.1.3. Информационные окна
- •2.3.1.3. Окна меню
- •2.3.2. Система меню среды Turbo Pascal 7.0
- •2.4. Набор и редактирование программы
- •2.5. Работа с блоками текста
- •2.6. Сохранение программы
- •2.7. Переименование имен файлов с программами
- •2.7. Компиляция программы
- •Запуск и отладка программы
Массивы
Массив – упорядоченный набор однотипных значений – компонент массива. Тип компонент массива определяют тип массива. В Паскале массив рассматривается как переменная структурированного типа. Массиву присваивается имя, посредством которого можно ссылаться на него, как на единое целое, так и на любую из его компонент по индексу.
Переменная с индексом – идентификатор компоненты массива. Формат записи:
<Имя массива> [< индекс >],
где индекс может быть выражением порядкового типа.
Описание массива определяет имя, размер массива и его тип. Описание обычно проводится в разделе объявления переменных. Возможно описание в разделе объявления типов и в разделе типизированных констант. Формат описания в разделе переменных:
Var <имя массива> :array[<тип индекса>] of <тип>
Чаще всего в качестве типа индекса используется интервальный целый тип.
Линейный (одномерный) массив – массив, у которого элементы – одноиндексные. В одномерных массивах хранятся значения линейных таблиц. Примеры описания одномерных массивов:
Var Shoes1 : array [0..15] of Real;
Shoes2 : array [0..25] of Char;
Ocean3 : array [‘A’..’Z’] of Integer;
Примеры описания многомерных массивов:
Var Shoes11 : array [0..15, 0..5] of Real;
Shoes22 : array [0..25, 0..5] of Char;
Ocean33 : array [‘A’..’Z’, 0..5] of Integer;
В примере с именем Ocean33 адресация к элементам целых данных будет осуществляться по букве и по цифре. Буквенно–цифровая индексация широко используется в электронных таблицах, таких как Microsoft Excel.
Ввод и вывод массива производится поэлементно. Обычно для этого используется цикл с параметром, где в качестве параметра применяется индексная переменная.
Применение файлов и организация ввода–вывода
Ввод данных с клавиатуры производится обращением к стандартным процедурам:
Read(<список ввода>) Readln(<список ввода>).
Элементы списка ввода – идентификаторы переменных. Вводимые значения отражаются на экране. При выполнении оператора пользователь набирает на клавиатуре соответствующую последовательность значений, разделяя их пробелами.
Вывод данных на экран производится обращением к стандартным процедурам:
Write(<список вывода>) Writeln(<список вывода>).
Если операторы ввода–вывода имеют окончание ln, то это означает, что после завершения операций ввода–вывода индикатор курсора перейдет на следующую строку, а если операторы ввода–вывода не имеют окончание ln, то индикатор курсора займет позицию, следующую за последним введенным элементом списка.
С целью перемещения индикатора курсора на следующую строку, для удобства ввода и форматирования данных, очень часто применяют операторы ввода–вывода без списка:
Writeln;
Readln.
Использование команд перемещения курсора из модуля Crt не рекомендуется так, как на большинстве современных персональных компьютеров этот модуль не работает. Внешнее проявление такой ошибки проявляется в появлении сообщения о делении на ноль:
Элементы списка вывода – константы, переменные, выражения, форматы вывода.
Ввод и вывод данных в Паскале может осуществляться не только с клавиатуры и на монитор, а и через файлы. Файл – это поименованная область памяти на внешнем носителе, предназначенная для хранения данных. Он может размещаться на гибких и жестких дисках.
Имя файла должно содержать до 8 разрешенных символов (для операционной системы типа MS–DOS). За именем, через точку, следует его расширение, имеющее до трех символов (формула 8.3 для коротких имен версий MS–DOS). Если файл находится не в одной и той же директории (папке) с рабочей директорией запущенной программы, то для обращения к файлу перед его именем необходимо указать путь к нему.
Не рекомендуется использовать в качестве имен объектов буквы кириллицы, т.к. настройка кодовых страниц для ряда операционных систем Windows на других компьютерах может не совпадать. Соответственно эти имена будут искажены.
Обстоятельства, при которых прибегают к использованию файлов, условно можно разбить на три класса:
Для хранения текстов программ, а также результатов сложных вычислений с целью их последующего анализа при помощи других программ (например, построения графиков) или распечатки на принтере. В этом случае файл выступает связующим звеном двух и более программ.
Для записи данных научно–технических измерений, обработка которых в реальном масштабе времени (то есть в процессе их получения) невозможна, с целью их последующего анализа при помощи различных программ обработки.
Для хранения баз данных.
Поскольку имя файла вместе с путем к нему может быть очень длинным, то для удобства обращения к файлу вводят файловую переменную, которая через процедуру Assign связывает короткое имя файловой переменной с именем файла и его путем.
Как и все переменные, файловая переменная объявляется в разделе описания переменных. Существует три типа файловых переменных:
Var
F1 : file of text; {Текстовый файл}
F2 : file of integer; {Типизированный файл целых чисел}
F3 : file; { нетипизированный файл}
Типизированные и нетипизированные файловые переменные имеют прямой доступ к элементам файла, подобно индексу в массивах. В текстовых файлах обработка элементов производится последовательно друг за другом. Текстовые файлы наиболее широко используются в научно–технических исследованиях. Одно из основных преимуществ этих файлов состоит в том, что их содержимое удобно просматривать, поскольку оно представлено не в машинном коде, как у типизированных и нетипизированных файлов, а в кодах ASCII – в виде цифр, букв, и иных символов клавиатуры. Трактуются текстовые файлы как совокупность строк переменной длины.
После работы с файлом он, как правило, должен быть закрыт процедурой Close.
Assign(F, Name) – связь файловой переменной F с внешним файлом, имеющим имя Name. Name – переменная или константа типа String.
Reset(F) – открытие существующего файла.
Rewrite(F) – открытие нового файла. При существовании файла, его содержимое уничтожается новыми данными.
Close(F) – закрытие открытого файла.
Eoln(F) – логическая функция контроля конца строки (End of line).
Eof(F) – логическая функция контроля конца файла (End of file).
Пример программы по чтению данных с винчестера, расчету и их записи на дискету с одновременным выводом на экран монитора:
Program FileOut; {заголовок программы}
Var
X, Y, Pr : Real; {раздел объявления переменных}
FIn : Text;
FOut : Text;
Begin
Assign(FIn,’C:\My Documents\User\Economy\M_Benz\Nalog.dat’);
Assign(FOut,’A:\M_Benz\Result.dat’);
{связь файловых переменных с внешним файлом}
Проверьте, чтобы в приводе стояла дискета и на ней была создана папка M_Benz.
Проверьте, чтобы была создана папка ’M_Benz’ и файл ’Nalog.dat’ с соответствующим путем’C:\My Documents\User\Economy\M_Benz\Nalog.dat’.
В файл ’Nalog.dat’ поместите две любые цифры через пробел.
Reset(FIn); {открытие файла для чтения}
Writeln(‘Чтение данных X и Y ’); {вывод сообщений на экран}
ReadLn(FIn, X, Y); {чтение чисел из файла и
присваивание их значений переменным X и Y}
Pr:=X*Y; {вычисление произведения}
WriteLn(‘Произведение чисел X= ’, X, ‘ Y= ’, Y, ‘Равно ‘, Pr);
{вывод результата на экран}
Rewrite(FOut); {открытие файла для записи}
WriteLn(FOut, ‘Произведение чисел X= ’, X, ‘ Y= ’, Y, ‘Равно ‘, Pr);
{вывод результата на дискету}
Close(FIn); {закрытие файла FIn}
Close(FOut); {закрытие файла FOut}
End.
Результаты расчета можно посмотреть любым текстовым редактором из приведенных программных сред: Turbo Pascal, Microsoft Word и др.
Обратите внимание, что просмотр файлов из приложений производится по маске, характерной для данного приложения(*.pas – для Turbo Pascal, *.doc – для Microsoft Word). Поэтому, чтобы сделать видимыми остальные файлы необходимо маску на просмотр файлов в этих приложениях установить *.*.
Не забывайте, что при создании файлов в среде Turbo Pascal, кодовая страница файлов будет соответствовать кодовой странице MS–DOS и попытка просмотреть такие файлы в приложениях Windows, имеющих другую кодировку, приведет к некорректному отображению кирилличного текста.
Для приведения кодовых страниц в соответствие используйте настройки из Microsoft Word.