План
занятия. Запись выражений на языке С++.
Операторы
присваивания, ввода, вывода.
Тема занятия: Запись
выражений на языке С++. Операторы присваивания, ввода, вывода
Цели занятия:
Образовательные:
- изучить основные операции с числами и переменными и формами их записи в языке
программирования С++;
Воспитательные:
-
воспитание ответственности за результат своей работы;
Развивающие:
-
развитие внимательности, памяти и логического мышления.
Оснащение: план занятия, дидактический материал, презентация.
Ход
занятия
1. Организационный
момент. (2 мин)
Отметить присутствующих.
2. Актуализация
опорных знаний (15 мин)
- Что такое
идентификатор?
- В языке С++
имеет значение, стоит ли в имени переменной маленькая или большая буква?
- Правила
составления имен переменных в языке С++?
- Какие существуют
ограничения на составление имен переменных?
Опрос на карточках
(готовые карточки см. в конспекте на стр.7-8):
I
вариант
1. Что такое
идентификатор?
2. Для чего можно
использовать оператор «cin.get();» ?
3. Какая
инструкция обеспечивает механизм завершения работы функции?
4. Перечислите
названия простых (скалярных типов данных).
5. Приведите
пример инициализации переменной.
6. Найдите ошибки
в объявлении и инициализации переменных. Рядом напишите верный ответ или
опишите ошибку.
int
1a;
long
double main;
float
x@3;
7. Запишите
оператор объявления поименованной константы k, равной
-7,9.
|
II
вариант
1. В языке С++
имеет значение, стоит ли в имени переменной маленькая или большая буква?
2. Какие
существуют ограничения на составление имен переменных?
3. Напишите
пример директивы препроцессору.
4. Что означает
ключевое слово void?
5. Приведите
пример объявления переменной.
6. Найдите ошибки
в объявлении и инициализации переменных. Рядом напишите верный ответ или опишите
ошибку.
double
_a;
integer
b;
unsigned
int main;
7. Запишите
оператор объявления поименованной константы m, равной
целому числу -121.
|
III вариант
1. Назовите
правила составления имен переменных в языке С++.
2. Каким именем
обозначается главная функция?
3. Напишите код
для получения доступа функциям в пространство имен std.
4. Перечислите
названия составных (структурированных) типов данных.
5. Приведите
пример инициализации переменной.
6. Найдите ошибки
в объявлении и инициализации переменных. Рядом напишите верный ответ или
опишите ошибку.
int
перем1;
chary
a;
signed char
return;
7. Запишите
оператор объявления поименованной константы sum, равной
23.5.
|
IV
вариант
1. Кто считается
автором языка программирования C?
2. Напишите код
для получения доступа функциям в пространство имен std.
3. Как называются
скобки, в которые заключается тело главной функции main?
4. Напишите
названия целых типов данных в языке C++ (минимум 5 типов).
5. Приведите
пример объявления переменной.
6. Найдите ошибки
в объявлении и инициализации переменных. Рядом напишите верный ответ или
опишите ошибку.
double
c-5;
unsigned
long _mas;
bool
код_1;
7. Запишите
оператор объявления поименованной константы des, равной
целому числу 345.
|
V
вариант
1. Кто считается
автором языка программирования C++?
2. Назовите
особенности алфавита языка программирования C++.
3. Напишите
пример директивы препроцессору.
4. Напишите
названия вещественных типов данных в языке C++ (минимум
2 типа).
5. Приведите
пример инициализации переменной.
6. Найдите ошибки
в объявлении и инициализации переменных. Рядом напишите верный ответ или
опишите ошибку.
float
c&1;
short
int 5b;
int
return;
7. Запишите
оператор объявления поименованной константы max, равной
32536.
|
VI
вариант
1. Какова
структура программы на языке С++?
2. Назовите
примеры расширений файлов, содержащих код программы на языке C++.
3. Какая
инструкция обеспечивает механизм завершения работы функции?
4. Напишите
названия символьных и логического типов данных в языке C++
(минимум 3 типа).
5. Приведите пример
объявления переменной.
6. Найдите ошибки
в объявлении и инициализации переменных. Рядом напишите верный ответ или
опишите ошибку.
char
симв_1;
long
k-6;
int
main;
7. Запишите
оператор объявления поименованной константы tri, равной
целому числу 3.
|
3. Изучение
нового материала.
Три
категории операций в зависимости от количества операндов:
1)
Унарные операции – выполняются над единственным операндом, например, –a.
2)
Бинарные операции – предполагают наличие двух операндов, например, a+b.
3)
Тернарная операция – работает с тремя операндами. Такая операция в языке С –
единственная, называется «условная операция».
Операторы:
1.
Оператор объявления, создает переменную. Например, int k;
Этот
оператор предоставляет два вида информации: необходимый тип хранения и метку,
привязанную к этой ячейке. Оператор объявляет, что программа требует объема
памяти, достаточного для хранения целого числа, для которого в C++ используется метка int. С этого момента
программа будет использовать имя k для обозначения значения, хранящегося в
указанной ячейке памяти.
В
общем случае, объявление указывает тип сохраняемых данных и имя программы,
которая будет использовать данные, хранящиеся в этой переменной.
Вы
знаете, что в языках С и Pascal все объявления
располагаются в самом начале функции или процедуры. А в языке C++ такого требования нет, поэтому объявлять переменную можно перед ее
первым использованием. Таким образом, чтобы узнать о типе переменной, вам не
придется возвращаться в начало программы.
Примечание: В языке C++ принято объявлять переменную как можно ближе к той строке, в которой
она впервые используется.
2.
Оператор присваивания, присваивает этой переменной
определенное значение: k=1;
Оператор
присваивания присваивает значение ячейке памяти.
carrots
= 25;
Символ
= называется операцией присваивания. Одной из необычных особенностей языка C++
(как и С) является то, что вы можете использовать операцию присваивания
несколько раз подряд. Например, приведенный ниже код является вполне
допустимым:
int
s;
int
b;
int
y;
y
= b = s =88;
Операция
присваивания выполняется поочередно, справа налево. Сначала значение 88
присваивается переменной s, затем это же значение присваивается переменной b и,
наконец, переменной y.
Второй
оператор присваивания демонстрирует возможность изменения значения переменной:
carrots
= carrots - 1; // изменяет значение переменной
Выражение
в правой части оператора присваивания (carrots - 1) является примером
арифметического выражения. Компьютер вычитает 1 из 25, т.е. текущего значения
переменной carrots, в результате чего получается 24. Затем операция
присваивания сохраняет новое значение в ячейке carrots.
3.
Объект cout может принимать строки, числа
для последующего их отображения. Например, объект cout принимает переменную
целочисленного типа:
cout
<<carrots;
Программа
не выводит слово carrots; взамен этого она выводит целое значение 25,
присвоенное переменной carrots. Здесь следует отметить два трюка. Во-первых, cout
заменяет переменную carrots ее текущим числовым значением — 25. Во-вторых, cout
транслирует это значение в соответствующие символы вывода.
По
сути, операция вставки (<<) в языке C++ изменяет свое поведение в
зависимости от того, с данными какого типа она работает (строками или числами).
Следующая
строка выполняет конкатенацию вывода
cout << "Now you have"
<< carrots « " carrots." << endl;
4.
Объект сіn —
аналог cout, но предназначенный для ввода.
5.
Подгонка кода программы
Если
в предшествующих листингах вы добавляли cin.get(), вам необходимо
добавить два оператора cin.get () в данный листинг, чтобы сохранить вывод
программы видимым на экране. Первый оператор cin. get () будет читать символ
новой строки, генерируемый нажатием клавиши <Enter> или <Return>
после набора числа, а второй заставит программу приостановиться до нажатия
клавиши <Enter> или <Return> вновь.
При
выводе операция << вставляет символы в поток вывода. При вводе объект сіn использует операцию >> для извлечения символов из потока ввода.
Обычно в правой части операции указывается переменная, которой будут
присваиваться извлеченные данные. (Символы << и » были выбраны для
визуальной подсказки направления потока информации.)
В
C++ предоставляются операции для выполнения пяти базовых арифметических
действий: сложения, вычитания, умножения, деления и получения остатка от
деления. Каждая из этих операций использует два значения (называемые
операндами) для вычисления конечного результата. Операция и ее операнды вместе
образуют выражение. Например, рассмотрим следующий оператор:
int
a = 4 + 2;
Значения
4 и 2 — это операнды, знак + обозначает операцию сложения, а 4 + 2 — это
выражение, результатом которого является 6.
Простые арифметические операции:
1.
- — унарный минус;
2.
+ — сложение;
3.
- — вычитание (бинарный минус);
4.
* — умножение;
5.
/ — деление;
6.
% — остаток от деления (для целых чисел). Знак
результата этой операции совпадает со знаком первого операнда. Например,
11%3=2, 11%-3=2, 11%3=-2, -11%-3=-2.
Ниже
перечислены пять базовых арифметических операций в C++.
1.
Операция + выполняет сложение операндов. Например,
4 + 20 дает 24.
2.
Операция - вычитает второй операнд из первого.
Например, 12-3 дает 9.
3.
Операция * умножает операнды. Например, 28*4 дает
112.
4.
Операция / выполняет деление первого операнда на
второй. Например, 1000 / 5 дает 200. Если оба операнда являются целыми числами,
то результат будет равен целой доли частного. Например, 17/3 дает 5, с
отброшенной дробной частью.
5.
Операция % находит остаток от деления первого
операнда на второй. Например, 19 % 6 равно 1, поскольку б входит в 19 три раза,
с остатком 1. Оба операнда при этом должны быть целочисленными; использование
операции % над числами в формате с плавающей точкой приведет к ошибке времени
компиляции. Если один из операндов будет отрицательным, то знак результата
удовлетворяет следующему правилу: (а/b) *b + а%b равно а. Естественно, в качестве операндов
можно использовать как переменные, так и константы.
#include <iostream>
int main ()
{
using namespace std;
float
a, b;
cout
<< "Введите число: ";
cin >> a;
cout
<< "Введите другое число";
cin >> a;
cout << "a = " << a <<
"; b = " << b << endl;
cout << "a + b = " << a
+ b << endl;
cout << "a - b = " << a
- b << endl;
cout << "a * b = " << a
* b << endl;
cout << "a / b = " << a
/ b << endl;
return 0;
}
Примечание:
Для float гарантируется только шесть значащих цифр. Когда
нужна более высокая точность, необходимо использовать тип double или long double.
Порядок выполнения операций: приоритеты операций и ассоциативность
Когда
над одним и тем же операндом может быть выполнено несколько операций, C++ руководствуется правилами старшинства или приоритетов, чтобы
определить, какая операция должна быть выполнена первой. Арифметические
операции выполняются в соответствии с алгебраическими правилами, согласно
которым умножение, деление и нахождение остатка от деления выполняются раньше
операций сложения и вычитания. Поэтому выражение 3 + 4*5 следует читать как 3+
(4 * 5), но не (3 + 4) * 5. Таким образом, результатом этого выражения будет
23, а не 35. Конечно, чтобы обозначить свои приоритеты, вы можете заключать
операнды и операции в скобки.
Значит,
запись на языке С++ следующих выражений:
,
Однако
знания только лишь приоритетов операций не всегда бывает достаточно. Взгляните
на следующий оператор:
float logs = 120 /4*5; // каким будет результат: 150 или 6?
И
в этом случае над операндом 4 могут быть выполнены две операции. Однако
операции /и * имеют одинаковый уровень приоритета, поэтому программа нуждается
в уточняющих правилах, чтобы определить, нужно сначала 120 разделить на 4 либо
4 умножить на 5. Поскольку результатом первого варианта является 150, а второго
— 6, выбор здесь очень важен. В том случае, когда две операции имеют одинаковый
уровень приоритета, C++ анализирует их ассоциативность:
слева направо или справа налево.
Различные результаты, получаемые после деления
Давайте
продолжим рассмотрение особенностей операции деления (/). Поведение этой
операции зависит от типа операндов. Если оба операнда являются целочисленными,
то C++ выполнит целочисленное деление. Это означает, что
любая дробная часть результата будет отброшена, приводя результат к целому
числу. Если один или оба операнда являются значениями с плавающей точкой, то
дробная часть остается, поэтому результатом будет число с плавающей точкой. В
действительности, при комбинировании смешанных типов C++
преобразует их к одному типу.
Язык C++ довольно либерален,
разрешая присваивание числового значения одного типа переменной другого типа.
Всякий раз, когда вы это делаете, значение преобразуется к типу переменной,
которая его получает.
Примечание: Результат деления целого числа на
целое имеет целый тип, причем дробная часть результата просто отбрасывается.
Например: 17/3=5, 99/10=9, (9/4)*4=8.
// изменение типа при инициализации
#include <iostream>
int main ()
{
using namespace std;
float a = 3; // int преобразован в float
int
b = 3.9832; // float
преобразован в int
int
c = 7.2E12; .// результат не определен в C++
cout << "a = " << a
<< endl;
cout << "b = " << b
<< endl;
cout << "c = " << c
<< endl;
return 0;
}
Операция присвоения: a=B. Если типы левой и правой части совпадают, то переменной, которая
указана слева, присваивается значение переменной или выражения, расположенного
справа. В противном случае предварительно происходит автоматическое преобразование
типа правой части к типу левой.
Пример:
int i =5, j=3,
k;
double a =
2.95, d;
k=i+a; // выполняется
преобразование к целому типу, k=7
d=i+j; // выполняется
преобразование к вещественному типу, d=8.0.
В
случае последовательного использования нескольких операций присвоения в
одном выражении последние выполняются справа налево, причем, каждый раз
происходит необходимое преобразование типов.
Например,
int i=2, j;
float d=3.55,
r,s;
s=j=r=i+d; // результат – вещественное значение 5.0 (r=5.55,
j=5, s=5.0)
Унарные арифметические операции, совмещенные с присвоением:
1)
префиксная форма: ++a, --a – увеличение
и уменьшение операнда на 1 соответственно (имеет самый высокий приоритет, т.е.
выполняется в первую очередь)
2)
постфиксная форма: a++, a-- - увеличение
или уменьшение операнда на 1 соответственно (имеет самый низкий приоритет,
выполняется в последнюю очередь после операций присвоения).
Например:
Int i=2, j=5,
I, J;
I= ++i; J=
j++;
printf(“I=%d
i=%d : J=%d j=%d”, I, I, J,j)
На
экран будет выведено:
I=3 i=3 : J=5 j=6
Т.к.
для I сначала – наращивание, потом – присвоение, а для J
– указанные действия следуют в обратном порядке.
Примечание: операции ++ и – не могут быть
применены к константам. Например, неприменимы такие операции: 5++, (a+b)--
Эти
операции обеспечивают некоторую экономию в быстродействии программы.
Бинарные арифметические операции, связанные с присвоением:
Можно
увеличивать или уменьшать операнд на любую величину, которая задается в
качестве второго операнда с помощью операций += и -=.
Например,
a+100 (увеличение a на 100), b-=delta (уменьшение b на
величину delta).
*=
- умножает значение первого операнда на значение второго;
/=
- делит;
%=
- определяет остаток от деления (только для операндов целых типов).
Например,
n*=3; m%=5.
Эти
операции имеют только постфиксную форму, значит, являются низкоприоритетными.
4. Закрепление нового
материала.
Задача: написать
на языке С++ программу, вычисляющую следующие выражения:
1)
2)
3)
4)
5)
6)
7)
-
Что такое унарные и бинарные операции?
-
Для каких типов данных определена операция «%»?
-
В чем особенность выполнения операций целочисленного деления?
-
Как получить вещественный результат операции целочисленного деления?
-
Как выполняется операция присвоения?
-
В какой последовательности выполняются операции присвоения?
-
Чем отличаются префиксные операции от постфиксных?
-
Что означает преобразование типов при выполнении различных операций?
-
Приведите пример преобразования типов.
5.
Самостоятельная работа.
6. Подведение
итогов занятия: выводы, оценки за ответы на вопросы.
7. Д/з: [1] стр.79-94, [5] стр.63-70, 116-120, СР№5: в тетради ответить на
вопросы № 1-5, 7, 11, 14, 16 из [1] на стр. 90
Подпись
преподавателя ________ /Серебрякова Л.В./
I
вариант
1. Что такое
идентификатор?
2. Для чего можно
использовать оператор «cin.get();» ?
3. Какая
инструкция обеспечивает механизм завершения работы функции?
4. Перечислите
названия простых (скалярных типов данных).
5. Приведите
пример инициализации переменной.
6. Найдите ошибки
в объявлении и инициализации переменных. Рядом напишите верный ответ или
опишите ошибку.
int
1a;
long
double main;
float x@3;
7. Запишите
оператор объявления поименованной константы k, равной
-7,9.
|
___________________________________________
___________________________________________
___________________________________________
___________________________________________
___________________________________________
___________________________________________
___________________________________________
___________________________________________
___________________________________________
___________________________________________
___________________________________________
___________________________________________
___________________________________________
___________________________________________
___________________________________________
___________________________________________
|
II
вариант
1. В языке С++
имеет значение, стоит ли в имени переменной маленькая или большая буква?
2. Какие
существуют ограничения на составление имен переменных?
3. Напишите
пример директивы препроцессору.
4. Что означает
ключевое слово void?
5. Приведите
пример объявления переменной.
6. Найдите ошибки
в объявлении и инициализации переменных. Рядом напишите верный ответ или
опишите ошибку.
double
_a;
integer
b;
unsigned
int main;
7. Запишите оператор объявления поименованной
константы m, равной целому числу -121.
|
___________________________________________
___________________________________________
___________________________________________
___________________________________________
___________________________________________
___________________________________________
___________________________________________
___________________________________________
___________________________________________
___________________________________________
___________________________________________
___________________________________________
___________________________________________
___________________________________________
___________________________________________
___________________________________________
|
III вариант
1. Назовите
правила составления имен переменных в языке С++.
2. Каким именем
обозначается главная функция?
3. Напишите код
для получения доступа функциям в пространство имен std.
4. Перечислите
названия составных (структурированных) типов данных.
5. Приведите
пример инициализации переменной.
6. Найдите ошибки
в объявлении и инициализации переменных. Рядом напишите верный ответ или
опишите ошибку.
int
перем1;
chary
a;
signed
char return;
7. Запишите оператор объявления
поименованной константы sum, равной 23.5.
|
___________________________________________
___________________________________________
___________________________________________
___________________________________________
___________________________________________
___________________________________________
___________________________________________
___________________________________________
___________________________________________
___________________________________________
___________________________________________
___________________________________________
___________________________________________
___________________________________________
___________________________________________
___________________________________________
|
IV
вариант
1. Кто считается
автором языка программирования C?
2. Напишите код
для получения доступа функциям в пространство имен std.
3. Как называются
скобки, в которые заключается тело главной функции main?
4. Напишите
названия целых типов данных в языке C++ (минимум 5
типов).
5. Приведите пример
объявления переменной.
6. Найдите ошибки
в объявлении и инициализации переменных. Рядом напишите верный ответ или
опишите ошибку.
double
c-5;
unsigned
long _mas;
bool код_1;
7. Запишите
оператор объявления поименованной константы des, равной
целому числу 345.
|
___________________________________________
___________________________________________
___________________________________________
___________________________________________
___________________________________________
___________________________________________
___________________________________________
___________________________________________
___________________________________________
___________________________________________
___________________________________________
___________________________________________
___________________________________________
___________________________________________
___________________________________________
___________________________________________
___________________________________________
___________________________________________
|
V
вариант
1. Кто считается
автором языка программирования C++?
2. Назовите
особенности алфавита языка программирования C++.
3. Напишите
пример директивы препроцессору.
4. Напишите
названия вещественных типов данных в языке C++ (минимум
2 типа).
5. Приведите
пример инициализации переменной.
6. Найдите ошибки
в объявлении и инициализации переменных. Рядом напишите верный ответ или
опишите ошибку.
float
c&1;
short
int 5b;
int return;
7. Запишите оператор объявления
поименованной константы max, равной 32536.
|
___________________________________________
___________________________________________
___________________________________________
___________________________________________
___________________________________________
___________________________________________
___________________________________________
___________________________________________
___________________________________________
___________________________________________
___________________________________________
___________________________________________
___________________________________________
___________________________________________
___________________________________________
___________________________________________
|
VI
вариант
1. Какова
структура программы на языке С++?
2. Назовите
примеры расширений файлов, содержащих код программы на языке C++.
3. Какая
инструкция обеспечивает механизм завершения работы функции?
4. Напишите
названия символьных и логического типов данных в языке C++
(минимум 3 типа).
5. Приведите
пример объявления переменной.
6. Найдите ошибки
в объявлении и инициализации переменных. Рядом напишите верный ответ или
опишите ошибку.
char
симв_1;
long
k-6;
int
main;
7. Запишите
оператор объявления поименованной константы tri, равной
целому числу 3.
|
___________________________________________
___________________________________________
___________________________________________
___________________________________________
___________________________________________
___________________________________________
___________________________________________
___________________________________________
___________________________________________
___________________________________________
___________________________________________
___________________________________________
___________________________________________
___________________________________________
___________________________________________
___________________________________________
___________________________________________
|
Оставьте свой комментарий
Авторизуйтесь, чтобы задавать вопросы.