Тема: Проблема з умовами.
#include <conio.h>
#include <stdio.h>
#include <locale.h>
#include <math.h>
int main()
{
setlocale(LC_ALL, "Ukr");
int i, x=-10;
float y;
for (i=0; i<=20; i++)
{
if ((x == -10) || (x == 0) || (x == 10)) {
printf("Функцiя не визначена!\n");
y=x;
}
if ((x > -3) && (x < 3)){
printf("<x> бiльше -3 i менше 3! y=x!\n");
y=x;
}
if (x < -3){
printf("<x> менше -3! y=(x^2-3x+2)/2! ");
y = ((powf(x, 2) - 3 * x + 2) / 2);
}
else {
printf("<x> бiльше 3! y=x^3!");
y = powf(x, 3);
}
printf("x=%i\t", x);
printf("y=%f\n", y);
x=x+2;
}
getch();
return 0;
}
Дана програма не конкретно опрацьовує умову ((x > -3) && (x < 3)), програма відображає її текст, але виконує обрахування, які знаходяться в блоку else.
Програма повинна працювати по такому алгоритму:
1. Задаємо типи змінних «х», «у», «і».
2. Задаємо цикл з кроком 2 для змінної х=-10.
3. Якщо «х» буде 10 або -10 або 0 то вивести «Функцiя не визначена! та пропустити обрахування значення «y».
4. Якщо «х» більше -3 і менше 3, то вивести саме число «х».
5. Якщо «х» більше 3, то y=x^3.
6. Якщо «х» менше -3, то y=(x^2-3x+2)/2.
7. Відобразити змінні «х», «y».
Як ще зробити, що б при виконанні умови if ((x == -10) || (x == 0) || (x == 10))
, програма виводила лише текст printf("Функцiя не визначена!\n");, і не виконувала ніяких дій, продовжуючи роботу циклу, break - не допоміг.