книги / Основы алгоритмизации и программирования на языке Паскаль
..pdfВ результате работы программы будет создан файл Danl.pas в текущей папке, содержащий десять чисел:
____1____ 4____9__ 16__ 25__ 36__ 49__ 64__ 81_100 Символ подчеркивания «_» означает пробел.
Пример 8.2. Сформировать двумерный массив случай ных чисел и записать его во внешний файл с именем Dan3.pas на внешний носитель -А .
Program |
DemoS; |
|
Var A: |
Array[1 .. |
1 0 ,1 .. 10] o f real; |
i j : |
integer; |
|
F out: text; |
{файловая переменная} |
|
Begin |
|
|
Assign (Fout, A:\Dan3.pas); {связь между ФП и ВФ }
Rewrite(Fout); |
{открыть файл для записи} |
Randomize; |
{несовпадение случайных чисел } |
For i:=l to 5 do |
|
begin |
|
For j:= l to 7 |
do |
begin |
|
Afi, j]:=Random; Write(Fout, A[i,j]:8:2);
end;
Writeln(Fout); {перевод курсора на следующую строку} end;
Close(Fout);
End.
Результатом работы программы будет текстовый файл Dan3.pas, содержащий матрицу случайных чисел из пяти строк и семи столбцов.
Таким образом, созданы внешние файлы Danl.pas и Dan3pas. Эти файлы можно использовать в других про граммах, считывая данные из этих внешних файлов, а не вводя их с пульта. Эти файлы можно скопировать, пере именовать, отредактировать в каком-либо текстовом ре дакторе.
8.4. Чтение внешнего файла
Чтение внешнего файла - это ввод данных из внешне го файла в оперативную память компьютера (ВФ —>ОП).
Выше мы договорились, что рассматриваем файлы по следовательного доступа, т.е. для чтения и-го элемента этого файла необходимо прочесть все первые (п - 1) эле ментов.
Допуск к элементам файла осуществляется через те кущий указатель (ТУ). При считывании данных ТУ после довательно перемещается к следующему элементу и делает его доступным для чтения.
При чтении внешнего файла, т.е. при вводе данных из внешнего файла необходимо выполнить следующие действия:
1. Открыть файл для чтения с помощью процедуры
ReSet (<имя ФП>).
При этом вся информация в файле сохраняется, а те кущий указатель устанавливается на начало файла.
Схема выполнения процедуры ReSet:
До процедуры ReSet: |
После процедуры ReSet: |
||
|
т у Д |
Д т у |
|
Si s2 |
s„ МКФ |
Si s2 |
s„ МКФ |
2.Прочитать (ввести) данные из ВФ с помощью проце дуры Read.
Формат процедуры: Read (Finp, х);
Значение текущего элемента из ВФ записывается в пе ременную х, текущий указатель перемещается к следую щему элементу.
3.Считанные данные обработать программно.
4.Закрыть файл с помощью процедуры Close (Finp).
Подведем итог: если данные хранятся во ВФ, то для обработки этих данных необходимо выполнить следующую последовательность действий:
-описать файловую переменную (Finp) в разде
ле описаний;
-связать ФП и ВФ (процедура Assign);
-открыть файл для чтения (процедура ReSet(Finp));
-прочитать (ввести) данные из ВФ (процедура
ReadfLnJ);
-программно обработать данные;
-закрыть ВФ (процедура Close).
Пример 8.3. Прочитать пять значений данных из внеш него файла Danl.pas, созданного в примере 8.1 (там их де сять), и вывести их на экран.
Program |
Demo6; |
|
|
Var A: |
Array[L. 10] o f integer; |
||
i : |
integer; |
|
|
Finp: |
text; |
{файловая переменная} |
|
Begin |
|
|
|
Assign(Finp, 'Danl.pas'); |
{связь между ФП и ВФ} |
||
Reset(Finp); |
{открыть файл для чтения} |
||
For |
i:=l |
to 5 do |
|
begin |
|
|
|
Read(FinpyA[i]); |
{чтение из ВФ} |
||
Write(A[i]:4); |
|
end;
Close(Finp);
End.
В результате работы программы на экран будет выве дено пять чисел: _ _1__ _4_ _ _9_ 16__ 25
8.5. Функция EOF
Если заранее число элементов во внешнем файле неиз вестно, то используется стандартная функция EOF (End Of File). Функция фиксирует положение текущего указателя файла на последнем элементе ВФ, т.е.
EOF - (^гие,если ТУ достигает конца файла; ~~ 1False в противном случае.
Схематично это выглядит так:
ТУ EOF=False ТУ ПEOF=True
Лн
Si Si |
Sr, МКФ |
Пример 8.4. Считать все имеющиеся данные из ВФ Danl.pas и вывести их на экран.
Программа аналогична программе примера 8.3. Запи шем только ее фрагмент.
Assign(F, 'Danl.pas'); |
|
Reset(F); |
{открыть файл для чтения} |
While not EOF(F) do |
|
begin |
|
ReadfF, s); |
{чтение из ВФ} |
Write(s:6); |
|
End; |
|
Контрольные вопросы и задания
1.В каких случаях полезно использовать внешние файлы данных? Понятие текстового файла данных.
2.Зачем используется специальная файловая перемен ная? Как устанавливается соответствие файловой перемен ной внешнему файлу?
3.Что общего у процедур Reset и Rewrite? Чем они от личаются?
4.Зачем применяется процедура Close и что может произойти при ее отсутствии?
5.Написать фрагмент программы, позволяющий счи
тать массив C[N] N = 10 из внешнего файла Dan.pas, и найти минимальный элемент.
6. Сформировать вектор B[N], используя функцию Random, и записать его во внешний файл Dan.pas.
Приложение 1
Встроенные процедуры и функции модуля System
Функция
1
Abs(x)
АгсТап(х)
Cos(x)
Ехр(х)
Ln(x)
Log(x)
Sin(x)
Sqr(x)
Sqrt(x)
Trunc(x)
Roundfx)
Frac(x)
Int(x)
Назначение
2
I * I
arctg x
cos X
e x
InX
ig*
sin x
0 X ~
V *
Возвращает ближайшее целое число, меньшее или равное х, если х> =0, и большее или равное х, если д:<0
Возвращает значение х, округленное до ближайшего целого числа
Возвращает дробную часть числа*
Возвращает целую часть числа *
Тип |
Тип |
аргумента |
результата |
3 |
4 |
real, |
real, |
integer |
integer |
real, |
real |
integer |
|
real, |
real |
integer |
|
real, |
real |
integer |
|
real, |
real |
integer |
|
real, |
real |
integer |
|
real, |
real |
integer |
|
real, |
real, |
integer |
integer |
real, |
real |
integer |
|
real, |
integer |
integer |
|
real, |
integer |
integer |
|
real |
real |
real |
real |
Функция |
Назначение |
1 |
2 |
Odd(x) |
Возвращает True, если x |
|
нечетное, и False, если x |
|
четное |
Delay(x) |
Задержка выполнения про |
|
граммы на 1 мс |
Random |
Генерирует значение слу |
|
чайного числа из диапазона |
|
0-0,99 |
Random fx) |
Генерирует значение слу |
|
чайного числа из диапазона |
|
0-х |
R andom ize |
Изменение базы генератора |
|
случайных чисел |
Тип |
Тип |
аргумента |
результата |
3 |
4 |
integer |
boolean |
w ord |
|
|
real |
w ord |
w ord |
Для вычисления некоторых математических функций при ходится использовать приведенные ниже формулы:
arcctg(x) = | - arctg(x);
arcsin(x) = arctg (^= = );
arccos(x) = \ - arctg (^= = );
ax = exp(xln(a)).
Основные процедуры и функции модуля Crt
Процедуры и функции |
Назначение |
ClrScr |
Очистка текущего окна на экране |
TextMode (М) |
Установка текстового режима |
GoToXY(x,y) |
Установка курсора в столбец х, строку у |
TextColor(c) |
Цвет символов (передний план) |
TextBackGround(с) |
Цвет фона |
Window (xl,yl,x2,y2) |
Задание текущего окна на экране |
Hige Video |
Повышенная яркость |
Low Video |
Пониженная яркость |
Norm Video |
Нормальная яркость |
Sound(Hz) |
Включение звука |
NoSound |
Выключение звука |
DelLine |
Удаление текущей строки |
KeyPressed: boolean |
Анализ нажатой клавиши |
ReadKey |
Возвращает символ нажатой клавиши |
Константы цветов текста
0 (Black) |
Черный |
9 (LightBlue) |
Светло- |
|
|
|
голубой |
1 (Blue) |
Голубой |
10 (LightGreen) |
Светло- |
|
|
|
зеленый |
2 (Green) |
Зеленый |
11 (LightCyan) |
Светло |
|
|
|
салатовый |
3 (Cyan) |
Салатовый |
12 (LightRed) |
Розовый, |
|
|
|
фиолетовый |
4 (Red) |
Красный |
13(LightMagenta) |
Светло |
|
|
|
фиолетовый |
5 (Magenta) |
Фиолетовый |
14 (Yellow) |
Желтый |
6 (Brown) |
Коричневый |
15 (White) |
Белый |
1 (LightGray) |
Светло-серый |
128 (Blink) |
Мерцание |
8 (DarkGray) |
Темно-серый |
- |
- |
Список литературы
1.Попов В.Б. Turbo Pascal. - М.: Финансы и статисти ка, 2006. - 528 с.
2.Турбо Паскаль 7.0 [Электронное издание]. - СПб.: Питер, 2002. - URL: tpdn.ru/books/2677/
3.Гладков В.П. Знаешь ли ты Паскаль?: учеб, пособие / Перм. гос. техн. ун-т. - Пермь, 2001. - 109 с.
4.Семакин И.Г., Шестаков А.П. Основы программиро вания: учеб. - М.: Мастерство: НМЦ СПО: Высш. шк., 2004.-432 с.
5.Информатика. Базовый курс: учеб, для вузов / под ред. С.В. Симонович. - 3-е изд. - СПб.: Питер, 2011. - 640 с.
6.Фаронов В.В. Turbo Pascal 7.0. Начальный курс: учеб, пособие. - М.: ОМД Групп, 2003610 с.
Предисловие.......................................................................... |
3 |
Лекция 1. Введение............................................................... |
4 |
1.1. Этапы подготовки решения задач на ЭВМ.............. |
4 |
1.2. Интегрированные системы программирования...... |
7 |
Лекция 2. Основные элементы языка Паскаль............ |
12 |
2.1. Слова в Паскале.......................................................... |
13 |
2.2. Представление числовых данных |
|
в десятичной системе в П К ...................................... |
15 |
2.3. Структура Паскаль-программы............................... |
16 |
2.4. Типы данных.............................................................. |
18 |
2.5. Арифметическое выражение.................................... |
21 |
Лекция 3. Операторы языка П аскаль............................ |
24 |
3.1. Оператор присваивания........................................... |
24 |
3.2. Ввод и вывод данных............................................... |
25 |
3.3. Управление вводом и выводом на экране............... |
29 |
3.4. Понятие и блок-схема линейного алгоритма......... |
29 |
Лекция 4. Организация разветвляющихся |
|
конструкций.......................................................................... |
31 |
4.1. Данные логического типа - Boolean...................... |
31 |
4.2. Разветвляющийся алгоритм ................................... |
33 |
4.2.1. Условный оператор I f ................................... |
34 |
4.3. Оператор выбора Case............................................. |
37 |
4.4. Метки и оператор безусловного перехода GoTo.... |
40 |
Лекция 5. Организация циклических процессов ........ |
43 |
5.1. Оператор цикла с предварительным условием |
|
(с предусловием) While............................................. |
43 |
5.2. Оператор цикла с последующим условием |
|
(с постусловием) Repeat........................................... |
48 |
5.3. Счетный оператор For.............................................. |
50 |
Лекция 6. Подпрограммы................................................. |
55 |
6.1. Подпрограммы, их назначение и классификация.. 55 |
|
6.2. Подпрограммы пользователя.................................. |
57 |
6.3. Оформление и вызов процедур................................ |
58 |