Лекция основы си++ 7




НазваниеЛекция основы си++ 7
страница4/18
Дата публикации08.06.2014
Размер1.94 Mb.
ТипЛекция
literature-edu.ru > Курсовая работа > Лекция
1   2   3   4   5   6   7   8   9   ...   18

5. Присваивание и выражения

5.1 Краткая форма записи операторов присваивания

В программах часто встречаются операторы присваивания, в которых справа стоит выражение, модифицирующее текущее значение переменной, например:

number = number + 1;

Переменным часто присваиваются значения, вычисленные на основе их старых значений. Поэтому в Си++ была введена краткая форма записи для подобных опера­торов присваивания. Любую из операций "+" (сложение), "-" (вычитание), "*" (умно­жение), "/" (деление) и "%" (остаток от деления нацело) можно указать в качестве префикса оператора присваивания ("=") (cм. следующую таблицу).

Пример:

number += 1;

total -= discount;

bonus *= 2;

time /= rush_factor;

change %= 100;

amount *= count1 + count2;

Эквивалентное выражение:

number = number + 1;

total = total - discount;

bonus = bonus * 2;

time = time / rush_factor;

change = change % 100;

amount = amount * (count1 + count2);

Первый пример допускает еще более краткую запись с помощью оператора ин­кремента "++":

number++;

Оператор "++" существует и в префиксной форме:

++number;

Постфиксная и префиксная форма записи имеют важное различие, которое не­обходимо помнить. Префиксный оператор применяется ДО вычисления остальной части выражения, а постфиксный - ПОСЛЕ. Например, посоле выполнения операто­ров

х = 4; у = x++;

переменная "x" получит значение 5, а "y" - значение 4. В случае операторов

х = 4; у = ++x;

обе переменные получат значение 5. Это объясняется тем, что "++x" выполняется до того, как значение "x" будет использовано в выражении, а "x++" - после. В Си++ су­ществует аналогичный оператор декремента "-—", уменьшающий значение перемен­ной на 1, и у него тоже есть префиксная и постфиксная форма.

26

Вообще, выражение с оператором присваивания имеет значение, равное значе­нию левой части после выполнения присваивания. Ниже приведено выражение, соот­ветствующее правилам Си++, которое можно использовать для проверки условия:

(y = ++x) == 5

Это выражение означает следующее: "после присвоения переменной y инкре-ментированного значения x проверить, не равно ли значение y числу 5".

5.2 Логические выражения и операторы

Интуитивно логические выражения наподобие "2<7", "1.2!=3.7" и "6>=9" вос­принимаются человеком как утверждения, которые могут быть "истинными (true) " или "ложными (false) " (операция "!=" означает "не равно"). Допускается объеди­нение нескольких подобных выражений в более сложное выражение с помощью ло­гических операций "&&" ("И"), " | |" ("ИЛИ") и " !" ("НЕ") (см. таблицу).










Выражение:










Истинно или ложно:

(6

<=

6) && (5

<

3)
















false

(6

<=

6) || (5

<

3)
















true

(5

i =

6)






















true

(5

<

3) && (6

<=

6)

1 1

(5

i =

6)




true

(5

<

3) && ((6

<=

6)

|

1 (5

i =

6)

)

false

! (

(5

< 3) && (

(6

<=

6)

| |

(5

i =

6)))

true

В таблице в четвертом примере выражение истинно, поскольку приоритет опе­рации "&&" выше, чем у " | |". Приоритет (порядок выполнения) различных операций Си++ можно узнать в учебнике или руководстве по языку Си++, а также в справочной системе Visual C++ (тема Operator Precedence). Если у вас возникают сомнения отно­сительно приоритета операций, применяйте круглые скобки (). Применение этих скобок облегчает чтение программ.

Составные логические выражения обычно применяются в качестве условий в операторах if и в циклах for. Например:

if ( total_test_score >= 50 && total_test_score < 65 ) cout « "Вы прошли тест со средним результатом.\n";

У логических выражений в Си++ есть еще одно важное свойство. В Си++ ис­тинное значение ("true") представляется в виде целого числа 1 (большинство ком­пиляторов любое положительное число считают истинным значением), а ложное значение ("false") в виде значения 0. Это может привести к ошибкам. Например, легко напечатать "=" вместо "==". Поэтому фрагмент

if ( number_of_people = 1 )

cout « "Есть только один человек.\n";

всегда будет печатать сообщение "Есть только один человек", даже если до оператора

if переменная "number_of_people" была больше 1.

27

6. Сводка результатов

В данной лекции довольно подробно рассматривались переменные языка Си+ У переменных всегда есть определенный тип данных. Переменные применяются для временного или постоянного хранения значений разных типов. Значения переменным можно присваивать различными способами. В выражениях для вычисления новых значений переменных можно использовать различные арифметические и логические операции.

7. Упражнения

Упражнение 1

Для преобразования температуры из шкалы Цельсия в абсолютную шкалу тем­ператур (шкалу Кельвина) надо добавить к температуре по Цельсию значение 273.15. В шкалу Фаренгейта температура по Цельсию преобразуется tf =1.8 Г + 32.

Напишите программу преобразования значений температуры, которая будет печатать на экране следующую таблицу:

Цельсий Фаренгейт Абсолютная температура

О 32.00 273.15

20 68.00 293.15

40 104.00 313.15

300 572.00 573.15

Упражнение 2

Измените программу из упражнения 1 так, чтобы она запрашивала у пользова­теля минимальную и максимальную температуру по Цельсию, которые должны быть в первой и последней строках таблицы. Программа также должна запросить шаг из­менения температуры (на это значение должны отличаться температуры в соседних строках таблицы, в упражнении 1 шаг был равен 20-ти градусам).

Перед таблицей программа должна вывести несколько строк с пояснением сво­их действий, а также повторить вывод на экран введенных пользователем данных.

Упражнение 3

Напишите программу, которая считывает с клавиатуры символ (ch) и затем вы­водит одно из следующих сообщений (вместо ch должен выводиться введенный сим­вол, а вместо ... - соответствующая прописная или строчная буква):

а) если символ ch является строчной буквой - сообщение "Букве ch соответст­
вует прописная буква...",

б) если ch является прописной буквой - сообщение "Букве ch соответствует
строчная буква...",

в) если ch не является буквой - сообщение "Символ ch не является буквой".
Для составления необходимых условий обратитесь к расширенной таблице

символов ASCII (см. п.8.3).

Упражнение 4

Напишите программу для возведения произвольного числа x в положительную степень n с помощью цикла for. (Есть ли способы повышения эффективности вашей программы?)

28

8. Приложения

8.1 Служебные слова Си++

По назначению служебные слова языка Си++ можно разделить на несколько групп. Ниже перечислены эти группы и относящиеся к ним слова. Полужирным шрифтом выделены слова, назначение которых вы узнаете в данном вводном курсе.

• Типы данных (определяют типы данных, которые можно хранить в памяти

компьютера),

char short int long (целые числа)

enum (тип "перечисление")

double float (вещественные числа)

void

struct union typedef (типы, определяемые

пользователем)

• Модификаторы типов данных (позволяют задать некоторые свойства хране­
ния данных в памяти).

signed unsigned

volatile register

const static extern auto

• Управление порядком выполнения операторов.

if

else




(ветвление с двумя вариантами)

switch

case

default

(множественное ветвление)

for

while

do

(циклы)

break

continue







return







(возврат из функции)

goto







(безусловный переход)
1   2   3   4   5   6   7   8   9   ...   18

Похожие:

Лекция основы си++ 7 iconЛекция основы Си++ 9
Б73 Основы программирования на языке Си++: Для студентов физико-математических факультетов педагогических институтов. – Коломна:...

Лекция основы си++ 7 iconЛекция I и проблема языка и сознания лекция II 31 слово и его семантическое...
Монография представляет собой изложение курса лекций, про* читанных автором на факультете психологии Московского государственного...

Лекция основы си++ 7 iconЛекция психосексуальное развитие. Возрастная динамика взаимоотношения полов 15
Основы семейной психопедагогики (курс лекций) / В. И. Короткий. — Архангельск: М'арт, 2003. — 178 с

Лекция основы си++ 7 iconЛекция Архитектура 32-разрядных ос windows 7
Б73 Основы программирования на языке Си++: Для студентов физико-математических факультетов педагогических институтов. – Коломна:...

Лекция основы си++ 7 iconЛекция Основные понятия ооп 7
Б73 Основы программирования на языке Си++: Для студентов физико-математических факультетов педагогических институтов. – Коломна:...

Лекция основы си++ 7 iconЛекция №1. Введение. Элементы дифференциальной геометрии. 2
Лекция №5. Множества Жюлиа, множество Мандельброта и их компьютерное представление. 18

Лекция основы си++ 7 iconЛекция на тему: «Современные подходы к содержанию дополнительного образования детей»
...

Лекция основы си++ 7 iconЛекция в Дорнахе 22 мая 1920 года
Канта и протестантизма. Эта лекция вызвала негодование среди членов Лиги, культивировавших и признававших под названием монизма вообще...

Лекция основы си++ 7 iconКурс лекций Лекция Введение в философскую суицидологию. Лекция Общая...
Открыть, в чём состоит суть суицида, наука не в состоянии (по собственной ограниченной природе) и потому должна обращаться за объяснениями...

Лекция основы си++ 7 iconЛекция для слушателей курса «Основы религий»
Я не могу всего этого понять, потому что некоторые пытливые учителя, помню, меня просто одолевали вопросами, где найти, например,...

Литература


При копировании материала укажите ссылку © 2015
контакты
literature-edu.ru
Поиск на сайте

Главная страница  Литература  Доклады  Рефераты  Курсовая работа  Лекции