IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code], либо быть опубликованы на нашем PasteBin в режиме вечного хранения.
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

 
 Ответить  Открыть новую тему 
> Максимум в матрице
сообщение
Сообщение #1


Гость






Помогите плиз переделать программку, что бы она выдавала максимум в получившейся матрице.Матрица берётся из файла
Program mas_6;
uses crt;

const
size_row = 4;
size_col = 7;

type
trow = array[1 .. size_row] of integer;
tmatrix = array[1 .. size_col] of trow;

procedure swap_cols(var mx: tmatrix;
const i, j: integer);
var T: trow;
begin
T := mx[i]; mx[i] := mx[j]; mx[j] := T
end;

procedure print(var mx: tmatrix);
var i, j: integer;
begin
for i := 1 to size_row do
begin
for j := 1 to size_col do
write(mx[j][i]:4);
writeln
end;
end;

var
mx : tmatrix;
i, j : integer;
n, z : integer;
t : text;
r: array [1..500] of Real;
s: Real;
ArrayOfInteger: Array [1..100, 1..100] of Integer;

begin
clrscr;
n := 0;
assign (t, 'input.txt');
reset (t);
for i := 1 to size_col do
for j := 1 to size_row do
read (t, mx[i][j]);
close (t);

for i := 1 to size_col do
for j := 1 to size_row do
if mx[i][j] > n then begin
n := mx[i][j];
z := i;
end;

if z = 1 then
writeln ('max : ');

writeln('ishodn. matrica:'); print(mx);
swap_cols(mx, 1, z);
writeln('polushilos:');
print(mx);

assign (t, 'output.txt');
rewrite (t);
for i := 1 to size_col do begin
writeln (t);
for j := 1 to size_row do
write (t, mx[i][j]);
end;
close (t);
readkey;
end.
 К началу страницы 
+ Ответить 
сообщение
Сообщение #2


Perl. Just code it!
******

Группа: Пользователи
Сообщений: 4 100
Пол: Мужской
Реальное имя: Андрей

Репутация: -  44  +


max := mx[1, 1];

for i := 1 to size_col do
for j := 1 to size_row do
if mx[i,j] > max then max := mx[i, j];

writeln('max = ', max);


За что переменная z отвечает не ясно ... надо еще найти номер строки в которой находится максимум ?


--------------------
perl -e 'print for (map{chr(hex)}("4861707079204E6577205965617221"=~/(.{2})/g)), "\n";'
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #3


Гость






Цитата(klem4 @ 11.06.2007 17:42) *

max := mx[1, 1];

for i := 1 to size_col do
for j := 1 to size_row do
if mx[i,j] > max then max := mx[i, j];

writeln('max = ', max);


За что переменная z отвечает не ясно ... надо еще найти номер строки в которой находится максимум ?

Нет, так и не определяет максимум unsure.gif В какой строке не нужно.
 К началу страницы 
+ Ответить 
сообщение
Сообщение #4


Гость






Во-первых, не совсем понятно, почему у тебя не определяет максимум, если программа работает и все печатается...

А во вторых: ты что, думаешь что перестановка столбцов повлияет на значение максимума матрицы? Ты ж его нашел уже (переменная N) - зачем делать то же самое еще раз?
 К началу страницы 
+ Ответить 
сообщение
Сообщение #5


Гость






Цитата(volvo @ 11.06.2007 19:46) *

Во-первых, не совсем понятно, почему у тебя не определяет максимум, если программа работает и все печатается...

А во вторых: ты что, думаешь что перестановка столбцов повлияет на значение максимума матрицы? Ты ж его нашел уже (переменная N) - зачем делать то же самое еще раз?

Максимум нужно вывести в отдельной строчке, допустим матрица
3 6
4 9
8 7
она должна ниже написать максимум = 9
Вот это единственное, что нужно сделать
 К началу страницы 
+ Ответить 
сообщение
Сообщение #6


Профи
****

Группа: Пользователи
Сообщений: 731
Пол: Женский

Репутация: -  25  +


Цитата
Вот это единственное, что нужно сделать

Ну тогда, по-моему, вот все, что тебе нужно:

uses crt;
var mx: array[1..4,1..7] of integer;
i,j,n: integer;
t: text;
begin
n := 0;
assign (t, 'Input.txt');
{$I-}
reset (t);
{$I+}
if IOresult = 0 then
begin
for i := 1 to 4 do
for j := 1 to 7 do
begin
read (t, mx[i,j]);
if mx[i,j]>n then n:=mx[i,j];
end;
close (t);
writeln('Максимум = ',n,'');
end
else writeln('Файла *Input.txt* на диске нет!');
end.


Сообщение отредактировано: Айра -
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #7


Гость






Айра спасибо good.gif

Сообщение отредактировано: Nalis -
 К началу страницы 
+ Ответить 

 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 





- Текстовая версия 28.03.2024 17:01
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name