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

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

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

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

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

Закрытая тема
Ваша тема закрыта, почему это могло произойти? Возможно,
Нет наработок или кода, если нужно готовое решение - создайте тему в разделе Фриланс и оплатите работу.
Название темы включает слова - "Помогите", "Нужна помощь", "Срочно", "Пожалуйста".
Название темы слишком короткое или не отражает сути вашего вопроса.
Тема исчерпала себя, помните, один вопрос - одна тема
Прочитайте правила и заново правильно создайте тему.
 
Опции темы Поиск в этой теме
Старый 13.10.2008, 23:21   #1
GaJIbI4
Пользователь
 
Регистрация: 03.10.2008
Сообщений: 77
Сообщение матрица в паскале

В паскале не шарю собстно, поэтому помощи прошу у вас . Составьте пожалуйста след. программу в паскале: дана целочисленная матрица размера m на n Найти матрицу получающуюся перестановкой столбцов (первого с последним, второго с предпоследним), если можно то сделайте чтобы матрица заполнялась рандомом.
GaJIbI4 вне форума
Старый 13.10.2008, 23:29   #2
Lemo
Форумчанин
 
Аватар для Lemo
 
Регистрация: 13.10.2008
Сообщений: 714
Радость

Программа, которая ищет минимал и максимал значение, заполняеться рендомом, что то похоже с твоей есть только немного переделать(тойсть дописать); Программа написана в делфи!
Код:

Код:
program LoL;
   {$APPTYPE CONSOLE}
uses SysUtils, math;
const m=5; n=3;
var MAS: array[1..m, 1..n] of byte;
    min,max: byte;
    i,j: integer;
    L: real;
begin
 randomize;
 for i:=1 to m do begin
  for j:= 1 to n do begin
   MAS[i,j]:= random(10);
   write(MAS[i,j]:2,' ');
  end;
  writeln;
 end;
 writeln('- - - - -');

 min:=1; max:=1;
 for i:=1 to m do
  for j:=1 to n do begin
   if MAS[i,j]<min then min:=MAS[i,j];
   if MAS[i,j]>max then max:=MAS[i,j];
  end;
 L:=(min+max)/2;
 writeln('L = ',L:4:2);
 writeln('min = ',min);
 writeln('max = ',max);
 readln;
end.

Последний раз редактировалось Stilet; 02.06.2010 в 10:06.
Lemo вне форума
Старый 13.10.2008, 23:48   #3
AVer
Андрей
Форумчанин
 
Аватар для AVer
 
Регистрация: 21.11.2006
Сообщений: 457
По умолчанию

Код:
Const M=10, N=10;
Var A:Array[1..M,1..N] of Integer;
      B:Array[1..N] of Integer;
      I,J:Integer;

Procedure BIn(X:Integer);
Var I:Integer;
Begin
For I:=1 To N Do
B[I]:=A[X,I];
End;

Procedure BOut(X:Integer);
Var I:Integer;
Begin
For I:=1 To N Do
A[X,I]:=B[I];
End;

Begin
For I:=1 To M Do
For J:=1 To N Do
A[M,J]:=Random(100);

For I:=1 To (M div 2) Do
 Begin
 BIn(I);
 For J:=1 TO N Do
 A[I,J]:=A[M-I+1,J];
 BOut(M-I+1);
 End;
End;
Примерно так. Писал вслепую - за ошибки не ручаюсь.
ICQ: 5311314
[SIGPIC][/SIGPIC]
AVer вне форума
Старый 15.10.2008, 11:43   #4
GaJIbI4
Пользователь
 
Регистрация: 03.10.2008
Сообщений: 77
По умолчанию

а без процедур нельзя обойтись??, прост если я преподу покажу такое решение он меня вопросами завалит ещё и по процедурам)
GaJIbI4 вне форума
Старый 15.10.2008, 15:27   #5
AVer
Андрей
Форумчанин
 
Аватар для AVer
 
Регистрация: 21.11.2006
Сообщений: 457
По умолчанию

Код:
Const M=10, N=10;
Var A:Array[1..M,1..N] of Integer;
      B:Array[1..N] of Integer;
      I,J:Integer;

Begin
For I:=1 To M Do
For J:=1 To N Do
A[M,J]:=Random(100);

For I:=1 To (M div 2) Do
 Begin
 For J:=1 To N Do
  Begin
  B[J]:=A[I,J];
  A[I,J]:=A[M-I+1,J];
  A[I,J]:=B[J];
  End;
 End;
End;
ICQ: 5311314
[SIGPIC][/SIGPIC]
AVer вне форума
Старый 15.10.2008, 21:58   #6
GaJIbI4
Пользователь
 
Регистрация: 03.10.2008
Сообщений: 77
По умолчанию

Вот прога в нее ток добавить перестановку столбцов первого с последним, второго с предпоследним

Код:
const
m=4;
n=4;
var
a:array[1..m,1..n] of intege
i,j:integer;
begin
for i:=1 to m do
begin
for j:=1 to n do
begin
a[i,j]:=random(20);
write(a[i,j]:6);
end;
writeln;
end;
end.

Последний раз редактировалось Stilet; 02.06.2010 в 10:06.
GaJIbI4 вне форума
Старый 16.10.2008, 15:09   #7
AVer
Андрей
Форумчанин
 
Аватар для AVer
 
Регистрация: 21.11.2006
Сообщений: 457
По умолчанию

Код:
Const
m=4;
n=4;
var
a:array[1..m,1..n] of intege
i,j:integer;
begin
for i:=1 to m do
begin
for j:=1 to n do
begin
a[i,j]:=random(20);
write(a[i,j]:6);
end;
writeln;
end;

For I:=1 To (M div 2) Do
 Begin
 For J:=1 To N Do
  Begin
  B[J]:=A[I,J];
  A[I,J]:=A[M-I+1,J];
  A[I,J]:=B[J];
  End;
 End;

for i:=1 to m do
begin
for j:=1 to n do
write(a[i,j]:6);
writeln;
end;

end.
Примерно так.
ICQ: 5311314
[SIGPIC][/SIGPIC]
AVer вне форума
Старый 16.10.2008, 20:19   #8
GaJIbI4
Пользователь
 
Регистрация: 03.10.2008
Сообщений: 77
По умолчанию

извини может я достал, но столбцы местами не меняются

Спасибо большое Aver я чуть доработал и всё пошло
вот полностью готовый вариант решения моей задачи(найти матрицу получающуюся перестановкой столбцов первого с последним, второго с предпоследним) мож кому пригодиться:

Код:
Const
m=4;
n=4;
var
A:array[1..M,1..N] of integer;
B:Array[1..N] of Integer;
i,j:integer;
begin
for j:=1 to m do
begin
for i:=1 to n do
begin
a[i,j]:=random(17);
end;
end;
For j:=1 To (M div 2) Do
Begin
For i:=1 To N Do
Begin
B[J]:=A[I,J];
A[I,J]:=A[M-I+1,J];
A[I,J]:=B[J];
End;
End;
for j:=1 to m do
begin
for i:=1 to n do
write(a[m-i+1,j]:4);
writeln;
end;
end.

Последний раз редактировалось Stilet; 02.06.2010 в 10:06.
GaJIbI4 вне форума
Старый 19.10.2008, 01:33   #9
Aleo13
Пользователь
 
Регистрация: 01.10.2008
Сообщений: 14
По умолчанию

А как сделать так, что-бы элементы вводить вручную?
Aleo13 вне форума
Старый 19.10.2008, 09:32   #10
puporev
Старожил
 
Регистрация: 13.10.2007
Сообщений: 2,740
По умолчанию

Код:
uses crt;
var a:array[1..20,1..20]of integer;
    n,m,i,j:integer;
begin
clrscr;
write('Kol-vo strok= ');readln(n);
write('Kol-vo stolbcov= ');readln(m);
writeln('Vvedite ',n*m,' elem matricy:');
for i:=1 to n do
for j:=1 to m do
read(a[i,j]); //вводить можно хоть в строку через пробел, хоть столбиком, но лучше так, как матрица будет выглядеть,
readln;        // т.е. вводим строку через пробел, нажимаем Enter, вводим очередную строку
clrscr; //очищаем экран
Writeln('Matrica:'); //выводим матрицу таблицей
for i:=1 to n do
    begin
      for j:=1 to m do
      write(a[i,j]:3);
      writeln;
    end;
readln
end.
puporev вне форума
Закрытая тема


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
задача на паскале - Матрица,2-х мерный массив vdv08 Помощь студентам 15 22.09.2008 14:48
задача на паскале - Матрица,2-х мерный массив vdv08 Помощь студентам 1 14.09.2008 12:45
МАТРИЦА В ПАСКАЛЕ евгения, Помощь студентам 4 31.05.2007 19:32