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

две функции в одной программе - C++

Восстановить пароль Регистрация
 
DimaAvatar
0 / 0 / 0
Регистрация: 05.02.2014
Сообщений: 134
06.02.2014, 13:32     две функции в одной программе #1
Добрый день. Есть проблема. Нужна помощь.
Изучая с++ по самоучителю. Там указанны были две программы.
Первая программа — запрашивает значение Х. Пользователь вводит. Запрашивает значение У. Пользователь вводит. При этом программа проверяет соответствие введенного значения параметрам int. В случае ошибки выдает сообщение о таковой и предлагает ввести другое значение. После введения значения У система суммирует их и выдает результат.
Вторая программа имитирует вычислительный процесс — показывая на экране «бегущие проценты».
Обе программы мне удалось набрать и запустить. Был счастлив.
Но вот мне захотелось попробовать... (ну да именно так начинается всякий геморрой по жизни...)
И так. Хочу (хм... почувствовал себя старухой из сказки о золотой рыбке) — хочу слить эти две программы в одну.
Запрашивает значение Х..... далее все по тексту.... вводим значение У и... бежит счетчик процентов имитируя сложные математические процессы при вычислении суммы.... а в итоге — бабах — 100% и... результат сложения.
Получилось конечно же не все.
Результат в скрине. Проценты не бегут. А тупо пишет — 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
#include <iostream>
int count();            //объявляю функцию которая будет "считать проценты"
int i=0;                // имитируя сложный процесс
int j=0;
int main () {
    int x=0;
    int y=0;
    bool flag =false;           //это проверка на предмет верно введенных данных
    do{
        std::cout << "x= ";
        std::cin >> x;
        if (!std::cin.good()) {
            std::cout << "Error!" << std::endl;
            std::cin.clear();
            std::cin.ignore(255, '\n');
        }
        else flag = true;
    }while (!flag);
        flag=false;
        do {
            std::cout << "y= ";
            std::cin >> y;
            if (!std::cin.good()) {
            std::cout << "Error!" << std::endl;
            std::cin.clear();
            std::cin.ignore(255, '\n');
        }
        else flag = true;
        }while (!flag);
        flag=false;
    
 
int count();                                    //здесь я вызываю результат функции - "пересчет процентов"
    std::cout << "\r... "<< i << "%" <<std::endl;
    std::cout << "Summa " << x+y << std::endl;
    
}
 
int count () {                                  //функция "пересчета процентов"
    int i, j;
    std::cout << "....0%" ;
    for (i=5; i<101; i+=1) {
        for (j=0;j<50000000;++j);
            
    }
    return 0;
    }
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Тамика
Котовчанин
 Аватар для Тамика
859 / 439 / 129
Регистрация: 16.02.2010
Сообщений: 2,538
Записей в блоге: 27
06.02.2014, 13:34     две функции в одной программе #2
Не вникала в код, но почему Вы ничего не передаете в функцию?.. Что она должна считать? Откуда брать данные? Или это так нужно?
DimaAvatar
0 / 0 / 0
Регистрация: 05.02.2014
Сообщений: 134
06.02.2014, 13:53  [ТС]     две функции в одной программе #3
Я не до конца понял Ваш вопрос. Нееее, я то уверен, что Вы спрашиваете что то по делу... просто я совсем ни как не понимаю вопроса.
Amandosov
Знаток
156 / 156 / 65
Регистрация: 18.11.2012
Сообщений: 411
Записей в блоге: 2
06.02.2014, 13:57     две функции в одной программе #4
Цитата Сообщение от DimaAvatar Посмотреть сообщение
int count();* * * * * * * * * * * * * * * * * * //здесь я вызываю результат функции - "пересчет процентов"
* * std::cout << "\r... "<< i << "%" <<std::endl;
* * std::cout << "Summa " << x+y << std::endl;
}
перед count надо убрать int
DimaAvatar
0 / 0 / 0
Регистрация: 05.02.2014
Сообщений: 134
06.02.2014, 14:20  [ТС]     две функции в одной программе #5
не могли бы объяснить почему надо убрать?
убрал. процесс вроде бы даже пошел... но
а) как такового пересчета процентов нет, выдает текст ....0%
б)завершается 101% ну и результат суммирования... странно что 101% ведь "for (i=5; i<101; i+=1)"
Amandosov
Знаток
156 / 156 / 65
Регистрация: 18.11.2012
Сообщений: 411
Записей в блоге: 2
06.02.2014, 15:03     две функции в одной программе #6
Цитата Сообщение от DimaAvatar Посмотреть сообщение
int count () {* * * * * * * * * * * * * * * * * //функция "пересчета процентов"
* * int i, j;
* * std::cout << "....0%" ;
* * for (i=5; i<101; i+=1) {
* * * * for (j=0;j<50000000;++j);
}
C++
1
2
3
4
5
6
7
int count () {* * * * * * * * * * * * * * * * * //функция "пересчета процентов"
* * int i, j;
* * std::cout << "....0%" ;
* * for (i=5; i<101; i++) {
    std::cout<<i<<"%"<<std::endl;
* * * * for (j=0;j<50000000;++j);
}
DimaAvatar
0 / 0 / 0
Регистрация: 05.02.2014
Сообщений: 134
06.02.2014, 16:30  [ТС]     две функции в одной программе #7
Спасибо. заработало )))) ееее )
только вопрос... в чем разница в коде?

for (i=5; i<101; i++)

и

for (i=5; i<101; i+=1).

Дело в том, что изначальный вариант
for (i=5; i<101; i+=1) я взял из листинга
C++
1
2
3
4
5
6
7
8
9
10
11
12
#include <iostream>
int main () {
    int i, j;
    std::cout << "....0%";
    for (i=5; i<101; i+=1) {
        for (j=0;j<50000000;++j);
        std::cout << "\r... "<< i << "%";
        
    }
    std::cout << std::endl;
    return 0;
}
и в этом примере одинаково работают оба варианта строчки
for (i=5; i<101; i+=1) и for (i=5; i<101; i++) а в моем "совмещенном" варианте почему то только for (i=5; i<101; i++1)

п.с. ну и еще как оказалось строка
std::cout << "\r... "<< i << "%"; должна быть в функции count а не в main.
на в остальном все хорошо ))) я рад.
итоговый вариант.
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
#include <iostream>
int count();            //объявляю функцию которая будет "считать проценты"
int i=0;                // имитируя сложный процесс
int j=0;
int main () {
    int x=0;
    int y=0;
    bool flag =false;           //это проверка на предмет верно введенных данных
    do{
        std::cout << "x= ";
        std::cin >> x;
        if (!std::cin.good()) {
            std::cout << "Error!" << std::endl;
            std::cin.clear();
            std::cin.ignore(255, '\n');
        }
        else flag = true;
    }while (!flag);
        flag=false;
        do {
            std::cout << "y= ";
            std::cin >> y;
            if (!std::cin.good()) {
            std::cout << "Error!" << std::endl;
            std::cin.clear();
            std::cin.ignore(255, '\n');
        }
        else flag = true;
        }while (!flag);
        flag=false;
    
 
    count();                                    //здесь я вызываю результат функции - "пересчет процентов"
    std::cout << "Summa =  " << x+y << std::endl;
    
}
 
int count () {                                  //функция "пересчета процентов"
    
            std::cout << "....0%";
    for (i=5; i<101; i++) {
        for (j=0;j<50000000;++j);
        std::cout << "\r... "<< i << "%";
    }
    return 0;
    }
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
07.02.2014, 23:28     две функции в одной программе
Еще ссылки по теме:

C++ Замена одной буквы на две
Объединять классы и внешние функции в одной программе плохой тон программирования? C++
C++ Каждая бактерия делится на две в течении одной минуты

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

Или воспользуйтесь поиском по форуму:
Amandosov
Знаток
156 / 156 / 65
Регистрация: 18.11.2012
Сообщений: 411
Записей в блоге: 2
07.02.2014, 23:28     две функции в одной программе #8
Цитата Сообщение от DimaAvatar Посмотреть сообщение
Спасибо. заработало )))) ееее )
только вопрос... в чем разница в коде?
for (i=5; i<101; i++)
и
for (i=5; i<101; i+=1).
разницы нету, и i++, и i+=1, и i=i+1 одно и то же
Yandex
Объявления
07.02.2014, 23:28     две функции в одной программе
Ответ Создать тему
Опции темы

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