- •Учебное пособие по дисциплине «Информатика»
- •Содержание
- •Введение
- •Элементы языка паскаль основные понятия языка паскаль
- •Данные в паскале
- •Типы данных
- •Перечисляемый тип
- •Ограниченный тип
- •Структура программы
- •Выражения
- •1. Арифметические выражения.
- •2. Логические выражения.
- •Операторы языка паскаль
- •Пустой оператор
- •Составной оператор
- •Операторы ввода read и readln
- •Операторы вывода write и writeln
- •Управление формой вывода данных
- •Оператор присваивания
- •Безусловный оператор
- •Условный оператор
- •Оператор варианта (выбора) case
- •Операторы цикла
- •Оператор цикла с постусловием
- •Оператор цикла с предусловием
- •Оператор цикла с параметром
- •Структурированные типы данных
- •Массивы (регулярный тип)
- •Упакованные массивы
- •Строковый тип данных (string)
- •Функции для работы со строками
- •Записи (комбинированный тип)
- •Множества (множественный тип)
- •Подпрограммы в паскале
- •Литература
Функции для работы со строками
VAR
STR1,STR2:STRING;
I,J:INTEGER;
1. Определение длины строки.
LENGTH (STR1);
Результат: целого типа.
2. Копирование строки.
COPY (STR1, I, J);
Копирование из строки STR1 строки длиной J символов, начиная с символа I.
Результат: типа STRING.
-
Удаление строки.
DELETE (STR1, I, J);
Удаление из строки STR1 J символов, начиная с позиции I.
Результат: типа STRING.
-
Вставка строки.
INSERT (STR1, STR2, I);
Вставка строки STR1 в строку STR2, начиная с позиции I.
Результат: строка STR2 (если она содержит символов больше, чем объявлено, то лишние символы отбрасываются).
Пример:
Ввести строку символов длиной не менее 15 и не более 100. Подсчитать общее количество введенных символов строки и количество знаков “+”, начиная с 7 символа по 15.
PROGRAM PRIMER8;
USES CRT;
LABEL
1;
VAR
S:STRING [100];
K,KP,I:INTEGER;
OTV: CHAR;
BEGIN
1:CLRSCR;
WRITELN (‘Введите строку длиной не менее 15 и не более 100 символов’);
READLN (S);
WRITELN (‘Введенная строка символов’);
WRITELN (S);
K:=LENGTH(S);
WRITELN (‘Количество символов в введенной строке=’,K:3);
KP:=0;
FOR I:=7 TO 15 DO
IF S[I]=‘+’
THEN KP:=KP+1;
WRITELN (‘Количество символов +, начиная с 7 до 15 символа=’,KP:2);
WRITELN (‘Будете вводить новые данные (Y/N)?’);
READLN (OTV);
IF (OTV=’Y’) OR (OTV=’y’)
THEN GOTO 1
END.
Записи (комбинированный тип)
При решении экономических и информационных задач, которые обрабатывают ведомости, документы, списки и т.д., возникает необходимость объединять различные типы данных в одну группу. Для этого в языке Паскаль введено понятие записи (RECORD).
Запись – это совокупность ограниченного числа логически связанных компонент различного типа.
Каждая компонента записи называется полем.
Все компоненты записи в отличие от массива:
-
необязательно должны принадлежать одному и тому же типу;
-
обращение к компонентам записи происходит по имени.
Запись, как и другие переменные, объявляется в разделе описания и используется в разделе операторов. Описание записи можно делать как в разделе описания типов TYPE, так и в разделе описания переменных VAR.
Синтаксис описания записи:
TYPE
имя типа=RECORD
имя элемента 1:тип;
имя элемента 2:тип;
…..
имя элемента N:тип
END;
VAR
имя записи:имя типа;
Служебное слово RECORD (запись) выполняет роль открывающейся операторной скобки, END - закрывающейся операторной скобки. Внутри операторных скобок описываются элементы записи.
Для обращения к компонентам (полям) записи необходимо указать идентификатор записи, за которым ставится точка, а затем идентификатор поля (составное имя).
имя записи.имя поля
Имена полей внутри записи не должны повторяться. В языке Паскаль нет ни одной операции, которая воспринимала бы запись как нечто целое. Однако значение записи можно пересылать в другие переменные записи с помощью операторов присваивания.
При обращении к компонентам записи необходимость указывать составные имена приводит к удлинению программы и громоздкости. Для устранения этого неудобства в языке Паскаль используется оператор присоединения, который позволяет осуществлять доступ к компонентам записи, таким образом, как, если бы они были простыми переменными.
Синтаксис оператора:
WITH
имя записи DO
BEGIN
операторы, содержащие имена элементов записи
END;
Внутри этого оператора к компонентам записи можно обращаться только с помощью имени компонент.
Пример:
Для каждого студента указаны фамилия, оценки по пяти дисциплинам. Требуется вычислить средний балл каждого студента.
PROGRAM PRIMER9;
USES CRT;
LABEL
1;
TYPE
VED=RECORD
FIO: STRING [20];
B1,B2,B3,B4,B5:2..5;
SB:REAL
END;
VAR
GR11P:ARRAY [1..25] OF VED;
I,J:INTEGER;
OTV:CHAR;
BEGIN
1: CLRSCR;
FOR I:=1 TO 25 DO
BEGIN
WRITELN (‘Введите данные ‘,I:2,‘-го студента:’);
READLN (GR11P[I].FIO);
READLN (GR11P[I].B1,GR11P[I].B2,GR11P[I].B3,GR11P[I].B4,GR11P[I].B5)
END ;
FOR I:=1 TO 25 DO
BEGIN
GR11P[I].SB:=(GR11P[I].B1+GR11P[I].B2+GR11P[I].B3+GR11P[I].B4+
GR11P[I].B5)/5;
WRITELN (‘Средний балл ‘,I:2,‘-го студента равен’, GR11P[I].SB:6:3)
END;
WRITELN (‘Будете вводить новые данные (Y/N)?’);
READLN (OTV);
IF (OTV=’Y’) OR (OTV=’y’)
THEN GOTO 1
END.