Ещё одна..Последняя зачётная задачка...Решить подробно и полностью.Расцелую всех.
Ввести размерность матрицы и значения ее элементов. Построить вектор В, где В(i) - максимальное значение в i-ом столбце.
Задание второе....(сперва решить,а потом это)
Сделать в виде МЕНЮ.(очень нужно)
1. Ввод данных 2. Ввод массива 3. <задание по лабе> 4. .... 0. Выход
после нажатия цифры на клавиатуре я должна перейти к указанному действию, после выполнения которого вернуться в меню.
klem4
15.12.2005 2:31
Ты хоть начни делать .. поможем, не принято у нас полные решения давать ...
Задача твоя решалась неоднократно, поищи по форуму... с меню тоже все просто, попробуй сдеалть сама, не получится поправим.
Carola
15.12.2005 2:55
Цитата(klem4 @ 14.12.2005 22:31)
Ты хоть начни делать .. поможем, не принято у нас полные решения давать ...
Задача твоя решалась неоднократно, поищи по форуму... с меню тоже все просто, попробуй сдеалть сама, не получится поправим.
Мммм.как я сделаю сама,если даже не знаю что такое Паскаль....Объясняла...Из больницы я...Знала бы и правдда сама сделала..Зачёт уже сдавать надо....Я не успею даже прочитать что и как делать.
klem4
15.12.2005 3:37
вот посмотри, набросал, далеко не идеально, но думаю поможет тебе разобраться что к чему ...
uses crt; const n=3; type TVector = array[1..n] of integer; TMatrix = array[1..n] of TVector; var vector : TVector; matrix : TMatrix; quit : boolean;
procedure InputMatrix(var x : TMatrix); var i,j : byte; begin for i := 1 to n do for j := 1 to n do begin write('x[',i,',',j,']='); readln(x[i,j]); end;
writeln; writeln('Input Done'); readln; end;
procedure PrintMatrix(x : TMatrix); var i,j : byte; begin clrscr; for i := 1 to n do begin writeln; for j := 1 to n do write(x[i,j]:3,' '); end;
writeln; writeln('Print Done'); readln; end;
function GetMax(var x : TMatrix; col : byte) : integer; var i : byte; max : integer; begin max := 1; for i := 2 to n do if x[i,col] > x[max, col] then max := i; GetMax := x[max,col];
end;
procedure GetVector(var v : TVector; x : TMatrix); var j : byte; begin for j := 1 to n do v[j] := GetMax(x,j);
writeln; writeln('Get Vector Done'); readln; end;
procedure PrintVector(v : TVector); var i : byte; begin clrscr; for i := 1 to n do writeln('v[',i,']=',v[i]);
begin clrscr; quit := false; while not(quit) do Menu(quit); end.
volvo
15.12.2005 3:49
Еще один, раз уж сделал...
uses crt;
Const max_n = 10; // rows max_m = 10; // cols Type Vector = Array[1 .. max_m] Of Integer; Matrix = Array[1 .. max_n, 1 .. max_m] of Integer;
Procedure Read_Dimension(var n, m: Integer); Begin Repeat Write('Enter the rows count: [1 .. ', max_n, '] '); ReadLn(n); Until (n > 0) and (n <= max_n);
Repeat Write('Enter the columns count: [1 .. ', max_m, '] '); ReadLn(m); Until (m > 0) and (m <= max_m); End;
Procedure Read_Matrix(Var A: matrix; n, m: Integer); Var i, j: Integer; Begin
For i := 1 To n Do For j := 1 To m Do Begin Write('A[', i:2, ',', j, '] = '); ReadLn(A[i,j]); End
End;
Procedure Calculate(A: matrix; n, m: Integer; Var B: vector); Var i, j, max: Integer; Begin
For j := 1 To m Do Begin
max := a[1, j]; For i := 2 To n Do If a[i, j] > max Then max := a[i, j]; B[j] := max;
End; WriteLn('Done');
End;
Procedure Show_Array(B: Vector; m: integer); Var i: integer; Begin For i := 1 To m Do Write(B[i]:4); Writeln; End;
var A: Matrix; B: Vector; i, m, n: integer;
menu: char;
const menu_size = 5; menu_str: array[1 .. menu_size] of string = ('1. Enter dimensions', '2. Enter the matrix', '3. Calculate ', '4. Show an array ', '0. Exit ');
begin repeat clrscr; for i := 1 to menu_size do begin gotoxy(10, 10+i); write(menu_str[i]); end;
repeat menu := readkey; until menu in ['0' .. '4'];
ClrScr; case menu of '1': Read_Dimension(n, m); '2': Read_Matrix(A, n, m); '3': Calculate(A, n, m, B); '4': Show_Array(B, m); '0': WriteLn('Halting...'); end; WriteLn; WriteLn('Press ENTER to continue...'); ReadLn;
until menu = '0'; end.
Carola
16.12.2005 1:15
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.