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

Необходимо разобрать программу - C++

Восстановить пароль Регистрация
 
MRG_Serejka
10 / 10 / 3
Регистрация: 15.08.2013
Сообщений: 146
Завершенные тесты: 2
19.06.2016, 14:07     Необходимо разобрать программу #1
Добрый день .
встретились такие операторы как"ch+=(char) 32" и "ch-=(char) 32" Объясните принцип работы этих операторов. В моей книге об этом ничего не сказано.

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
                                     
#include <iostream>
using namespace std;
 
int main()
{
char ch;
int x;
cout << "Введите точку для завершения. \n";
 
        do
        {
        cin >> ch;
        if(ch>='a' && ch<='z')
                {
                ch-=(char) 32;
                x++;
                cout << ch;
                }
        else if(ch>='A'&& ch<='Z')
                {
                ch+=(char) 32;
                x++ ;
                cout << ch ;
                }
        }
while(ch!='.');
cout << "Изменение регистра: " << x <<"\n";
return 0;
}
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
19.06.2016, 14:07     Необходимо разобрать программу
Посмотрите здесь:

C++ Необходимо изменить программу в C++
C++ Необходимо написать программу
C++ Необходимо подправить программу
C++ По. разобрать программу с указателями и массивами ( авторы Либерти, Дмитрий )
необходимо разобрать код в с++ C++
C++ Необходимо написать программу в C++
Разобрать программу перевода в различные системы счисления C++
C++ Подскажите пожалуйста подробнее разобрать и понять программу

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
zss
Модератор
Эксперт С++
 Аватар для zss
5943 / 5548 / 1783
Регистрация: 18.12.2011
Сообщений: 14,167
Завершенные тесты: 1
19.06.2016, 14:12     Необходимо разобрать программу #2
Сообщение было отмечено автором темы, экспертом или модератором как ответ
оператор
C++
1
x+=(выражение);
аналогичен
C++
1
x=x+(выражение);
Аналогично все остальные
-=
/=
*=
и т.д.

В Вашем примере коды маленьких букв на 32 больше кодов больших букв.
Можно было не использовать это волшебное число, а написать
C++
1
ch-=('a'-'A');
p.s. учтите, что переменная типа char - Это число со знаком.
Поэтому для преобразования регистра русских букв программу придется малость переделать,
т.к. коды русских букв отрицательные, а буква Ё вообще стоит сбоку-припёку.
1Вирт1
55 / 53 / 5
Регистрация: 25.08.2011
Сообщений: 427
19.06.2016, 14:17     Необходимо разобрать программу #3
подозреваю что ваш код преобразовывает алфавит из нежнего регистра в верхний. ch+=(char) 32 (char) - оператор превидения типа. число 32 будет приведено к типу char и сложено спеременной ch. Суть преобразования алфавита лежин на основе ASCII таблици например ch ='A' = 65 => ch+=(char)32=> ch = (char)65 + char(32) => (char)97 = 'a'
Yandex
Объявления
19.06.2016, 14:17     Необходимо разобрать программу
Ответ Создать тему
Опции темы

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