Учебное пособие Новосибирск 2001




НазваниеУчебное пособие Новосибирск 2001
страница9/10
Дата конвертации11.02.2016
Размер1.46 Mb.
ТипУчебное пособие
источникhttp://bulletinsite.net/books/programmer/vorobeva-ap/2001/files/sistemaprogramm2001.rtf
1   2   3   4   5   6   7   8   9   10
ГЛАВА 9. Текстовые данные


В Турбо Паскале текстовая информация может быть представлена двумя типами данных: символьный (CHAR) и строковый (STRING).

9.1. Символьный тип данных

Значением данных символьного типа является любой символ из множества набора всех символов компьютера. Каждому символу соответствует порядковый номер (код) в диапазоне 0..255. Для кодировки символов первой половины диапазона (0..127) используется код ASCII(американский стандартный код для обмена информацией). Вторая половина символов с кодами 128..255 может быть различной. Для компьютеров фирмы IBM наиболее распространен альтернативный вариант кодировки символов.

При написании программ символьные данные могут быть представлены либо константами, либо переменными.

Символьная константа представляет собой одиночный символ, заключенный в апострофы, например:



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

Var

cr: char;

Во внутренней памяти компьютера каждый символ занимает 1 байт.

Ввод-вывод символьных данных

Для ввода символьных данных используется оператор READLN. Необходимо помнить, что нажатие любой небуквенной клавиши (<пробел>, и др.) будет значимым и восприниматься как символ.

Пример 1. Организовать ввод переменных:

a = ‘i’; b = ‘_’; c = ‘j’.

Var

a, b, c: char;

Begin

writeln(‘Введите исходные данные’);

readln(a,b,c);

………….

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

i _ j

Символ клавиши выходит за пределы списка оператора READLN, поэтому он игнорируется.

Для вывода символьных данных используются операторы WRITE и WRITELN.

Пример 2. Организовать вывод указанных выше переменных на экран.

write(a,b,c);

writeln;

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

i _ j

Оператор WRITELN без списка используется для первода курсора к началу следующей строки.

Обработка символьных данных

Поскольку символы в Турбо Паскале упорядочены, к ним можно применять операции отношения (>, >=, <, <=, =, <>). Это дает возможность записывать логические выражения с символьными данными в условных операторах, например:

if ch =’!’ then ch := ‘.’;

Символьные данные могут использоваться и в операторе цикла FOR. Например, при выполнении операторов:

for ch := ‘a’ to ‘d’ write(ch);

writeln;

на экран выводится последовательность:

abcd

Курсор переводится к началу следующей строки.

Библиотека Турбо Паскаля содержит стандартные функции обработки символьных данных. Рассмотрим наиболее распространенные стандартные функции.

ORD(ch) – функция, возвращающая код символа ch.

Пример. Ord(‘a’) = 97.

CHR(N) – функция, преобразующая код N в соответствующий ему символ.

Пример. Chr(97) = ‘a’.

UPCASE(ch) – функция, преобразующая строчную латинскую букву в прописную.

Пример. UpCase(‘a’) = ‘A’.


    1. Строковый тип данных


Значением данных строкового типа является любая последовательность символов из набора символов компьютера(строка).

Строковая константа – это строка, заключенная в апострофы, например:

‘Турбо Паскаль 7.0’

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

Var

st: string [5];

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

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

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

Var

fam: string;

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

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

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

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

Var

fam: string;

Begin

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

readln(fam);

……………….

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

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

Одновременно с вводом строки в нулевом байте ячейки 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 надо нажать клавиши [+ ].

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

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

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

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

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

Var

f: file of Zap;

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

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

Var

f: file;

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

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

Var

f: text;

Текстовый файл представляет собой совокупность строк переменной длины. В конце каждой строки после нажатия клавиши формируется специальный признак 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) не указан его максимальный размер, и, следовательно, конец поля должен быть зафиксирован клавишей .

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

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

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



п/п

Ф.И.О.

Математика

Информатика

Химия

Средний балл

1

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

4

5

5

x













20

Яковлев А.Н.

5

5

4

x

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

x

x

x

-


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

Решение

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

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

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

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

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

II. Составление программы обеспечивающей:

а) чтение и обработку файла;

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

Замечание. В программе необходимо предусмотреть задание входных данных типом запись.

Ниже приводится блок-схема алгоритма решения задачи.





1   2   3   4   5   6   7   8   9   10

Похожие:

Учебное пособие Новосибирск 2001 iconУчебное пособие новосибирск 2011 удк 338. 23: 658. 1(075. 8) Цевелев В. В
Цевелев В. В. Управление инвестициями. Учеб пособие. — Новосибирск: сгупс, 2011. — 104 с
Учебное пособие Новосибирск 2001 iconУчебное пособие предназначено в помощь социальным педагогам, социальным работникам и другим специалистам. Цена 850 тг. Арт. 201 Сарсенова Ж. Н. Культурология. Учебное пособие. Алматы: Нур-Принт, 2010 300 с. Учебное пособие «Культурология»
Учебное пособие «Культурология» предназначено для использования в обучении по кредитной технологии. В конце каждой главы учебного...
Учебное пособие Новосибирск 2001 iconУчебное пособие для магистрантов и студентов гуманитарных специальностей Павлодар
Учебное пособие предназначено для студентов и магистрантов, обучающихся по специальности «Культурология». Написанное на конкретном...
Учебное пособие Новосибирск 2001 iconКнига представляет собой антологию тематически сгруппированных философских текстов извлечений из трудов мыслителей разных эпох, включая и современность. Пособие
Хрестоматия по философии: Учебное пособие / Отв ред и сост. А. А. Радугин. – Москва: Центр, 2001.– 416с
Учебное пособие Новосибирск 2001 iconУчебное пособие Тамбов 2002 г. Авторы составители: Кузьмина Н. В, Инькова Н. А., Зайцева Е. А., Толстых С. Г. Основы работы в Интернет: Учебное пособие. Ч тамбов: Изд-во тгту, 2002. с. 40
Учебное пособие «Создание Web-сайтов» предназначено для слушателей курсов повышения квалификации на базе Тамбовского рц фио по программе...
Учебное пособие Новосибирск 2001 iconУчебное пособие для студентов специальности
А86 Арын Р. С., И79 Иренов Г. Н. Этнополитология: учебное пособие. ─ Павлодар: эко, 2008. – 215 с
Учебное пособие Новосибирск 2001 iconУчебное пособие по английскому языку Для студентов юридического факультета
Юридические профессии в Великобритании: Учебное пособие на английском языке. – М.: Импэ им. А. С. Грибоедова, 2008. – 16 с
Учебное пособие Новосибирск 2001 iconУчебное пособие «Основы работы в Excel», 2003
Учебное пособие предназначено для студентов имтп, а также может быть использовано при самостоятельном освоении современного программного...
Учебное пособие Новосибирск 2001 iconУчебное пособие Для студентов экономического факультета Москва
К66 Антикризисное управление: Учеб пос.: Ч. II. М.: Импэ им. А. С. Грибоедова, 2001. 71 с
Учебное пособие Новосибирск 2001 iconУчебное пособие омск 2008 федеральное агентство по образованию государственное образовательное учреждение высшего профессионального образования
Учебное пособие предназначено для студентов и аспирантов высших учебных заведений, специализирующихся в области физики конденсированного...
Разместите кнопку на своём сайте:
Документы


База данных защищена авторским правом ©kzdocs.docdat.com 2012
обратиться к администрации
Документы
Главная страница