Type arr = array[1..10] of integer; {создаем новый тип, являющийся массивом} var i:integer; s:real; R,Q,P:arr; X:array[0..3] of integer;
function Sum(a: arr): integer; {функция вычисления суммы элементов массива} var i:integer; begin foreach i in a do {вычисляем сумму элементов по заданному правилу} if (i>=2) and (i<=4) then Result :=Result+i end; {результатом функции будет сумма}
begin randomize; {заполняем массивы случайными числами} for i:=1 to 10 do begin R[i]:=random(10); Q[i]:=random(10); P[i]:=random(10) end; write('R: '); {распечатываем содержимое массивов на экране} for i:=1 to 10 do write(R[i],' '); writeln; write('Q: '); for i:=1 to 10 do write(Q[i],' '); writeln; write('P: '); for i:=1 to 10 do write(P[i],' '); writeln; {а тут собственно само решение задачи} X[1]:=Sum(R);{передаем в ф-цию Sum массив R, она считает сумму и записывает в Х1} writeln('X[1]=',X[1]); X[2]:=Sum(Q);{передаем в ф-цию Sum массив Q, она считает сумму и записывает в Х2} writeln('X[2]=',X[2]); X[3]:=Sum(P);{передаем в ф-цию Sum массив P, она считает сумму и записывает в Х3} writeln('X[3]=',X[3]) end.
1) Если использовать последний Паскаль АВС, который умеет вычислять степень (Power), то вот вариант программы: var n:integer; s:real; {вообще, он целый, но мой компилятор не пропускает, почему-то считает, что результат вычислений будет real} begins:=0; n:=1; while s<5 do begin s:=3*power(n,4)-730*n; {для старого Паскаля напиши так: s:=3*sqr(sqr(n))-730*n} n:=n+1 end; writeln(n) end.
2) var n,s:real; begin s:=0; n:=1; while s<=10 do begin s:=exp(n)-1000*Ln(n); n:=n+1 end; writeln(n) end.
var
i:integer;
s:real;
R,Q,P:arr;
X:array[0..3] of integer;
function Sum(a: arr): integer; {функция вычисления суммы элементов массива}
var i:integer;
begin
foreach i in a do {вычисляем сумму элементов по заданному правилу}
if (i>=2) and (i<=4) then Result :=Result+i
end; {результатом функции будет сумма}
begin
randomize; {заполняем массивы случайными числами}
for i:=1 to 10 do
begin
R[i]:=random(10);
Q[i]:=random(10);
P[i]:=random(10)
end;
write('R: '); {распечатываем содержимое массивов на экране}
for i:=1 to 10 do write(R[i],' ');
writeln;
write('Q: ');
for i:=1 to 10 do write(Q[i],' ');
writeln;
write('P: ');
for i:=1 to 10 do write(P[i],' ');
writeln; {а тут собственно само решение задачи}
X[1]:=Sum(R);{передаем в ф-цию Sum массив R, она считает сумму и записывает в Х1}
writeln('X[1]=',X[1]);
X[2]:=Sum(Q);{передаем в ф-цию Sum массив Q, она считает сумму и записывает в Х2}
writeln('X[2]=',X[2]);
X[3]:=Sum(P);{передаем в ф-цию Sum массив P, она считает сумму и записывает в Х3}
writeln('X[3]=',X[3])
end.
var
n:integer;
s:real; {вообще, он целый, но мой компилятор не пропускает, почему-то считает, что результат вычислений будет real}
begins:=0;
n:=1;
while s<5 do
begin
s:=3*power(n,4)-730*n; {для старого Паскаля напиши так: s:=3*sqr(sqr(n))-730*n}
n:=n+1
end;
writeln(n)
end.
2)
var n,s:real;
begin
s:=0;
n:=1;
while s<=10 do
begin
s:=exp(n)-1000*Ln(n);
n:=n+1
end;
writeln(n)
end.