С Новым годом! Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.76/34: Рейтинг темы: голосов - 34, средняя оценка - 4.76
0 / 0 / 1
Регистрация: 05.02.2014
Сообщений: 141
1

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

06.02.2014, 13:32. Показов 7045. Ответов 7
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Добрый день. Есть проблема. Нужна помощь.
Изучая с++ по самоучителю. Там указанны были две программы.
Первая программа — запрашивает значение Х. Пользователь вводит. Запрашивает значение У. Пользователь вводит. При этом программа проверяет соответствие введенного значения параметрам 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;
    }
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
06.02.2014, 13:32
Ответы с готовыми решениями:

Объединить две функции в одной кнопке
Здравствуйте! Как сделать так, чтобы при нажатии одной кнопки (8.задание) компьютер считал и...

Как связать две рекурсивные функции в одной?
я у меня написаны две рекурсии PrintCatalog и Printtree (как эти два кода связать в одной новой...

Задержка (Остановка) только одной функции в программе
В общем, осваиваю я с++, для чего делаю разнообразные элементарные программы. Создавая очередную...

Хочу объединить две функции на одной странице (в одном файле)
Вопрос в том что у меня невыходит ответ на запрос, программа не выводит результать Код php такой...

7
Котовчанин
942 / 482 / 200
Регистрация: 16.02.2010
Сообщений: 3,338
Записей в блоге: 37
06.02.2014, 13:34 2
Не вникала в код, но почему Вы ничего не передаете в функцию?.. Что она должна считать? Откуда брать данные? Или это так нужно?
0
0 / 0 / 1
Регистрация: 05.02.2014
Сообщений: 141
06.02.2014, 13:53  [ТС] 3
Я не до конца понял Ваш вопрос. Нееее, я то уверен, что Вы спрашиваете что то по делу... просто я совсем ни как не понимаю вопроса.
0
Знаток
156 / 156 / 185
Регистрация: 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
0
0 / 0 / 1
Регистрация: 05.02.2014
Сообщений: 141
06.02.2014, 14:20  [ТС] 5
не могли бы объяснить почему надо убрать?
убрал. процесс вроде бы даже пошел... но
а) как такового пересчета процентов нет, выдает текст ....0%
б)завершается 101% ну и результат суммирования... странно что 101% ведь "for (i=5; i<101; i+=1)"
0
Знаток
156 / 156 / 185
Регистрация: 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);
}
1
0 / 0 / 1
Регистрация: 05.02.2014
Сообщений: 141
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;
    }
0
Знаток
156 / 156 / 185
Регистрация: 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 одно и то же
1
07.02.2014, 23:28
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
07.02.2014, 23:28
Помогаю со студенческими работами здесь

Объединять классы и внешние функции в одной программе плохой тон программирования?
Доброго времени суток! Преподаватель в институте задал определённую задачу, однако не определил...

FIREBIRD, две базы, две таблицы, скопировать данные из одной в другую
В наличии имеются две базы данных Firebird. Часть информации из одной нужно скопировать в другую....

даны две функции в одной программке.одна переводит число в 10 систему, другая в 2 систему счисления.
надо их связать через условие &quot;if n=.. then&quot; так, чтобы при одном конкретном значении (при n=2),...

написать коментарии к программе и исправить ошибку в одной программе
и впрграмме mass нужно найти ошибку

Две таблицы одной базы на одной форме
Здрасти! Есть БД access связанная с делфей. В этой БД есть несколько таблиц. Как мне в одном DBGrid...

можно ли в с++ вызвать переменную из одной функции в другую т.е. мы переменну задали в одной функции а использовали в другой... и как это реализовать?
можно ли в с++ вызвать переменную из одной функции в другую т.е. мы переменну задали в одной...


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

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru