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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 9, средняя оценка - 4.78
cin_cout
26 / 26 / 7
Регистрация: 06.10.2012
Сообщений: 119
#1

Счетчик операций в цикле do-while - C++

12.10.2012, 23:52. Просмотров 1220. Ответов 11
Метки нет (Все метки)

Счетчик операций i выдает нереально завышенные цифры: всего 4 преобразования - как будто 15 операций в цикле произошло. Как его на работу славную настроить, на дела хорошие?

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
#include <iostream>
#include "std_lib_facilities.h"
 
int main () {
    
    char temp_letter;
    char small = 'a';
    char capital = 'A';
 
    int i=0, sum=0;
    do { 
        cout << " Введите любую букву: " << '\n';
        cin >> temp_letter;
        
        if ((temp_letter >='a')&&(temp_letter<='z')){
            small=temp_letter;
            capital=small-32;
        cout << " Строчная в заглавную: " << capital << '\n';
        }
        
        else if ((temp_letter >='A')&&(temp_letter<='Z')){
            capital=temp_letter;
            small=capital+32;
        
        cout << " Заглавная в строчную: " << small << '\n';
        }
        else void();
        ++i;
        sum+=i;
    } while (temp_letter!='.'); 
    cout << " Счетчик операций: " << sum << '\n'; // выдает ошибочное значение 
    
 return 0;
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Vidok
37 / 37 / 2
Регистрация: 03.09.2011
Сообщений: 279
12.10.2012, 23:56     Счетчик операций в цикле do-while #2
Проверьте счетчик брейкпоинтом, и кстати, не по теме, std_lib_facilities включает в себя iostream
John Prick
758 / 691 / 124
Регистрация: 27.07.2012
Сообщений: 1,980
Завершенные тесты: 3
12.10.2012, 23:59     Счетчик операций в цикле do-while #3
C++
1
2
3
4
5
//....
        ++i;
        sum+=i;
// ...
    cout << " Счетчик операций: " << sum << '\n'; // выдает ошибочное значение
Что-то мне подсказывает, что счётчик операций не sum, а i. sum же в алгебраической прогрессии увеличивается каждый цикл.
castaway
13.10.2012, 00:02
  #4

Не по теме:

Интересная конструкция. Надо запомнить.

Цитата Сообщение от cin_cout Посмотреть сообщение
C
1
else void();

Vidok
37 / 37 / 2
Регистрация: 03.09.2011
Сообщений: 279
13.10.2012, 00:02     Счетчик операций в цикле do-while #5
Да,John Prick прав, вы делаете ++i и потом sum=sum+i, то есть к сумме вы каждый раз прибавляете ту же сумму большую на 1. Вы переменную sum вообще уберите, она не нужна, вам достаточно i
cin_cout
26 / 26 / 7
Регистрация: 06.10.2012
Сообщений: 119
13.10.2012, 00:06  [ТС]     Счетчик операций в цикле do-while #6
Цитата Сообщение от lazybiz Посмотреть сообщение

Не по теме:

Интересная конструкция. Надо запомнить.

Инновация?
castaway
Эксперт С++
4873 / 3012 / 370
Регистрация: 10.11.2010
Сообщений: 11,061
Записей в блоге: 10
Завершенные тесты: 1
13.10.2012, 00:08     Счетчик операций в цикле do-while #7
Цитата Сообщение от cin_cout Посмотреть сообщение
Инновация?
Обфускация.
Vidok
37 / 37 / 2
Регистрация: 03.09.2011
Сообщений: 279
13.10.2012, 00:09     Счетчик операций в цикле do-while #8
Кстати да, что делает else void() ? Ничего?
cin_cout
26 / 26 / 7
Регистрация: 06.10.2012
Сообщений: 119
13.10.2012, 00:15  [ТС]     Счетчик операций в цикле do-while #9
Цитата Сообщение от Vidok Посмотреть сообщение
Кстати да, что делает else void() ? Ничего?
Ничего.
Vidok
37 / 37 / 2
Регистрация: 03.09.2011
Сообщений: 279
13.10.2012, 00:19     Счетчик операций в цикле do-while #10
Тогда уберите эту строку, она вам не нужна. Или обработайте нормально третий вариант ввода, то есть если было введено не то и не то, если у вас имеется третий вариант)
cin_cout
26 / 26 / 7
Регистрация: 06.10.2012
Сообщений: 119
13.10.2012, 00:26  [ТС]     Счетчик операций в цикле do-while #11
Цитата Сообщение от lazybiz Посмотреть сообщение
Обфускация.

Не по теме:

Не на ту я дорожку встал...

MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
13.10.2012, 00:45     Счетчик операций в цикле do-while
Еще ссылки по теме:

C++ Не определен счетчик в цикле for
C++ Не работает счетчик операций
Объявляется ли каждую итерацию переменная-счетчик в цикле for? C++
Счетчик в цикле for C++
C++ Табуляция функции в цикле while-не обновляется счетчик

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

Или воспользуйтесь поиском по форуму:
ValeryS
Модератор
6482 / 4948 / 455
Регистрация: 14.02.2011
Сообщений: 16,389
13.10.2012, 00:45     Счетчик операций в цикле do-while #12
Цитата Сообщение от cin_cout Посмотреть сообщение
cin >> temp_letter;
if ((temp_letter >='a')&&(temp_letter<='z')){
small=temp_letter;
capital=small-32;
cout << " Строчная в заглавную: " << capital << '\n';
}
else if ((temp_letter >='A')&&(temp_letter<='Z')){
capital=temp_letter;
small=capital+32;
cout << " Заглавная в строчную: " << small << '\n';
я правильно понял что ты Из БОЛЬШИХ маленкие буквы делаешь и наоборот??
тогда гораздо проще
C++
1
 capital=temp_letter^0x20;
а если с проверкой что только буквы
то можно так
C++
1
2
3
4
5
6
7
8
9
if ((temp_letter >='A')&&(temp_letter<='z')&&(temp_letter!=0x60))
{
if(temp_letter&0x20==0)
   cout << " Заглавная в строчную: "; 
else
 cout << " Строчная в заглавную: " ;
 letter=temp_letter^0x20;
  cout << letter << '\n';
 }
ибо различаются они( для латинского алфавита) 6 битом
Yandex
Объявления
13.10.2012, 00:45     Счетчик операций в цикле do-while
Ответ Создать тему
Опции темы

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