Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
лек-2.doc
Скачиваний:
36
Добавлен:
03.03.2015
Размер:
223.23 Кб
Скачать

1.9.6. Программирование ветвлений.

Пример 2.9.1. Найти максимальное из двух чисел x, y и заменить минимальное нулем: u=max{x,y}; min{x,y}=0. Напечатать значения x, y и u.

Реализующая программа на языке Фортран имеет вид:

program sample_1_9_1

real x,y,u

print *,’ Vvedite x,y’

read *,x,y

print *,’ Iskhodnie dannie: x=’,x,’ y=’,y

if(x>y) then

u=x

y=0

else

u=y

x=0

end if

print *,’ Rezultati: x=’,x,’ y=’,y,’ u=max(x,y)=’,u

end

Результаты расчета (задано x=1иy=2):

Iskhodnie dannie: x= 1.000000 y= 2.000000

Rezultati: x= 0.0000000E+00 y= 2.000000 u=max(x,y)= 2.000000

Пример 1.9.2.Присвоить переменнойuзначение, равное сумме двух наибольших из трех чиселx,y,z. Напечатать значениеu.

Реализующая программа на языке Фортран имеет вид:

program sample_1_9_2

real x,y,z

print *,’ Vvedite x,y,z’

read *,x,y,z

print *,’ Iskhodnie dannie: x=’,x,’ y=’,y,’ z=’,z

if(x<=y.and.x<=z) u=y+z

if(y<=x.and.y<=z) u=x+z

if(z<=x.and.z<=y) u=x+y

print *,’ Rezultat: u=’,u

end

Результаты расчета (задано x=1,y=2иz=3):

Iskhodnie dannie: x= 1.000000 y= 2.000000 z= 3.000000

Rezultat: u= 5.000000

Пример 1.9.3.Найти и напечататьz=max{x,y}приx<0иz=min{x,y}приx0.

Реализующая программа на языке Фортран имеет вид:

program sample_1_9_3

real x,y,z

print *,’ Vvedite x,y’

read *,x,y

print *,’ Iskhodnie dannie: x=’,x,’ y=’,y

if(x<0) then

if(x>y) then

z=x

else

z=y

end if

else

if(x<y) then

z=x

else

z=y

end if

end if

print *,’ Rezultat: z=’,z

end

Результаты расчета (задано x=1иy=2):

Iskhodnie dannie: x= 1.000000 y= 2.000000

Rezultat: z= 1.000000

Пример 1.9.4.Даны значения трех переменныхx,y,z. Найтиu, если

u=1, приx0иy0иz0;

u=0приx<илиy<0илиz<0(т.е. в противном случае);

Напечатать x,y,z,u.

Реализующая программа на языке Фортран имеет вид:

program sample_1_9_4

real x,y,z

print *,’ Vvedite x,y,z’

read *,x,y,z

print *,’ Iskhodnie dannie: x=’,x,’ y=’,y,’ z=’,z

if(x>=0.and.y>=0.and.z>=0) then

u=1.

else

u=0.

end if

print *,’ Rezultat: u=’,u

end

Результаты расчета (задано x=1,y=2иz=3):

Iskhodnie dannie: x= 1.000000 y= 2.000000 z= 3.000000

Rezultat: u= 1.000000

Пример 1.9.5.Даны три числаx,y,z. Выбрать из них все отрицательные и переменнойuприсвоить значение суммы их квадратов. Если же все три числа неотрицательные, положитьu=0. Напечатать значениеu.

Реализующая программа на языке Фортран имеет вид:

program sample_1_9_5

real x,y,z,u

print *,’ Vvedite x,y,z’

read *,x,y,z

print *,’ Iskhodnie dannie: x=’,x,’ y=’,y,’ z=’,z

u=0.

if(x<0) u=u+x**2

if(y<0) u=u+y**2

if(z<0) u=u+z**2

print *,’ Rezultat: u=’,u

end

Результаты расчета (задано x=1,y=-2иz=-3):

Iskhodnie dannie: x= 1.000000 y= -2.000000 z= -3.000000

Rezultat: u= 13.00000

Пример 1.9.6.Даны три числаx,y,z. Вычислить квадратные корни тех из них, значения которых положительны, и корни кубические тех, значения которых отрицательны. Полученные значения напечатать.

Реализующая программа на языке Фортран имеет вид:

program sample_1_9_6

real x,y,z,xn,yn,zn

print *,’ Vvedite x,y,z’

read *,x,y,z

print *,’ Iskhodnie dannie: x=’,x,’ y=’,y,’ z=’,z

if(x>=0) then

xn=sqrt(x)

else

xn=-(-x)**(1./3.)

end if

if(y>=0) then

yn=sqrt(y)

else

yn=-(-y)**(1./3.)

end if

if(z>=0) then

zn=sqrt(z)

else

zn=-(-z)**(1./3.)

end if

print *,’ Rezultati: xn=’,xn,’ yn=’,yn,’ zn=’,zn

end

Результаты расчета (задано x=4,y=-8иz=-64):

Iskhodnie dannie: x= 4.000000 y= -8.000000 z= -64.00000

Rezultati: xn= 2.000000 yn= -2.000000 zn= -4.000000

Пример 1.9.7. Даны два числаxиy. Вычислить

u=max{x,y,x+y,xy}

Реализующая программа на языке Фортран имеет вид:

program sample_1_9_7

real x,y,u

print *,’ Vvedite x,y’

read *,x,y

print *,’ Iskhodnie dannie: x=’,x,’ y=’,y

a=x+y; b=x*y

if(x>y.and.x>a.and.x>b) then

u=x

else if(y>a.and.y>b) then

u=y

else if(a>b) then

u=a

else

u=b

end if

print *,’ Rezultati: max{x,y,x+y,xy}=’,u

end

Результаты расчета (задано x=2,y=4):

Iskhodnie dannie: x= 2.000000 y= 4.000000

Rezultati: max{x,y,x+y,xy}= 8.000000

Пример 1.9.8.Вычислить значенияи(рис. 1.9.1):

,,;

,,.

Рис. 1.9.1.Исходные данные к задаче 1.10.8.

Составим логическое выражение – условие принадлежности точки с координатами иобласти(полагаем, что все точки границы входят в область):

.

Запись логического выражения на Фортране имеет вид:

abs(x)<=1.and.y>=-2.and.y<=(1-abs(x))

Реализующая программа на языке Фортран имеет вид:

program sample_1_10_8

real x,y,u,v

logical d

print *,’ Vvedite x,y’

read *,x,y

print *,’ Iskhodnie dannie: x=’,x,’ y=’,y

d=abs(x)<=1.and.y>=-2.and.y<=(1-abs(x))

if(d) then

u=2*x; v=x+y

else

u=3*x; v=0.

end if

print *,’ Znachenie logicheskogo virazheniya d=’,d

print *,’ Rezultati: u=’,u,’ v=’,v

end

Результаты расчета (задано x=0.5,y=-0.5):

Iskhodnie dannie: x= 0.5000000 y= -0.5000000

Znachenie logicheskogo virazheniya d= T

Rezultati: x= 1.0000000 y= 0.0000000

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]