
- •Национальный исследовательский университет «мэи» Типовой расчет «Процедуры, функции, модули» Вариант 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;
Var I,j:byte;
begin
flag:=false; i:=1;
while (i<=m) and (not(flag)) do
begin
j:=1;
while (j<=n)and (not(flag)) do
begin
if abs(X[i,j])>1000 then
begin
flag:=true; ii:=i; jj:=j;
end;
inc(j);
end;
inc(i);
end;
end;
Абстракция А0.5
1.Условие. Проверить, все ли эл-ты матрицы А больше соотвествующих эл-ов матрицы В.
2.Уточненная постановка задачи.
Даны вещественные матрицы X и Y из m строк и n столбцов. Проверить (f), все ли эл-ты матрицы X больше соотвествующих эл-ов матрицы Y. Если да, то присвоить f значение True, а если есть хотя бы один Х[i,j]<=Y[i,j] присвоить f значение False.
3.Примеры.
Тест 7 f=True
Тест 8 f=True
Тест 9 f=false
Тест 10 f=true
4. Таблица данных
Класс |
Имя |
Описание (смысл), диапазон, точность |
Тип |
Структура |
|||
Входные данные |
X |
Заданная матрица, |Xij|<=1000 Точн. 0.1 |
вещ |
Двумерный массив (10х10) |
|||
Y |
Заданная матрица, |Yij|<=1000 Точн. 0.1 |
вещ |
Двумерный массив (10х10) |
||||
m |
число строк в матрице X,Y 1m10 |
цел |
простая переменная |
||||
n |
число столбцов в матрице X,Y 1n10 |
цел |
простая переменная |
||||
Выходные данные |
f |
= True, если все ли эл-ты матрицы X больше соотвествующих эл-ов матрицы Y, в противном случае False |
лог |
простая переменная |
|||
Промежу-точные данные |
i |
Номер текущей строки, 1i10 |
цел |
простая переменная |
|||
j |
Номер текущего столбца, 1j10 |
цел |
простая переменная |
5.Входная форма.
нет ввода/вывода
6.Выходная форма
нет ввода/вывода
7. Аномалии
нет ввода/вывода
8. Тесты
Тест 7 f=True
Тест 8 f=True
Тест 9 f=false
Тест 10 f=true
9. Метод
Истина все ли эл-ты матрицы X больше соотвествующих эл-ов матрицы Y
Ложь, в противном случае
Пусть f =
Предположим сначала, что условие выполняется (f:=true)
Затем будем просматривать строки, начиная с первой (i:=1)
Пока не просмотрены все (i≤m) и не найден эл-т X, не больший соответственного эл-та Y(f=true)
В каждой строке будем просматривать элементы, начиная с первого (j:=1)
П ока не просмотрены все (j≤n) и не найден такой элемент (f=true)
Если рассматриваемый элемент Xij ≤ Yij
Т о
условие не выполнено
f:=false
Переходим к следующему элементу в строке (j:=j+1)
Переходим к следующей строке
Найденное значение f будет искомым.
10. Алгоритм
11. Программа на паскале. Процедура общего вида
procedure Sravnenie;
Var I,j:byte;
begin
i:=1;j:=1; f:=true;
while (i<=m)and(f=true) do
begin
while (j<=n)and(f=true) do
begin
if X[i,j]<=Y[i,j] then f:=false;
inc(j);
end;
inc(i);
end;
end;
Абстракция А0.6
1.Условие. Даны матрицы X и Y. Составить матрицу С, по правилу