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

Содержание

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

Слайд 1Обработка символьной информации


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

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

Слайд 3Строки
Описатель 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 в строковое s.
Для x

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

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

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

Слайд 7const 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; {Количество имён в результирующем массиве}

Слайд 8for 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; {файл из вещественных чисел}

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

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

имя файловой переменной с именем конкретного файла.

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

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

reset()

Эта процедура открывает

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

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

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


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

инициализирует добавление информации в конец уже существующего файла.

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

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

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



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

f

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

компоненту.

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

Слайд 19

Запись в файл 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 – переменная типа

компонента файла.









f1

f1

f1

f1

x1

x1

x1

f

f

x

x

read(f,x)


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

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

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

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

Слайд 23Чтение из стандартного файла

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);



Слайд 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.

Слайд 28Type 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 {цикл для обработки

записей файла 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’ на ‘неуд’.


Слайд 31type 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); {определение длины файла}



Слайд 32 for i:= 0 to k-1 do {цикл

для чтения файла}
begin
seek(f,i); {подготовка чтения i-ой записи}
read(f,x);
if x.bal='2' then
begin
x.bal:='not'; {коррекция оценки}
seek(f,i); {возврат в файле к корректируемой записи}
write(f,x); {запись в файл скорректированной записи}
end;
end;
close(f);
end.


Обратная связь

Если не удалось найти и скачать презентацию, Вы можете заказать его на нашем сайте. Мы постараемся найти нужный Вам материал и отправим по электронной почте. Не стесняйтесь обращаться к нам, если у вас возникли вопросы или пожелания:

Email: Нажмите что бы посмотреть 

Что такое ThePresentation.ru?

Это сайт презентаций, докладов, проектов, шаблонов в формате PowerPoint. Мы помогаем школьникам, студентам, учителям, преподавателям хранить и обмениваться учебными материалами с другими пользователями.


Для правообладателей

Яндекс.Метрика