
- •Национальный исследовательский университет «мэи» Типовой расчет «Процедуры, функции, модули» Вариант 22
- •3.Примеры.
- •4. Таблица данных
- •7. Аномалии
- •8. Функциональные тесты
- •9. Метод
- •10. Алгоритм
- •11. Программа на Delphi (с процедурами-заглушками, кроме процедур ввода и вывода).
- •Var {раздел описания переменных -----------------------------------------------------------------}
- •{Ввод m,n --------------------------------------------------------------------------------------------}
- •{Ввод и вывод матриц a и b --------------------------------------------------------------------}
- •2.Уточненная постановка задачи.
- •4. Таблица данных
- •10. Алгоритм
- •11. Программа на паскале. Процедура общего вида
- •Var I,j:byte;
- •2.Уточненная постановка задачи.
- •3.Примеры.
- •4. Таблица данных
- •10. Алгоритм
- •11. Программа на паскале. Процедура общего вида
- •Var I,j:byte;
- •2.Уточненная постановка задачи.
- •3.Примеры.
- •4. Таблица данных
- •10. Алгоритм
- •11. Программа на паскале. Процедура общего вида
- •Var I,j:byte;
2.Уточненная постановка задачи.
Дана вещественная матрица X из m строк и n столбцов. Проверить (flag), есть ли в матрицы элементы, абсолютная величина которых больше 1000. Если есть, то присвоить flag значение True и найти номер строки (ii) и столбца (jj) первого такого элемента, иначе присвоить flag значение False.
3.Примеры. (В скобках результаты для матрицы В)
Тест 4 есть некорректный элемент X[1,3]=1001, flag=True (f=false)
Тест 5 есть некорректный элемент flag=false; (X[1,1]= -2000, flag=True)
Тест 6 есть некорректный элемент X[2,1]= -1050, flag=true, (X[1,2]= 2000, flag= True)
4. Таблица данных
Класс |
Имя |
Описание (смысл), диапазон, точность |
Тип |
Структура |
|||
Входные данные |
X |
Заданная матрица, |Xij|<=5000 Точн. 0.1 |
вещ |
Двухмерный массив (10х10) |
|||
m |
число строк в матрице A, 1m10 |
цел |
простая переменная |
||||
n |
число столбцов в матрице A,1n10 |
цел |
простая переменная |
||||
Выходные данные |
ii |
Строка с некорр. X[ii,jj], 1ii10 |
цел |
простая перем |
|||
jj |
Столбец с некорр. X[ii,jj], 1jj10 |
цел |
простая перем |
||||
flag |
= True, если есть некорректные Xij, в противном случае False |
лог |
простая переменная |
||||
Промежу-точные данные |
i |
Номер текущей строки, 1i10 |
цел |
простая переменная |
|||
j |
Номер текущего столбца, 1j10 |
цел |
простая переменная |
5.Входная форма.
нет ввода/вывода
6.Выходная форма
нет ввода/вывода
7. Аномалии
нет ввода/вывода
8. Тесты
Тест 4 есть некорректный элемент X[1,3]=1001, flag=True (flag=false)
Тест 5 есть некорректный элемент flag=false; (X[1,1]= -2000, flag=True)
Тест 6 есть некорректный элемент X[2,1]= -1050, flag=true, (X[1,2]= 2000, flag= True)
9. Метод
Истина, если есть в матрице элемент |Xi,j|>1000;
Ложь, если нет такого элемента
Пусть flag =
Предположим сначала, что такого элемента в матрице нет (Flag:=False)
Затем будем просматривать строки, начиная с первой (i:=1)
Пока не просмотрены все (i≤m) и не найден такой элемент (flag=False)
В
каждой строке будем
просматривать элементы, начиная с
первого (j:=1)
П
ока
не просмотрены все (j≤n)
и не найден такой элемент (flag=False)
Если рассматриваемый элемент Xij по модулю больше 1000
Т
о
искомый элемент найден! (flag:=True)
Запоминаем его местонахождение (ii:=i; jj:=j)
Переходим к следующему элементу в строке (j:=j+1)
Переходим к следующей строке
Найденные значения flag, ii, jj будут искомыми.
10. Алгоритм
11. Программа на паскале. Процедура общего вида
procedure ProvMas;