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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 28.11.2010, 13:58   #1
warma2d
Пользователь
 
Аватар для warma2d
 
Регистрация: 17.12.2008
Сообщений: 50
По умолчанию двумерный массив delphi7

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

Никак не получается решить
Не могу никак разобраться вот с такой задачкой:

Вычислить количество положительных и отрицательных элементов каждой строки матрицы B(nxm) . Записать эту информацию в два вектора: C и D



Код:
  
program Rabota619;

{$APPTYPE CONSOLE}

uses
  SysUtils,
  math;

Var

i,j,m,s,n,h:integer; //rabo4aya peremennaya
x:array [1..10,1..10] of integer; // Massiv 1
c:array[1..10] of integer;
d:array[1..10] of integer;

begin

writeln('V-te kol-vo n <=10');
readln(n);
writeln('V-te kol-vo m <=10');
readln(m);
writeln ('v-te massiv 1 ');
for i:=1 to n do
for j:=1 to m do
readln(x[i,j]);

for i:=1 to n do begin
   if c[i]>0 then
   c[i]:=c[i]+x[i,j];
   write(x[i,j]:5);
  end; writeln;

for i:=1 to n do begin
   if d[i]<0 then
   d[i]:=d[i]+x[i,j];
    end; writeln;


 i:=1;         writeln;
 for i:=1 to n do begin
   write(c[i]);
   write(d[i]);
 end;writeln;

Readln;
end.
Помогите пожалуйста разобраться с этой задачкой
Skype: warma2d
ICQ: 838012
mail warma2d@ya.ru
warma2d вне форума Ответить с цитированием
Старый 28.11.2010, 14:00   #2
RUSt88
Участник клуба
 
Регистрация: 29.12.2009
Сообщений: 1,166
По умолчанию

а что не получается конкретно? в чем ошибки?
прогер C\C++\C#\Delphi
ася: [семь 3]-[97]-[1 шесть]
RUSt88 вне форума Ответить с цитированием
Старый 28.11.2010, 14:56   #3
Niro
Форумчанин
 
Аватар для Niro
 
Регистрация: 23.09.2010
Сообщений: 682
По умолчанию

Эх, и где вы этот код только взяли...
Код:
for i:=1 to n do
  for j:=1 to m do
    begin
      if x[i]<0 then begin
	               k:=k+1;
		       c[k]:=x[i,j];
 		     end;		
      if x[i]>0 then begin
	 	       g:=g+1;
		       d[g]:=x[i,j];
		     end;
writeln('Количетво элементов меньше нуля в каждой строке массива X');
for i:=1 to k do
  write(c[i],' ');
writeln('Количетво элементов больше нуля в каждой строке массива X');
for i:=1 to g do
  write(d[i],' ');
И кстати, ввод лучше сделать рандомный, а то выберешь массив 7*6 и заколебешься вводить 42 элемента
Проще всего признать свою ошибку.
Гораздо труднее еЁ осознать и исправить.
Niro вне форума Ответить с цитированием
Старый 28.11.2010, 21:02   #4
warma2d
Пользователь
 
Аватар для warma2d
 
Регистрация: 17.12.2008
Сообщений: 50
По умолчанию

Niro, огромное спасибо за ответ)

исправил так, но не работает

Код:
program Rabota619;

{$APPTYPE CONSOLE}

uses
  SysUtils,
  math;

Var

i,j,m,s,n,h,k,g:integer; //rabo4aya peremennaya
x:array [1..10,1..10] of integer; // Massiv 1
c:array[1..10] of integer;
d:array[1..10] of integer;

begin

writeln('V-te kol-vo n <=10');
readln(n);
writeln('V-te kol-vo m <=10');
readln(m);
writeln ('v-te massiv 1 ');
for i:=1 to n do
for j:=1 to m do
readln(x[i,j]);

for i:=1 to n do
  for j:=1 to m do
    begin
      if x[i]<0 then begin
	               k:=k+1;
		       c[k]:=x[i,j];
 		     end;
      if x[i]>0 then begin
	 	       g:=g+1;
		       d[g]:=x[i,j];
		     end; end;
writeln('Kolichetvo jelementov menshe nulja v kazhdoj stroke massiva X');
for i:=1 to k do
  write(c[i],' ');
writeln('Kolichetvo jelementov bolshe nulja v kazhdoj stroke massiva X');
for i:=1 to g do
  write(d[i],' ');


Readln;
end.



Но сейчас он ругается, что неправильный тип данных.
Сразу показывает после then ошибку. И после второго then.
но в чем ошибка не знаю

естественно сюда добавил k,g
Skype: warma2d
ICQ: 838012
mail warma2d@ya.ru

Последний раз редактировалось warma2d; 28.11.2010 в 22:58.
warma2d вне форума Ответить с цитированием
Старый 30.11.2010, 00:57   #5
Niro
Форумчанин
 
Аватар для Niro
 
Регистрация: 23.09.2010
Сообщений: 682
По умолчанию

Вот блин забыл, что массив то у нас двумерный, так что в строчке исправьте
Цитата:
if x[i]<0 then begin
на
Код:
 if x[i,j]<0 then begin
и во второй проверке
Код:
x[i,j]>0 then
Проще всего признать свою ошибку.
Гораздо труднее еЁ осознать и исправить.
Niro вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
двумерный массив. dimka660i Помощь студентам 10 19.02.2011 05:43
Двумерный Массив Delphi7 warma2d Помощь студентам 12 19.11.2010 17:01
Одномерный Массив Delphi7 warma2d Помощь студентам 8 16.11.2010 16:02
Двумерный массив Ole4ka Помощь студентам 2 15.06.2010 07:38
Двумерный массив, одномерный массив. Branbal Помощь студентам 14 18.11.2009 12:40