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

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

Войти
Регистрация
Восстановить пароль
 
Mr.Fox
1 / 1 / 0
Регистрация: 27.03.2011
Сообщений: 53
#1

что и зачем следует, а так же как работет - C++

03.05.2011, 13:11. Просмотров 692. Ответов 14
Метки нет (Все метки)

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
int askInteger()
{
        int ret = 0;
        char cnt = getch();
        while(cnt >= '0' && cnt <= '9')
        {
                ret *= 10;
                ret += cnt - '0';
                cout << cnt;
                cnt = getch();
        }
        cout << "   ";
        return ret;
};
Объясните пожалуйста что и зачем следует, а так же как работет..
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
03.05.2011, 13:11
Здравствуйте! Я подобрал для вас темы с ответами на вопрос что и зачем следует, а так же как работет (C++):

сегодня наконец то понял что такое КЛАСС, и ОБЪЕКТ. понято всё, кроме одного - зачем всё это? в смысле, можно же без этого? так зачем жизнь усложнять? - C++
сегодня наконец то понял что такое КЛАСС, и ОБЪЕКТ. понято всё, кроме одного - зачем всё это? в смысле, можно же без этого? так зачем жизнь...

Как сделать так что я мог умножать не на два числа а на 3,4,5 и так далее? - C++
Вот код: #include &lt;iostream&gt; #include &lt;conio.h&gt; using namespace std; int main(){ float a,c; char b; skip: ...

Что в коде ни так? while не работает так, как ожидаю - C++
Написанный код, как я думаю, должен выдавать цифры от 0 до 1000, столбиком. Но выдает начиная от 702 до 1000. Что ни так понимаю, где...

Тип void как возвращаемое значение функции: что он такое, зачем он нужен, где, когда и как его использовать? - C++
Объясните пожалуйста про Void для оооочень далекого человека. Читаю книгу Шилдта, в принципе всё ясно, всё понимаю и пробую, но вот Void -...

Зачем преобразовывать itsVal в int, если эта переменная и так объявлена как тип int - C++
// Оператор преобразования #include &lt;iostream&gt; using namespace std; class Counter { public: Counter(): itsVal(0) {} ...

Как сделать так,что бы при введение,например 0;0 выдавалось сообщение,что точка находится на границе? - C++
#include &lt;iostream&gt; using namespace std; int main(){ double x, y; int R=10 cout &lt;&lt; &quot;Введите x: &quot; &lt;&lt;...

14
ValeryLaptev
Эксперт С++
1046 / 825 / 48
Регистрация: 30.04.2011
Сообщений: 1,659
03.05.2011, 13:20 #2
Это функция ввода с клавиатуры последовательности цифр и получение целого числа
Цитата Сообщение от Mr.Fox Посмотреть сообщение
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
int askInteger()
{
        int ret = 0;                          
        char cnt = getch();                       // -- получить символ с клавиатуры
        while(cnt >= '0' && cnt <= '9')         // -- пока символ = цифра
        {
                ret *= 10;                            // -- то, что было в ret до этого - умножаем на 10  
                ret += cnt - '0';                    // -- добавляем полученную цифру
                cout << cnt;                        // -- выводим цифру - для проверки ?
                cnt = getch();                     // -- получаем следующую цифру
        }
        cout << "   ";                              // -- выводим пробелл
        return ret;                                  // -- возвращаем полученное число
};

Объясните пожалуйста что и зачем следует, а так же как работет..
Проверьте хотя бы на последовательности цифр 3412
1
mimicria
return (true);
1958 / 1095 / 91
Регистрация: 19.04.2011
Сообщений: 2,345
03.05.2011, 13:20 #3
Не знаю, что Вы хотели сделать, но это бред:
C++
1
2
int ret = 0;
ret *= 10;
2
kazak
3051 / 2372 / 160
Регистрация: 11.03.2009
Сообщений: 5,437
Завершенные тесты: 1
03.05.2011, 13:23 #4
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
int askInteger()
{
        int ret = 0;
        char cnt = getch(); // считали символ с клавиатуры
        while(cnt >= '0' && cnt <= '9') // пока считанный символ является цифрой
        {
                ret *= 10; // умножаем ret на 10
                ret += cnt - '0'; // прибавляем к ret число соответствующее цифре
                cout << cnt; // выводим считанный символ
                cnt = getch(); // считываем новый символ с клавиатуры
        }
        cout << "   "; // выводим пробел
        return ret; // возвращаем ret, который содержит число, соответствующее введенной строке
};
1
ValeryLaptev
Эксперт С++
1046 / 825 / 48
Регистрация: 30.04.2011
Сообщений: 1,659
03.05.2011, 13:24 #5
Нет. Это не бред. Подумайте как следует, и прикиньте для второй цифры...
0
kazak
3051 / 2372 / 160
Регистрация: 11.03.2009
Сообщений: 5,437
Завершенные тесты: 1
03.05.2011, 13:24 #6
mimicria, это не бред
0
mansp
18 / 18 / 0
Регистрация: 07.11.2010
Сообщений: 136
03.05.2011, 13:24 #7
Код
int askInteger() //функция которрая возвращает переменную типа инт
{
        int ret = 0; // создаем переменную типа инт и инициализируем нулём
        char cnt = getch(); //считываем символ с консоли ( getch()) и записываем в пеерменную цнт типа чар
        while(cnt >= '0' && cnt <= '9')//цикл пока цнт меньше равнои 9 и больше равно 0
        {
                ret *= 10;// умножаем переменную рет на 10 равносильно ret=ret*10
                ret += cnt - '0';// к переменной рет плюсуем разницу символов (cnt - '0')
                cout << cnt;//выводим на екран переменную цнт
                cnt = getch();// опят считываем с клавиатуры символ и записываем в цнт
        }
        cout << "   ";//выводим пробел на екра
        return ret;//возвращаем переменную рет
};
1
kazak
03.05.2011, 13:25
  #8

Не по теме:

однако, синхронность

0
Mr.Fox
1 / 1 / 0
Регистрация: 27.03.2011
Сообщений: 53
03.05.2011, 13:28  [ТС] #9
большое спасибо господа программисты за помощь
раскрою замысел: мне надо было осуществлять ввод чисел с клавиатуры в одну строку, т.е. число - enter и т.д., а по нажатию enter осуществляется переход на строку вниз, что мне и хотелось избежать. вот...
0
mimicria
return (true);
1958 / 1095 / 91
Регистрация: 19.04.2011
Сообщений: 2,345
03.05.2011, 13:29 #10
Цитата Сообщение от kazak Посмотреть сообщение
mimicria, это не бред
А по-моему бред, ибо:
C++
1
2
3
 int ret;
 cin >> ret;
 return ret;
0
kazak
3051 / 2372 / 160
Регистрация: 11.03.2009
Сообщений: 5,437
Завершенные тесты: 1
03.05.2011, 13:32 #11
Цитата Сообщение от mimicria Посмотреть сообщение
А по-моему бред, ибо:
C++
1
2
3
 int ret;
 cin >> ret;
 return ret;
вы не внимательны, товарищ.
0
ValeryLaptev
Эксперт С++
1046 / 825 / 48
Регистрация: 30.04.2011
Сообщений: 1,659
03.05.2011, 13:33 #12
Не бред.
Задание такое.
0
mimicria
return (true);
1958 / 1095 / 91
Регистрация: 19.04.2011
Сообщений: 2,345
03.05.2011, 13:35 #13
Про работу со второй цифрой я понял. Вся программа бред =) Озвучьте задание дословно
0
ValeryLaptev
Эксперт С++
1046 / 825 / 48
Регистрация: 30.04.2011
Сообщений: 1,659
03.05.2011, 13:39 #14
Цитата Сообщение от mimicria Посмотреть сообщение
Про работу со второй цифрой я понял. Вся программа бред =) Озвучьте задание дословно
Это не к нам. Чел просил откомментить, мы откомментили. Чел все понял, его удовлетворило.
Еще раз: эта функция вводит с клавиатуры последовательность клавиш-цифр и выдает соответствующее целое число (без знака).
Кстати, почти что именно так реализован сам cin...
0
mimicria
return (true);
1958 / 1095 / 91
Регистрация: 19.04.2011
Сообщений: 2,345
03.05.2011, 13:44 #15
Цитата Сообщение от kazak Посмотреть сообщение
вы не внимательны, товарищ.
Точно! Более правильной реализацией будет:
C++
1
2
3
 unsigned int ret=0;
 cin >> ret;
 return ret;
0
03.05.2011, 13:44
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
03.05.2011, 13:44
Привет! Вот еще темы с ответами:

Что следует дальше за C++? - C++
Я вот уже несколько месяцев изучаю C++ самостоятельно дома ради собственного интереса. Както понравилось оно мне однажды складывать разные...

#define sqr(a) (a)*(a) - зачем так много скобок? - C++
#define sqr(a) ((a)*(a)) такие вопросы: 1) Зачем ((a)*(a)) так много скобок? (если можно,объяснить доступным языком) 2) почему,...

Что следует учить после C++? - C++
Здравствуйте. Сейчас изучаю C++, пока вроде все понятно: функции, классы и т.д . Но все это делается в консоли. Мне непонятно: что учить...

Сравнить 2 файла по содержанию. Что следует изучить? - C++
Хочу решить следующую задачу: удалить дубликаты файлов из указанной директории, используя структуру win32_find_data. Имена файлов разные. ...


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

Или воспользуйтесь поиском по форуму:
15
Ответ Создать тему
Опции темы

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