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

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

Войти
Регистрация
Восстановить пароль
 
Konark
4 / 4 / 2
Регистрация: 20.01.2012
Сообщений: 198
#1

Как вернуть обратно к switch - C++

21.05.2014, 15:29. Просмотров 417. Ответов 5
Метки нет (Все метки)

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
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
// ConsoleApplication13.cpp: определяет точку входа для консольного приложения.
//
 
#include "stdafx.h"
#include <iostream>
#include <Windows.h>
 
using namespace std;
 
void nod(int x, int y);
int total(int a, int b);
int total(int a, int b, int c);
void zad1();
void zad3();
int _tmain(int argc, _TCHAR* argv[])
{
    SetConsoleCP(1251);
    SetConsoleOutputCP(1251);
    int viborzad;
    cout << "Выберите номер задания ( 1 или 3) для просмотра: ";
    cin >> viborzad;
        switch (viborzad)
        {
        case 1:
            zad1();
            cin >> drugoe;
            break;
        case 3:
            zad3();
            break;
        default: cout << "Вы ввели не правильный номер задания";
            break;
        }
    system("pause");
    return 0;
}
 
void nod(int x, int y){
    do
    {
        if (x>y) x = x%y;
        else y = y%x;
    } while (x != 0 && y != 0);
    cout << "Наибольший общий делитель: " << x + y << endl;
}
 
int total(int a, int b) {
    return a*b;
}
 
int total(int a, int b, int c) {
    return a*b*c;
}
 
void zad1() {
    int x, y;
    cout << "Вариант 12.    Визначте функцію, яка повертає найбільший загальний дільник n і m." << endl << "Знайти найбільший загальний дільник двох чисел у діапазоні від N1 до N2, заданому користувачем, використовуючи  створену функцію." << endl;
    cout << "Введите первое число: ";
    cin >> x;
    cout << "Введите второе число: ";
    cin >> y;
    nod(x, y);
}
 
void zad3() {
    int a, b, c, vibor;
    cout << "Вариант 12.    Визначте функцію, яка шукає добуток двох або трьох чисел (числа  цілі)." << endl;
    cout << "Введите А: ";
    cin >> a;
    cout << "Введите B: ";
    cin >> b;
    cout << "Введите B: ";
    cin >> c;
    vibor = total(a, b);
    cout << vibor << endl;
    vibor = total(a, b, c);
    cout << vibor << endl;
}
Как сделать так, что бы после выполнения каждой из функций, я мог ввернуть обратно к switch ( то есть, вводу задания ). Например, просмотрел 1 задание, и теперь после того как оно мне показало, хочу посмотреть 3, не перезапуская при этом программы.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
21.05.2014, 15:29     Как вернуть обратно к switch
Посмотрите здесь:

Как сделать, чтобы switch работал как цикл? - C++
Как сделать что бы switch работал как цикл ? Ну то есть: switch (n) case 1:break; {newfile1 (); } case 2:break;{newfile2 (); ...

Как сделать обратно - C++
вот я сделал эти действия с числом Obj_ *= Obj_; Obj_ &gt;&gt;= 11; return Obj_ % 1024; как сделать обратные...

Как вернуться обратно в выбор - C++
Есть код: #include &lt;iostream&gt; #include &lt;windows.h&gt; #include &lt;conio.h&gt; #include &lt;fstream&gt; using namespace std; enum class Keys ...

как вернуть массив и как неявно получить атрибут объекта - C++
хочу спросить как из функции вернуть массив int g(void){ int a; //как-то его заполнить return a; } массив...

Как переделать через switch? - C++
Задача 2. Вывести на экран сообщение в зависимости от введенного значения оценки (по десятибалльной системе), например: оценки 1, 2 -...

Как работает оператор switch? - C++
Shape* generator() { switch(rand() % 3) { case 0: return new Triangle; case 1: return new Rectangle; case 2: return new...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
-=ЮрА=-
Заблокирован
Автор FAQ
21.05.2014, 15:33     Как вернуть обратно к switch #2
Цитата Сообщение от Konark Посмотреть сообщение
ак сделать так, что бы после выполнения каждой из функций, я мог ввернуть обратно к switch ( то есть, вводу задания ). Например, просмотрел 1 задание, и теперь после того как оно мне показало, хочу посмотреть 3, не перезапуская при этом программы.
- пропиши свитч в цикле - элементарно же
Prgrm101
3 / 3 / 3
Регистрация: 08.04.2014
Сообщений: 20
21.05.2014, 15:36     Как вернуть обратно к switch #3
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
int _tmain(int argc, _TCHAR* argv[])
{
    SetConsoleCP(1251);
    SetConsoleOutputCP(1251);
    int viborzad;
    do{    
    cout << "Выберите номер задания ( 1 или 3) для просмотра выход -4: ";
    cin >> viborzad;
        switch (viborzad)
        {
        case 1:
            zad1();
            cin >> drugoe;
            break;
        case 3:
            zad3();
            break;
        case 4:break;
        default: cout << "Вы ввели не правильный номер задания";
            break;
        }
    while(1);
    return 0;
}
moomot
9 / 9 / 3
Регистрация: 12.07.2013
Сообщений: 57
21.05.2014, 15:54     Как вернуть обратно к switch #4
C++
1
2
3
4
while(true) 
{
...
}
Konark
4 / 4 / 2
Регистрация: 20.01.2012
Сообщений: 198
21.05.2014, 20:39  [ТС]     Как вернуть обратно к switch #5
Через цикл не интересно, вот что я ожидал мне посоветуют ( рекурсию) :
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
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
#include "stdafx.h"
#include <iostream>
#include <Windows.h>
#include <string>
 
 
using namespace std;
 
void nod(int x, int y);
int total(int a, int b);
int total(int a, int b, int c);
void zad1();
void zad3();
void viborzadan();
int _tmain(int argc, _TCHAR* argv[])
{
    SetConsoleCP(1251);
    SetConsoleOutputCP(1251);
    viborzadan();
    return 0;
}
 
void viborzadan() {
    int viborzad;
    string m;
    cout << "Выберите номер задания ( 1 или 3) для просмотра: ";
    cin >> viborzad;
    cout << endl;
    switch (viborzad)
    {
    case 1:
        zad1();
        break;
    case 3:
        zad3();
        break;
    default: cout << "Вы ввели не правильный номер задания, введите номер еще раз.";
        break;
    }
    cout << "\nХотите посмотреть другое задание? ";
    cin >> m;
    if (m == "да" || m == "Да" || m == "дА" || m == "ДА" || m == "lf" || m == "Lf" || m == "Так" || m == "ТАК" || m == "так") {
        viborzadan();
    }
    else {
        system("pause");
    }
}
void nod(int x, int y){
    do
    {
        if (x>y) x = x%y;
        else y = y%x;
    } while (x != 0 && y != 0);
    cout << "Наибольший общий делитель: " << x + y << endl;
}
 
int total(int a, int b) {
    return a*b;
}
 
int total(int a, int b, int c) {
    return a*b*c;
}
 
void zad1() {
    int x, y;
    cout << "Вариант 12.    Визначте функцію, яка повертає найбільший загальний дільник n і m." << endl << "Знайти найбільший загальний дільник двох чисел у діапазоні від N1 до N2, заданому користувачем, використовуючи  створену функцію." << endl;
    cout << "Введите первое число: ";
    cin >> x;
    cout << "Введите второе число: ";
    cin >> y;
    nod(x, y);
}
 
void zad3() {
    int a, b, c, vibor;
    cout << "Вариант 12.    Визначте функцію, яка шукає добуток двох або трьох чисел (числа  цілі)." << endl;
    cout << "Введите А: ";
    cin >> a;
    cout << "Введите B: ";
    cin >> b;
    cout << "Введите B: ";
    cin >> c;
    vibor = total(a, b);
    cout << vibor << endl;
    vibor = total(a, b, c);
    cout << vibor << endl;
}
Посидел, сам разобрался.
Всем спасибо
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
21.05.2014, 20:47     Как вернуть обратно к switch
Еще ссылки по теме:

как зациклить switch, чтобы после того как я допустим ввожу f и он считает циклом for, потом снова просил введите символ - C++
#include &lt;iostream&gt; #include &lt;iomanip&gt; #include &lt;math.h&gt; using namespace std; int main() { float x=0.2,y,s=0; int...

Как преобразовать string в double и обратно? - C++
нашел функцию atof но не хочет запускаться. сам начеркал функцию для перевода в double но обратно чет даже идей нет.

Как перевести TCHAR в CHAR и обратно - C++
Как преобразовать TCHAR в CHAR и обратно? Функцию какую-нибудь подскажите, а то с числами обход нашёл через int, а вот с символами никак

Как преобразовать время в строку и обратно - C++
Помогите с алгоритмом: SYSTEMTIME(или FileTime) в строку с учетом региональных установок, а потом на основе данной строки обратно получить...

Как перевести строку в hex и обратно? - C++
Немогу найти в гугле функцию какбы перевести строку в hex и обратно, мб у кого завалялась?

Как в switch проверить элемент строки? - C++
Здравствуйте, уважаемые программисты! Не могли бы вы мне помочь? Я попытался проверить элемент строки в switch. В смысле switch (s). Но...


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

Или воспользуйтесь поиском по форуму:
-=ЮрА=-
Заблокирован
Автор FAQ
21.05.2014, 20:47     Как вернуть обратно к switch #6
Цитата Сообщение от Konark Посмотреть сообщение
if (m == "да" || m == "Да" || m == "дА" || m == "ДА" || m == "lf" || m == "Lf" || m == "Так" || m == "ТАК" || m == "так") {
* * * * viborzadan();
- рекурсивный вызов, учитывая что стек имеет ограниченный размер(особенно для МакОС), рано или поздно таким образом(рекурсией) приложение его переполнит и рухнет. Повторюсь оно ясно, что костылей можно много придумать либо сделать чтобы какое то время работало, НО для многократного вызова следует использовать цикл.
Yandex
Объявления
21.05.2014, 20:47     Как вернуть обратно к switch
Ответ Создать тему
Опции темы

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