![]() |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
![]() ![]() |
![]() |
Terminator |
![]()
Сообщение
#1
|
![]() Новичок ![]() Группа: Пользователи Сообщений: 13 Пол: Мужской Репутация: ![]() ![]() ![]() |
Есть такая задачка:
Даны натур. число n, действительная квадратная матрица порядка n. Построить последовательность b1...bn из нулей и единиц, в которой b[i]=1 тогда и только тогда, когда в i-й строке матрицы есть хотя бы один отриц. элемент. Прогр. должна содержать не менее 3-х функций и процедур. Вроде написал, но нужно, чтобы имела место передача массива как параметра процедуры Код program matrix; uses crt; const m=10; space='---------'; var n:byte; y:real;{veschestvennye chisla} i,j:integer;{Tseloye} x:word;{Naturalnoye chislo} znak:byte; a: array [1..m,1..m] of real; b: array [1..m] of word; {} procedure header; begin clrscr; write(space); textcolor(4); write(' copyright '); textcolor(7); writeln(space); writeln; end; {} procedure zapros; begin Write('Введите размер матрицы :'); Read(n); end; procedure vvod; var i, j: integer; begin {nachalo vneshnego tsikla} for j:=1 to n do begin {nachalo vnutrennego tsikla} for i:=1 to n do begin Write('Введите элемент ',i,'-й строки ',j,'-го столбца :'); Readln(a[i,j]); end; {konets vnutrennego tsikla} writeln; end; {konets vneshnego tsikla} end; {} procedure screen; begin clrscr; textcolor(white); end; {} function massiv: word; begin end; procedure input; begin end; procedure rand; var q,r: real; begin {nachalo vneshnego tsikla} for j:=1 to n do begin {nachalo vnutrennego tsikla} for i:=1 to n do begin q:=Random(100); r:=Random(Random(round(n*n))); if r=0 then q:=0-q; a[i,j]:=q; writeln('b[',i,',',j,']=',a[i,j]); end; {konets vnutrennego tsikla} writeln;Readln; end; {konets vneshnego tsikla} end; {} function sequence: word; begin writeln; for i:=1 to n do begin for j:=1 to n do begin if a[i,j]<0 then begin b[i]:=1; break; end; end; end; end; {} begin header; while (n>100) or (n<=0) do zapros; massiv; if n<5 then vvod else rand; sequence; for i:=1 to n do begin writeln('b[',i,']=',b[i]); delay(10000); end; writeln; write('Press Enter'); readln; end. -------------------- I'll be back
|
Altair |
![]()
Сообщение
#2
|
![]() Ищущий истину ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 4 824 Пол: Мужской Реальное имя: Олег Репутация: ![]() ![]() ![]() |
Ужас какой...
ужас в том, что зачем было сразу использовать процедуры если все переменные глобальные у вас? Просто после индефикатора процедцр, следует указать пеерменные передающиеся в процедуру... -------------------- Помогая друг другу, мы справимся с любыми трудностями!
"Не опускать крылья!" (С) |
FreeMan |
![]()
Сообщение
#3
|
- ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 480 Пол: Мужской Репутация: ![]() ![]() ![]() |
а ещё нужен тип для массива, чтоб его можно было как параметр пихать в процедуру
-------------------- бб
|
Terminator |
![]()
Сообщение
#4
|
![]() Новичок ![]() Группа: Пользователи Сообщений: 13 Пол: Мужской Репутация: ![]() ![]() ![]() |
Прогр. должна содержать не менее 3-х функций и процедур.
-------------------- I'll be back
|
Terminator |
![]()
Сообщение
#5
|
![]() Новичок ![]() Группа: Пользователи Сообщений: 13 Пол: Мужской Репутация: ![]() ![]() ![]() |
Короче, как исправить эту программу, чтобы имела место передача массива как параметра процедуры
Сообщение отредактировано: volvo - 26.11.2004 18:41 -------------------- I'll be back
|
volvo |
![]()
Сообщение
#6
|
Гость ![]() |
Terminator
А может вместо Код for i:=1 to n do begin writeln('b[',i,']=',b[i]); delay(10000); end; сделать так Код Procedure PrintArr(x: array of word; n: integer); var i: integer; begin for i:=1 to n do begin writeln('b[',i,']=',x[i]); delay(10000); end; end; ... { вызов } PrintArr(b, n); И спокойнее, пожалуйста!!! ![]() Сообщение отредактировано: volvo - 26.11.2004 15:55 |
Terminator |
![]()
Сообщение
#7
|
![]() Новичок ![]() Группа: Пользователи Сообщений: 13 Пол: Мужской Репутация: ![]() ![]() ![]() |
Если честно нужно, чтобы "матрица передавалась в процедуру rand", что это значит - не спрашивайте.
-------------------- I'll be back
|
Altair |
![]()
Сообщение
#8
|
![]() Ищущий истину ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 4 824 Пол: Мужской Реальное имя: Олег Репутация: ![]() ![]() ![]() |
Цитата чтобы "матрица передавалась в процедуру rand", что это значит - не спрашивайте. Это значит что матрица должна передаваться в процедуцу по ссылке а не по значению ![]() ;) То есть через слово VAR -------------------- Помогая друг другу, мы справимся с любыми трудностями!
"Не опускать крылья!" (С) |
Terminator |
![]()
Сообщение
#9
|
![]() Новичок ![]() Группа: Пользователи Сообщений: 13 Пол: Мужской Репутация: ![]() ![]() ![]() |
Цитата по ссылке - это goto?-------------------- I'll be back
|
FreeMan |
![]()
Сообщение
#10
|
- ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 480 Пол: Мужской Репутация: ![]() ![]() ![]() |
Код type arrs = array[1..m,1..m] of real; ... procedure rand(var b:arrs; n:byte); ... Вроде так. -------------------- бб
|
Altair |
![]()
Сообщение
#11
|
![]() Ищущий истину ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 4 824 Пол: Мужской Реальное имя: Олег Репутация: ![]() ![]() ![]() |
Терминатор,
Нет.... по ссылке передавать параметры это значит через слово VAR, например: procedure ADD(VAR a:integer); Здесь параметр a передан по ссылке. а вот так по значению: procedure ADD(a:integer) -------------------- Помогая друг другу, мы справимся с любыми трудностями!
"Не опускать крылья!" (С) |
![]() ![]() |
![]() |
Текстовая версия | 18.06.2025 7:51 |