Остались 3 последние задачи, никак добить их не могу..подскажите, кто знает как их решить.
1)Элемент матрицы назовем седловой точкой, если он является наименьшим в своей строке и одновременно наибольшим в своём столбце или, наоборот, является наибольшим в своей строке и наименьшим в своем столбце. Для заданной матрицы размером 10х15 напечатать индексы всех её седловых точек.
2)Известно, что в следущем фрагменте программы массив матрица содержит оценки студентов группы, фамилии которых перечислены в типе фамилия:
type
Фамилия=(Иванов,Петров,Сидоров);
Предмет=(матанализ,алгебра,история);
Var
Матрица:Array[фамилия,предмет] of integer;
Выяснить, сколько студентов группы имеют средний балл, наименее отклоняющегося по абсолютному значению от среднего балла всей группы.
3)Определить, является ли заданная целая квадратная матрица 10-ого порядка ортонормированной, т.е. такой, в которой скалярное произведение каждой пары различных строк равно 0, а скалярное произведение каждой строки на себя равно 1.
Помогите решить 3 задачи на Паскале
1. Алгоритм на псевдокоде может быть следующим (не знаю, как насчнт оптимальности в смысле скорости, но результат давать должен )
Ну, а найти номер мин/макс элемента вектора (строки или столбца) - это несложно - просто пройти по этому вектору и смотреть мин/макс элемент.
Код: Выделить всё
цикл по строкам
для текущей строки (Y) найти номер столбца минимального элемента (X_min) этой строки;
Для найденного столбца (с номером X_min) найти номер строки максимального элемента (Y_max) этого столбца;
Если Y (т.е. номер текущей строки) = найденному Y_max, то элемент матрицы (X_min, Y) является седловой точкой;
все (цикл по строкам);