1. Обработка символьной информации. Символьные переменные презентация

Содержание

Слайд 2

Символьные переменные Символьный тип – порядковый, символы упорядочены. CHAR var

Символьные переменные

Символьный тип – порядковый, символы упорядочены.
CHAR
var a:char;
Функция ord(‘а’) – возвращает

код символа.
Символьная константа записывается как соответствующий символ, заключённый в апострофы.
Иначе можно задать символ написав знак # и за ним код символа. Например, #90 – символ, код которого 90 (это буква z ).
Слайд 3

Строки Описатель string или string[n], где n - константа, определяющая

Строки

Описатель string или string[n], где n - константа, определяющая длину строки

(n ≤ 255).
var a : string[12]; - строка из 12 символов
b : string; - строка из 255 символов.
К символам строки можно обращаться как к элементам массива b[10]:=‘Y’.
Нулевой байт ( b[0] ) содержит реальную длину строки.
Слайд 4

Процедуры и функции для работы со строками

Процедуры и функции для работы со строками

Слайд 5

Процедуры преобразования str(x,s) – преобразует числовое значение x в строковое

Процедуры преобразования
str(x,s) – преобразует числовое значение x в строковое s.
Для x

возможно задать формат, как в операторе write, задав длину поля и число знаков в дробной части x:n:m.
val(s,x,err) – преобразует строковое значение s в числовое x, если преобразование возможно err=0, иначе err равно номеру недопустимого символа.
Слайд 6

Пример. Задан массив строк. В каждой строке фамилия, имя и

Пример.
Задан массив строк.
В каждой строке фамилия, имя и отчество.
Создать массив содержащий

имена из исходного массива без повторений.
Метод решения: из строки исходного массива имя переписываем в переменную х, затем проверяем есть ли такое имя в результирующем массиве, если нет – записываем его в результирующий массив.
Слайд 7

const n=5; var fio:array[1..n] of string[24]; im:array[1..n]of string[8]; x: string[8];

const n=5;
var fio:array[1..n] of string[24];
im:array[1..n]of string[8];
x: string[8];
i,j,k:integer;
f:boolean;
begin

writeln(' ___fio__ im __otch__');
for i:= 1 to n do {ввод исходного массива}
begin
write('fio ',i,' - ');
readln(fio[i]);
end;
k:=0; {Количество имён в результирующем массиве}
Слайд 8

for i:=1 to n do begin f:=true; {флажок, если нет

for i:=1 to n do
begin
f:=true; {флажок, если нет совпадений,

он равен true }
x:=copy(fio[i],9,8); {копирование имени в переменную x}
for j:=1 to k do
if x = im[j] then f:=false; {проверка совпадения имён}
if f then begin
k:= k + 1;
im[k]:=x; ) {запись имени в массив}
end;
end;
for i:=1 to k do {вывод имён}
writeln(im[i]);
end.
Слайд 9

ФАЙЛОВЫЕ ТИПЫ

ФАЙЛОВЫЕ ТИПЫ

Слайд 10

ФАЙЛ – это именованный набор данных, хранящийся на внешней памяти.

ФАЙЛ – это именованный набор данных, хранящийся на внешней памяти.
В Паскале

три типа файлов: текстовые, типизированные и файлы без указания типа.
Текстовые файла задаются описателем – text.
Типизированные – file of <тип компонента>.
Файлы без указания типа – file.
Слайд 11

Пример. var f1 : file of real; {файл из вещественных

Пример.
var f1 : file of real; {файл из вещественных чисел}
f2

: text; {символьный файл}
f3 : file;
Слайд 12

Процедуры и функции для работы с файлами assign( , )

Процедуры и функции для работы с файлами

assign(<файловая переменная>,<имя файла>)
Эта процедура связывает

имя файловой переменной с именем конкретного файла.
assign(f, ’D:\gr.doc’);
Имя файла задаётся в виде строковой константы (в апострофах).
Слайд 13

Инициализация файла Инициализировать файл – указать направление передачи данных. reset(

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

Инициализировать файл – указать направление передачи данных.
reset(<файловая переменная>)
Эта процедура открывает

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

rewrite ( ) Эта процедура открывает файл для записи. При

rewrite (<файловая переменная>)
Эта процедура открывает файл для записи.
При выполнении этой процедуры

файл подготавливается к записи и указатель устанавливается в начало файла.
Информация ранее находившаяся в файле стирается.
Слайд 15

append ( ) Эта процедура применяется только для текстовых файлов,

append (<файловая переменная>)
Эта процедура применяется только для текстовых файлов, она

инициализирует добавление информации в конец уже существующего файла.
close(<файловая переменная>)
Закрывает файл, при этом связь между файловой переменной и файлом не теряется.
Слайд 16

Функция eof( ):boolean Эта функция даёт результат логического типа: true

Функция
eof(<файловая переменная>):boolean
Эта функция даёт результат логического типа:
true - если

достигнут конец файла.
Функция ioresult : word
Эта функция даёт в результате ноль, если последняя файловая операция закончилась успешно, и код ошибки, если операция не выполнилась.
Слайд 17

Типизированные файлы ( file of ) Введём понятие «позиция доступа». f

Типизированные файлы ( file of <тип компонента> )

Введём понятие «позиция доступа».
f

Слайд 18

Процедуры seek(f, ) Эта процедура устанавливает позицию доступа на указанную

Процедуры

seek(f, <№ компонента файла> )
Эта процедура устанавливает позицию доступа на указанную

компоненту.
filesize(f)
Эта функция возвращает размер файла в записях.
Слайд 19

Запись в файл write(f,x) f – файловая переменная, x –

Запись в файл write(f,x) f – файловая переменная, x – переменная типа

компонента файла.
Эта процедура записывает в файл содержимое переменной x.
f
x write(f,x)
f
x

f1

f2

x1

. . .

f1

f2

x1

x1

Слайд 20

Чтение из файла read(f,x) f – файловая переменная, x –

Чтение из файла
read(f,x)
f – файловая переменная, x – переменная типа компонента

файла.

f1

f1

f1

f1

x1

x1

x1

f

f

x

x

read(f,x)

Слайд 21

Текстовые файлы ( text ) В таких файлах хранятся коды

Текстовые файлы ( text )

В таких файлах хранятся коды символов.
Существует особый символ

– конец строки.
Этим символом содержимое файла разбивается на строки.
Функция writeln(f) записывает в файл символ конца строки.
Функция readln(f) – при чтении из файла осуществляет переход на новую строку.
Слайд 22

Стандартные текстовые файлы В Паскале определены два стандартных текстовых файла:

Стандартные текстовые файлы

В Паскале определены два стандартных текстовых файла: input и

output.
input - для ввода данных с клавиатуры.
output - для вывода данных на экран.
Для ввода и вывода в эти файлы в процедурах read и write не требуется указывать файловую переменную.
Слайд 23

Чтение из стандартного файла read(a,b,c); readln; readln(a,b,c);

Чтение из стандартного файла
read(a,b,c); readln;
readln(a,b,c);

Слайд 24

Запись в стандартный файл write(a,b,c); write(‘a=‘, a,’ b=‘, b,’ c=‘, c); write(a,b,c); writeln; writeln(a,b,c);

Запись в стандартный файл
write(a,b,c);
write(‘a=‘, a,’ b=‘, b,’ c=‘, c);
write(a,b,c); writeln;
writeln(a,b,c);

Слайд 25

Элементы списка вывода Для целых значений можно указать длину поля,

Элементы списка вывода
Для целых значений можно указать длину поля, в которое

будет помещаться выводимое число.
write(‘n=‘, n:5);
n=₋ ₋ ₋ 25
Слайд 26

Для вещественных значений можно указать длину поля, в которое будет

Для вещественных значений можно указать длину поля, в которое будет помещаться

выводимое число и количество позиций, отводимых под дробную часть значения в рамках выделенного поля.
write(‘a=‘, a:5:1, ’ b=‘, b:7:2);
a= ₋23.6₋ ₋ b=₋ ₋-1.40
Производится округление до указанного числа десятичных разрядов.
Если значение не помещается в указанное поле, размер поля автоматически увеличивается.
Слайд 27

Пример. Задан типизированный файл, содержащий результаты сессии (фамилии студентов и

Пример.
Задан типизированный файл, содержащий результаты сессии (фамилии студентов и оценки по

трём экзаменам).
Необходимо создать текстовый файл, в который записать фамилии студентов, сдавших все экзамены на отлично.
Имя исходного файла должно вводиться с клавиатуры.
Результаты записать в файл d:\otl.
Слайд 28

Type St=record fio:string[15]; m,h,c:integer; end; Var f1:file of st; {типизированный

Type St=record fio:string[15];
m,h,c:integer;
end;
Var f1:file of st; {типизированный файл}
f2:text;

{текстовый файл}
x:st;
a:string[9]; {переменная для ввода имени файла}
begin
writeln(‘ имя файла - ‘);
readln( a ); {ввод имени исходного файла}
assign( f1, a );
reset( f1 ); {открытие файла для чтения}
assign( f2, ‘d:\otl’ );
rewrite( f2 ); {открытие файла для записи}
Слайд 29

while not eof( f1 ) do {цикл для обработки записей

while not eof( f1 ) do {цикл для обработки записей

файла f1 }
begin
read( f1, x );
if ( x.m = 5 ) and ( x. h = 5 ) and ( x.c =5 ) then writeln( f2, x.fio ); {запись в файл f2 }
end;
close( f1 );
close( f2 );
end.
Слайд 30

Пример. В файле хранится экзаменационная ведомость. Провести коррекцию файла, содержащего

Пример.
В файле хранится экзаменационная ведомость.
Провести коррекцию файла, содержащего экзаменационную ведомость:

заменить оценку ‘2’ на ‘неуд’.
Слайд 31

type st= record fio:string[15]; {фамилия студента} bal:string[5]; {оценка} end; var

type st= record
fio:string[15]; {фамилия студента}
bal:string[5]; {оценка}
end;
var f :

file of st; {файл из записей}
x : st;
k,i: integer;
begin
assign(f,'I:\wwww');
reset(f);
k:=filesize(f); {определение длины файла}
Имя файла: 1.-Обработка-символьной-информации.-Символьные-переменные.pptx
Количество просмотров: 33
Количество скачиваний: 0