Министерство образования и науки
Государственное образовательное учреждение профессионального высшего обучения
РОССИЙСКИЙ ГОСУДАРСТВЕННЫЙ ГИДРОМЕТИОРАЛОГИЧЕСКИЙ УНИВКРСИТЕТ
Кафедра: МИТ
Дисциплина "Информатика"
Отчёт по лабораторной работе №7
Вариант№26
Выполнил студент: Завьялов В.С.
Факультет: Океанология.
Курс: Первый.
Группа: О-193
Проверил: Сидоров В.А.
Санкт-Петербург
2005
Задание
№ вар. |
Программа |
Процедуры (Функции) |
M<= N<= |
Файл с данными |
21 |
Прямоугольный массив заполнить числами из файла, начиная с 4-го числа. С помощью функции в исходном массиве сделать элементы 1-й строки равным максимальному элементу соответствующего столбца. |
1)Исходный и полученный массивы печатать процедурой. 2)Построить функцию, которая возвращает максимальное значение в заказанном столбце прямоугольного массива. |
10 12 |
DATI.TXT |
Таблица идентификаторов 21 варианта.
Имя |
Тип |
Р-р (байт) |
Назначение |
Основная программа
KorrMas |
Имя программы |
- |
Обработка массива |
Massiv |
Описатель типа |
- |
Описатель целочисленных массивов |
Stroka |
Описатель типа |
- |
Описатель строки до 30 символов |
M |
Целое |
2 |
Количество строк массива |
N |
Целое |
2 |
Количество столбцов массива |
I |
Целое |
2 |
Номер текущей строки массива |
J |
Целое |
2 |
Номер текущего столбца массива |
Fin |
Двоичный файл прямого доступа |
2 |
Файл с исходными целыми числами |
Fout |
Последовательный символьный файл |
128 |
Файл с результатами работы |
Quest1 |
Инициализированная строка |
31 |
Запрос числа строк массива |
Quest2 |
Инициализированная строка |
31 |
Запрос числа столбцов массива |
A |
Целочисленный массив |
260 |
Обрабатываемый массив |
InpMN |
Имя процедуры |
- |
Ввод размеров массива |
Имя |
Тип |
Р-р (байт) |
Назначение |
PrintMas |
Имя процедуры |
- |
Вывод массива в файл протокола |
DATI.TXT |
Строка-константа |
9 |
Имя набора данных с числами |
L:\data\Dati.txt |
Строка-константа |
12 |
Имя набора данных с протоколом |
MaxValueMatr |
Имя функции |
- |
Максимальное значение |
InpMN – Процедура ввода размеров массива
Txt |
Строка |
31 |
Формальный параметр – строка запроса |
Kol |
Адрес целочисленной переменной |
4 |
Формальный параметр – имя переменной для результата ввода |
MaxK |
Целое |
2 |
Формальный параметр – предельное возможное значение |
PrintMas - Процедура вывода массива в файл протокола (распечатка массива)
Txt |
Строка |
256 |
Формальный параметр – текст заголовка |
Mas |
Адрес массива |
4 |
Формальный параметр – имя выводимого массива |
NS |
Целое |
2 |
Формальный параметр – число строк массива |
NKol |
Целое |
2 |
Формальный параметр – число столбцов массива |
I |
Целое |
2 |
Номер столбца |
J |
Целое |
2 |
Номер столбца |
MaxValueMatr – Функция вычисления максимального значения элементов заданного столбца массива
Mas |
Адрес массива |
4 |
Формальный параметр – имя исходного массива |
NS |
Целое |
2 |
Формальный параметр – число строк массива |
MaxA |
Целое |
2 |
Максимальный массив |
I |
Целое |
2 |
Номер текущей строки массива |
Блок-схема алгоритма.
Текст программы
PROGRAM KorrMas;
{Лабораторная работа №7 Вариант №21
Обработка массива
Завьялов В.С., ст. гр. О-193}
TYPE
Massiv=array [1..12, 1..10] of integer;
Stroka=string [30];
CONST
Quest1: Stroka=’Задайте число строк массива’;
Quest2: Stroka=’ Задайте число столбцов массива’;
VAR A: massiv;
M, N, NS, I, J: integer;
Fin: text;
Fout: text
PROCEDURE InpMN (Txt: Stroka; MaxK: integer; VakKol: integer);
BEGIN
Writeln;
Writeln (Txt);
Repeat
Readln (Kol);
If Kol>MaxK then
Writeln (‘Можно не более’,MaxK,’задайте снова’);
Until Kol<=MaxK;
End;
PROCEDURE PrintMas (Txt: string; VarMas: Massiv;
NS, NKol: integer);
Var I, J: integer;
BEGIN
Writeln (Fout, Txt);
For I:= 1 to NS do
BEGIN
For J:= 1 to NKol do Write (Fout, Mas [I,J]:2);
Writeln (Fout);
END;
END;
FUNCTION MaxValueMatr (VarMas: Massiv; NS: integer);
: integer;
VAR MaxA, I: integer;
BEGIN
MaxA:= Mas [1, NS];
For I:= 1 to M do
If Mas [I, NS]>MaxA then MaxA:=Mas [I, NS];
MaxValueMatr:= MaxA
END;
BEGIN
InpMN (Quest1, 12, M);
InpMN (Quest1, 10, N);
Assign (Fout, ‘L:\Kurs_1\О-193\Zavyalov.txt’);
Rewrite (Fout);
Writeln (Fout,’Максимальное значение элементов первой строки’);
Assign (Fin,’L:\data\Dati.txt’);
Reset (Fin);
For I:= 1 to 3 do Read (Fin, A[1,1]);
For I:= 1 to M do
For J:= 1 to N do Read (Fin, A[I,J]);
Close (Fin);
PrintMas (‘Исходный массив’, A, M, N);
For I:= 1 to N do A[1, I]:= MaxValueMatr (A,I);
PrintMas (‘Обработанный массив’, A, M, N);
Close (Fout);
END.
Содержимое набора данных L:\Kurs_1\О-193\Zavyalov.txt
Исходный массив
65 456 59 45 26
59 54 99 65 856
65 656 65 9 554
48 48 44 84 84
85 96 74 12 63
Полученный массив
85 656 99 84 856
59 54 99 65 856
65 656 65 9 554
48 48 44 84 84
85 96 74 12 63
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.