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

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

Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 11.04.2012, 17:22   #1
alone_hedgehog
Новичок
Джуниор
 
Регистрация: 11.04.2012
Сообщений: 1
Восклицание Поменять две строки в матрице

Помогите пожалуйста исправить ошибки в программе. Нужно поменять местами i-тую и j-тую строки. Нужно через процедуры и хотя бы одну функцию.

Program lab_2;
const maxX=20;
const maxY=20;
type
m=array [1..maxX,1..maxY] of integer;
var mas:m;
razm:integer;
str1:integer;
str2:integer;
{-------------------------------------------------------------}
{Функция ввода размерности матрицы}
function Vvod_razm(var f_razm:integer);
var s:string;
code:integer;
begin
repeat
writeln('Введите размерность матрицы n,m=');
readln(s);
val(s,f_razm,code);
if (code<>0) then
writeln('Ошибка!Повторите ввод');
until code=0;
Vvod_razm:=f_razm;
end;
{-------------------------------------------------------------}
{Функция ввода номера первой строки для замены}
function Vvod_1_stroki(f_str1:integer):integ er;
var s:string;
code:integer;
begin
repeat
writeln('Введите номер 1 строки' );
readln(s);
val(s,f_str1,code);
if (code<>0) then
writeln('Ошибка!Повторите ввод');
until code=0;
Vvod_1_stroki:=f_str1;
end;
{-------------------------------------------------------------}
{Функция ввода второй строки для замены}
function Vvod_2_stroki(f_str2:integer):integ er;
var s:string;
code:integer;
begin
repeat
writeln('Введите номер 2 строки' );
readln(s);
val(s,f_str2,code);
if (code<>0) then
writeln('Ошибка!Повторите ввод');
until code=0;
Vvod_2_stroki:=f_str2;
end;
{-------------------------------------------------------------}
{Функция ввода матрицы}
Procedure Vvod_matrix(f_mas:m;f_razm:integer) ;
var i,j:integer;
begin
writeln('Введите значение матрициы');
for i:=1 to f_razm do
begin
for j:=1 to f_razm do
begin
writeln('элемент',' ',i,' ',j);
readln(f_mas[i,j]);
end;
end;
end;
{-------------------------------------------------------------}
{Процедура вывода матрицы}
Procedure OutputMatrix(n:integer; const f_mas:m;f_razm:integer);
var i,j:integer;
begin
writeln('Введённая матрица:' );
for i:=1 to f_razm do
begin
for j:=1 to f_razm do
begin
write(f_mas[i,j],' ');
end;
writeln;
end;
end;
{-------------------------------------------------------------}
{Функция перестановки двух строк}
Procedure Perestanovka(f_razm:integer; var f_mas:m;f_str1,f_str2:integer);
var i,tmp:integer;
begin
for i:=1 to f_razm do
begin
tmp:=f_mas[f_str1,i];
f_mas[f_str1,i]:=f_mas[f_str2,i];
f_mas[f_str2,i]:=tmp;
end;
end;
{-------------------------------------------------------------}
{Процедура вывода полученной матрицы}
procedure Vyvod ( const f_mas:m;f_razm:integer);
var i,j:integer;
begin
writeln('Результат' );
for i:=1 to f_razm do
begin
for j:=1 to f_razm do
begin
write(f_mas[i,j],' ');
end;
writeln;
end;
end;
{-------------------------------------------------------------}
{Главная программа}
begin
razm:=Vvod_razm();
Vvod_matrix(mas,razm);
str1:=Vvod_1_stroki;
str2:=Vvod_2_stroki;
Perestanovka(razm,mas,str1,str2);
Vyvod(mas,razm);
end.
alone_hedgehog вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
В целочисленной квадратной матрице наибольший элемент каждой строки поменять местами с элементом главной диагонали DesignGenius C# (си шарп) 0 18.10.2011 20:22
В действительной матрице n*n поменять местами строку с MAX со строкой содержащей MIN элемент drnokaut Помощь студентам 1 06.06.2011 08:53
В матрице А поменять местами две строки с заданными номерами dimegusew Помощь студентам 0 11.05.2011 20:02
Задача на СИ в заданной матрице поменять местами первую строку и первый столбец %( defol-777 Помощь студентам 2 14.01.2009 09:59