
- •Лекция-2
- •1.8.2. Логические выражения.
- •1.8.3. Приоритет выполнения операций.
- •1.8.4. Пример записи логических выражений.
- •§ 1.9. Оператор и конструкции if.
- •1.9.1. Предварительные понятия и понятия.
- •1.9.2. Условный логический оператор if.
- •1.9.6. Программирование ветвлений.
- •§ 1.10. Метки и комментарии
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}приx0.
Реализующая программа на языке Фортран имеет вид:
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, приx0иy0иz0;
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