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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 09.04.2008, 19:57   #1
Ильдар ХАЛИКОВ
 
Регистрация: 06.04.2008
Сообщений: 9
По умолчанию Дана матрица размера M*N.Зеркально отразить ее элементы

помогите написать программу!
Дана матрица размера M*N.Зеркально отразить ее элементы относительно горизонтальной оси симметрии матрицы (при этом поменяются местами строки с номерами 1 и M, 2 и M- 1 и т.д.)НЕ следуют использовать вспомогательные двумерные массивы-матрицы.Для отладки программы исходную матрицу сформировать с помошью генератора случайных чисел.
Спасибо за помощь!
по ссылке http://www.programmersforum.ru/showt...9251#post89251 там помоему что то не так.помогите
Ильдар ХАЛИКОВ вне форума Ответить с цитированием
Старый 09.04.2008, 20:12   #2
Карась
Участник клуба
 
Аватар для Карась
 
Регистрация: 26.10.2007
Сообщений: 1,244
По умолчанию

А что там не так?
Код puporev'a на мой взгляд самый удачный. Из предложеных.
Умом Россию не понять, пока не выпито ноль пять,
А если выпито ноль пять всё делом кажется не хитрым,
Попытка глубже понимать уже попахивает литром...
Карась вне форума Ответить с цитированием
Старый 09.04.2008, 20:21   #3
Ильдар ХАЛИКОВ
 
Регистрация: 06.04.2008
Сообщений: 9
По умолчанию

программа имеет вид:

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


и всё да?дело в том что я вообще не понимаю в Pascal
Ильдар ХАЛИКОВ вне форума Ответить с цитированием
Старый 09.04.2008, 21:03   #4
Карась
Участник клуба
 
Аватар для Карась
 
Регистрация: 26.10.2007
Сообщений: 1,244
По умолчанию

Нет, это не вся программа.
Для того чтоб эта программа была готова, нужно дописать раздел переменных, заполнить массив, обработать его (код puporev'a) и вывести на экран.

Вы разбирались с примером который я дал неделю, наверное, назад?
Вот он (если вдруг забыли)

Вот например, вместо куска кода который я прокамертировал как "// Обнуляем всё что ниже гл. диагонали" нужно вставить немного изменённый код puporev'a (кстати вы не забыли поставить ему плюсик?)

Ну так вообщем нужно заменить только буквы которые отвечают за:
1. Строки и столбцы.
2. За размерность. (По умолчанию в моём коде квадратный массив 10х10)
3. И имя массива.

Если вы не будете разбирать и не поймёте эти наипростейшии программы, то Паскаль будет непонятным всегда. Купите/скачайте любую книгу по паскалю. Одной недели чтения хватит, чтоб научиться самостоятельнно писать эти программы.

ЗЫ: Щас модераторы будут стучать по голове за:
1. Две одинаковых темы в одном разделе.
2. Название темы.
3. За много постов-апов (пользуйтесь кнопкой изменить)
4. Ну и пользуйте тег КОД, для публикация кодов.
Умом Россию не понять, пока не выпито ноль пять,
А если выпито ноль пять всё делом кажется не хитрым,
Попытка глубже понимать уже попахивает литром...
Карась вне форума Ответить с цитированием
Старый 09.04.2008, 21:41   #5
Ильдар ХАЛИКОВ
 
Регистрация: 06.04.2008
Сообщений: 9
По умолчанию

исправьте пожалуйста!сделайте как надо!

var x,y,n:Byte;
M:array [1..10,1..10] of Byte;
begin
Randomize;
for x:=1 To 10 Do
For y:=1 To 10 Do
M[x,y]:=Random(5)+1;
for x:=m downto 1 do
begin
for y:=1 to n do
begin
write(n[x,y]:3);
end;
writeln;
End;
For x:=1 To 10 Do
begin
For y:=1 To 10 Do
Write(M[x,y],'');
writeln;
End;
Readln;
end.
Ильдар ХАЛИКОВ вне форума Ответить с цитированием
Старый 09.04.2008, 21:55   #6
Карась
Участник клуба
 
Аватар для Карась
 
Регистрация: 26.10.2007
Сообщений: 1,244
По умолчанию

Уже лучше.


Var x, y, n : Byte; // Переменная n ненужна уже.
M : array [1..10,1..10] of Byte;
begin
Randomize;
for x:=1 To 10 Do
For y:=1 To 10 Do
M[x,y]:=Random(5)+1;

for x := m downto 1 do // У нас размерность 10.
begin
for y:=1 to n do //У нас размерность 10.
begin
// Сдесь мы обращаемся к массиву M.......Write (M[x,y]);....
// Цифру три (после двоеточия) надо убрать ибо у нас тип Byte;

write(n[x,y]:3);
end;
writeln;
End;
For x:=1 To 10 Do
begin
For y:=1 To 10 Do
Write(M[x,y],'');
writeln;
End;
Readln;
end.
Умом Россию не понять, пока не выпито ноль пять,
А если выпито ноль пять всё делом кажется не хитрым,
Попытка глубже понимать уже попахивает литром...
Карась вне форума Ответить с цитированием
Старый 09.04.2008, 22:22   #7
Карась
Участник клуба
 
Аватар для Карась
 
Регистрация: 26.10.2007
Сообщений: 1,244
По умолчанию

До пятницы есть ещё один день. Его с головой хватит чтоб чтото подучить...
Но судя по всему ты не излечим...

Код:
Var x, y : Byte;
      M : array [1..10,1..10] of Byte;

Begin

Randomize;
For x := 1 To 10 Do
  For y := 1 To 10 Do
    M[x,y]:= Random(5) + 1;

Writeln('Isxodnay matrica:');
For x := 10 downto 1 do
  Begin
    For y := 1 To 10 Do
      Write(M[x,y],' ');
    Writeln;
  End;

Writeln; Writeln; Writeln('Kone4nay matrica:');
For x := 1 To 10 Do
  Begin
    For y := 1 To 10 Do
      Write(M[x,y],' ');
    Writeln;
  End;

Readln;

end.
Умом Россию не понять, пока не выпито ноль пять,
А если выпито ноль пять всё делом кажется не хитрым,
Попытка глубже понимать уже попахивает литром...
Карась вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Дана задача---> Programmistka6 Общие вопросы Delphi 6 24.05.2008 17:31
Нарисовать,стереть,повернуть,отразить в паскале! Барби Помощь студентам 2 23.04.2008 00:24
Дана точка A с координ. X и Y, определить... Cullen Паскаль, Turbo Pascal, PascalABC.NET 5 30.01.2008 00:22
Как быстро переверннуть(отразить) изображение? Paul Hindenburg Мультимедиа в Delphi 2 10.01.2008 12:51
Дана целочисленная квадратная матрица... kitty Помощь студентам 1 05.12.2007 07:40