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

Вариант 2

Задания

Дано c, d.

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

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



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

В заданном одномерном массиве  определить

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




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.

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