Дано: a,b. Промежуточные значения - x,y,z.




Лабораторная работа № 4

Тема – программирование разветвляющихся вычислительных процессов с использованием операторов, реализующих базовые структуры ветвления.

Цель работы - освоить на практике программирование несложных разветвляющихся вычислительных процессов, используя для этого простейшие операторы управления, в частности условный оператор и оператор безусловного перехода.

Задание 1.

Выполните учебные примеры.

 

ПРИМЕР 1. Составить программу вычисления y по формуле

при заданном значении x. Напечатать значения x и y.

Указание. Программу составить двумя способами:

а) с помощью условного оператора;

б) с помощью оператора безусловного перехода.

Решение.

1. Расчётные формулы:

2. Тесты для проверки программы:

3. Исходные данные: x = 0,5==> 0.5¿;

x = 0,0 ==> 0.0¿;

x = - 0,5 ==> -0.5¿;

4. Блок - схема:

 
 

 

 


5. Программа:

Program Prim1; { Разветвляющийся вычислительный процесс}

{ С помощью условного оператора }

Var x, y, d: real; { Описание переменных }

Begin {Начало основного блока}

WriteLn;

WriteLn(' Введите значение x');

ReadLn(x); { Ввод x }

d:= sin(x); { Вычисление d }

if x>0 then y:= d / x { Вычисление y для случая x>0 }

else y:= Sqrt(1.0 + d*d);{ Вычисление y для случая x<=0}

WriteLn;

WriteLn(' x=',x:5:2,' y=',y:8:4); { Вывод x, y }

End. { Конец программы}

6. Вид печати:

 

x= 0.50 y= 0.9589

x= 0.00 y= 1.0000

x=-0.50 y= 1.1090

Program Prim1; { Разветвляющийся вычислительный процесс}

{ С помощью оператора безусловного перехода }

Var x, y, d: real; { Описание переменных }

Label 1,2; {Раздел меток}

Begin {Начало основного блока}

WriteLn;

WriteLn(' Введите значение x');

ReadLn(x); { Ввод x }

d:= sin(x); { Вычисление d }

if x>0 then goto 1;

y:= Sqrt(1.0 + d*d);{ Вычисление y для случая x<=0}

goto 2;

1: y:= d / x { Вычисление y для случая x>0 }

2: WriteLn;

WriteLn(' x=',x:5:2,' y=',y:8:4); { Вывод x, y }

End. { Конец программы}

6. Вид печати:

 

x= 0.50 y= 0.9589

x= 0.00 y= 1.0000

x=-0.50 y= 1.1090

ПРИМЕР 2. Вычислить z по формуле

при заданном значении x. Напечатать значения x, z.

 

Решение.

1. Расчётные формулы:

 

 

2. Тесты для проверки программы:

 

3. Исходные данные: x =-0,5 ==> -0.5¿;

x =0,0==> 0.0¿;

x =1,0 ==> 1.0¿;

x =2,0==> 2.0¿;

x =3,0 ==> 3.0¿;

 

 

4. Блок - схема:

 


5. Программа:

Program Prim2; { Пример разветвляющейся программы }

Var x, t, z: real; { Описание переменных }

Begin {Начало основного блока}

WriteLn(' Введите значение x');

ReadLn(x); { Ввод x }

WriteLn(' Введено x=',x:5:2); { Вывод x }

if x<0.0 then t:= 10 + x { Вычисление t для случая x<0 }

else if x<=2.0 then

t:= 2.0 + x*x { Вычисление t для случая x>=0 и x<=2}

else t:= 2.0 * x; { Вычисление t для случая x > 2 }

z:= (1/4)* sin(x) + t; { Вычисление z }

WriteLn;

WriteLn(' Вычислено z=',z:7:3); { Вывод z }

End. { Конец программы}

6. Вид печати:

Введено x=-0.50

Вычислено z= 9.380

Введено x= 0.00

Вычислено z= 2.000

Введено x= 1.00

Вычислено z= 3.210

Введено x= 2.00

Вычислено z= 6.227

Введено x= 3.00

Вычислено z= 6.035

ПРИМЕР 3. Вычислить при заданных значениях a, b. Напечатать значения a, b,c.

 

Решение.

1. Расчётные формулы:

2. Тесты для проверки программы:

1. Исходные данные: a = 0, b = 0 ==> 0 0 ¿;

a = 0,2, b = 1,1 ==> 0.2 1.1 ¿;

a =2, b =2 ==> 2 2 ¿;

 

 

4. Блок - схема:

 
 

 

 


5. Программа:

Program Prim3; { Пример вычисления минимального значения.

Дано: a,b. Промежуточные значения - x,y,z.

Результат - с. }

Var a, b, x, y, z, c: real; { Описание переменных }

Begin {Начало основного блока}

WriteLn(' Введите a,b:');

ReadLn(a,b); { Ввод a и b}

WriteLn;

WriteLn('a=',a:6:2,' b=',b:6:2);{ Вывод исходных данных}

x:= a*a + b*b; { Вычисление }

y:= x / exp(x); { промежуточных }

z:= Sqrt(x)/4; { величин }

if y<=z then c:= y { Вычисление c при выполнении условия y<=z }

else c:= z; {Вычисление c при выполнении условия y > z}

WriteLn;

WriteLn(' Вычислено c=',c:10:5); {Вывод результата}

End. { Конец программы}

6. Вид печати:

Введено a= 0.00 b= 0.00

Вычислено c= 0.00000

Введено a= 0.20 b= 1.10

Вычислено c= 0.27951

Введено a= 2.00 b= 2.00

Вычислено c= 0.00268

ПРИМЕР 4. Разработать программу, которая вычисляет для целых значений аргумента одну из заданных функций в указанной точке:

а) если x равен –5, -4, -3, -2, -1, 0, то ;

б) если x равен 1, 2 то ;

в) если x равен 3, 4, 5, 6, 7, 8, 9, 10, то ;

г) в остальных случаях .

Напечатать значения x, y.

Указание. Программу составить двумя способами:

а) с помощью условного оператора;

б) с помощью оператора выбора.

Решение.

1. Расчётные формулы:

2. Тесты для проверки программы:

; .

; .

; .

; .

; .

3. Исходные данные: x = -16==> -16¿;

x = -3==> -3¿;

x =2 ==> 2¿;

x =7 ==> 7¿;

x =36 ==> 36¿;

 

4. Блок - схема:

 
 

 


5. Программа:

Program Prim4; { Разветвляющийся вычислительный процесс}

{с помощью условного оператора}

Var x: Integer; { Описание переменных}

y: Real;

Begin

Write('Введите x');

ReadLn(x); { Ввод x }

if (-5<=x) and (x<=0) then y:= sin(x)

Else

if (x=1) or (x=2) then y:= x*x*x

Else

if (3<=x) and (x<=10) then y:= sqr(x)

Else

y:= sqrt(abs(x));

WriteLn;

WriteLn(' x=', x:3,' y=',y:8:5); {Печать значений x, y }

End. { Конец программы}

6. Вид печати:

x= -16 y= 4.00000

x= -3 y=-0.14112

x= 2 y= 8.00000

x= 7 y=49.00000

x= 36 y= 6.00000

Program Prim4; { Разветвляющийся вычислительный процесс}

{с помощью оператора выбора}

Var x: Integer; { Описание переменных }

y: Real;

Begin {Начало основного блока}

WriteLn(' Введите значение x');

ReadLn(x); { Ввод x }

Case x of

-5..0: y:= sin(x);

1, 2: y:= x*x*x;

3..10: y:= sqr(x);

else y:= sqrt(abs(x));

end;

WriteLn;

WriteLn(' x= ', x:3,' y=',y:8:5); {Печать значений x, y }

End. { Конец программы}

6. Вид печати:

x= -16 y= 4.00000

x= -3 y=-0.14112

x= 2 y= 8.00000

x= 7 y=49.00000

x= 36 y= 6.00000

Задание 2. Самостоятельно составьте программы для решения задач, отладбте их. Результаты проверьте в MS EXCEL.

Варианты задания

Задача 1. Составить программу вычисления и печати указанных величин при произвольных значениях исходных данных.

.

 

Задача 2. Составить программу вычисления и печати указанной величины при произвольных значениях исходных величин.

Задача 3. Составить программу для вычисления наибольшего или наименьшего значения из двух значений указанных выражений при произвольных значениях исходных величин, причем каждое выражение вычислять не более одного раза.



Поделиться:




Поиск по сайту

©2015-2024 poisk-ru.ru
Все права принадлежать их авторам. Данный сайт не претендует на авторства, а предоставляет бесплатное использование.
Дата создания страницы: 2017-12-29 Нарушение авторских прав и Нарушение персональных данных


Поиск по сайту: