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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 09.01.2009, 01:08   #1
ul_m
 
Регистрация: 09.01.2009
Сообщений: 5
Восклицание 2-мерный массив на ООП, помогите исправить ошибку

вот задание:
Заданы 3 матрицы действительных чисел 5х6, 10х8, 8х7. Определить сумму элементов в тех столбцах, которые не содержат отрицательных элементов. Сравнить результаты обработки матриц.

вот мой листинг:
Код:
Program pr7;
uses crt;
type matr=array [1..10,1..10] of integer;
ooo = object;
n,m:byte;
a:matr;
procedure Vvod(n,m:byte);
procedure vivod;
function sum_m: integer;
end;

var x,y,z:ooo;


procedure ooo.vvod;
var i,j:byte;
begin
 for i:=1 to n do
  for J;=1 to m do
  a[i,j]:=random(20);
end;


procedure ooo.vivod;
var i,j:byte;
begin
for i:=1 to n do
 begin writeln;
  for j:=1 to m do
  write(a[i,j]:6:0);
 end;
end;


function ooo.sum_m: integer;
var
  i, j: byte;
  Summ, ResSumm: integer;
  IsNegative: boolean;
begin
  ResSumm := 0;

  for j := 1 to n do
  begin
    IsNegative := false;
    Summ := 0;
    i := 0;
    while (i < m) or not IsNegative do
    begin
      if a[i,j] > 0 then
        Summ := Summ + a[i,j]
      else
        IsNegative := true;
      inc(i);
    end;
    if not IsNegative then
      ResSumm := ResSumm + Summ;
  end;
  sum_m := ResSumm;
end;



begin
 clrscr;
x.vvod(5,6);
y.vvod(10,8);
z.vvod(8,7);
 x.vivod;
 y.vivod;
 z.vivod;
writeln;
writeln;
 x.summ;
 y.summ;
 z.summ;
writeln(x.sum_m);
writeln(y.sum_m);
writeln(z.sum_m);
 readln;
end.
но почему-то после
Код:
ooo = object;
выбивает 2 ошибку
ul_m вне форума Ответить с цитированием
Старый 09.01.2009, 01:11   #2
maladoy
delphi-ст!
Форумчанин
 
Аватар для maladoy
 
Регистрация: 02.01.2009
Сообщений: 825
По умолчанию

http://programmersforum.ru/showthread.php?t=35195
вам сюда!!!
вступлю в команду разработчиков ПО на Delphi
maladoy вне форума Ответить с цитированием
Старый 09.01.2009, 13:37   #3
puporev
Старожил
 
Регистрация: 13.10.2007
Сообщений: 2,740
По умолчанию

ooo = object; А потому что после object точку с запятой не надо.
Про другие ошибки надо говорить отдельно, в другом месте и с глазу на глаз, как говорил Райкин.
puporev вне форума Ответить с цитированием
Старый 09.01.2009, 14:12   #4
puporev
Старожил
 
Регистрация: 13.10.2007
Сообщений: 2,740
По умолчанию

Вот поправил твою программу, работает как ты задумал, нужно только последний пункт добавить(сравнение).
Код:
Program pr7;
uses crt;
type matr=array [1..10,1..10] of integer;
ooo = object
a:matr;
procedure Vvod(n,m:byte);
procedure Vivod(n,m:byte);
function sum_m(n,m:byte): integer;
end;

procedure ooo.vvod;
var i,j:byte;
begin
 for i:=1 to n do
  for J:=1 to m do
  a[i,j]:=random(20)-2;
end;

procedure ooo.vivod;
var i,j:byte;
begin
for i:=1 to n do
 begin
  for j:=1 to m do
  write(a[i,j]:4);
  writeln;
 end;
end;

function ooo.sum_m(n,m:byte): integer;
var i, j: byte;
    Summ, ResSumm,k,l: integer;
begin
  ResSumm := 0;
  for j := 1 to m do
  begin
    k:=0;Summ := 0;
    for i:=1 to n do
    if a[i,j]<0 then inc(k);
    if k=0 then
    for l:=1 to n do
    Summ:=Summ+a[l,j];
    ResSumm := ResSumm + Summ;
  end;
  sum_m := ResSumm;
end;

var x,y,z:ooo;
begin
clrscr;
x.vvod(5,6);
y.vvod(10,8);
z.vvod(8,7);
writeln('Matrica X:');
x.vivod(5,6);
writeln('Summa v stolbcah bez otricatelnyh elementov=',x.sum_m(5,6));
readln;
writeln('Matrica Y:');
y.vivod(10,8);
writeln('Summa v stolbcah bez otricatelnyh elementov=',y.sum_m(10,8));
readln;
writeln('Matrica Z:');
z.vivod(8,7);
writeln('Summa v stolbcah bez otricatelnyh elementov=',z.sum_m(8,7));
readln
end.
puporev вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
помогите исправить ошибку. RUSLAN13 Помощь студентам 1 25.12.2008 17:22
ПОМОГИТЕ ПРОВЕРИТЬ ЗАДАЧКУ НА ПАСКАЛЕ!Матрица,2-Х мерный массив! vdv08 Помощь студентам 6 23.09.2008 13:13
Помогите исправить ошибку Булат Общие вопросы Delphi 3 25.04.2008 10:01
помогите исправить ошибку. alen666 Паскаль, Turbo Pascal, PascalABC.NET 11 08.03.2008 16:43