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

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

Войти
Регистрация
Восстановить пароль
 
DimaAvatar
0 / 0 / 0
Регистрация: 05.02.2014
Сообщений: 141
#1

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

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

Добрый день. Есть проблема. Нужна помощь.
Изучая с++ по самоучителю. Там указанны были две программы.
Первая программа — запрашивает значение Х. Пользователь вводит. Запрашивает значение У. Пользователь вводит. При этом программа проверяет соответствие введенного значения параметрам 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
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
06.02.2014, 13:32
Здравствуйте! Я подобрал для вас темы с ответами на вопрос две функции в одной программе (C++):

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

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

Две программы в одной - C++
Здравствуйте. Я хотел бы сделать программу, которая - во-первых, запускается при включении, проверяет данные и, если они не изменились,...

Замена одной буквы на две - C++
Написать программу, которая заменяет в указанном (введенном с клавиатуры) слове все буквы &quot;a&quot; на сочетание &quot;ky&quot; Вот написал такое, но...

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

Два потока в одной программе - C++
Две фунцкии одной программы оформить как две функции потока. После ввода значений запускаются два требуемых потока, а потом на экран...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Тамика
Котовчанин
870 / 450 / 143
Регистрация: 16.02.2010
Сообщений: 2,978
Записей в блоге: 27
06.02.2014, 13:34 #2
Не вникала в код, но почему Вы ничего не передаете в функцию?.. Что она должна считать? Откуда брать данные? Или это так нужно?
0
DimaAvatar
0 / 0 / 0
Регистрация: 05.02.2014
Сообщений: 141
06.02.2014, 13:53  [ТС] #3
Я не до конца понял Ваш вопрос. Нееее, я то уверен, что Вы спрашиваете что то по делу... просто я совсем ни как не понимаю вопроса.
0
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
0
DimaAvatar
0 / 0 / 0
Регистрация: 05.02.2014
Сообщений: 141
06.02.2014, 14:20  [ТС] #5
не могли бы объяснить почему надо убрать?
убрал. процесс вроде бы даже пошел... но
а) как такового пересчета процентов нет, выдает текст ....0%
б)завершается 101% ну и результат суммирования... странно что 101% ведь "for (i=5; i<101; i+=1)"
0
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);
}
1
DimaAvatar
0 / 0 / 0
Регистрация: 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
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 одно и то же
1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
07.02.2014, 23:28
Привет! Вот еще темы с ответами:

совмещение ооп и фп в одной программе - C++
Суть такая. нужно не прибегая к классам сделать функции с одним названием но разным исполнением, в зависимости от типа числа чтобы...

Написать две пользовательские функции, эквивалентные стандартной функции strlen - C++
Написать программу, содержащую две пользовательские функции определения длины строки, эквивалентные стандартной функции strlen. Первая из...

Каждая бактерия делится на две в течении одной минуты - C++
Помогите пожалуйста в задаче: Каждая бактерия делится на две в течении одной минуты. В начальный момент имеется A бактерий. Сколько...

Определить лежат ли две точки в одной координатной четверти - C++
Даны координаты двух точек на плоскости, требуется определить, лежат ли они в одной координатной четверти или нет (все координаты отличны...


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

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

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