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

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

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

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 20.04.2011, 16:54   #1
dark999
Пользователь
 
Аватар для dark999
 
Регистрация: 17.03.2011
Сообщений: 42
По умолчанию Мне нужно чтобы вы помогли найти ошибки или недочеты

Дан двумерный массив размером 5 х 6, заполненный случайным образом.

- Заменить максимальный элемент каждой строки на противоположный;
- Вставить после столбцов с максимальными элементами столбец и нулей;
- Удалить среднюю строку;
- Поменять местами средние столбцы

___________________________________ _____


Код:
Program ild;
uses crt;
const
  n=5;
  m=6;
var
  a,b,c,d,i:integer;
  z:array[1..n,1..(m+1)]of integer;
begin
  c:=1;
  d:=1;
  randomize;
  for a:=1 to n do
    begin
      for b:=1 to m do
        begin
          z[a,b]:=random(50);
          write(z[a,b]:4);
          if z[a,b]>z[c,d] then
            begin
              c:=a;
              d:=b;
            end;
        end;
      writeln;
    end;
for a:=1 to n do
begin
i:=1;
for b:=1 to m do
if z[a,b]>z[a,i] then i:=b;
z[a,i]:=- z[a,i];
end;
  writeln(chr(13),chr(10),'I:',chr(13),chr(10),'maximum z[',c,',',d,']:=',z[c,d],chr(13),chr(10));
  for a:=1 to n do
    begin
      for b:=m+1 downto d+1 do
        z[a,b]:=z[a,b-1];
      z[a,d+1]:=0;
    end;
  for a:=1 to n do
    begin
      for b:=1 to m+1 do
        write(z[a,b]:4);
      writeln;
    end;
  readln;
  writeln(chr(13),chr(10),'II:',chr(13),chr(10));
end;
readkey;
for a:= 1 to n-1 do
x[a]:= z[a,m div 2];
for a:= 1 to n-1 do
z[a,m div 2]:= z[a,m div 2 +1];
for a:= 1 to n-1 do
z[a,m div 2 + 1]:= x[a];
end;
  for a:=((n div 2)+(n mod 2)) to n-1 do
    for b:=1 to m do
      z[a,b]:=z[a+1,b];
  for a:=1 to n-1 do
    begin
      for b:=1 to m do
        write(z[a,b]:4);
      writeln;
    end;
  readln;
  end.

Мне нужно чтобы вы помогли найти ошибки или недочеты, исправили этот код. Желательно полным кодом. Сам код программы ниже)
dark999 вне форума Ответить с цитированием
Старый 20.04.2011, 17:29   #2
dark999
Пользователь
 
Аватар для dark999
 
Регистрация: 17.03.2011
Сообщений: 42
По умолчанию

Да Это ж вроде не трудно, я не прошу написать код программы, а лишь найти ошибки)
dark999 вне форума Ответить с цитированием
Старый 20.04.2011, 17:32   #3
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

Не трудно вам, ибо вы писали этот код. А разбираться в простыне без коментариев с переменными a, b, c, d, x, z, n, m не каждый захочет)
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Старый 20.04.2011, 17:35   #4
dark999
Пользователь
 
Аватар для dark999
 
Регистрация: 17.03.2011
Сообщений: 42
По умолчанию

Цитата:
Сообщение от Alex11223 Посмотреть сообщение
Не трудно вам, ибо вы писали этот код. А разбираться в простыне без коментариев с переменными a, b, c, d, x, z, n, m не каждый захочет)
Ну да так и есть, я просто уже не соображаю, голова кругом идет от этих задач, поэтому прошу помощи)
dark999 вне форума Ответить с цитированием
Старый 20.04.2011, 17:45   #5
MyLastHit
Очень суровый
Участник клуба
 
Аватар для MyLastHit
 
Регистрация: 17.12.2009
Сообщений: 1,988
По умолчанию

Первый осмотр выявил:
Код:
Program ild;
uses crt;
const
  n=5;
  m=6;
var
  a,b,c,d,i:integer;
  z:array[1..n,1..(m+1)]of integer;
begin
  c:=1;
  d:=1;
  randomize;
  for a:=1 to n do
    begin
      for b:=1 to m do
        begin
          z[a,b]:=random(50);
          write(z[a,b]:4);
          if z[a,b]>z[c,d] then
            begin
              c:=a;
              d:=b;
            end;
        end;
      writeln;
    end;
for a:=1 to n do
begin
i:=1;
for b:=1 to m do
if z[a,b]>z[a,i] then i:=b;
z[a,i]:=- z[a,i];
end;
  writeln(chr(13),chr(10),'I:',chr(13),chr(10),'maximum z[',c,',',d,']:=',z[c,d],chr(13),chr(10));
  for a:=1 to n do
    begin
      for b:=m+1 downto d+1 do
        z[a,b]:=z[a,b-1];
      z[a,d+1]:=0;
    end;
  for a:=1 to n do
    begin
      for b:=1 to m+1 do
        write(z[a,b]:4);
      writeln;
    end;
  readln;
  writeln(chr(13),chr(10),'II:',chr(13),chr(10));
end; // откуда здесь end?
readkey;
for a:= 1 to n-1 do
x[a]:= z[a,m div 2];//не вижу где объявлялась X
for a:= 1 to n-1 do
z[a,m div 2]:= z[a,m div 2 +1];
for a:= 1 to n-1 do
z[a,m div 2 + 1]:= x[a];//аналогично
end; //а здесь end зачем?
  for a:=((n div 2)+(n mod 2)) to n-1 do
    for b:=1 to m do
      z[a,b]:=z[a+1,b];
  for a:=1 to n-1 do
    begin
      for b:=1 to m do
        write(z[a,b]:4);
      writeln; // не вижу смысла в этой строчке. ее нужно после end поставить
    end;
  readln;
  end.
Ненавижу быть как все, но люблю, чтобы все были как я.

Последний раз редактировалось MyLastHit; 20.04.2011 в 17:50.
MyLastHit вне форума Ответить с цитированием
Старый 20.04.2011, 17:55   #6
dark999
Пользователь
 
Аватар для dark999
 
Регистрация: 17.03.2011
Сообщений: 42
По умолчанию

А можешь ошибки исправить если тебе не трудно?)
dark999 вне форума Ответить с цитированием
Старый 20.04.2011, 18:27   #7
dark999
Пользователь
 
Аватар для dark999
 
Регистрация: 17.03.2011
Сообщений: 42
По умолчанию

Ну очень прошу!!!
dark999 вне форума Ответить с цитированием
Старый 20.04.2011, 18:31   #8
MyLastHit
Очень суровый
Участник клуба
 
Аватар для MyLastHit
 
Регистрация: 17.12.2009
Сообщений: 1,988
По умолчанию

Цитата:
А можешь ошибки исправить если тебе не трудно?)
Трудно... Это же твой код, я его все-равно не пойму, что и как он делает. Тебе проще. Отдохни и с чистой головой посмотри на него.
Но без тех что я нашел ошибок, вот как то так:
Код:
program ild;
uses crt;
const
  n = 5;
  m = 6;
var
  a, b, c, d, i: integer;
  z: array[1..n, 1..(m + 1)] of integer;
  x: array[1..n-1] of integer;
begin
  c := 1;
  d := 1;
  randomize;
  for a := 1 to n do
  begin
    for b := 1 to m do
    begin
      z[a, b] := random(50);
      write(z[a, b]: 4);
      if z[a, b] > z[c, d] then
      begin
        c := a;
        d := b;
      end;
    end;
    writeln;
  end;
  for a := 1 to n do
  begin
    i := 1;
    for b := 1 to m do
      if z[a, b] > z[a, i] then i := b;
    z[a, i] := -z[a, i];
  end;
  writeln(chr(13), chr(10), 'I:', chr(13), chr(10), 'maximum z[', c, ',', d, ']:=', z[c, d], chr(13), chr(10));
  for a := 1 to n do
  begin
    for b := m + 1 downto d + 1 do
      z[a, b] := z[a, b - 1];
    z[a, d + 1] := 0;
  end;
  for a := 1 to n do
  begin
    for b := 1 to m + 1 do
      write(z[a, b]: 4);
    writeln;
  end;
  readln;
  writeln(chr(13), chr(10), 'II:', chr(13), chr(10));
readkey;
for a := 1 to n - 1 do
  x[a] := z[a, m div 2];
for a := 1 to n - 1 do
  z[a, m div 2] := z[a, m div 2 + 1];
for a := 1 to n - 1 do
  z[a, m div 2 + 1] := x[a];
for a := ((n div 2) + (n mod 2)) to n - 1 do
  for b := 1 to m do
    z[a, b] := z[a + 1, b];
for a := 1 to n - 1 do
begin
  for b := 1 to m do
  write(z[a, b]: 4);
  writeln;
end;
readln;
end.
Ненавижу быть как все, но люблю, чтобы все были как я.
MyLastHit вне форума Ответить с цитированием
Старый 20.04.2011, 19:31   #9
dark999
Пользователь
 
Аватар для dark999
 
Регистрация: 17.03.2011
Сообщений: 42
По умолчанию

- Вставить после столбцов с максимальными элементами столбец и нулей;
- Удалить среднюю строку;

Работают только эти)

- Заменить максимальный элемент каждой строки на противоположный;
- Поменять местами средние столбцы

Мне бы чтобы вот эти еще заработали!

Спасибо тебе
dark999 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Нужно найти ошибки в решении СЛАУ методом Гаусса Беллая Помощь студентам 4 17.09.2010 14:25
Нужно найти ошибку или написать алгоритм по проще! (строки) velamut Помощь студентам 3 18.06.2010 16:09
строки, найти ошибки нужно=) Dareami Общие вопросы C/C++ 7 20.04.2010 00:49
Нужно найти или написать прогу, на подобие WPE Pro ZBEP Фриланс 4 22.03.2010 17:03