Программирование алгоритмов разветвляющейся структуры

Примеры алгоритмов и программ

Программирование алгоритмов линейной структуры

 
 

Пример. Вычислить значение функции y=sin x+ex+2, где x=ln a+ ,

b=cos 3a, a=7,25.

Блок-схема алгоритма

Расчет контрольного примера (к.п.)

;

Паскаль-программа

 
 


x=lna+
Program prim1;

var a,b,x,y:real;

y=sinx+ex+2
begin

write (‘Введите а=’); readln (a);

b:=cos(a)*cos(a)*cos(a);

x:=ln(a)+sqrt(abs(b));

y:=sin(x)+exp(x+2);

writeln (‘b=’,b:1:3, ‘ x=’,x:1:3,’ y=’,y:1:3);

end.

 

Контрольный пример:

Введите а=1

b=0.158 x=0.397 y=11.379

 

Вывод: программа работоспособна, т. к. значения результатов контрольного примера ручного и машинного счета приблизи-тельно совпадают.

Результат:

Введите а=7.25

b=0.183 x=2.409 y=82.855


 

 


Программирование алгоритмов циклической структуры

Пример. Вычислить значение функции

, где

при а, изменяющемся от ан до ак,

с шагом а

aн=2, ак=3, а=0,2

 

а) с использованием оператора цикла с предусловием while

Блок-схема алгоритма

Паскаль-программа

 
 


Program prim31;

var an,ak,da,a,x,y:real;

begin

write(‘Введите an,ak,da=’);

  a=aн
readln(an,ak,da);

a:=an;

while a<=ak+0.0001 do

begin

нет x:=ln(a);

y:=exp(1/3*ln(abs(sin(x))));

да writeln(‘a=’,a:3:1,’ x=’,

  x=lna
x:5:3,’ y=’,y:5:3);

a:=a+da;

end;

end.

       
   
 
 

 

 


Результаты

  a=a+a
Введите an,ak,da=2 3 0.2

a=2.0 x=0.693 y=0.861

a=2.2 x=0.788 y=0.892

a=2.4 x=0.875 y=0.916

a=2.6 x=0.956 y=0.935

a=2.8 x=1.030 y=0.950

a=3.0 x=1.099 y=0.962

 

 



б) с использованием оператора цикла с постусловием repeat-until

 

Блок-схема алгоритма Паскаль-программа

 
 


Program prim32;

var an,ak,da,a,x,y:real;

begin

write(‘Введите an,ak,da=’);

readln(an,ak,da);

a:=an;

а=ан
repeat

x:=ln(a);

y:=exp(1/3*ln(abs(sin(x))));

x=ln(a)
writeln(‘a=’,a:3:1,’ x=’,x:5:3,

‘ y=’,y:5:3);

a:=a+da;

until a>ak;

end.

       
   
 
 

 


Результаты

Введите an,ak,da=2 3 0.2

a=2.0 x=0.693 y=0.861

a=2.2 x=0.788 y=0.892

нет a=2.4 x=0.875 y=0.916

a=2.6 x=0.956 y=0.935

да a=2.8 x=1.030 y=0.950

a=3.0 x=1.099 y=0.962

 

 


 


в) с использованием оператора цикла с параметром for

 

Блок-схема алгоритма

 
 

 

 


Паскаль-программа

 

Program prim33;

n=[(aкн)/ a]+1
var an,ak,da,a,x,y:real;

i,n:integer;

begin

write(‘Введите an,ak,da=’);

  a= aн
redln(an,ak,da);

n:=trunc((ak-an)/da)+1;

a:=an;

for i:=1 to n do

begin

x:=ln(a);

y:=exp(1/3*ln(abs(sin(x))));

  x=lna
writeln(‘a=’,a:3:1,

‘ x=’,x:5:3,’ y=’,y:5:3);

a:=a+da;

end;

end.

           
   
 
   
 

 

 


Результаты

Введите an,ak,da=2 3 0.2

a=2.0 x=0.693 y=0.861

  a=a+a
a=2.2 x=0.788 y=0.892

a=2.4 x=0.875 y=0.916

a=2.6 x=0.956 y=0.935

a=2.8 x=1.030 y=0.950

a=3.0 x=1.099 y=0.962

 

 
 

 

 


Программирование алгоритмов разветвляющейся структуры

Пример. Вычислить значение функции.

если

 

а) с использованием условного оператора if-then-else

Паскаль-программа

 

Program prim21;

var a,b,c,x,y:real;

n:integer;

begin

write(‘Введите а=’); readln(a);

x:=ln(abs(a-cos(a)));

c:=x*a; b:=x+a;

c=xa b=x+a
if c<=0 then

begin y:=-10.5; n:=1; end

else

if c=>3.5 then

да begin y:=c+ln(b); n:=3; end

else

нет begin y:=exp(c)+2*b; n:=2; end;

writeln(‘x=’,x:1:3,’ c=’,c:1:3,’ y=’,

да y:1:3,’ n=’,n);

end.

нет

y=eс+2b, n=2
y=c+lnb, n=3
Результат

y=-10.5, n=1
Введите а=7.35

           
     
 
 
 


x=1.927 c=14.162 y=16.389 n=3

 
 


 

 

 



б) c использованием оператора выбора case

 

Паскаль-программа

 
 


Program prim22;

var a,b,c,x,y:real;

k:integer;

 
begin

write(‘Введите а=’); readln(a);

x:=ln(abs(a-cos(a)));

c:=x*a; b:=x+a;

c=x·a b=x+a
if c<=0 then k:=1 else

if c<=3.5 then k:=2 else k:=3;

case k of

1: y:=-10.5;

да 2: y:=exp(c)+2*b;

3: y:=c+ln(b);

нет end;

да writeln(‘x=’,x:1:3,’ c=’,c:1:3,’

=’,y:1:3,’ k=’,k);

  k=1
нет end.

  k=3
  k=2
Результат

Введите а=7.35

x=1.927 c=14.162

y=16.389 k=3

нет

       
 
   
 

 

 


  y=-10.5
да k=1

 
 

 


k=2

       
   
 
 
  y=c+lnb

 

 


k=3

         
   
 
   
 
 

 

 


 


ФЕДЕРАЛЬНОЕ БЮДЖЕТНОЕ ГОСУДАРСТВЕННОЕ ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ ВЫСШЕГО ОБРАЗОВАНИЯ

УФИМСКИЙ ГОСУДАРСТВЕННЫЙ НЕФТЯНОЙ

ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ

 

Кафедра вычислительной техники и инженерной кибернетики

 

 

КОНТРОЛЬНАЯ РАБОТА 2

ПО ИНФОРМАТИКЕ

 

 

ВЫПОЛНИЛ СТ. ГР. ИМЯ ОТЧЕСТВО ФАМИЛИЯ

ШИФР _________   ПРОВЕРИЛ КАНД. ТЕХН. НАУК, ДОЦ. Султанова Е. А.
   

 

УФА 2016