Главная | Обратная связь | Поможем написать вашу работу!
МегаЛекции

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




 

Пример 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 

 

 

Метки и комментарии

 

В свободном формате метка является целой буквальной (неименованной) константой без знака, она отделяется от помеченной конструкции одним или несколькими пробелами. Метки нельзя дублировать в пределах главной программы или одной подпрограммы, хотя многократные ссылки на одну и ту же метку допустимы.

В фиксированном формате строка комментария обозначается буквой латинской (а не русской) буквой С в первой позиции строки.

 В свободном формате такие комментарии не допускаются. Здесь комментарий начинается с символа «!», который может находиться в любом месте строки.

Строки комментария не продолжаются, поскольку любой символ в строке комментария, в том числе и символ продолжения, считается частью комментария и здесь утрачивает свои служебные функции.

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

 

Поделиться:





Воспользуйтесь поиском по сайту:



©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...