Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

RFpro.ru: Программирование на языке Pascal


Хостинг портала RFpro.ru:
Московский хостер
Профессиональный ХОСТИНГ на базе Linux x64 и Windows x64

РАССЫЛКИ ПОРТАЛА RFPRO.RU

Лучшие эксперты по данной тематике

Асмик Гаряка
Статус: Академик
Рейтинг: 8915
∙ повысить рейтинг »
Орловский Дмитрий
Статус: Советник
Рейтинг: 6967
∙ повысить рейтинг »
lamed
Статус: Академик
Рейтинг: 5704
∙ повысить рейтинг »

/ КОМПЬЮТЕРЫ И СОФТ / Программирование / Pascal (Паскаль)

Номер выпуска:1225
Дата выхода:10.01.2012, 10:30
Администратор рассылки:Boriss (Академик)
Подписчиков / экспертов:134 / 143
Вопросов / ответов:1 / 2

Консультация # 185072: Уважаемые эксперты! Пожалуйста, ответьте на вопрос: Нужно написать программу в Turbo Pascal, желательно с комментариями. В матрице Z(5,6) первый отрицательный элемент каждого столбца заменить суммой следующих за ним значений. Отрицательные элементы до замены вывести в массив. ...


Консультация # 185072:

Уважаемые эксперты! Пожалуйста, ответьте на вопрос:
Нужно написать программу в Turbo Pascal, желательно с комментариями.

В матрице Z(5,6) первый отрицательный элемент каждого
столбца заменить суммой следующих за ним значений. Отрицательные
элементы до замены вывести в массив.

Дата отправки: 06.01.2012, 12:46
Вопрос задал: xDefx (Посетитель)
Всего ответов: 2
Страница онлайн-консультации »


Консультирует Роман Селиверстов (Советник):

Здравствуйте, xDefx!

Код :
program negative;
var i,j,k,n: integer;
      z: array[1..5,1..6] of integer;
      m: array[1..6] of integer;
begin 
  for i:=1 to 5 for j:=1 to 6 do read(z[i,j]); {Вводим элементы матрицы}
  k:=1; {активируем номер элемента массива для первого отрицательного числа}
  for j:=1 to 6 do {цикл по столбцах}
  begin
    for i:=1 to 5 do {цикл по строках}
    begin
      if z[i,j]<0 then {в случае нахождения первого отрицательного элемента:}
      begin 
        m[k]:=z[i,j]; {записываем его в массив}
        k:=k+1;{активируем следующий номер элемента массива для следующего отрицательного числа}
        z[i,j]:=0; {обнуляем текущее отрицательное число для замены его на сумму}
        for n:=i+1 to 5 do z[i,j]:=z[i,j]+z[n,j]; {вычисление суммы по строках, начиная со следующей}
          i:=6; {для того, чтобы выйти из цикла по строках, так как надо заменить лишь первое отрицательное число}
      end;
    end;
  end;
end.

Консультировал: Роман Селиверстов (Советник)
Дата отправки: 06.01.2012, 13:09
Рейтинг ответа:

НЕ одобряю 0 одобряю!


Консультирует Юдин Евгений Сергеевич (Студент):

Здравствуйте, xDefx!
вот решение вашей задачи:

Код :
Program p1085072;
const n=5;
      m=6;
var a:array [1..n,1..m] of integer;
    summ,i,j,k:integer;
begin
 {Сделаем ввод вручную}
 for i:=1 to n do
  begin
  for j:=1 to m do
    begin
     write('a[',i,',',j,']=');
     read(a[i,j]);
    end;
   writeln;
  end;
 {поиск по столбцам отрицательных элементов и замена их на сумму предыдущих}
 for i:=1 to m do
  begin
   for j:=1 to n do
    begin
     if a[j,i]<0 then
      begin
      if j<m-1 then {проверяем чтобы отрицательный элемент столбца не был внизу столбца}
       begin
        k:=j+1;
        summ:=0;
        while (k<=n) do
         begin
          summ:=summ+a[k,i];
          k:=k+1;
         end;
        a[j,i]:=summ;
        break;
       end;
      end;
    end;
  end; 
  {вывод}
 for i:=1 to n do
  begin
   for j:=1 to m do
    begin
     write('a[',i,',',j,']=',a[i,j],'; ');
    end;
   writeln;
  end;
end.


все предельно просто и понятно....
Если будут какие вопросы дополнения, то через минифорум все обсудим и доделаем
Удачи! smile smile

Приложение:

Консультировал: Юдин Евгений Сергеевич (Студент)
Дата отправки: 06.01.2012, 13:39
Рейтинг ответа:

НЕ одобряю 0 одобряю!


Оценить выпуск | Задать вопрос экспертам

главная страница  |  стать участником  |  получить консультацию
техническая поддержка  |  восстановить логин/пароль

Дорогой читатель!
Команда портала RFPRO.RU благодарит Вас за то, что Вы пользуетесь нашими услугами. Вы только что прочли очередной выпуск рассылки. Мы старались. Пожалуйста, оцените его. Если совет помог Вам, если Вам понравился ответ, Вы можете поблагодарить автора - для этого в каждом ответе есть специальные ссылки. Вы можете оставить отзыв о работе портале. Нам очень важно знать Ваше мнение. Вы можете поближе познакомиться с жизнью портала, посетив наш форум, почитав журнал, который издают наши эксперты. Если у Вас есть желание помочь людям, поделиться своими знаниями, Вы можете зарегистрироваться экспертом. Заходите - у нас интересно!
МЫ РАБОТАЕМ ДЛЯ ВАС!



В избранное