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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 06.12.2010, 17:37   #1
Venesia
Новичок
Джуниор
 
Регистрация: 06.12.2010
Сообщений: 6
Сообщение нужно доделать программу на паскале(двумерный массив)

Текст задачи:в двумерном массиве последний отрицательный элемент каждого столбца заменить нулем.
Начало есть:
Код:
program prim_1;
uses crt;
var i,j:integer;{может надо еще переменную ввести?}
a:array [1..3,1..4] of integer;
begin
clrscr;
randomize;
for i:= 1 to 3 do
for j:= 1 to 4 do
a[i,j]:=random(100)-50;
for i:= 1 to 3 do
begin
fot j:=  to 4 do
write(a[i,j]:4);
writeln;
end;
end.
а вот дальше что делать?прошу помочь))))

Последний раз редактировалось alex_fcsm; 06.12.2010 в 17:44.
Venesia вне форума Ответить с цитированием
Старый 06.12.2010, 17:46   #2
alex_fcsm
Участник клуба
 
Аватар для alex_fcsm
 
Регистрация: 10.11.2008
Сообщений: 1,502
По умолчанию

Проходите по каждому столбцу и запоминайте очередной отрицательный элемент, после прохода
Код:
Matr[i,NumOtr]:=0;
Нормальное состояние техники - нерабочее, все остальное частный случай.
alex_fcsm вне форума Ответить с цитированием
Старый 06.12.2010, 17:48   #3
Venesia
Новичок
Джуниор
 
Регистрация: 06.12.2010
Сообщений: 6
По умолчанию

оууу,это как-то сложно,мы такого в школе не делали.если можно попроще и поподробнее.*пожалуйста*
Venesia вне форума Ответить с цитированием
Старый 06.12.2010, 17:51   #4
alex_fcsm
Участник клуба
 
Аватар для alex_fcsm
 
Регистрация: 10.11.2008
Сообщений: 1,502
По умолчанию

Код:
for i:=1 to m do
 begin
 NumOtr:=0;
  for j:=1 to n do
   if a[i,j]<0 then NumOtr:=j;
 if NumOtr<>0 then a[i,NumOtr]:=0;
 end;
Вместо m и n поставь свои данные
Нормальное состояние техники - нерабочее, все остальное частный случай.
alex_fcsm вне форума Ответить с цитированием
Старый 06.12.2010, 17:59   #5
Venesia
Новичок
Джуниор
 
Регистрация: 06.12.2010
Сообщений: 6
По умолчанию

простите за наглость))))но еще можно вопросик? а в строчке writeln,котрая в самом конце будет что именно надо писать? и NumOtr надо в Var описывать?

о великий модератор!прошу разъяснить мне эту маленькую детальку))))

Последний раз редактировалось alex_fcsm; 06.12.2010 в 18:08.
Venesia вне форума Ответить с цитированием
Старый 06.12.2010, 18:10   #6
alex_fcsm
Участник клуба
 
Аватар для alex_fcsm
 
Регистрация: 10.11.2008
Сообщений: 1,502
По умолчанию

Цитата:
Сообщение от Venesia Посмотреть сообщение
простите за наглость))))но еще можно вопросик? а в строчке writeln,котрая в самом конце будет что именно надо писать? и NumOtr надо в Var описывать?

о великий модератор!прошу разъяснить мне эту маленькую детальку))))
Описание переменных я предоставил вам. Вместо последнего writeln сделайте вывод "новой" матрицы.
Нормальное состояние техники - нерабочее, все остальное частный случай.
alex_fcsm вне форума Ответить с цитированием
Старый 06.12.2010, 18:15   #7
Venesia
Новичок
Джуниор
 
Регистрация: 06.12.2010
Сообщений: 6
По умолчанию

вот именно это меня и интересует,проще говоря как это сделать?*я в курсе что уже порядком достала*^_^ не обессудьте)))
Venesia вне форума Ответить с цитированием
Старый 06.12.2010, 18:19   #8
alex_fcsm
Участник клуба
 
Аватар для alex_fcsm
 
Регистрация: 10.11.2008
Сообщений: 1,502
По умолчанию

Код:
const m=4;n=5;
var a:array[1..m,1..n] of integer;
i,j,NumOtr:integer;

begin
randomize;
for i:=1 to m do
 begin
 for j:=1 to n do
  begin
   a[i,j]:=random(10)-random(10);
   write(a[i,j]:3)
  end;
 writeln;
 end;
 writeln('--------------------');
for j:=1 to n do
 begin
 NumOtr:=0;
  for i:=1 to m do
   if a[i,j]<0 then NumOtr:=i;
 if NumOtr<>0 then a[NumOtr,j]:=0;
 end;
for i:=1 to m do
 begin
 for j:=1 to n do
   write(a[i,j]:3);
 writeln;
 end;


end.
Нормальное состояние техники - нерабочее, все остальное частный случай.

Последний раз редактировалось alex_fcsm; 06.12.2010 в 18:23.
alex_fcsm вне форума Ответить с цитированием
Старый 06.12.2010, 18:24   #9
unbanned
Форумчанин
 
Аватар для unbanned
 
Регистрация: 23.11.2010
Сообщений: 530
По умолчанию

если всё по заданию, то можно проще...
Код:
program prim_1;

uses
  crt;

var
  i, j: integer;
  a: array [1..3, 1..4] of integer;

begin
  clrscr;
  randomize;
  for i := 1 to 3 do
    for j := 1 to 4 do
      a[i, j] := random(100) - 50;
  for j := 1 to 4 do  // перебор по стобцам
    if a[3, i] < 0 then a[i, 4] := 0; // 3й(последний) элемент каждого столбца если меньше нуля, то заменитть нулем
  for i := 1 to 3 do
  begin
    for j := 1  to 4 do
      write(a[i, j]:4);
    writeln;
  end;
end.

Последний раз редактировалось unbanned; 06.12.2010 в 18:27.
unbanned вне форума Ответить с цитированием
Старый 06.12.2010, 18:26   #10
alex_fcsm
Участник клуба
 
Аватар для alex_fcsm
 
Регистрация: 10.11.2008
Сообщений: 1,502
По умолчанию

Цитата:
Сообщение от unbanned Посмотреть сообщение
Код:
program prim_1;
....
Нужно искать последний отрицательный элемент, который в общем случае необязательно является последним в столбце
Нормальное состояние техники - нерабочее, все остальное частный случай.
alex_fcsm вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
нужно доделать. на паскале ddeman666 Помощь студентам 1 14.06.2010 18:08
Нужно Доделать программу, завтра сдавать!( 13-th Общие вопросы C/C++ 2 11.06.2010 16:55
Помогите доделать программу на delphi - нужно сделать отчеты в Excel. Yoha Помощь студентам 0 15.06.2009 23:15
двумерный массив помогите доделать maximp1981 Общие вопросы C/C++ 1 04.12.2008 13:44