Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форум «Всё о Паскале» _ Задачи _ не знаю решения

Автор: степан07 21.01.2008 18:59

1. дан массив B(m,n) M<=10, N<=10.
найти все строки ,сумма квадратов элементов которых >20.напечатать их номера.Подсчитать общее количество таких строк.
2. используя цикл while записать подпрограмму определения идеального веса длявзрослых людей по формуле вес =рост-100.выход из цикла значение роста =200. blink.gif

Автор: Yevgeny 21.01.2008 19:11

считай для каждой строки сумму квадратов элементов вот так: S:=S+sqr(B[i,j]), где B[i,j] - это элемент твоего массива B, с координатами i, j
если S>20, то выводишь значение i, и увеличиваешь счётчик таких строк, например какой-нить k...

По поводу второй, я так понимаю, надо написать процедуру или функцию, а ты не можешь поконкретнее написать, что дано, что будет её параметрами? smile.gif

Автор: степан07 21.01.2008 19:18

по поводу второй точней ничего сказать точно не могу это все условие...дело в том что у меня сейчас экзамен а я тлком ничего не знаю

Добавлено через 2 мин.
если не трудно напиши решение всей задачи...
а тоя придется на доп сесию)))

Автор: Michael_Rybak 21.01.2008 19:28

 ! 
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...

Исправляем


Автор: Yevgeny 21.01.2008 19:57

 
Program Matrix;
Const m=3; n=3; {любые значения}
Type
t=array[1..n] of integer;
tt=array[1..m] of t;
Var
x:tt; i,j,s,k:integer;
Begin
for i:=1 to m do
for j:=1 to n do read(x[i,j]);

k:=0;
For i:=1 to m do
begin
s:=0;
for j:=1 to n do s:=s+sqr(x[i,j]);
if s > 20 then begin
writeln('stroka: ',i);
k:=k+1;
end;
end;

Writeln('vsego:',k);
for i:=1 to m do begin
for j:=1 to n do write(x[i,j]:3);
writeln end;
End.


удачи, надеюсь правильно...

Автор: Гость 23.01.2008 4:46

огромное спасибо

Автор: Гость 26.01.2008 22:53

Цитата(степан07 @ 21.01.2008 14:59) *

2. используя цикл while записать подпрограмму определения идеального веса длявзрослых людей по формуле вес =рост-100.выход из цикла значение роста =200. blink.gif

С While не получилось...получилось просто так...



uses
crt;
var
rost,Ves:integer;
procedure Ves1(rost:integer);
begin
Ves:=rost-100;
end;
begin
clrscr;
writeln('rost');
readln(rost);
if rost<200 then
begin
ves1(rost);
writeln(ves);
end
else
begin
write('ERROR!');
readln;
end;
end.


Автор: Гость 26.01.2008 22:56

Цитата(степан07 @ 21.01.2008 14:59) *

2. используя цикл while записать подпрограмму определения идеального веса длявзрослых людей по формуле вес =рост-100.выход из цикла значение роста =200. blink.gif

С While не получилось...получилось просто так...



uses
crt;
var
rost,Ves:integer;
procedure Ves1(rost:integer);
begin
Ves:=rost-100;
end;
begin
clrscr;
writeln('rost');
readln(rost);
if rost<200 then
begin
ves1(rost);
writeln(ves);
end
else
begin
write('ERROR!');
readln;
end;
end.


Автор: Yevgeny 26.01.2008 23:11

Тока это всё должно было быть процедурой, и фишка вся в том, чтоб в процедуре был While!!! smile.gif

Цитата
для взрослых людей

Потому что именно для людей, а не для одного человека, вот он где этот While!!!
А так же, что будет если этот человек окажется карликом и его рост - 90, тогда что, его вес отрицательный??? smile.gif
И если не ошибаюсь, то выходной параметр процедуры должен быть с var'ом, тем более для глобальной переменной!

Автор: Michael_Rybak 26.01.2008 23:23

 ! 
Закрыто, см. выше.