Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лабораторные работы - Паскаль.doc
Скачиваний:
8
Добавлен:
04.11.2018
Размер:
4.84 Mб
Скачать

Вариант 15

Задание 1

Строка состоит из нескольких слов, разделенных пробелом. Создать функцию, определяющую минимальное количество первых символов слов, по которым можно различить слова в строке.

Задание 2

Создать процедуру, которая упорядочивает строки прямоугольного массива matrixnm по возрастанию количества одинаковых элементов в каждой строке.

Лабораторная работа № 8

Файлы

Тема: Программирование алгоритмов работы с файлами.

Цель работы: Освоить основные алгоритмы работы с типизированными и текстовыми файлами.

Задание на лабораторную работу

  1. Получить задание в соответствии с номером своего варианта.

  2. Составить схему алгоритма решения задачи.

  3. Написать код программы на языке Паскаль в среде Borland Pascal for Windows.

  4. Осуществить компиляцию, отладку и тестирование программы.

  5. Получить результат.

  6. Оформить отчет по лабораторной работе.

Пример оформления работы

Задание 1.

  1. Создать типизированный файл целых чисел. Записать в него с консоли последовательность целых чисел, конец последовательности (терминатор) – ноль, который не записывается в файл. Определить сумму и количество введенных чисел, их среднее арифметическое, минимальное и максимальное числа и их позиции в файле (нумерация данных в файле начинается с нуля). Массивы не использовать.

Создадим на D:\User файл chisla.dat, откроем его для записи и заполним его целыми числами. Откроем его для чтения и прочитаем первое число, которое и будет пока минимальным min и максимальным max, при этом их индексы (позиция в файле) равны нулю. Снова откроем файл для чтения и прочитаем все записанные числа, сравнивая каждое из них с текущим минимумом и максимумом: если очередное число больше текущего максимума, то оно – максимум, если меньше текущего минимума – то оно минимум. В процессе поиска индексы максимального и минимального чисел ( i_max, i_min ) запоминаются. Одновременно будем определять сумму summa и количество записанных чисел count.

  1. Схема алгоритма решения задачи:

3. Код программы:

Program Variant_0;

Uses WinCrt;

Var i, i_max, max, i_min, min, count : Integer;

summa, sr_arifm: Real;

chisla : File Of Integer;

Begin

WriteLn('Лабораторная работа №8_1');

WriteLn('Вариант №0');

WriteLn('ИС-11-1');

WriteLn('Пупкин Василий');

WriteLn;

Assign(chisla, 'D:\User\chisla.dat');

ReWrite(chisla); {открываем файл для записи}

Write('Введите первое число:');

ReadLn(i);

If (i=0) Then {если первое число – ноль,}

Begin {то выход из программы}

WriteLn('Файл не создан');

Erase(chisla);

Exit;

End

Else Write(chisla, i);

Repeat {цикл ввода чисел}

Write('Очередное число:');

ReadLn(i);

If (i<>0)

Then Write(chisla, i)

Else Break;

Until (i=0);

ReSet(chisla); {открываем файл для чтения}

Read(chisla, i); {и читаем первое число}

min:=i;

max:=i;

i_max:=0;

i_min:=0;

summa:=0.0;

count:=0;

ReSet(chisla); {снова открываем файл для чтения}

WriteLn;

WriteLn('Числа, записанные в файле:');

While (Not(EOF(chisla))) Do {цикл чтения чисел}

Begin

Read(chisla, i); {читаем очередное число}

Write(i:5); {и выводим его на экран}

If (i>max) Then

Begin

max:=i;

i_max:= FilePos(chisla);

End;

If (i<min) Then

Begin

min:=i;

i_min:= FilePos(chisla);

End;

summa:=summa+i;

count:=count+1;

End; {цикла чтения файла}

WriteLn;

sr_arifm:=summa/count;

WriteLn;

WriteLn('summa=', summa:0:0);

WriteLn('count=', count);

WriteLn('sr_arifm=', sr_arifm:6:3);

WriteLn('max=', max, ' i_max=', i_max);

WriteLn('min=', min, ' i_min=', i_min);

WriteLn;

Close(chisla);

End.

4. Компиляция, отладка, тестирование и получение результата: