Задача на тему функции - Pascal

Узнай цену своей работы

Формулировка задачи:

Условие: http://img140.imageshack.us/img140/6048/lab7zad3hm0.jpg Мой вариант решения:
Выводит не то что нужно. Помогите исправить ошибки пожалуйсто? Тысячу спасиб тому кто поможет

Решение задачи: «Задача на тему функции»

textual
Листинг программы
[FONT=Courier New CYR][FONT=Courier New CYR]program ersdf;[/FONT]
[FONT=Courier New CYR]uses crt;[/FONT]
[FONT=Courier New CYR]const [/FONT][FONT=Courier New CYR]m[/FONT][FONT=Courier New CYR]=4;  //параметры матриц задаем константами[/FONT]
[FONT=Courier New CYR]   n=3;[/FONT]
[FONT=Courier New CYR]type Tmatr=array[1..m,1..n] of real;//[/FONT][FONT=Courier New CYR]объявляем [/FONT][FONT=Courier New CYR]тип [/FONT][FONT=Courier New CYR]матрица[/FONT]
[FONT=Courier New CYR]var i,j:integer;[/FONT]
[FONT=Courier New CYR]     a,b,c:Tmatr;[/FONT]
[FONT=Courier New CYR]function[/FONT][FONT=Courier New CYR]Max[/FONT][FONT=Courier New CYR]([/FONT][FONT=Courier New CYR]mt[/FONT][FONT=Courier New CYR]:[/FONT][FONT=Courier New CYR]Tmatr[/FONT][FONT=Courier New CYR]):[/FONT][FONT=Courier New CYR]real[/FONT][FONT=Courier New CYR];//считает сумму модулей элементов матрицы[/FONT]
[FONT=Courier New CYR]var s:real;[/FONT]
[FONT=Courier New CYR]begin[/FONT]
[FONT=Courier New CYR]s:=0;[/FONT]
[FONT=Courier New CYR]for i:=1 to m do[/FONT]
[FONT=Courier New CYR]for j:=1 to n do[/FONT]
[FONT=Courier New CYR]s:=s+abs(mt[i,j]);[/FONT]
[FONT=Courier New CYR]Max:=s;[/FONT]
[FONT=Courier New CYR]end;[/FONT]
[FONT=Courier New CYR]Function MaxMax(p,q,t:real):real;//[/FONT][FONT=Courier New CYR]ищет [/FONT][FONT=Courier New CYR]максимальное [/FONT][FONT=Courier New CYR]из [/FONT][FONT=Courier New CYR]трех[/FONT]
[FONT=Courier New CYR]var max:real;[/FONT]
[FONT=Courier New CYR]begin[/FONT]
[FONT=Courier New CYR]if p>q then max:=p else max:=q;[/FONT]
[FONT=Courier New CYR]if t>max then max:=t;[/FONT]
[FONT=Courier New CYR]MaxMax:=max;[/FONT]
[FONT=Courier New CYR]end;[/FONT]
[FONT=Courier New CYR]Procedure Mat(m,n:integer;var mt:Tmatr);//[/FONT][FONT=Courier New CYR]вводит [/FONT][FONT=Courier New CYR]элементы [/FONT][FONT=Courier New CYR]матриц[/FONT]
[FONT=Courier New CYR]begin[/FONT]
[FONT=Courier New CYR]writeln('vvod matrici:');[/FONT]
[FONT=Courier New CYR]for i:=1 to m do[/FONT]
[FONT=Courier New CYR]for j:=1 to n do[/FONT]
[FONT=Courier New CYR]read[/FONT][FONT=Courier New CYR]([/FONT][FONT=Courier New CYR]mt[/FONT][FONT=Courier New CYR][[/FONT][FONT=Courier New CYR]i[/FONT][FONT=Courier New CYR],[/FONT][FONT=Courier New CYR]j[/FONT][FONT=Courier New CYR]]); //вводить через пробел по три в строку, потом Enter[/FONT]
[FONT=Courier New CYR]readln;  //Enter[/FONT]
[FONT=Courier New CYR]end;[/FONT]
[FONT=Courier New CYR]begin[/FONT]
[FONT=Courier New CYR]clrscr;[/FONT]
[FONT=Courier New CYR]Mat[/FONT][FONT=Courier New CYR]([/FONT][FONT=Courier New CYR]m[/FONT][FONT=Courier New CYR],[/FONT][FONT=Courier New CYR]n[/FONT][FONT=Courier New CYR],[/FONT][FONT=Courier New CYR]a[/FONT][FONT=Courier New CYR]);//матрица А[/FONT]
[FONT=Courier New CYR]writeln;[/FONT]
[FONT=Courier New CYR]Writeln('Max A=',Max(a):4:1);[/FONT]
[FONT=Courier New CYR]writeln;[/FONT]
[FONT=Courier New CYR]Mat[/FONT][FONT=Courier New CYR]([/FONT][FONT=Courier New CYR]m[/FONT][FONT=Courier New CYR],[/FONT][FONT=Courier New CYR]n[/FONT][FONT=Courier New CYR],[/FONT][FONT=Courier New CYR]b[/FONT][FONT=Courier New CYR]); //Матрица В[/FONT]
[FONT=Courier New CYR]writeln;[/FONT]
[FONT=Courier New CYR]Writeln('MaxB=',Max(b):4:1);[/FONT]
[FONT=Courier New CYR]writeln;[/FONT]
[FONT=Courier New CYR]Mat[/FONT][FONT=Courier New CYR]([/FONT][FONT=Courier New CYR]m[/FONT][FONT=Courier New CYR],[/FONT][FONT=Courier New CYR]n[/FONT][FONT=Courier New CYR],[/FONT][FONT=Courier New CYR]c[/FONT][FONT=Courier New CYR]);  //Матрица С[/FONT]
[FONT=Courier New CYR]writeln;[/FONT]
[FONT=Courier New CYR]Writeln('MaxC=',Max(c):4:1);[/FONT]
[FONT=Courier New CYR]writeln;[/FONT]
[FONT=Courier New CYR]writeln('MaxMax=',MaxMax(Max(a),Max(b),Max(c)):4:1);//[/FONT][FONT=Courier New CYR]Результат[/FONT]
[FONT=Courier New CYR]readln[/FONT]
[FONT=Courier New CYR]end.[/FONT]
[/FONT]

Объяснение кода листинга программы

  1. Объявлены константы m и n, которые задают размеры матрицы.
  2. Объявлен тип Tmatr, который представляет собой массив, состоящий из m строк и n столбцов.
  3. Объявлены переменные i, j, a, b, c, которые будут использоваться в программе.
  4. Функция Max объявлена для вычисления суммы модулей элементов матрицы.
  5. Функция MaxMax объявлена для поиска максимального значения из трех.
  6. Процедура Mat объявлена для ввода элементов матрицы.
  7. В основной части программы вызываются функции и процедуры для ввода матрицы и вывода результатов.

Оцени полезность:

15   голосов , оценка 4.2 из 5
Похожие ответы