- Фантастика и фэнтези
- Ироническое фэнтези
- Стимпанк
- Детективная фантастика
- Киберпанк
- Попаданцы
- LitRPG
- Космоопера
- Технофэнтези
- Городская фантастика
- Русское фэнтези
- Юмористическая фантастика
- Космическая фантастика
- Боевое фэнтези
- Эпическая фантастика
- Зарубежная фантастика
- Книги магов
- Мистика
- Разная фантастика
- Разное фэнтези
- Любовное фэнтези
- Романтическая фантастика
- Городское фентези
- Историческая фантастика
- Историческое фэнтези
- Социально-философская фантастика
- Сказочная фантастика
- Иностранное фэнтези
- Романтическое фэнтези
- Ироническая фантастика
- Ужасы и Мистика
- Постапокалипсис
- Героическая фантастика
- Фэнтези
- Научная Фантастика
- Социально-психологическая
- Альтернативная история
- Боевая фантастика
- Разная литература
- Пословицы, поговорки
- Шахматы
- Визуальные искусства
- Фанфик
- Авто и ПДД
- Военное
- Отраслевые издания
- Гиды, путеводители
- Зарубежная образовательная литература
- Военная история
- Цитаты из афоризмов
- Современная литература
- Великолепные истории
- Начинающие авторы
- Современная зарубежная литература
- Боевые искусства
- Изобразительное искусство, фотография
- Кино
- Литература 19 века
- Недвижимость
- Музыка, музыканты
- Готические новеллы
- Истории из жизни
- Культура и искусство
- Спецслужбы
- Зарубежная прикладная литература
- Музыка, танцы
- Подростковая литература
- Прочее
- Военная техника, оружие
- Газеты и журналы
- Периодические издания
- Домоводство, Дом и семья
- Любовные романы
- Экономическая литература
- Научные и научно-популярные книги
- О животных
- Биохимия
- Культурология
- Юриспруденция
- Политика
- Психотерапия
- Языкознание
- Научпоп
- Медицина
- Психология, личное
- Радиотехника
- Филология
- Педагогика
- Образовательная литература
- Деловая литература
- Физика
- Науки: разное
- Химия
- Воспитание детей, педагогика
- Детская психология
- Зарубежная публицистика
- Биология
- Архитектура
- Зарубежная психология
- Науки о космосе
- Социология
- Математика
- География
- Беременность, ожидание детей
- Литературоведение
- Транспорт, военная техника
- Обществознание
- Зоология
- География
- Альтернативная медицина
- Иностранные языки
- Ветеринария
- Рефераты
- Астрология
- Биофизика
- Экология
- История Европы
- Учебники
- Шпаргалки
- Государство и право
- Ботаника
- Религиоведение
- История
- Техническая литература
- Прочая научная литература
- Психология
- Детективы и Триллеры
- Справочная литература
- Проза
- Новелла
- Юмор
- Проза
- Историческая проза
- Русская современная проза
- Советская классическая проза
- Повести
- Очерки
- Эссе
- Рассказы
- Зарубежная современная проза
- Сентиментальная проза
- Зарубежная классика
- Афоризмы
- Эпистолярная проза
- Феерия
- Семейный роман/Семейная сага
- Разное
- Антисоветская литература
- Магический реализм
- Русская классическая проза
- Современная проза
- О войне
- Контркультура
- Классическая проза
- Поэзия, Драматургия
- Детская литература
- Детская фантастика
- Детские остросюжетные
- Детские стихи
- Детские приключения
- Внеклассное чтение
- Учебная литература
- Зарубежные детские книги
- Бизнес
- Загадки
- Книги для подростков
- Школьные учебники
- Детский фольклор
- Книги для дошкольников
- Детские детективы
- Детская познавательная и развивающая литература
- Буквари
- Прочая детская литература
- Сказка
- Детская проза
- Детская образовательная литература
- Юмор
- Документальные книги
- Бизнес
- Внешнеэкономическая деятельность
- Тайм-менеджмент
- Кадровый менеджмент
- О бизнесе популярно
- Управление, подбор персонала
- Бизнес
- Менеджмент и кадры
- Продажи
- Экономика
- Ценные бумаги и инвестиции
- Малый бизнес
- Делопроизводство, офис
- Корпоративная культура, бизнес
- Банковское дело
- Финансы
- Зарубежная деловая литература
- Ораторское искусство / риторика
- Личные финансы
- Интернет-бизнес
- Поиск работы
- Государственное и муниципальное управление
- Бухучет и аудит
- Работа с клиентами
- Менеджмент
- Краткое содержание
- Личная эффективность
- Переговоры
- Приключения
- Старинная литература
- Религия и духовность
- Компьютеры и Интернет
- Блог
Читаем без скачивания Освой самостоятельно за 21 день - Джесс Либерти
Шрифт:
Интервал:
Закладка:
Константы, объявленные с помощью ключевого слова const, используются с контролем за соответствием типа, поэтому компилятор сможет заметить ошибку в случае неправильного определения или применения такой константы. Кроме того, поскольку эти константы остаются в программе после ее обработки препроцессором, они доступны отладчику.
5. Как влияет на работу программы "хорошее" или "плохое" имя переменной? Хорошее имя переменной говорит о назначении этой переменной; плохое не несет никакой информации. Например, MyAge (МойВозраст) и PeopleOnTheBus (Пассажиров в автобусе) — это хорошие имена переменных, а в таких именах, как xjk и prndl, вероятно, мало пользы.
6. Если перечисление (enum) заданно таким образом, то каково значение его члена Blue?
enum COLOR { WHITE, BLACK = 100, RE0, BLUE, GREEN = 300 }; BLUE = 102
7. Какие из следующих имен переменных являются хорошими, плохими и вообще недопустимыми?
а) Age — хорошее имя;
б) !ex — недопустимое имя;
в) R79J — допустимое, но неудачное имя;
г) TotalIncome — хорошее имя;
д) _Invalid — допустимое, но неудачное имя.
Упражнения
1. Какой тип переменной был бы правильным для хранения следующей информации?
• Ваш возраст.
Unsigned short integer
• Площадь вашего заднего двора. Unsigned long integer или unsigned float
• Количество звезд в галактике. Unsigned double
• Средний уровень выпадения осадков за январь месяц. Unsigned short integer
2. Создайте подходящие имена переменных для хранения этой информации.
а) myAge (МойВозраст)
б) backYardArea (ПлощадьЗаднегоДвора)
в) StarsInGalaxy (ЗвездВГалактике)
г) averageRainFall (СреднемесячныйУровеньОсадков)
3. Объявите константу для числа pi, равного 3.14159.
const float pi = 3.14159;
4. Объявите переменную типа float и инициализируйте ее, используя константу pi.
float myPi = PI;
День 4
Контрольные вопросы
1. Что такое выражение?
Это любой набор операторов, возвращаюший значение.
2. Является ли запись x = 5 + 7 выражением? Каково его значение?
Да, является и возвращает значение 12.
3. Каково значение выражения 201 / 4?
50
4. Каково значение выражения 201 % 4?
1
5. Если переменные myAge, а и b имеют тип int, то каковы будут их значения после выполнения выражения:
myAge = 39;
а = myAge++;
b = ++myAge;
myAge: 41, а: 39, b: 41
6. Каково значение выражения 8+2*3?
14
7. Какая разница между выражениями if(x = 3) и if(x == 3)?
Первое выражение присваивает переменной x значение 3 и возвращает TRUE. Второе выражение проверяет, равно ли значение переменной x числу 3, и возвращает TRUE, если значение переменной x равно 3, и FALSE в противном случае.
8. Будут ли следующие выражения возвращать true или false?
а) 0
FALSE
б) 1
TRUE
в) -1
TRUE
г) x = 0
FALSE
д) x == 0 // предположим, что x имеет значение 0
TRUE
Упражнения
1. Напишите один оператор if, который проверяет две целочисленные переменные и присваивает переменной с большим значением меньшее значение, используя только один дополнительный оператор else.
if (x > у) x = у;
else // у > x || у == x
У = x;
2. Проанализируйте следующую программу. Представьте, что вы ввели три значения. Какой результат вы ожидаете получить?
1: #include <iostream.h>
2: int main()
3: {
4: int а, Ь, с;
5: cout << "Please enter three numbersn";
6: cout << "а: ";
7: cin >> а;
8: cout << "nb: ";
9: cin >> b;
10: cout << "nc: ";
11: cin >> с;
12:
13: if (с = (a-b))
14: { cout << "а: ";
15: cout << а;
16: cout << "minus b: ";
17: cout << b;
18: cout << "equals с: ";
19: cout << с << endl; >
20: else
21: cout << "a-b does not equal с: " << endl;
22: return 0;
23: }
3. Введите программу из упражнения 2; скомпилируйте, скомпонуйте и выполните ее. Введите числа 20, 10 и 50. Вы получали результат, который и ожидали? Почему нет?
Введите числа 20, 10, 50. А вот результат:
а: 20 minus
b: 10 equals
с: 10
Неожиданный результат? Дело в том, что в строке 13 выполняется присваивание, а не проверка равенства.
4. Проанализируйте эту программу и спрогнозируйте результат:
1: #include<iostream.h>
2: int main()
3: {
4: int а = 1, b = 1, с;
5: if (с = (a-b))
6: cout << "The value of c is: " << c;
7: return 0;
8: }
5. Введите, скомпилируйте, скомпонуйте и выполните программу из упражнения 4. Каков был результат? Почему?
6. Поскольку в строке 5 переменной с присваивается значение а - b, то значение присваивания выражения а (1) минус b (1) равно 0. Поскольку 0 означает false (ложь), то выходит, что условие проверки не выполняется и поэтому ничего не выводится.
День 5
Контрольные вопросы
1. В чем разница между объявлением прототипа функции и определением функции?
В прототип функции объявляются список формальных параметров и тип возврата функции, а выполнение функции задается ее определением. Символ точки с запятой завершает прототип функции, но не ее определение. Объявление может включать ключевое слово inline и установки значений параметров по умолчанию. В объявлении функции достаточно указать типы параметров, а определение должно содержать их имена.
2. Должны ли имена параметров, указанные в прототипе, определении и вызове функции соответствовать друг другу?
Нет. Все параметры идентифицируются позицией, а не по имени.
3. Если функция не возвращает значение, как следует объявить такую функцию? Для возврата функции следует установить тип void.
4. Если не объявить тип возврата, то какой тип будет принят по умолчанию для возвращаемого значения?
Любая функция, в которой явно не объявляется тип возвращаемого значения, возвращает значение типа int.
5. Что такое локальная переменная?
Это переменная, передаваемая или объявленная внутри некоторого блока (обычно функции). Она видима только в пределах этого блока.
6. Что такое область видимости?
Область видимости определяет "продолжительность жизни" локальных и глобальных переменных и обычно устанавливается набором фигурных скобок.
7. Что такое рекурсия?
В общем случае это способность функции вызывать самое себя.
8. Когда следует использовать глобальные переменные?
Глобальные переменные обычно используются, когда многим функциям нужен доступ к одним и тем же данным. В C++ глобальные переменные используются очень редко. Как только вы научитесь создавать статические переменные класса, вы практически не будете обращаться к глобальным переменным.
9. Что такое перегрузка функции?
Это способность записать несколько функций с одним и тем же именем, но с различным числом или типом параметров.
10. Что такое полиморфизм?
Это возможность вызова одноименных методов для объектов разных, но взаимосвязанных типов с учетом различий в выполнении функции для разных типов. В C++ полиморфизм реализуется путем создания производных классов и виртуальных функций.
Упражнения
1. Запишите прототип для функции с именем Perimeter, которая возвращает значение типа unsigned long int и принимает два параметра, имеющих тип unsigned short int.
unsigned long int Perimeter(unsigned short int, unsigned short int);
2. Запишите определение функции Perimeter согласно объявлению в упражнении 1. Два принимаемых ею параметра представляют длину и ширину прямоугольника, а функция возвращает его периметр (удвоенная длина плюс удвоенная ширина).
unsigned long int Perimeter(unsigned short int length, unsigned short int width)
{
return 2*length + 2*width;
}
3. Жучки: что неправильно в этой функции?
#include <iostream.h>
void myFunc(unsigned short int x);
int main()
{
unsigned short int x, у;
у = myFunc(int);
cout << "x: " << x << " у: " << у << "n";
}
void myFunc(unsigned short int x)
{
return (4*x);
}
Функция объявлена с использованием ключевого слова void, и поэтому она не может возвращать какое-либо значение. Кроме того, при вызове функции myFunc ей следует передать параметр x, а не int.
4. Жучки: что неправильно в этой функции?
#include <iostream.h>
int myFunc(unsigned short int x);
int main()
{
unsigned short int x, у;
у = myFunc(x);
cout << "x: " << X << " у: " << у << "n";
}
int myFunc(unsigned short int x);
{
return (4*x);
}
Эта функция была бы идеальной, если бы не точка с запятой, поставленная в конце заголовка ее определения.
5. Напишите функцию, которая принимает два параметра типа unsigned short int и возвращает результат деления первого параметра на второй. Функция не должна выполнять операцию деления, если второе число равно нулю, но в этом случае она должна возвратить значение -1.