
- •Национальный исследовательский университет «мэи» Типовой расчет «Процедуры, функции, модули» Вариант 9
- •2. Уточненная постановка задачи:
- •3. Пример:
- •4.Таблица данных:
- •8. Функциональные тесты
- •9. Метод
- •10. Алгоритм
- •11. Программа на Delphi (с процедурами-заглушками, кроме процедур ввода и вывода).
- •2.Уточненная постановка задачи.
- •4. Таблица данных
- •11. Программа на паскале. Процедура общего вида
- •2.Уточненная постановка задачи.
- •4. Таблица данных
- •2.Уточненная постановка задачи.
- •4. Таблица данных
- •2.Уточненная постановка задачи.
- •4. Таблица данных
- •2.Уточненная постановка задачи.
- •4. Таблица данных
2.Уточненная постановка задачи.
Дана квадратная матрица A из n строк и столбцов. Узнать, есть ли в массиве элементы, модуль которых больше 25.Если есть, то вывести сообщение об этом и прекратить работу программы.
3.Примеры.
Тест 3,4: есть элемент, модуль которого больше 25
Остальные тесты - нету
4. Таблица данных
Класс |
Имя |
Описание (смысл), диапазон, точность |
Тип |
Структура |
Входные данные |
A |
Заданная матрица, |Aij|<=25 |
вещ |
Двухмерный массив (10x10) |
n |
число строк и столбцов в матрице A, 0 < n 5 |
цел |
простая переменная |
|
res |
Выходной файл |
Файловая переменная |
|
|
F1 |
=false, если в массиве есть |a[I,j]|>25 , иначе =true |
логический |
простая переменная |
|
Промежу-точные данные |
i |
Номер текущей строки, 0 < i 5 |
цел |
простая переменная |
|
j |
Номер текущей столбца, 0 < j 5 |
цел |
простая переменная |
5.Входная форма.
нет ввода/вывода
6.Выходная форма
По обр.9.
7. Аномалии
нет ввода/вывода
8. Тесты
Тест #3,4-есть элемент, по модулю больший 25;
Остальные тесты – нету.
9. Метод
Истина,
если есть в матрице элемент |Ai,j|>25;
Ложь,
если нет такого элемента
Пусть f1=
Предположим сначала, что такого элемента в матрице нет (f1:=true).
Затем будем просматривать строки, начиная с первой (i:=1)
Пока не просмотрены все (i≤n) и не найден такой элемент (f1=true)
В
каждой строке будем
просматривать элементы, начиная с
первого (j:=1)
П
ока
не просмотрены все (j≤n)
и не найден такой элемент (f1=true)
Если рассматриваемый элемент Aij по модулю больше 25
Т
о
искомый элемент найден! (f1:=false)
Запоминаем его местонахождение (i:=i; j:=j)
Переходим к следующему элементу в строке (j:=j+1)
Переходим к следующей строке
Если f1=true, то продолжаем работу программы, иначе прекращаем работу программы.
1
F1:=true
i:=1
0.
Алгоритм
i:=i;
j:=j; f1:=false
j:=j+1
i:=i+1
j:=1
11. Программа на паскале. Процедура общего вида
procedure CheckArray(var dat:TextFile; var res:TextFile; n:byte; f1:boolean; a:Matrix);
var i,j:byte;
begin
f1:=true;
i:=1;
while(i<=n) and f1 do begin
j:=1;
while (j<=n) and f1 do begin
if abs(A[i,j])>25 then f1:=false;
inc(j);
end;
inc(i);
end;
if not f1 then begin
writeln(res,’Некорректный элемент массива');
CloseFile(dat);
CloseFile(res);
halt
end;
end;
Абстракция А0.6
1.Условие. Поиск максимального элемента матрицы