Примеры выполнения задания

1. Составить программу вывода значений функции Y(X), заданной графиком (функция не определена при |Х|>3)

«Практикум по программированию на языке C в среде VS C++»


                          Y  
                           
                                                 
                                               
                                             
    -3 -2 -1     123X  
                          -1                                
                                                         
или, что то же самое, – формулой  
    Z ⋅(1−| X|), если 0 ≤     X     ≤ 1,  
         
Y (X)= Z,         если 1< X   <2,      
   
Z,         если 2 ≤ X   <3,      
                   

в остальных случаях – не, определена,

где Z =-1,если X <0; Z =0,если X =0; Z =1,если X >0

двумя способами:

с помощью минимального числа операторов ifelse, без применения логиче-ских операций (!, &&, ||),

с помощью минимального числа операторов if без else с применением логиче-ских операций.

Вывести с поясняющими текстами значение Х и вычисленные значения функции.

#include "stdafx.h" #include "math.h" char* Ruc(char s[])

{ //Функция перекодирования русских букв.//Используется в операторах вывода.

int i;

static char ss[256];

for (i=0;s[i]!='\0'; i++)

{

if (s[i]>= -64 && s[i] <= -17)ss[i]=(-64+s[i]); //А..п

else if (s[i]>= -16 && s[i] <= 0)ss[i]=(char)(-16+s[i]); //р..я

else if (s[i] == -72)ss[i]=(char)(-15); //ё

else if (s[i] == -88)ss[i]=(char)(-16); //Ё

«Практикум по программированию на языке C в среде VS C++»


else

ss[i]=s[i];

}

ss[i]='\0'; return ss;

}

int _tmain(int argc, _TCHAR* argv[])

{ float x=-2;

float X=-0.3,A,Z,Y;//21.0001printf(Ruc("Введите значение аргумента: ")); scanf("%f",&X);

//Вычисление абсолютного значения Х

A=fabs(X);

//Вычисление Z

if(X>0) Z=1.0;

else if (X==0) Z=0.0;

else Z=-1.0;

// Вычисление Y без применения логических операций if(A>=3)

printf(Ruc("Функция не определена.\n"));

else

{

if (A<=1.0)Y=Z*(1-A);

else if (A<2.0)Y=Z;

else

Y=-Z;

printf("Y = %f\n",Y);

}

// Вычисление Y с применением логических операций if(A>=3)

printf(Ruc("Функция не определена.\n")); if (A<=1)

printf("Y = %f\n",Z*(1-A));

«Практикум по программированию на языке C в среде VS C++»


if (A>1 && A<2)

printf("Y = %f\n",Z); if (A>=2 && A<3)

printf("Y = %f\n",-Z); return 0;

}        
2. Составить программу вычисления Z – номера области Y    
     
(см. рисунок), в которую попадает точка с координатами (X,Y),      
     
двумя способами:     X  
a) с помощью операторов ifelse без применения логиче-    
     
ских операций и сохранением результата в переменной Z1,    
     
b) с помощью операторов ifelse с применением логиче-      
ских операций и сохранением результата в переменной Z2.      
Все области, кроме области с номером 1 с границей в виде дуги окружности радиуса    
R=5, бесконечны. Точку, лежащую на границе областей, можно считать принадлежащей    
любой из них.        
Вывести с поясняющими текстами значения Х, Y и вычисленные значения Z1 и Z2.    

#include "stdafx.h"

int _tmain(int argc, _TCHAR* argv[])

{

const float R=5.0; float X,Y;

int Z1,Z2;

//Ввод координат точки printf("X, Y: "); scanf("%f %f",&X, &Y);

//Определение Z1 - номера области, которой //принадлежит точка, без применения логических операций. //Если точка лежит в нижней полуплоскости

//или на оси X, if(Y<=0.0)//то

Z1=4; //переменной Z1 присвоить значение 4,

«Практикум по программированию на языке C в среде VS C++»


else //иначе (то есть точка лежит в верхней //полуплоскости),

if(Y<=X)//еслиYне большеX,то

Z1=4; //переменнойZ1присвоить значение4,else//иначе(то есть точка вне области4),if(Y<-X)//если точка лежит ниже прямой,

//разделяющей области 2 и 3, то Z1=3; //переменнойZ1присвоить значение3,else//иначе(то есть точка лежит выше или//на прямой, разделяющей области 2 и 3),

if(X<0)//если Х<0,то переменнойZ1=2; //Z1присвоить значение2,

else //иначе (то есть точка лежит в первой //четверти),

if(X*X+Y*Y<= R*R)//если расстояние до точки от//начала координат при X>0 не превосходит R, то Z1=1; //точка лежит в области1,

else//иначе(то есть расстояние до точки//от начала координат превосходит R), //значит

Z1=2; //точка лежит в области2.printf("Z1 = %d\n", Z1);

//Определение номера Z2 - области, //которой принадлежит точка, //с применением логических операций.

if(Y<=0 || Y<=X)//Если точка принадлежит области4,тоZ2=4; //переменнойZ2присвоить значение4,

else//иначе(то есть точка вне области4),

if(Y<-X)//если точка принадлежит области3,тоZ2=3; //переменнойZ2присвоить значение3,else//иначе(то есть точка вне областей3и4),

if(X*X+Y*Y<= R*R&&X>0)//если точка

//принадлежит области 1, то

«Практикум по программированию на языке C в среде VS C++»


Z2=1; //переменнойZ2присвоить значение1,else//иначе(то есть точка вне

//областей 1, 3 и 4),

Z2=2; //переменнойZ2присвоить значение2.printf("Z2 = %d\n", Z2);

return 0;

}


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: