Главная » Просмотр файлов » Воробьева А.П., Соппа М.С. - Система программирования Турбо Паскаль 7.0

Воробьева А.П., Соппа М.С. - Система программирования Турбо Паскаль 7.0 (1092189), страница 13

Файл №1092189 Воробьева А.П., Соппа М.С. - Система программирования Турбо Паскаль 7.0 (Воробьева А.П., Соппа М.С. - Система программирования Турбо Паскаль 7.0) 13 страницаВоробьева А.П., Соппа М.С. - Система программирования Турбо Паскаль 7.0 (1092189) страница 132018-02-14СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

Текст из файла (страница 13)

Строковая переменная объявляется в разделе описания перемнных следующим образом:

Var

st: string [5];

В квадратных скобках указывается максимальное число символов в строке st.

Под значение строковой переменной в памяти компьютера отводится (МАХ+1) байт, где МАХ – максимальный размер строки. Еще один байт (с номером 0) выделяется для указания текущей длины строки. Это позволяет вводить строки перменной длины (в данном случае от 1 до 5 символов).

В Турбо Паскале разрешается объявлять переменную без указания максимального размера. Например:

Var

fam: string;

В этом случае устанавливается предельно допустимая длина строки, равная 255 символов.

Ввод-вывод строковых данных

При вводе строк, также как и символов, используется оператор READLN. Однако нажатие клавиши <Enter> не является значимым символом. Клавиша <Enter> формирует символ конца строки.

Пример. Организовать ввод фамилии студента.

Var

fam: string;

Begin

writeln(‘Введите фамилию и инициалы студента’);

readln(fam);

……………….

На клавиатуре строка набирается без апострофов, например:

Андреева_С.В. <Enter>

Одновременно с вводом строки в нулевом байте ячейки fam устанавливается длина строки, равная 13 символам.

Вывод строк осуществляется с помощью операторов writeln и write. например, оператор

writeln(‘|’, fam:15, ‘|’);

Выведет на экран строку:

| Андреева С.В.|

Обработка строковых данных

К строковым данным применима операция отношения, напрмер:

‘Паскаль’ > ‘ПАскаль’,

так как код символа ‘а’ больше кода символа ‘А’.

К строкам можно применять операцию сцепления (обозначается символом ‘+’) – объединение нескольких строк в одну.

Пример 1

Program PS_1;

Var

fam, c, fam1: string;

Begin

writeln(‘Введите фамилию студента’);

readln(fam);

c := ‘ ‘;

fam1 := fam + c;

writeln(‘|’, fam1, ‘|’);

End.

На экран будет выведено:

|Андреева С.В. |

Большинство действий над строками реализуется с помощью стандартных процедур и функций. Рассмотрим две стандартные функции.

LENGTH(st) – возвращает длину строки st из нулевого байта, напрмер: Length(fam) = 13 символов.

COPY(st, i, n) – копирует из заданной строки st, начиная с ой позиции, n символов в подстроку.

Пример 2

Шапка экзаменационной ведомости имеет вид:

1)

2)

3)

4)

п/п

Ф.И.О.

Математика

Информатика

Химия

Напишем программу вывода третьей строки.

Program PS_2;

Const

pr = ‘ ‘; {15 пробелов}

Begin

writeln(‘|п/п|’, pr, copy(pr, 1, 12), ‘|’,

copy(pr,1, 13), ‘|’, copy (pr, 1,7), ‘|’);

End.

На экран будет выведено:

|п/п)

| |

| |

| |

| |

| |

В данной программе введен раздел определения констант CONST, в котором объявлена строковая константа pr, состоящая из 15 пробелов. При выводе из этой константы копируется нужное число пробелов.

Пример 3

Выравнять графу с фамилиями студентов по левому краю.

Program PS_2;

Const

pr = ‘ ‘; {15 пробелов}

Var

fam, fam1: string;

d: integer;

Begin

writeln(‘Введите фамилию студента’);

readln(fam);

d := 15 - Length(fam);

fam1 := fam + copy(pr,1,d);

writeln(‘|’, fam1, ‘|’);

End.

На экран будет выведено:

|Андреева С.В. |

Переменная d в программе определяет количество пробелов, которые надо присоединить к строковой переменной fam, чтобы получить длину строки fam1, равную 15 символам.

ГЛАВА 10. Записи и файлы входных данных

10.1. Понятие записи

Данные типа запись, как и массивы, относятся к сложным структурам. Запись состоит из фиксированного числа элементов, называемых полями. Однако, в отличие от массива, поля могут быть различного типа. Например, записью можно считать строку экзаменационной ведомости:

Андреева С.В. 4 5 5

Данная запись состоит из четырех полей: первое поле - строкового типа (фамилия студента) и три числовых поля (оценки студента).

Описанию переменной типа запись предшествует определение с помощью раздела TYPE. Например, объявление записи строки экзаменационной ведомости выглядит следующим образом.

Type

Zap = record

fam: string;

m, inf, h: integer;

end;

Var

str: Zap;

Здесь zap – имя типа записи; fam, m, inf, h – поля записи;

str – переменная типа запись.

Служебные слова RECORD…END играют роль операторных скобок, внутри которых записываются поля с указанием их типов.

Для обращения к отдельным полям записи используется селектор записи.

Общий вид селектора записи:

< имя записи >.< имя поля >

Например, селекторы записи str записываются следующим образом: str.fam, str.m, str.inf, str.h.

10.2. Файлы входных данных

При большом объеме входных данных ввод с клавиатуры становится неэффективным, так как любые ошибки связаны с повторным вводом всех данных. Целесообразно для входных данных создать отдельный файл и хранить его на диске. В программе в этом случае с помощью специальных процедур организуется чтение входных данных из файла. Имя файла задается по тем же правилам, которые определены в MS DOS, только указывается стандартное расширение .DAT. Для создания файла данных можно воспользоваться любым текстовым редактором. Если файл небольшого объема, то удобно использовать редактор NC. Для вызова редактора NC надо нажать клавиши [<Shift>+ <F4>].

Файловая переменная

В программе файлу соответствует переменная файлового типа. В зависимости от способа объявления файловой переменной можно выделить три вида файлов.

- Типизированные файлы, которые задаются описанием:

<файловая переменная>: FILE OF <тип компонент файла>;

Например, если компоненты файла имеют тип записи, то в разделе описания переменных можно объявить файл следующим образом:

Var

f: file of Zap;

f – файловая переменная.

- Нетипизированные файлы задаются типом FILE, например:

Var

f: file;

Для нетипизированных файлов тип компонент не указывается.

- Текстовые файлы задаются типом TEXT, например:

Var

f: text;

Текстовый файл представляет собой совокупность строк переменной длины. В конце каждой строки после нажатия клавиши <Enter> формируется специальный признак EOLN (End Of Line). Число строк в текстовом файле может быть произвольным. В конце файла автоматически формируется признак EOF (End Of File).

Для проверки окончания чтения файла используется стандартная логическая функция EOF(f).

В дальнейшем ограничимся рассмотрением только текстовых файлов.

Доступ к файлам данных

Файл данных становится доступным программе после выполнения стандартной процедуры открытия файла:

ASSIGN (<файловая переменная>, <имя файла>);

При вызове данной процедуры файловая переменная, объявленная в программе, связывается с именем файла, хранящимся на диске.

<имя файла> - либо строка, либо переменная строкового типа.

Например, если файл входных данных экзаменационной ведомости хранится на диске с именем Wed.dat, то процедуру открытия файла можно записать в виде:

ASSIGN(f, ‘Wed.dat’);

Инициация файла

Инициировать файл означает указать направление передачи данных. В Турбо Паскале можно открыть файл для чтения данных из файла или для записи информации в файл. Если файл является входным, то он инициируется для чтения стандартной процедурой:

RESET(<файловая переменная>);

При выполнении данной процедуры специальный указатель строк устанавливается на начало файла, то есть подготавливается к чтению первой строки.

Чтение данных из файла

Чтение файла осуществляется построчно с помощью оператора READLN, в котором указываются файловая переменная и список переменных ввода.

Пример. Пусть файл данных экзаменационной ведомости состоит из строк вида:

4 5 5 Андреева С.В.

Оператор: Readln(f, str.m, str.inf, str.h, str.fam);

читает из файла строку и присваивает данные полям str.

Заметим, что поле fam записывается в конце строки. Это связано с тем, что при описании типа поля fam (string) не указан его максимальный размер, и, следовательно, конец поля должен быть зафиксирован клавишей <Enter>.

10.3. Пример решения задачи создания документа

Пусть требуется получить результаты обработки экзаменационной ведомости в виде следующего документа.

РЕЗУЛЬТАТЫ ОСЕННЕЙ СЕССИИ ГР.151

п/п

Ф.И.О.

Математика

Информатика

Химия

Средний балл

1

Андреева С.В.

4

5

5

x

20

Яковлев А.Н.

5

5

4

x

Ср.оценка по дисциплине

x

x

x

-

x - расчетные данные.

Решение

Решение задачи можно разбить на два этапа.

I. Создание файла входных данных вида:

4 5 5 Андреева С.В.

…………………………………..

5 5 4 Яковлев А.Н.

Характеристики

Тип файла
Документ
Размер
1,05 Mb
Тип материала
Высшее учебное заведение

Список файлов книги

Свежие статьи
Популярно сейчас
Как Вы думаете, сколько людей до Вас делали точно такое же задание? 99% студентов выполняют точно такие же задания, как и их предшественники год назад. Найдите нужный учебный материал на СтудИзбе!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
6353
Авторов
на СтудИзбе
311
Средний доход
с одного платного файла
Обучение Подробнее