- •Алгоритмы, структуры данных и программирование
- •Қасымқанұлы Бөрібай, к.Ф.-м. Н., доцент кафедры высшей математики Костанайского государственного педагогического института
- •Работа №1
- •1 Перечень знаний и умений, необходимых для выполнения лабораторной работы
- •2 Пример решения задачи
- •1 Способ:
- •2 Способ:
- •3 Задачи
- •4 Тесты
- •Работа №2
- •1 Перечень знаний и умений, необходимых для выполнения лабораторной работы
- •2 Пример решения задачи
- •3 Задачи
- •4 Тесты
- •Работа №3
- •1 Перечень знаний и умений, необходимых для выполнения лабораторной работы
- •2 Примеры решения задач
- •3 Задачи
- •4 Тесты
- •Работа №4
- •1 Перечень знаний и умений, необходимых для выполнения лабораторной работы
- •2 Пример решения задачи
- •3 Задачи
- •4 Тесты
- •Работа №5
- •1 Перечень знаний и умений, необходимых для выполнения лабораторной работы
- •2 Пример решения задачи
- •3 Задачи
- •4 Тесты
- •Работа №6
- •1 Перечень знаний и умений, необходимых для выполнения лабораторной работы
- •2 Пример решения задачи
- •3 Задачи
- •4 Тесты
- •Работа №7
- •1 Перечень знаний и умений, необходимых для выполнения лабораторной работы.
- •2 Пример решения задачи
- •3 Задачи
- •4 Тесты
- •Работа №8
- •1 Перечень знаний и умений, необходимых для выполнения лабораторной работы
- •2 Пример решения задачи
- •3 Задачи
- •4 Тесты
- •Работа №9
- •1. Перечень знаний и умений, необходимых для выполнения лабораторной работы
- •2. Пример решения задачи
- •3. Задачи
- •4. Тесты
- •Работа №10
- •1. Перечень знаний и умений, необходимых для выполнения лабораторной работы
- •2. Пример решения задачи
- •3. Задачи
- •4. Тесты
- •Работа №11
- •1. Перечень знаний и умений, необходимых для выполнения лабораторной работы
- •2. Пример решения задачи
- •3. Задачи
- •4. Тесты
- •Работа №12
- •1. Перечень знаний и умений, необходимых для выполнения лабораторной работы
- •2. Пример решения задачи
- •3. Задачи
- •4. Тесты
- •Работа №13
- •1. Перечень знаний и умений, необходимых для выполнения лабораторной работы
- •2. Пример решения задачи
- •3. Задачи
- •4. Тесты
- •Работа №14
- •1. Перечень знаний и умений, необходимых для выполнения лабораторной работы
- •2. Пример решения задачи
- •3. Задачи
- •4. Тесты
- •Работа №15
- •1 Перечень знаний и умений, необходимых для выполнения лабораторной работы
- •2 Пример решения задачи
- •3 Задачи
- •4 Контрольные вопросы
- •Ответы к тестовым заданиям
4. Тесты
Истина или ложь?
Каждое из представленных ниже утверждений либо верно, либо нет.
Запись представляет собой совокупность родственных данных.
Элементы, образующие запись, называются полями.
Количество полей в записи фиксировано и определяется описанием записи.
Имена полей в пределах записи могут повторяться.
Если в программе объявлено несколько комбинированных типов, имена полей, принадлежащих разным типам, могут совпадать.
После зарезервированного слова Record ставится точка с запятой.
В записи может быть только одна вариантная часть, которая должна быть описана непременно после фиксированной части.
Строка, начинающая вариантную часть, включает зарезервированные слова Case и of, имеющие смысл вариант и из соответственно.
Фиксированная часть записи не всегда предшествует вариантной.
Поле признака вариантной части не принадлежит ни к фиксированной, ни к вариантной частям и выносится в заголовок вариантной части.
Работа №12
Тема: Текстовые файлы.
Цель: Ознакомиться с видами файлов, подробно изучить, и научится работать с текстовыми файлами.
1. Перечень знаний и умений, необходимых для выполнения лабораторной работы
Перед тем, как приступить к выполнению лабораторной работы, студенту необходимо ознакомиться со следующим материалом:
определение текстовых файлов;
описание текстовых файлов;
назначение и синтаксис процедур для работы с текстовыми файлами языка Turbo Pascal.
2. Пример решения задачи
Организовать текстовый файл, состоящий из N строк. Определить максимальный и минимальный размер строки в файле. Вывести содержимое файла на экран.
Решение задачи разобьём на три этапа:
1. инициализация текстового файла, ввод компонент файла;
2. поиск строки файла максимального и минимального размера;
3. вывод результатов на экран.
Инициализировать текстовый файл, используя файловую переменную f можно тремя способами:
1 способ:
Var f: file of string;
2 способ:
Type аа = file of string;
Var f: aa;
3 способ:
Var f: text;
Чтобы связать конкретный физический файл, находящийся на диске с файловой переменной используем процедуру:
assign(f,’f.dat’);
здесь f – файловая переменная, ’f.dat’- строковое имя существующего либо создаваемого файла.
Для хранения значения текущей компоненты строки файла используем строковую переменную а:
Var a: string;
Компоненты текстового файла вводятся аналогично компонентам типизированного файла в цикле, перед которым необходимо открыть файл для записи в него вводимых компонент:
rewrite(f); {открытие файла для записи}
writeln('вводите количество компонент файла f');
read(n);
writeln('введите компоненты файла f');
for i:=1 to n do
begin
readln(a); {считывание значения строковой компоненты}
writeln(f, a); {запись строки, значение которой хранится в переменной а в файл f}
end;
close(f); {закрытие файла f}
Алгоритм реализации второго этапа поиска строки максимального и минимального размера аналогичен поиску максимального и минимального элемента массива.
Обозначим за max – максимальный размер строки, размер текущей строки найдем используя функцию length(cтрока)- длина строки. За начальное значение max:=1 возьмем значение единицы – строка, состоящая из одного символа. В качестве минимального размера строки используем переменную min, а в качестве ее первоначального значения возьмем значение максимально возможной длины строки 255. Итак:
max:=1;
min:=255;
reset(f); {открываем файл для считывания из него}
while not (eof(f)) do {в цикле пока не считана последняя
компонента}
begin
readln(f,a); {читаем текущую компоненту}
if length(a)>max then max:=length(a); {если длина текущей
строки больше чем значение переменной max, то max присвоим значение длины текущей строки}
if length(a)<min then min:=length(a); {если длина текущей
строки меньше чем значение переменной min, то min присвоим значение длины текущей строки}
end; {конец цикла}
close(f); {закрываем файл}
Третий этап вывод компонентов файла и результатов поиска на экран:
reset(f); {открываем файл для считывания из него}
writeln;
writeln('Файл f:');
while not(eof(f)) do {в цикле пока не считана последняя
компонента файла}
begin
readln(f, а); {читаем текущую компоненту}
writeln(а); {выводим ее на экран }
end;
writeln(' максимальный размер строки файла f - max=', max);
writeln(' минимальный размер строки файла f - min=', min);
Вся программа имеет следующий вид:
program Rev;
uses CRT;
Var f: text; i,n: longint; а: string; min, max: integer;
begin
assign(f,’f.dat’);
rewrite(f); {открытие файла для записи}
writeln('вводите количество компонент файла f');
read(n);
writeln('введите компоненты файла f');
for i:=1 to n do
begin
readln(а); {считывание значения следующей компоненты}
writeln(f, а); {запись компоненты значение которой хранится в переменной а в файл f}
end;
close(f); {закрытие файла f}
max:=1;
min:=255;
reset(f); {открываем файл для считывания из него}
while not (eof(f)) do
begin
readln(f,a); {читаем текущую компоненту}
if length(a)>max then max:=length(a);
if length(a)<min then min:=length(a);
end;
close(f); {закрываем файл}
{Вывод файла на экран:}
reset(f);
writeln;
writeln('Файл f:');
while not(eof(f)) do
begin
readln(f, a);
writeln(a);
end;
close(f); {закрываем файл}
writeln(' максимальный размер строки файла f - max=', max);
writeln(' минимальный размер строки файла f- min=', min);
end.
