Главная Случайная страница Контакты | Мы поможем в написании вашей работы! | ||
|
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;
}
Дата публикования: 2015-03-26; Прочитано: 236 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!