Задача на тему функции - 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]
Объяснение кода листинга программы
- Объявлены константы m и n, которые задают размеры матрицы.
- Объявлен тип Tmatr, который представляет собой массив, состоящий из m строк и n столбцов.
- Объявлены переменные i, j, a, b, c, которые будут использоваться в программе.
- Функция Max объявлена для вычисления суммы модулей элементов матрицы.
- Функция MaxMax объявлена для поиска максимального значения из трех.
- Процедура Mat объявлена для ввода элементов матрицы.
- В основной части программы вызываются функции и процедуры для ввода матрицы и вывода результатов.