IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code], либо быть опубликованы на нашем PasteBin в режиме вечного хранения.
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

3 страниц V  1 2 3 >  
 Ответить  Открыть новую тему 
> 2-мерный массив на ООП, помогите исправить ошибку
сообщение
Сообщение #1


Новичок
*

Группа: Пользователи
Сообщений: 18
Пол: Женский

Репутация: -  0  +


вот задание:
Заданы 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 ошибку wacko.gif wacko.gif nea.gif
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #2


Профи
****

Группа: Пользователи
Сообщений: 731
Пол: Женский

Репутация: -  25  +


Точку с запятой убери после object smile.gif Он разве тебе не пишет, что хочет увидеть идентификаторы, а не ";" ?
(дальше не смотрела)
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #3


Новичок
*

Группа: Пользователи
Сообщений: 18
Пол: Женский

Репутация: -  0  +


теперь 4 ошибка после
Код
procedure ooo.vvod;
var i,j:byte;
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #4


Уникум
*******

Группа: Пользователи
Сообщений: 6 823
Пол: Мужской
Реальное имя: Лопáрь (Андрей)

Репутация: -  159  +


Цитата(NiMfetKa @ 9.01.2009 1:51) *
теперь 4 ошибка после
Код
procedure ooo.vvod;
var i,j:byte;
После объявления процедуры? Параметры вставь, как выше.

Ты лучше приводи сам текст ошибки тоже..


--------------------
я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #5


Профи
****

Группа: Пользователи
Сообщений: 731
Пол: Женский

Репутация: -  25  +


а вызываешь как ooo.vvod(5,6)? на так нужно ж указать программе, что у процедуры есть параметры.. В выложенном здесь коде у тебя это было..

Из замеченного далее:
есть проблема с выводом (тут тоже нужно указывать значения m и n) и с sum_m.. Указывать второй раз ее тип не нужно, опять же значение m и n откуда программе брать? и обрати внимание на i и j, точнее на то, какие они принимают значения и существуют ли элементы массивов с такими номерами..



Добавлено через 1 мин.
Да.. сумма должна считаться отдельно по каждому столбцу, неимеющему отрицательных, или на всю матрицу?

Сообщение отредактировано: Айра -
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #6


Новичок
*

Группа: Пользователи
Сообщений: 18
Пол: Женский

Репутация: -  0  +


ему не нра вар почему-то...
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #7


Профи
****

Группа: Пользователи
Сообщений: 731
Пол: Женский

Репутация: -  25  +


И еще:
0. в цикле while нужно не or а and и (j <= m) smile.gif
1. у тебя значения элементов массива всегда будут >=0..

Цитата
ему не нра вар почему-то...

покажи описательную часть.. ты что-то изменила относительно варианта из 1го поста?

Добавлено через 4 мин.
Цитата
сумма должна считаться отдельно по каждому столбцу, неимеющему отрицательных, или на всю матрицу?

к чему я это.. если второй вариант, то отдельные вызовы функции sum_m можно убрать и оставить только writeln'ы..

Сообщение отредактировано: Айра -
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #8


Уникум
*******

Группа: Пользователи
Сообщений: 6 823
Пол: Мужской
Реальное имя: Лопáрь (Андрей)

Репутация: -  159  +


Цитата(NiMfetKa @ 9.01.2009 2:11) *
ему не нра вар почему-то...
Слушай, NiMfetKa, а какой у тя компилятор, если не секрет?


--------------------
я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #9


Профи
****

Группа: Пользователи
Сообщений: 731
Пол: Женский

Репутация: -  25  +


Ошибка 4 - duplicate identifier (сорри, не то скопировала, теперь исправила) - дублированны\двойной идентификатор.. [telepathy_on] проверь, не описала ли ты переменные i и j где-нибудь вне процедуры.. [telepathy_off]

Сообщение отредактировано: Айра -
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #10


Гость






Цитата
теперь 4 ошибка после
procedure ooo.vvod;
var i,j:byte;
Прав компилятор на все 100%... У тебя уже есть N, как член объекта, ты еще и как параметр метода хочешь использовать N? Нельзя. Давай другое имя либо параметру, либо члену класса...
 К началу страницы 
+ Ответить 
сообщение
Сообщение #11


Уникум
*******

Группа: Пользователи
Сообщений: 6 823
Пол: Мужской
Реальное имя: Лопáрь (Андрей)

Репутация: -  159  +


Цитата(volvo @ 9.01.2009 2:27) *
Прав компилятор на все 100%...
Ну, на 99%.. smile.gif
Turbo этого не требует.


--------------------
я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #12


Гость






Турбо как раз и требует, чтобы не было повторений в именах параметров... А вот FPC компилирует нормально...
 К началу страницы 
+ Ответить 
сообщение
Сообщение #13


Уникум
*******

Группа: Пользователи
Сообщений: 6 823
Пол: Мужской
Реальное имя: Лопáрь (Андрей)

Репутация: -  159  +


NiMfetKa, скажи, чем компилируешь!

Добавлено через 5 мин.
Цитата(volvo @ 9.01.2009 2:33) *

Турбо как раз и требует, чтобы не было повторений в именах параметров... А вот FPC компилирует нормально...

Хм, да, забавно...
А FP в моде TP - вроде, кушает..


--------------------
я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #14


Новичок
*

Группа: Пользователи
Сообщений: 18
Пол: Женский

Репутация: -  0  +


и что должно долучиться ? huh.gif huh.gif
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #15


Уникум
*******

Группа: Пользователи
Сообщений: 6 823
Пол: Мужской
Реальное имя: Лопáрь (Андрей)

Репутация: -  159  +


Хотя в моде FP - не пропускает. Причем, раньше


--------------------
я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #16


Новичок
*

Группа: Пользователи
Сообщений: 18
Пол: Женский

Репутация: -  0  +


TURBO PASCAL 7.1
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #17


Уникум
*******

Группа: Пользователи
Сообщений: 6 823
Пол: Мужской
Реальное имя: Лопáрь (Андрей)

Репутация: -  159  +


Цитата(NiMfetKa @ 9.01.2009 2:39) *
и что должно долучиться ? huh.gif huh.gif

Хороший вопрос.. smile.gif
Думаю - прогресс!

Добавлено через 2 мин.
Мне кажется, параметры у Vvod можно просто убрать... smile.gif


--------------------
я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #18


Профи
****

Группа: Пользователи
Сообщений: 731
Пол: Женский

Репутация: -  25  +


Тоже проверила, fpc все равно, tp7.0 ругается..
А я решила проблему изгнанием n и m из членов объекта и принятием в ряды параметров процедур\функций smile.gif

В общем, у меня получились такие бредни (оставляю возможность не смотреть)))
Спойлер (Показать/Скрыть)
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #19


Новичок
*

Группа: Пользователи
Сообщений: 18
Пол: Женский

Репутация: -  0  +


а где третий массив? и надо искать сумму строк...
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #20


Профи
****

Группа: Пользователи
Сообщений: 731
Пол: Женский

Репутация: -  25  +


а что с третим массивом? за основу брала твой вариант.. там было только три вывода.. да и спрашивала я тебя уже, что именно надо делать..

к тому же:

пост #1
Цитата
Определить сумму элементов в тех столбцах

теперь
Цитата
и надо искать сумму строк...


в такой ситуации моя телепатия бессильна..

 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

3 страниц V  1 2 3 >
 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 





- Текстовая версия 27.11.2020 2:11
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name