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

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

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

 
 Ответить  Открыть новую тему 
> задача о матрице и одномерном массиве
sps
сообщение 16.12.2005 16:13
Сообщение #1


Гость






вроде написал задачу, но есть ошибки, помогите ПЛИЗ!!!!!!!!!!!!!!!!

program Project4;

{$APPTYPE CONSOLE}
type tm=array[1..4,1..5] of integer; mas=array[1..5] of real;
var
A: tm;
B: mas;
i: integer;
sps: real;
procedure vvod(m,n:integer;var x:tm);
var i,j: integer;
begin writeln('Input Matr');
for i:=1 to m do
for j:=1 to n do
read(x[i,j]);
readln;
end;

Procedure Vozr(m : tM;ii : Byte;Var sps:real);
var i: integer;
begin
For i:=1 to 5 do
If a[i,ii]<a[i+1,ii] then B[i]:=1 else
b[i]:=0;
sps:=b[i];
end;

procedure MasOut(n:integer;var p:mas;c:char);
var i:integer;
begin
writeln('results for',c);
for i:=1 to n do
write(p[i],'');
writeln;
end;
begin
vvod(4,5,a);
For i := 1 to 5 do begin
Vozr(a, i, sps);
B[i] := sps;
end;
MasOut(5,B,'B');
readln;
end.


Сообщение отредактировано: volvo - 16.12.2005 16:15
 К началу страницы 
+ Ответить 
volvo
сообщение 16.12.2005 16:17
Сообщение #2


Гость






Ты бы само задание-то привел, а то получается "ищи то - не знаю, что..." unsure.gif
 К началу страницы 
+ Ответить 
sps
сообщение 16.12.2005 16:27
Сообщение #3


Гость






**На основе матрицы A(4Х5) сформировать одномерный массив В, каждый элемент которого принимает значение 1, если в соответсвующем по номеру столбце матрицы А элементы расположены в порядке возрастания их значений, и значение 0 в противном случае.**
 К началу страницы 
+ Ответить 
volvo
сообщение 16.12.2005 16:39
Сообщение #4


Гость






исправь на вот это:

Procedure Vozr(m : tM;ii : Byte;Var sps:real);
var
i: integer;
ok: boolean;
begin
ok := true;
For i:=2 to 5 do
ok := ok and (m[i-1,ii]<m[i,ii]);
If ok Then sps:=1 else sps := 0;
end;


иначе получишь Segmentation Fault при выходе за пределы массива...
 К началу страницы 
+ Ответить 
NorthAngel
сообщение 16.12.2005 16:55
Сообщение #5


Новичок
*

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

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


эмм.. только зачем одномерный массив делать real, если элементы принимают значения 1 и 0? blink.gif

Хмм.. вот ты такая придирчивая, а почему тебя не волнует тот факт, что I : INTEGER ? ... погла бы и это спросить ...

Сообщение отредактировано: klem4 - 16.12.2005 17:03


--------------------
ошибки легче всего делаются и труднее всего находятся в самых простых местах программы =))
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Гость
сообщение 23.12.2005 16:54
Сообщение #6


Гость






процедура все равно считает не правильно!!!!!!!
посмотрите ещё раз пожалуйста!!!!!

Код
Procedure Vozr(m : tM;ii : Byte;Var sps:real);
var
  i: integer;
  flag: boolean;
begin
  flag := true;
  For i:=2 to 5 do
    flag := flag and (m[i-1,ii]<m[i,ii]);
  If flag Then sps:=1 else sps := 0;
end;


Сообщение отредактировано: volvo - 23.12.2005 17:08
 К началу страницы 
+ Ответить 
volvo
сообщение 23.12.2005 17:07
Сообщение #7


Гость






Вот так лучше?
Procedure Vozr(m : tM;ii : Byte;Var sps:real);
var
i: integer;
ok: boolean;
begin
ok := true;
For i:=1 to 3 do
ok := ok and (m[i,ii]<m[i+1,ii]);
If ok Then sps:=1 else sps := 0;
end;
 К началу страницы 
+ Ответить 

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

 



- Текстовая версия 20.07.2025 1:35
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"