Материалы сайта
Это интересно
Вычислительная практика I курс
Смаль Дмитрий, АС-14 Работа №5 Тема: “Создание модуля пользователя” 1. Постановка задачи: Вариант 10: Описать функцию MAX( A, n, k ), где A- матрица, а n и k индексы (n0) and (k>0) and (R>2) and (C>2) then begin Enter; Writeln('Максимальный элемент MAX: ',MAX(a,n,k)) end else writeln('Введите n>0 и k>0 и R>2 и C>2') End. 5. Результаты тестирования: 1) Введите размерность матрицы R,C: 2) Введите размерность матрицы R,C: 6 5 6 5 Введите n Введите n 1 2 Введите k Введите k 6 4 Введите матрицу: Введите матрицу: 22 3 4 8 9 15 2 19 69 34 1 13 25 44 7 1 3 5 9 29 0 78 6 8 19 27 35 1 65 3 45 0 2 0 1 3 4 6 8 1 3 5 1 1 7 1 4 5 19 2 2 7 8 9 1 5 3 11 17 6 9 Максимальный элемент MAX: 69 Максимальный элемент MAX : 44 3) Введите размерность матрицы R,C: -7 -7 Введите n 1 Введите k 6 Приложение №1: Ввод размерности матрицы Ввод границ заштрихованной области НЕТ ДА Процедура ввода матрицы Функция поиска максимального эл-та в заштрихованной части матрицы 1. Постановка задачи: Вариант № 8: Даны координаты вершин прямоугольника и координаты точки. Определить лежит ли эта точка внутри прямоугольника и если лежит, определить минимальное расстояние от этой точки до сторон прямоугольника. 2. Схема алгоритма (см. Приложение № 2) 3. Тестовые примеры: 1) Если вершины прямоугольника заданы координатами: A(0;2), B(0;5), C(6,5), D(6,2). А точка задана координатами E(1,247;3,125), то точка будет лежать внутри прямоугольника, а минимальное расстояние будет равно 1,125 2) Если вершины прямоугольника заданы координатами: A(1;2), B(1;5), C(8,5), D(8,2). А точка задана координатами E(3;4), то точка будет лежать внутри прямоугольника, а минимальное расстояние будет равно 1. 3) Если вершины прямоугольника заданы координатами A(2,2), B(2,15), C(10;15), D(10;2). А точка задана координатами E(34;67), то точка будет лежать вне прямоугольника и минимальное расстояние до сторон определить невозможно. 4. Распечатка текста программы: Program Modul_2; Uses crt,INTER; Begin clrscr; Writeln('Введите коорд. вершин прямоуг., стороны которого'); Writeln(' параллельны координатным осям. '); Read(x1,x2,x3,x4,y1,y2,y3,y4); Writeln('Введите координаты точки:');Read(x,y); Write('Точка лежит внутри прямоугольника ? '); Write(Nahozhdenie(x,y)); t:=Nahozhdenie(x,y); writeln; If t=True then begin Write('Минимальное расстояние: ');Rasstoyanie; end else Writeln('Точка вне прямоугольника, мин. расстояние определить невозможно'); End. 5. Результаты тестирования: 1) Введите коорд-ты вершин прямоугольника, стороны которого параллельны осям координат 0 0 6 6 2 5 5 2 Введите координаты точки 1,247 3,125 Точка лежит внутри прямоугольника ? TRUE Минимальное расстояние: 1,125 2) Введите коорд-ты вершин прямоугольника, стороны которого параллельны осям координат 1 1 8 8 2 5 5 2 Введите координаты точки 3 4 Точка лежит внутри прямоугольника ? TRUE Минимальное расстояние: 1 3) Введите коорд-ты вершин прямоугольника, стороны которого параллельны осям координат 2 2 10 10 2 15 15 2 Введите координаты точки 34 67 Точка лежит внутри прямоугольника ? FALSE Точка вне прямоугольника опр. минимальное расст. опр-ть. невозможно Приложение № 2 Ввод координат вершин прямоуг. Ввод координат точки Определяем лежит ли точка внутри прямоугольника НЕТ ДА Процедура, опред. Минимальное расст. до сторон прямоугольника Приложение № 3 Подробное описание Блок-схем процедур и функций, используемых в программе см. в работе № 4 Распечатка текста модуля пользователя: Unit INTER; Interface TYPE E=INTEGER; ATYPE=ARRAY[1..30,1..30] of E; RE=REAL; Var k,n,R,C:E; a:ATYPE; x,y,w,d,g,f:RE; x1,x2,x3,x4,y1,y2,y3,y4:RE; t:BOOLEAN; Procedure Enter; Function MAX (B:ATYPE;n,k:WORD):E; Function Nahozhdenie (x,y:RE):BOOLEAN; Procedure Rasstoyanie; Implementation Procedure Enter; Var i,j:BYTE; begin Writeln('Введите матрицу:'); For i:=1 to R do For j:=1 to C do Read(a[i,j]); end; Function MAX; Var i,j:Word; m:E; begin m:=B[1,n+1]; For i:=1 to n do For j:=n+1 to k-1 do If B[i,j]>m then m:=B[i,j]; For i:=n+1 to k-1 do For j:=1 to C do If B[i,j]>m then m:=B[i,j]; For i:=k to R do For j:=n+1 to k-1 do If B[i,j]>m then m:=B[i,j]; MAX:=m end; Function Nahozhdenie; Var n:BOOLEAN; begin If (x1 0 и k>0 и R>2 и C>2 “ Введите n>0 и k>0 и R>2 и C>2 “ ENTER A A MAX(a, n, k) B B КОНЕЦ НАЧАЛО x1, x2,x3,x4, y1,y2,y3,y4 X , Y Nahozhdenie(x,y) t : = Nahozhdenie(x,y) t= “Правда” “ Точка вне прямоуг. мин. рааст. опред .невозможно” “ Минимальное расстояние : ” Rasstoyanie КОНЕЦ