Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
nnina
2 / 2 / 0
Регистрация: 12.11.2011
Сообщений: 69
#1

некорректно работает программа - C++

19.03.2012, 10:34. Просмотров 733. Ответов 10
Метки нет (Все метки)

Написала вот эту программу, она компилируется, но после ввода данных, вылазит ошибка. С чем это может быть связано?

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
// f(x,y) = 3*x-y
 
#include <iostream>
#include <stdio.h>
#include <conio.h>
using namespace std;
 
 
int S (int x)
{return (x+1);
}
 
int f (int x,int y)
{ int t;
    if (y==0) return x;
    else return (t=S(S(S(f(x,y+1)))));
}
 
int main ()
{int x,y;
cout << "Vvedite x,y: ";
cin >> x,y;
cout << f(x,y) << "\n";
system ("pause");
}
0
Миниатюры
некорректно работает программа  
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
19.03.2012, 10:34
Здравствуйте! Я подобрал для вас темы с ответами на вопрос некорректно работает программа (C++):

Некорректно работает программа - C++
При создании c1 все еще правильно. При выполнении операторов уже нет. Почему? #include &lt;iostream&gt; #define _USE_MATH_DEFINES #include...

некорректно работает программа - C++
Программа компилируется но после ввода данных пропадает окно! #include&lt;iostream.h&gt; #include&lt;string.h&gt; #include&lt;math.h&gt; ...

оператор if, некорректно работает программа - C++
#include &lt;iostream.h&gt; #include &lt;math.h&gt; main () { int b; double z, x=0.63, c=1.5, d=2, a=0.37; cout &lt;&lt; &quot;Vvedite znachenie...

Программа запускается, но работает некорректно - C++
Недавно начал изучать С++, перешел к указателям. Написал небольшой код, компилятор почти никаких ошибок не выводит, программа запускается...

Программа по работе с файлом работает некорректно - C++
Помогите найти где ошибка,программа работает со строками из файла, компилятор пишет error C2039: 'clear' : is not a member of...

Некорректно работает программа. Бесконечный цикл - C++
Код запускается, но после ввода данных просто ничего не происходит, не вылетает, не выдает ошибку. Помогите, что не так? Уверен ошибка...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
DPS
32 / 32 / 3
Регистрация: 12.11.2011
Сообщений: 109
Завершенные тесты: 1
19.03.2012, 10:35 #2
C++
1
cin >> x,y;
пишут вот так
C++
1
cin>>x>>y;
0
nnina
2 / 2 / 0
Регистрация: 12.11.2011
Сообщений: 69
19.03.2012, 10:39  [ТС] #3
Здесь не в этом дело, даже если написать и так.
0
DPS
32 / 32 / 3
Регистрация: 12.11.2011
Сообщений: 109
Завершенные тесты: 1
19.03.2012, 10:57 #4
Ну вот посмотрите сами
C++
1
2
3
int S (int x)
{return (x+1);
}
Функция работает только при приеме одного аргумента. Один параметр из функции f у вас возратится, если y==0.
У вас же в программе он не будет равен 0 никогда, т.к. у вас стоит условие его увеличения
C++
1
f(x,y+1)
. Наверное, должно быть как-то так
C++
1
f(x,y-1)
1
nnina
2 / 2 / 0
Регистрация: 12.11.2011
Сообщений: 69
19.03.2012, 11:24  [ТС] #5
Точно, не заметила, спасибо.

Добавлено через 15 минут
Пишу теперь тоже самое, только с циклом for, компилируется, но неверно считает. Подскажите, пожалуйста, что я опять не так делаю.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
// f(x) = 3*x-y
 
#include <iostream>
#include <stdio.h>
#include <conio.h>
using namespace std;
 
int main ()
{ 
    int x, y, t;
    for (int i=0; i<y; i++)
    {
        t=3*x-y;
    }
    printf ("Vvedite x,y: ");
    scanf ("\n %d", &x, &y);
    t = 3*x-y;
    printf ("%d", t);
    system ("pause");
}
0
DPS
32 / 32 / 3
Регистрация: 12.11.2011
Сообщений: 109
Завершенные тесты: 1
19.03.2012, 12:42 #6
nnina, задайте вопрос поконкретнее. Есественно, здесь считаться ничего не будет. У вас переменные объявлены, но не проинициализированы.
Для начала - какая задача стоит?
0
nnina
2 / 2 / 0
Регистрация: 12.11.2011
Сообщений: 69
19.03.2012, 12:48  [ТС] #7
DPS, нужно написать ту же самую функцию f(x) = 3*x-y, только не с помощью рекурсии, как предыдущем варианте, а используя цикл for.
0
Hemull
47 / 47 / 1
Регистрация: 12.03.2012
Сообщений: 108
19.03.2012, 13:45 #8
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include <iostream>
#include <stdio.h>
#include <conio.h>
using namespace std;
 
int main ()
{ 
    int x=0, y=0, t=0;
    for (int i=0; i<y; i++)
    {
        t=3*x-y;
    }
    cin>>x>>y;
    t = 3*x-y;
    cout<<t<<endl;
    system ("pause");
}
Добавлено через 1 минуту
только зачем это

C++
1
2
3
4
for (int i=0; i<y; i++)
    {
        t=3*x-y;
    }
мож я чего-то не догнал?

Добавлено через 2 минуты
здесь же считается значение функции в точке (x,y)?
1
nnina
2 / 2 / 0
Регистрация: 12.11.2011
Сообщений: 69
19.03.2012, 13:47  [ТС] #9
Hemull, это частично рекурсивная функция, её можно программно реализовать с помощью рекурсии, а можно использовать цикл for или while. У нас только началась теория алгоритмов и я пока пытаюсь в этом разобраться.
0
Hemull
47 / 47 / 1
Регистрация: 12.03.2012
Сообщений: 108
19.03.2012, 14:03 #10
Цитата Сообщение от nnina Посмотреть сообщение
Hemull, это частично рекурсивная функция, её можно программно реализовать с помощью рекурсии, а можно использовать цикл for или while. У нас только началась теория алгоритмов и я пока пытаюсь в этом разобраться.
хм, а где ж тут применить рекурсию?имхо обычная линейная функция
0
nnina
2 / 2 / 0
Регистрация: 12.11.2011
Сообщений: 69
19.03.2012, 14:07  [ТС] #11
выше в виде рекурсии
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
19.03.2012, 14:07
Привет! Вот еще темы с ответами:

Программа работает некорректно, в результате выводятся заданные изначально значения - C++
//#include &quot;stdafx.h&quot; #include &quot;stdio.h&quot; #include &quot;cstdio&quot; #include &quot;math.h&quot; #include &quot;stdlib.h&quot; #define N 5 int main() { ...

Не могу понять почему программа работает некорректно (односвязные списки) - C++
Построить однонаправленный список чисел. Затем исключить из него все повторы чисел, оставить каждое число в списке в единственном...

Некорректно работает - C++
Здравствуйте помогите пож-та с задачкой: Сформировать вещественный массив X1(N), N≤20, элементами которого являются случайные числа из...

libncurses некорректно работает - C++
#include &lt;iostream&gt; #include &lt;cmath&gt; #include &lt;ncurses.h&gt; using namespace std; class polar { private: float r; ...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
19.03.2012, 14:07
Ответ Создать тему
Опции темы

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