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

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

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

> процедуры с параметрами
сообщение
Сообщение #1





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

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


всем привет.
Совсем запуталась с параметрами unsure.gif .Помогите исправить ошибки.


program zadacha;
uses crt;
type mt1=array [1..20,1..20] of real;
mt2=array [1..20] of real;
var
IM: char;
matr:mt1;
b,K:mt2;
n,m,i,j:integer;
ch:char;
error:integer;
shet:integer;
zam:integer;
label
L1, L2;
procedure VVOD (IM:char;
var matr:mt1;
n,m:integer);
var i,j: integer;
begin
textcolor (white);
clrscr;
begin
repeat
write('введите имя матрицы ...');
readln(IM);
write('введите количество строк от 1 до 20:');
{$i-}
readln(n);
Error:=IOResult;
{$i+}
if (n>20) or (n<1) or (Error<>0) then
writeln('неверно. повторите ввод!');
until (n<=20) and (n>=1) and (error=0);
begin
repeat
write('введите количество столбцов от 1 до 20:');
{$i-}
readln(m);
Error:=IOResult;
{$i+}
if (m>20) or (m<1) or (Error<>0) then
writeln('неверно. повторите ввод!');
until (m<=20) and (m>=1) and (error=0);
end;
writeln;
writeln ('вводите матрицу...',IM,':');
writeln;
for i:=1 to n do
for j:=1 to m do
begin
repeat
write(IM,'[',i,',',j,']=');
{$i-}
readln(matr[i,j]);
Error:=IOResult;
{$i+}
if (matr[i,j]>10000) or (matr[i,j]<-10000) or (Error<>0) then
writeln('неверно. повторите ввод!');
until (matr[i,j]<=10000) and (matr[i,j]>=-10000) and (error=0);
end;
clrscr;
writeln('исходная матрица :');
for i:=1 to n do
begin
for j:=1 to m do
write(matr[i,j]:8:0,'');
writeln;
end;
end;
end;

Procedure varnt (IM:char;
matr:mt1;
shet: real;
zam:real);
var
i,j: integer;
Error: integer;
K:array[1..100] of real;
b:array [1..15] of integer;
sum:real;
sra:real;

label
L1,L2;
begin
L1:
begin
writeln;
textcolor(green);
writeln('что вы хотите найти?');
writeln('1 => кол-во положительных элементов в столбцах матрицы');
writeln('2 => кол-во отрицательных элементов в столбцах матрицы;');
writeln;
write('ваш вариант:');
readln(shet);
case shet of
1:
b[j]:=0;
for j:=1 to m do
begin
for j:=1 to m do
for i:=1 to n do
if matr[i,j]>0 then
b[j]:=b[j]+1;
writeln('-------------------------');
writeln;
textcolor(white);
writeln('обработка...');
writeln;
for j:=1 to m do
writeln(b[j]:4);
writeln;
end;
writeln;
writeln('какие преобразования вы хотелибы произвести');
writeln;
writeln('1=> найти сумму положительных элементов в каждом столбце матрицы ;');
writeln('2=> найти среднее арифметическое');
writeln('3=>вернуться в начало;');
writeln('4=>закончить работу с программой ');
writeln;
writeln('ваш вариант');
readln(zam);
case zam of
1:
for j:=1 to m do
begin
K[j]:=0;
for i:=1 to n do
if matr[i,j]>0 then
K[j]:=K[j]+matr[i,j];
end;
for j:=1 to m do
write(K[j]:8:0);
writeln;
2:
for i:=1 to n do
for j:=1 to m do
begin
SRA:=sum/(n*m);
schet:=SRA;
end;
writeln;
writeln (schet:8:2,' ');
3: goto L1;
4: exit;

{-----------------------------------------------------------------------}

2:
b[j]:=0;
for j:=1 to m do
begin
for j:=1 to m do
for i:=1 to n do
if matr[i,j]<0 then
b[j]:=b[j]+1;
writeln('-------------------------');
writeln;
textcolor(white);
writeln('обработка...');
writeln;
for j:=1 to m do
writeln(b[j]:4);
writeln;
end;
writeln;
writeln('какие преобразования вы хотелибы произвести');
writeln;
writeln('1=> найти сумму положительных элементов в каждом столбце матрицы ;');
writeln('2=> найти среднее арифметическое');
writeln('3=>вернуться в начало;');
writeln('4=>закончить работу с программой ');
writeln;
writeln('ваш вариант');
readln(zam);
case zam of
1:
for j:=1 to m do
begin
K[j]:=0;
for i:=1 to n do
if matr[i,j]>0 then
K[j]:=K[j]+matr[i,j];
end;
for j:=1 to m do
write(K[j]:8:0);
writeln;
2:
for i:=1 to n do
for j:=1 to m do
begin
SRA:=sum/(n*m);
schet:=SRA;
end;
writeln;
writeln (schet:8:2,' ');
3: goto L1;
4: exit;

begin
clrscr;
L1:
VVOD(IM1,n1,m1);
variant(matr,H, b, k, schet,zam);
writeln;
writeln('Хотите преобразовать еще одну матрицу?(Y-да ,N-­нет)');
L2:

case readkey of
#89: goto L1;
#121: goto L1;
#78: exit;
#110: exit;
end;
goto L2;
readln;
End.

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

Сообщений в этой теме


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

 





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