Форум программистов, компьютерный форум, киберфорум
Наши страницы
C для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.60/5: Рейтинг темы: голосов - 5, средняя оценка - 4.60
f1wa31
0 / 0 / 0
Регистрация: 28.06.2018
Сообщений: 33
1

Вычислить и вывести на экран в виде таблицы значения функции на интервале

30.06.2018, 09:32. Просмотров 877. Ответов 8
Метки нет (Все метки)

Вычислить и вывести на экран в виде таблицы значения функции y(x) на первом интервале [Xн, Xк] с шагом dx (dx, Xн, Xк задаются пользователем).

-ax^2+b при x<0 и b!=0
y=x/(x-c)+5.5 при x>0 и b=0
x/(-c) в остальных случаях


C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
#include <stdio.h>
#include <stdlib.h>
 
main()
 {
        float a,b,c,x,y;
     SetConsoleCP(1251);
    SetConsoleOutputCP(1251);
    printf("Vvedite interval i shag \n");
         scanf("%f %f %f", &a, &b, &c);
while (c<0){
       printf("Shag doljen bit' polojitel'nim\n");
       printf("Vvedite shag zanovo \n");
       scanf("%f",&c);
}
while (a>b){
      printf("Neverno zadan interval\n");
printf("Vvedite zanovo interval \n");
scanf("%f %f", &a, &b);
} 
printf("|    x    |    y    |\n");
x=a;
while(x<=b){
    if (x<0 || b!=0)
        printf("|%9.5f|%9.5f|\n", x, (-a*x*x)+b);
        
    if (x>0 || b==0)
        printf("|%9.5f|%9.5f|\n", x, x/(x-c)+5.5);
        else {
printf("|%9.5f|%9.5f|\n", x, x/(-c)); 
}
x=x+c;
}
 getch();
 return 0;
}
0
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
30.06.2018, 09:32
Ответы с готовыми решениями:

Вычислить и вывести на экран в виде таблицы значения функции F на интервале
Не работает код....Что не так?:( ..... #include &lt;stdio.h&gt; #include &lt;stdlib.h&gt; #include &lt;math.h&gt;...

Вычислить и вывести на экран в виде таблицы значения функции на интервале
Всем привет. Дали лабораторную, а тут непонятно что... Вот задание по лабораторной: Требования к...

Вычислить и вывести на экран в виде таблицы значения функции F на интервале
Задание прикреплено. Программа работает не верно, в чем ошибка? #include &lt;stdio.h&gt; #include...

Вычислить и вывести на экран в виде таблицы значения функции F на заданном интервале
Нет ли у кого исходника такой задачи, а то я в си не очень ) 1. Вычислить и вывести на экран в...

Вычислить и вывести на экран в виде таблицы значения функции f на заданном интервале
вычислить и вывести на экран в виде таблицы значения функции f на интервале от x_0 до x_h с шагом...

8
Adrian_One
12 / 12 / 16
Регистрация: 23.04.2018
Сообщений: 96
30.06.2018, 10:46 2
f1wa31, нужен заголовочный файл
C
1
2
3
4
5
#include <windows.h>
...
SetConsoleCP(1251);
SetConsoleOutputCP(1251);
..
И стоит указать что возвращает main()
C
1
2
3
4
int main(){
...
return 0;
}
Возможно есть смысл использовать
C
1
2
3
4
#include <locale>
...
setlocale(LC_ALL,"Russian");
...
или
C
1
2
3
4
#include <stdlib.h>
...
system("chcp 1251;")
...
0
f1wa31
0 / 0 / 0
Регистрация: 28.06.2018
Сообщений: 33
30.06.2018, 11:04  [ТС] 3
Там получается ошибка в том, что при выводе таблицы, выводит по два значения, хотя там стоят 3 условия, из которых должно выводиться только одно, но выводится 2
0
Adrian_One
12 / 12 / 16
Регистрация: 23.04.2018
Сообщений: 96
30.06.2018, 11:42 4
f1wa31, || - логическое ИЛИ, && - логическое И. Если Я правильно понял постановку задачи, то
C
1
2
3
4
5
while(x<=b){
    if (x<0 && b!=0) printf("|%9.5f|%9.5f|\n", x, (-a*x*x)+b); 
    if (x>0 && b==0) printf("|%9.5f|%9.5f|\n", x, x/(x-c)+5.5);
        else printf("|%9.5f|%9.5f|\n", x, x/(-c)); 
}
0
30.06.2018, 11:42
f1wa31
0 / 0 / 0
Регистрация: 28.06.2018
Сообщений: 33
30.06.2018, 12:23  [ТС] 5
Vvedite interval i shag
1
15
2
| x | y |
| 1.00000| 14.00000|
| 1.00000| 4.50000|
| 3.00000| 6.00000|
| 3.00000| 8.50000|
| 5.00000|-10.00000|
| 5.00000| 7.16667|
| 7.00000|-34.00000|
| 7.00000| 6.90000|
| 9.00000|-66.00000|
| 9.00000| 6.78571|
| 11.00000|-106.00000|
| 11.00000| 6.72222|
| 13.00000|-154.00000|
| 13.00000| 6.68182|
| 15.00000|-210.00000|
| 15.00000| 6.65385|

Я вот именно про это. Получается по 2 одинаковых числа. Почему так?
0
Adrian_One
12 / 12 / 16
Регистрация: 23.04.2018
Сообщений: 96
30.06.2018, 16:21 6
Лучший ответ Сообщение было отмечено f1wa31 как решение

Решение

f1wa31, подойдет?
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
#include <stdio.h>
#include <stdlib.h>
#include <locale.h>
 
void main(){
    float a, b, c, x;
    setlocale(LC_ALL, "Russian");
    printf("Введите начало интервала: ");
    scanf("%f", &a);
    printf("Введите конец интервала: ");
    scanf("%f", &b);
    printf("Введите шаг: ");
    scanf("%f", &c);
    while (c<0) {
        puts("Шаг не может быть отрицательным\nВведите новое значение шага: ");
        scanf("%f", &c);
    }
    while (a>b) {
        puts("Интервал задан неверно\n");
        printf("Введите начало интервала: ");
        scanf("%f", &a);
        printf("Введите конец интервала: ");
        scanf("%f", &b);
    }
    puts("|   x   |   y   |\n");
    x = a;
    while (x <= b) {
        if (x < 0 && b != 0)  printf("|%3.2f|%6.2f|\n", x, (-a * pow(x,2)) + b);
        if (x > 0 && b == 0)  printf("|%3.2f|%6.2f|\n", x, x / (x - c) + 5.5);
        else  printf("|%3.2f|%6.2f|\n", x, x / (-c));
        x += c;
    }
}
1
Изображения
 
f1wa31
0 / 0 / 0
Регистрация: 28.06.2018
Сообщений: 33
30.06.2018, 16:33  [ТС] 7
Просто спасибо! Лучший! Всё работает)
0
Adrian_One
12 / 12 / 16
Регистрация: 23.04.2018
Сообщений: 96
30.06.2018, 16:39 8
f1wa31, хочу еще раз сказать, что || - логическое ИЛИ (должно выполниться либо первое, либо второе условие или оба), && - логическое И (должно выполниться два условия). У Вас даже в постановке задачи написано
y=x/(x-c)+5.5 при x>0 И b=0
-ax^2+b при x<0 И b!=0
1
zss
Модератор
Эксперт С++
8068 / 7211 / 4496
Регистрация: 18.12.2011
Сообщений: 19,076
Завершенные тесты: 1
01.07.2018, 20:21 9
Есть еще одна ошибка
C++
1
2
3
if (x < 0 && b != 0)  printf("|%3.2f|%6.2f|\n", x, (-a * pow(x,2)) + b); // выполнилось условие и напечаталось
        if (x > 0 && b == 0)  printf("|%3.2f|%6.2f|\n", x, x / (x - c) + 5.5); //не выполнилось условие, следовательно:
        else  printf("|%3.2f|%6.2f|\n", x, x / (-c));               // напечаталось еще раз при x < 0 && b != 0
Надо добавить еще одно else
C
1
2
3
4
5
6
if(условие 1)
{  ...} // выполнилось первое условие
else if(условие 2)
{ ... } // выполнилось второе условие
else 
{ ...} // не выполнились ни первое ни второе условия
Добавлено через 9 часов 54 минуты
Кстати, f1wa31, а с какого перепою у Вас xk (конец интервала)
равно b(параметр функции)?

То же самое и для c (это параметр функции, а не шаг dx).
1
01.07.2018, 20:21
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
01.07.2018, 20:21

Вычислить и вывести на экран в виде таблицы значения функции f на заданном интервале
Надо сделать эту задачу через структуру, помогите надо срочно отдать

Вычислить и вывести на экран в виде таблицы значения функции F на интервале от Х[нач] до Х[кон] с шагом dx
помогите, пишет misplaced else я уже перепроверял, но опыта еще маловато #include &lt;stdio.h&gt;...

Вычислить и вывести на экран в виде таблицы значения функции F на интервале от Хнач. до Хкон. с шагом dX
Вычислить и вывести на экран в виде таблицы значения функции F на интервале от Хнач. до Хкон. с...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru