Лекция: Примеры выполнения задания

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

 

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

 

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

с помощью минимального числа операторов 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.0001 printf(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) с помощью операторов if else без применения логиче-    
   
ских операций и сохранением результата в переменной Z1,    
     
b) с помощью операторов if else с применением логиче-      
ских операций и сохранением результата в переменной 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;

 

}

 

еще рефераты
Еще работы по информатике