Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.75/4: Рейтинг темы: голосов - 4, средняя оценка - 4.75
arper
16 / 16 / 13
Регистрация: 08.11.2014
Сообщений: 115
#1

Вывести таблицу значений функции

12.12.2014, 18:49. Просмотров 680. Ответов 4
Метки нет (Все метки)

Помогите пожалуйста найти ошибку в коде.
Нужно написать код для табулирования функции.
y= lg(a^2*x+1)при х є (0,2],а-целое. Нужно найти сумму отрицательных значений функции.
Ситуация такова:
При введение пользователем любого значения "а" и любого шага "N", у=0.
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
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
#include "stdafx.h"
#include "windows.h"
#include <math.h>
#include <stdio.h>
#include <conio.h>
 
float Func (float m, float n, float a, float N)
{
float x, dx, y, S=0;
int i, k=1;
x=m;
dx=(n-m)/(N-1);
for (i=1; i<=n; i++)
{
    printf("\n  %9.4f", x);
    y=log10(pow(a,2)*x+1);
    if (y<0)
    {
        S=S+y;
    }
    printf("    %9.4f\n", y);
    x=x+dx;
}
printf("\nСума від'ємних значень y: %f", S);
return y, S;
}
 
void Tabl ()
{
    printf(" __________________________\n");
    printf("|      X      |      Y     |\n");
    printf(" __________________________\n");
}
 
int main()
{
    SetConsoleCP(1251);
    SetConsoleOutputCP(1251);
float m, n, a, x, N;
//clrscr();
printf("Введіть проміжок, на якому визначена функція:\n\nm=");
scanf_s("%f", &m);
printf("n=");
scanf_s("%f", &n);
if (m<0 || n>2)
{
    printf("\nФункція не може бути визначена на заданому проміжку.");
    getch();
    return 0;
}
else
printf("\nВведіть значення a:\n\na=");
scanf_s("%f", &a);
printf("\nВведіть значення N:\n\nN=");
scanf_s("%f", &N);
printf("\nРезультат табулювання графіка функції:\n");
Tabl();
Func(m, n, a, N);
getch();
return 0;
}
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
12.12.2014, 18:49
Ответы с готовыми решениями:

Вывести таблицу значений функции y=f(x) для всех значений x в пределах
Вывести таблицу значений функции y=f(x) для всех значений x в пределах от a до...

Вывести таблицу значений функции
Надо протабулировать функцию:

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

Вывести таблицу значений функции
Вычислить и вывести на экран в виде таблицы значение функции y(x) на интервале...

Вывести таблицу значений функции
в задании было написать код как в книге. всё сделал как описано,но...

4
zss
Модератор
Эксперт С++
7073 / 6611 / 4186
Регистрация: 18.12.2011
Сообщений: 17,432
Завершенные тесты: 1
12.12.2014, 21:36 #2
Замените цикл for на
C++
1
    for (; x<=n; x+=dx)
0
nmcf
6271 / 5577 / 2537
Регистрация: 14.04.2014
Сообщений: 23,468
13.12.2014, 10:20 #3
Не совсем понятно, что такое N. Это количество точек, которые надо в таблицу вывести?
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
float Func (float m, float n, float a, float N)
{
    float x, dx, y, S = 0;
    x = m;
    dx = (n - m) / N;
 
    while (x <= n)
    {
        y = log10(a * a * x + 1);
        printf("|%13.4f|%13.4f|\n", x, y);
        if (y < 0) S += y;
        x += dx;
    }
 
    printf("Сума від'ємних значень y: %f\n", S);
 
    return S;
}
0
arper
16 / 16 / 13
Регистрация: 08.11.2014
Сообщений: 115
13.12.2014, 17:32  [ТС] #4
Что-то ничего не помoгает
N - это количество шагов
0
nmcf
6271 / 5577 / 2537
Регистрация: 14.04.2014
Сообщений: 23,468
13.12.2014, 18:00 #5
Лучший ответ Сообщение было отмечено arper как решение

Решение

Вот, у меня работает:
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
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
#include <cstdlib>
#include <locale>
#include <math.h>
#include <stdio.h>
#include <conio.h>
 
float Func (float m, float n, float a, float N)
{
    float x, dx, y, S = 0;
    x = m;
    dx = (n - m) / N;
 
    while (x <= n)
    {
        y = log10(a * a * x + 1);
        printf("|%13.4f|%12.4f|\n", x, y);
        if (y < 0) S += y;
        x += dx;
    }
 
    printf("Сума від'ємних значень y: %f\n", S);
 
    return S;}
 
void Tabl ()
{
    printf(" __________________________\n");
    printf("|      X      |      Y     |\n");
    printf(" __________________________\n");
}
 
 
int main()
{
    //SetConsoleCP(1251);
    //SetConsoleOutputCP(1251);
    std::locale::global(std::locale(""));
 
    float m, n, a, x, N;
 
    while (true)
    {
        printf("Введіть проміжок, на якому визначена функція:\n\nm=");
        scanf_s("%f", &m);
        printf("n=");
        scanf_s("%f", &n);
        if (m<0 || n>2) printf("\nФункція не може бути визначена на заданому проміжку.");
        else break;
    }
    printf("\nВведіть значення a:\n\na=");
    scanf_s("%f", &a);
    printf("\nВведіть значення N:\n\nN=");
    scanf_s("%f", &N);
    printf("\nРезультат табулювання графіка функції:\n");
    Tabl();
    Func(m, n, a, N);
 
 
 
    
    system("pause");
    return 0;
}
0
Миниатюры
Вывести таблицу значений функции  
13.12.2014, 18:00
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
13.12.2014, 18:00

Вывести таблицу значений функции
Задание: Вычислите значение функции y(x) на отрезке , с шагом изменения \Delta...

Вывести таблицу значений функции
егер на русском если

Вывести таблицу значений функции
Помогите решить. Задача с использованием операторов цикла с...


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

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

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