- •Содержание
- •Пример оформления работы
- •Задание 2.
- •If (c In ['0'..'9']) Then {если очередной элемент - цифра}
- •Val(s,k,error); {преобразуем строку в число}
- •Задания на лабораторную работу №5
- •Вариант 1
- •Вариант 2
- •Вариант 3
- •Вариант 4
- •Вариант 5
- •Вариант 6
- •Вариант 7
- •Вариант 8
- •Вариант 9
- •Вариант 10
- •Вариант 11
- •Вариант 12
- •Вариант 13
- •Вариант 14
- •Вариант 15
- •Задание 2.
- •Задания на лабораторную работу №6
- •Вариант 1
- •Вариант 2
- •Вариант 3
- •Вариант 4
- •Вариант 5
- •Вариант 6
- •Вариант 7
- •Вариант 8
- •Вариант 9
- •Вариант 10
- •Вариант 11
- •Вариант 12
- •Вариант 13
- •Вариант 14
- •Вариант 15
- •Вариант 16
- •Вариант 17
- •Вариант 18
- •Вариант 19
- •Вариант 20
- •Задание 2.
- •Задания на лабораторную работу №7
- •Вариант 1
- •Вариант 2
- •Вариант 3
- •Вариант 4
- •Вариант 5
- •Вариант 6
- •Вариант 7
- •Вариант 8
- •Вариант 14
- •Вариант 15
- •Задание 2.
- •Задания на лабораторную работу №8
- •Вариант 1
- •Вариант 2
- •Вариант 3
- •Вариант 4
- •Вариант 5
- •Вариант 6
- •Вариант 7
- •Вариант 8
- •Вариант 9
- •Вариант 10
- •Вариант 11
- •Вариант 12
- •Вариант 13
- •Вариант 14
- •Вариант 15
- •Задание 2.
- •Задания на лабораторную работу №9
Вариант 15
Задание 1
Строка состоит из нескольких слов, разделенных пробелом. Создать функцию, определяющую минимальное количество первых символов слов, по которым можно различить слова в строке.
Задание 2
Создать процедуру, которая упорядочивает строки прямоугольного массива matrixnm по возрастанию количества одинаковых элементов в каждой строке.
Лабораторная работа № 8
Файлы
Тема: Программирование алгоритмов работы с файлами.
Цель работы: Освоить основные алгоритмы работы с типизированными и текстовыми файлами.
Задание на лабораторную работу
-
Получить задание в соответствии с номером своего варианта.
-
Составить схему алгоритма решения задачи.
-
Написать код программы на языке Паскаль в среде Borland Pascal for Windows.
-
Осуществить компиляцию, отладку и тестирование программы.
-
Получить результат.
-
Оформить отчет по лабораторной работе.
Пример оформления работы
Задание 1.
-
Создать типизированный файл целых чисел. Записать в него с консоли последовательность целых чисел, конец последовательности (терминатор) – ноль, который не записывается в файл. Определить сумму и количество введенных чисел, их среднее арифметическое, минимальное и максимальное числа и их позиции в файле (нумерация данных в файле начинается с нуля). Массивы не использовать.
Создадим на D:\User файл chisla.dat, откроем его для записи и заполним его целыми числами. Откроем его для чтения и прочитаем первое число, которое и будет пока минимальным min и максимальным max, при этом их индексы (позиция в файле) равны нулю. Снова откроем файл для чтения и прочитаем все записанные числа, сравнивая каждое из них с текущим минимумом и максимумом: если очередное число больше текущего максимума, то оно – максимум, если меньше текущего минимума – то оно минимум. В процессе поиска индексы максимального и минимального чисел ( i_max, i_min ) запоминаются. Одновременно будем определять сумму summa и количество записанных чисел count.
-
Схема алгоритма решения задачи:
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. Компиляция, отладка, тестирование и получение результата: