Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Основы алгоритмизации и программирования на языке Паскаль

..pdf
Скачиваний:
11
Добавлен:
15.11.2022
Размер:
2.96 Mб
Скачать

В результате работы программы будет создан файл 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