Смекни!
smekni.com

Программирование Рascal

Вариант 2

Задания

1. Дано c, d.

Вычислить

. Если
, то вычислить и отпечатать
. Если
, напечатать «y=0», иначе вычислить

2. Дано a. Вычислить значение функции

где

изменяется в интервале от 0,8 до 2 с шагом 0,1. Вывести на печать значения функции
.

3. В заданном одномерном массиве

определить

количество положительных элементов, равных первому положительному элементу. Если такие элементы в массиве есть, то вычислить сумму положительных элементов, рассматривая массив с конца. Если таких элементов нет, то напечатать об этом сообщение.

1Блок-схема

Программа

program v2_1;

uses crt;

var

c,d,x,y,z:real;

BEGIN

clrscr;

writeln('vvedite c');

readln(c);

writeln('vvedite d');

readln(d);

y:=exp(d)+sin(c/(1+sqrt(d*d+1)))/cos(c/(1+sqrt(d*d+1)));

if y>0 then

begin

z:=c*y+d*y+c*d;

writeln('z= ',z:5:2);

end;

if y=0 then

writeln('y=0');

if y<0 then

begin

x:=arctan(y/sqrt(1-y*y))+sin(d/2)/cos(d/2);

writeln('x= ',x:5:2);

end;

readln;

END.

Тестовый пример

2Блок-схема

Программа

program v2_2;

uses crt;

var

x,y,a:real;

BEGIN

clrscr;

writeln('vvedite a');

readln(a);

x:=0.8;

while x<=2 do

begin

if x<1.3 then

y:=Pi*x*x*x-7/(x*x);

if x=1.3 then

y:=a*x*x*x+7*sqrt(x);

if x>1.3 then

y:=ln(x)/ln(10)+7/sqrt(x);

if y>0 then

writeln('y= ',y:5:2);

x:=x+0.1;

end;

readln;

END.

Тестовый пример

3Блок-схема

Программа

program v2_3;

uses crt;

var

r:array [1..60] of integer;

i,n,k,l,m,sum :integer;

BEGIN

clrscr;

writeln('vvedite N<=60');

readln(n);

m:=0;

k:=0;

for i:=1 to n do

begin

writeln('vvedite ',i,' element');

readln(r[i]);

if (r[i]=l)and(m=1) then

k:=k+1;

if (r[i]>0)and(m=0) then

begin

l:=r[i];

m:=1;

end;

end;

if k=0 then

writeln('net elementov ravnyh 1 polozhitelnomy elementu')

else

begin

sum:=0;

for i:=n downto 1 do

begin

if r[i]>0 then

sum:=sum+r[i];

end;

writeln('summa polozhitelnyh elementov ravna ',sum);

end;

readln;

END.

Тестовый пример