- •Тема 1. Арифметические выражения. Линейные программы.
- •Тема 2. Условный оператор.
- •Тема 3. Операторы цикла.
- •Тема 4. Одномерные массивы.
- •Тема 5. Двумерные массивы.
- •Тема 6. Символьные данные.
- •Тема 7. Строковы данные.
- •Тема 8. Процедуры.
- •5Доп. [16-19], 10доп.[104-116], 11доп.[187-211], 12доп.[121-134]
- •Тема 9. Функции.
- •5Доп. [16-19], 10доп.[104-116], 11доп.[187-211], 12доп.[121-134]
- •Тема 10. Записи
- •5Доп [19-22], 10доп.[95-99], 11доп.[321-338]
- •Тема 11. Типизированные файлы
- •5Доп [19-22], 10доп.[95-99], 11доп.[321-338]
- •Тема 12. Текстовые файлы.
- •5Доп [19-22], 10доп.[95-99], 11доп.[321-338]
- •Тема 13. Указатели.
- •5Доп. [28-32], 10доп.[125-146], 12доп.[161-174]
- •Тема 14. Построение графиков функции.
- •Варианты заданий:
- •Тема 15. Построение движущих изображений.
5Доп [19-22], 10доп.[95-99], 11доп.[321-338]
Тема 11. Типизированные файлы
Форма проведения: тренинг.
Методические рекомендации: Реализовать ввод из текстового файла. В программе должны быть предусмотрены соответствующие процедуры и функции, корректно обрабатывающие входные данные, согласно своему варианту. Результат должен запоминаться тоже в текстовом файле и в понятном для интерпретации виде.
Задания:
Контрольный пример.
Даны сведения о студентах: фамилия студента, год рождения, место рождения и адрес. Необходимо создать файл, созданный файл прочитать и вывести сведения о студентах алмаатинцах, возраст которых не превышает 18 лет.
program primer9;
uses crt;
type
mydata=record
fio:INTEGER;
year:integer;
place:string;
addr:string;
end;
myfile=file of mydata;
var
fin,fout:myfile;
trec:mydata;
n,i,k:integer;
procedure inputdata;
begin
write('Kolichestvo = ');
readln(n);
for i:=1 to n do
begin
with trec do
begin
write('Surname: '); read(fio);
write('Year: '); readLN(year);
write('Place: '); readln(place);
write('Address: '); readln(addr);
end;
write(fin,trec);
end;
end;
procedure select;
begin
reset(fin);
for i:=1 to n do
begin
read(fin,trec);
if (abs(trec.year-2004)<=18) and (pos('Almaty',trec.place)<>0) then
begin
write(fout,trec);
k:=k+1;
end;
end;
end;
procedure outdata;
begin
reset(fout);
if k=0 then writeln('<<<<Svedenii net>>>>')
else
for i:=1 to k do
begin
writeln('*********************');
read(fout,trec);
with trec do
begin
writeln(fio);
writeln(year);
writeln(place);
write(addr);
readln;
end;
end;
end;
begin
clrscr;
assign(fin,'data.txt');
assign(fout,'outdata.txt');
rewrite(fin);
rewrite(fout);
k:=0;
inputdata;
select;
outdata;
close(fin);
close(fout);
end.
1осн. [104-108]
5Доп [19-22], 10доп.[95-99], 11доп.[321-338]
Тема 12. Текстовые файлы.
Форма проведения: решение задач.
Методические рекомендации: Реализовать ввод из текстового файла и обработку символьных последовательностей, состоящих из любых символов. В программе должны быть предусмотрены соответствующие процедуры и функции, корректно обрабатывающие входные данные, согласно своему варианту. Результат должен запоминаться тоже в текстовом файле и в понятном для интерпретации виде.
Варианты заданий:
1. Дан текстовый файл. Вывести количество содержащихся в нем символов и строк (маркеры концов строк EOLN и конца файла EOF при подсчете количества символов не учитывать).
2. Дана строка S и текстовый файл. Добавить строку S в начало и конец файла.
3. Дан текстовый файл. Удалить из него первую и последнюю строку.
4. Даны два текстовых файла с именами Name1 и Name2. Создать новый текстовый файл с именем Name3, являющийся объединением содержимого файлов Name1 и Name2 (в указанном порядке).
5. Даны два текстовых файла с именами Name1 и Name2. Добавить в конец файла Name1 содержимое файла Name2.
6. Дан текстовый файл, содержащий более трех строк. Удалить из него три последние строки.
7. Дано число k (< 10) и текстовый файл, содержащий более k строк. Удалить из файла последние k строк.
8. Дано число k (< 10) и текстовый файл, содержащий более k строк. Создать новый текстовый файл, содержащий k последних строк исходного файла.
9. Дано число k и текстовый файл. Удалить из файла строку с номером k (строки нумеруются от 0). Если строки с таким номером нет, то оставить файл без изменений.
10. Дано число k и текстовый файл. Вставить пустую строку перед и после строки с номером k (строки нумеруются от 0). Если строки с таким номером нет, то оставить файл без изменений.
11. Дан текстовый файл. Удалить из него пустые строки.
12. Дана строка S и текстовый файл. Заменить в файле все пустые строки на строку S.
13. Дан текстовый файл. Заменить в нем все подряд идущие пробелы на один пробел.
14. Дан текстовый файл, содержащий текст, выровненный по левому краю. Выровнять его по [правому краю]1|центру2, добавив в начало каждой непустой строки необходимое количество пробелов (ширину текста считать равной 50). Строки нечетной длины перед центрированием дополнять слева пробелом.
15. Дан текстовый файл, содержащий текст, выровненный по левому краю. Абзацы текста разделяются одной пустой строкой. Выровнять текст по ширине (то есть и по левому, и по правому краю), увеличив в каждой непустой строке (кроме последних строк абзацев) количество пробелов между словами, начиная с первого пробела в строке (ширину текста считать равной 50).
Контрольный пример.
Дан текстовой файл. Получить копию файла.
program primer10; var f,g: text; s: string; begin {установка связи файловых переменных с именами файлов} assign(f, ‘data1.txt’); assign(g, ‘data2.txt’); {открытие файлов для чтения и записи} reset(f); rewrite(g); while not(eof(f)) do begin readln(f,s); {чтение из файла в строку} writeln(g,s) {запись в файл из строки} end; {закрытие файлов} close(f); close(g) end.
1осн. [104-108]