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

Куча вопросов.. - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ не могу найти ошибку в программе http://www.cyberforum.ru/cpp-beginners/thread317790.html
задача Дана символьная строка. Подсчитать количество букв k в последнем ее слове считает только буквы К в первом слове и выдаёт ошибку, а надо чтобы в последнем считало. вот листинг #include <stdio.h> #include <string.h> #include <iostream.h> #include <conio.h>
C++ Различные трехзначные числа Дано трехзначное число проверить истинность высказывания все цифры в этом числе различны к примеру 287 -Истина. Решить только через бул. Всем спасибо. http://www.cyberforum.ru/cpp-beginners/thread317789.html
C++ Функция сравнения площади
Сравнить площади колец, внутренние радиусы которых равны г1, r2, а внешний — заданному числу R (R > r1 и R>r2).
bool с противоположными значениями C++
Как решить вот эту задачу? Проверить истинность высказывания. Среди трех данных целых чисел есть хотя одна пара взаимно противоположных.Решить с помощью бул без иф всем спасибо заранее к примеру 6,-6,3 -истина
C++ Не работает clrscr() и textcolor() http://www.cyberforum.ru/cpp-beginners/thread317768.html
Подключил файл conio.h и stdio.h начинаю использовать clrscr() и textcolor() Компилятор выдает ошибки. В чем дело?
C++ while составить программу с использованием оператора while: дано натуральное n. Вычислить сумму нечетных чисел s=1+3+5+...+(2n-1) с помощью printf scanf подробнее

Показать сообщение отдельно
ramses
-2 / 0 / 0
Регистрация: 24.04.2011
Сообщений: 55

Куча вопросов.. - C++

11.06.2011, 14:42. Просмотров 619. Ответов 10
Метки (Все метки)

В связи с последовательным изучением С++ и с параллельным при этом отсутствием рабочего подключения к Интернету у меня накопилась куча вопросов, важных и не особо, ответов на оные мой пытливый ум самостоятельно постичь не в состоянии.

0) таблица приоритетов
++i --i (префиксные инкремент и декремент)
- * & ! (унарный минус, получить значение, получить адрес, отрицание)
* / % (умножение, деление, остаток от целочисленного деления)
+ - (сложение, вычитание)
> >= < <= (больше, больше либо равно, меньше, меньше или равно)
== != (равно, не равно)
<< >> (ввод, вывод)
&& || (логическое умножение, логическое сложение)

Замечания, предложения и т.п.


1)
C++
1
2
3
4
5
6
7
int a, b, c;
 
a = 2;
b = 2;
c = 3;
 
cout << (a == b <= c);
результат 0. Если изменить значение переменной а на 1, то результат станет 1. Мои мысли относительно "почему": оператор <= по приоритету выше, чем оператор ==. Тогда результат операции b <= c - истина. Итог же выражения в целом в первом случае есть 0 (другими словами, 2 не равно 1), а во втором - 1 (так-то да, 1 равно 1). Верно рассуждаю?

2)
а.
C++
1
2
3
for (char letter='A'; letter<='z'; letter++) {
cout << letter << " ";
}
б.
C++
1
2
3
for (char letter='А'; letter<='я'; letter++) {
cout << letter << " ";
}
в.
C++
1
2
3
for (char letter='J'; letter<='г'; letter++) {
cout << letter << " ";
}
Почему работают варианты а и б, но при этом не работает вариант в?
З.Ы. В варианте б заглавная буква А - это русская буква.

3)
C++
1
2
3
4
char str[] = "маленькие буквы";
 
for (int i=0; str[i]; i++)
cout << toupper(*(str+i)) << ' ';
Функция toupper, по утверждению г-на Шилдта, преобразует строчный символ в прописной эквивалент. Однако возвращаются какие-то отрицательные целые числа.. К чему бы это? С англицкими - всё путём.
З.Ы. И, что примечательно, если добавить к этим числам 256 и привести к типу char, то получатся оригинальные буквы.

4)
Тот же г-н Шилдт с пеной у рта заставляет использовать прототипы, т.е. такие структуры

C++
1
2
3
4
5
6
7
8
9
int func(int num); //это прототип функции
    
int main() {
    func(1); //вызов функции
}
    
int func(int num) {
    return num; //объявление функции
}
Мне это ужасно не нравится. Для меня приемлимо такое построение

C++
1
2
3
4
5
6
7
int func(int num) {
    return num; //инициализация и объявление функции
}
 
int main() {
    func(1); //вызов функции
}
Поскольку и читается, и смотрится лучше и т.п. Кстати, тоже отношение у меня и к инициализации и заодно объявлению переменных. Надеюсь, стандарт не запрещает это?

5) Кстати, кто внимательно читал третий вопрос, мог заметить, что я индексирвал массив не классическим способом, а с помощью указателей. Автор книги говорил, что так оно круче выглядит, да и работает быстрее. Меня как-то особо крутизна не тревожит, важнее то, что и правда оно так порезвее, м?

6) Как на английский переводится нашенский "указатель"? Просто у меня привычка есть. Хз, мб не хочу казаться быдлокодером, но все управляющие переменные в for'ах у меня называются i (благо, локальные они в пределах цикла, чо), все названия массивов содержут arr, да и вобще стараюсь использовать инглиш для именования переменных и прочей..

Добавлено через 3 минуты
7) Недавно таки научился пользоваться Free Compiler 5.5 от Borland'a. Всё бы хорошо, но он заставляет использовать вместо main() функцию _tmain(). Можетк объяснить почему?
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru