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

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

Восстановить пароль Регистрация
 
nnina
 Аватар для nnina
2 / 2 / 0
Регистрация: 12.11.2011
Сообщений: 69
19.03.2012, 10:34     некорректно работает программа #1
Написала вот эту программу, она компилируется, но после ввода данных, вылазит ошибка. С чем это может быть связано?

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");
}
Миниатюры
некорректно работает программа  
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
DPS
 Аватар для DPS
32 / 32 / 3
Регистрация: 12.11.2011
Сообщений: 107
Завершенные тесты: 1
19.03.2012, 10:35     некорректно работает программа #2
C++
1
cin >> x,y;
пишут вот так
C++
1
cin>>x>>y;
nnina
 Аватар для nnina
2 / 2 / 0
Регистрация: 12.11.2011
Сообщений: 69
19.03.2012, 10:39  [ТС]     некорректно работает программа #3
Здесь не в этом дело, даже если написать и так.
DPS
 Аватар для DPS
32 / 32 / 3
Регистрация: 12.11.2011
Сообщений: 107
Завершенные тесты: 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)
nnina
 Аватар для 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");
}
DPS
 Аватар для DPS
32 / 32 / 3
Регистрация: 12.11.2011
Сообщений: 107
Завершенные тесты: 1
19.03.2012, 12:42     некорректно работает программа #6
nnina, задайте вопрос поконкретнее. Есественно, здесь считаться ничего не будет. У вас переменные объявлены, но не проинициализированы.
Для начала - какая задача стоит?
nnina
 Аватар для nnina
2 / 2 / 0
Регистрация: 12.11.2011
Сообщений: 69
19.03.2012, 12:48  [ТС]     некорректно работает программа #7
DPS, нужно написать ту же самую функцию f(x) = 3*x-y, только не с помощью рекурсии, как предыдущем варианте, а используя цикл for.
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)?
nnina
 Аватар для nnina
2 / 2 / 0
Регистрация: 12.11.2011
Сообщений: 69
19.03.2012, 13:47  [ТС]     некорректно работает программа #9
Hemull, это частично рекурсивная функция, её можно программно реализовать с помощью рекурсии, а можно использовать цикл for или while. У нас только началась теория алгоритмов и я пока пытаюсь в этом разобраться.
Hemull
47 / 47 / 1
Регистрация: 12.03.2012
Сообщений: 108
19.03.2012, 14:03     некорректно работает программа #10
Цитата Сообщение от nnina Посмотреть сообщение
Hemull, это частично рекурсивная функция, её можно программно реализовать с помощью рекурсии, а можно использовать цикл for или while. У нас только началась теория алгоритмов и я пока пытаюсь в этом разобраться.
хм, а где ж тут применить рекурсию?имхо обычная линейная функция
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
19.03.2012, 14:07     некорректно работает программа
Еще ссылки по теме:

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

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

Или воспользуйтесь поиском по форуму:
nnina
 Аватар для nnina
2 / 2 / 0
Регистрация: 12.11.2011
Сообщений: 69
19.03.2012, 14:07  [ТС]     некорректно работает программа #11
выше в виде рекурсии
Yandex
Объявления
19.03.2012, 14:07     некорректно работает программа
Ответ Создать тему
Опции темы

Текущее время: 09:06. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru