Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 16.12.2010, 20:46   #1
poseidonLOST
Новичок
Джуниор
 
Регистрация: 16.12.2010
Сообщений: 2
По умолчанию Двумерная матрица. Решение через процедуру и функцию.

Написать программу, переставляющую местами элементы главной диагонали двумерной матрицы с максимальным элементом соответствующей строки.
Использовать Процедуры:
— Ввода
— Вывода
Использовать функцию определения позиции максимального в строке.

program zada4a2;
uses crt;
type
mas2 = array[1..100,1..100] of integer;
var
st,sb,n:integer;
tt:mas2;
procedure vvod2(str,stb:integer;var a:mas2);
var i,j:integer;
begin
for i:=1 to str do
for j:=1 to stb do
begin
writeln('vvedite dvumernyj masssiv');
readln(a[i,j]);
end;
end;
procedure vyvod2(str,stb:integer; var a:mas2);
var i,j:integer;
begin
for i:=1 to str do begin
for j:=1 to stb do
write(a[i,j]:4);
writeln;
end;
end;

begin {Ќ*з*«® Ћб*®ў*®© Їа®Ја*¬¬л}
clrscr;
writeln('vvedite koli4estvo strok v dvumernom massive');
readln(st);
writeln('vvedite koli4estvo stolbcov v dvumernom massive');
readln(sb);
vvod2(st,sb,tt) ;
vyvod2(st,sb,tt) ;
readln;
end.


Это ввод и вывод через функции, что мог, то сделал. Вроде правильно. Что после - не знаю)

Заранее Спасибо
poseidonLOST вне форума Ответить с цитированием
Старый 16.12.2010, 21:14   #2
Hacker19_90
Delphi Warrior
Старожил
 
Аватар для Hacker19_90
 
Регистрация: 15.08.2008
Сообщений: 2,502
По умолчанию

ну вот допустим это функция определения максимального в строке
Код:
function GetMaxStr(A:mas2; n: integer; num: integer): integer;
var
    i: integer;
    max: integer;
    pos: integer;
begin
    max := A[num, 1];
    pos := 1;
    for i := 2 to n do
        if A[num, i] > max then
        begin
            max := A[num, i]
            pos := i;
        end;
    GetMaxStr := pos;
end;
Ну а потом обмен можно производить таким образом
Код:
    for i := 1 to n
        for j := 1 to m do
        begin
            if i = j then
            begin
                position := GetMaxStr(Massiv, m, i);
                temp := Massiv[i,j];
                Massiv[i, j] := Massiv[i, position];
                Massiv[i, position] := temp;
            end; 
        end;
Mess with the best, die like the rest. (с) Hackers
Лабораторные, курсовые на Delphi\Pascal\C++
ya.flex-freelance@yandex.ru Icq - 636-954-303
Hacker19_90 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Двумерная матрица. Решение Через Процедуры и функции. poseidonLOST Паскаль, Turbo Pascal, PascalABC.NET 1 16.12.2010 21:19
Решение примера через функцию InputBox и компонент Label Xenta Microsoft Office Excel 1 19.11.2010 15:58
Си/Си++ Двумерная матрица, каждый её элемент разделить на диагональный, стоящий в том же столбце. Маришка_Курносова Помощь студентам 2 01.07.2010 21:06