Similar presentations:
Лекция 3. Операторы языка. Часть 1
1.
Лекция 3Операторы языка. Часть 1. Простые операторы:
оператор-выражение,
оператор
присваивания.
Структурные операторы: составной оператор,
условный оператор, оператор цикла с параметром.
2.
Операторы языка С/С++Операторы языка программирования
предназначены для описания действий,
предусмотренных алгоритмом решения задачи.
Операторы языка С делятся на две группы:
простые операторы;
структурные операторы.
3.
Операторы языка С/С++К простым операторам относятся операторы
преобразования данных, такие как оператор
присваивания, с помощью которого осуществляются
все преобразования внутренних данных, операторы
ввода и вывода, а также оператор вызова функции и
оператор перехода.
К структурным операторам относятся составной
оператор, условные операторы, операторы цикла.
4.
Оператор присваивания языкаС/С++
В Си в качестве знака присваивания используется
символ "=". Этот символ часто называется простым
присваиванием. Операция присваивания имеет вид:
имя переменной=выражение;
Операция предполагает вычисление значения
выражения, стоящего справа от знака присваивания,
и запись его в ячейку, соответствующую переменной,
имя которой стоит слева от этого знака. Результатом
операции присваивания считается новое значение
переменной.
5.
Ввод-вывод данныхПод вводом понимается процесс передачи данных с
внешних устройств в память компьютера, под
выводом - передачи данных из памяти компьютера на
внешние устройства. Ввод и вывод являются
важнейшими операторами, так как с их помощью
осуществляется общение пользователя с
программой.
В языке С/С++ ввод-вывод выполняется с помощью
ставндартные фунций и перегруженных операций.
6.
Ввод-вывод данных с помощьюперегруженных операций языка С++
Чтобы использовать их, надо в начале программы
поместить директиву препроцессора
#include <iostream.h>
Эти операторы в простейшем случае имеют вид:
cin >> имя_переменной;
cout << выражение;
здесь cin - стандартный поток ввода (обычно ввод с
клавиатуры компьютера), cout - стандартный поток
вывода (обычно вывод на экран монитора), >> и << операции "взять из" и "передать в"; легко видеть, что
направление стрелок указывает направление передачи
данных.
7.
Оператор вызова функцииОператор вызова функции имеет следующий формат:
<имя функции>(<список аргументов);
Список аргументов — список выражений, разделенных
запятыми. Оператор вызова функции может быть записан
в программе как отдельный оператор или может входить
в выражение.
На данный момент мы будем использовать только
вызовы стандартных функций в своих программах.
8.
Оператор-выражениеВ
С/С++
любое
выражение
может
быть
преобразовано в оператор-выражение добавлением
точки с запятой:
<выражение>;
Например,
i++; равносильно оператору присваивания i=i+1;
F(A,B,X) вызов процедуры
9.
Базовые структуры алгоритмов и ихкодирование на С/С++
Современная
технология
программирования
предполагает, что алгоритм должен строиться из
базовых структур. Таких структур три: следование,
разветвление, цикл.
10.
Базовая структура «Следование»11.
Базовая структура «Следование»Эта структура предполагает последовательное
выполнение входящих в нее инструкций, которых
может
две
и
больше.
Последовательно
выполняемые операторы в программе на С/С++
записываются друг за другом и разделяются
точкой с запятой.
12.
Базовая структура «Разветвление»13.
Базовая структура «Разветвление»Разветвление, блок-схема которого приведена выше,
применяется в том случае, когда выполнение
алгоритма должно развиваться по двум
альтернативным ветвям.
Ветви обязательно должны соединяться в одной
точке, т. е. дальнейшее выполнение алгоритма
должно происходить по одному пути; кроме того,
ветви алгоритма не должны пересекаться, т. е. не
должны иметь общих блоков.
14.
Базовая структура «Разветвление»Разветвление предполагает проверку некоторого
условия. Условие — это логическое выражение.
Если на момент проверки условие истинно, то будет
выполнен оператор 1, иначе оператор 2. В языке
С/С++ ветвление реализуется с помощью условного
оператора if:
if (условие)
оператор 1;
else
оператор 2;
15.
Базовая структура «Разветвление»Возможна ситуация, когда ветвь “Нет ” не содержит
операторов (т. е. либо выполняются операторы ветви
“Да”, либо сразу переходим к точке соединения
ветвей блок-схемы). В этом случае в условном
операторе Си слово else и оператор 2 отсутствуют.
if (условие)
оператор 1;
16.
Базовая структура «Разветвление»Если операторы 1 или 2 состоят из нескольких операторов (являются
составными), то входящие в них операторы окаймляются фигурными
скобками:
if (условие)
{оператор 1;
Оператор 2; ….....
оператор N;
}
else
{оператор 1;
Оператор 2; ….....
оператор M;
}
Таким образом, фигурные скобки позволяют объединить несколько
операторов в один составной.
17.
Составной оператор - этогруппа операторов, заключенная в фигурные скобки.
Составной оператор используется в программе на С/С++, в
том месте программы, где по правилам синтаксиса можно
написать
один оператор, а надо выполнить несколько
операторов. Обычно это требуется в условных операторах и
операторах цикла.
18.
Пример использования условногооператора
Задание. Вычислить значение функции в зависимости от
условия.
.
( X A ) / X ,
Y 0 ,
X 0 ;
A ln X 1 ,
есл и
X 0;
X 0 , X A ;
X A.
19.
Блок-схема алгоритмаВвод чисел X,
A
FA L S E
X <0
TRUE
TRUE
X<A<A
X
FA L S E
Y =(X -A )/X
Y =0
В ы в од Y
Y =ln|X -1 |
20.
Текст программы#pragma hdrstop
#pragma argsused
#include <iostream.h>
#include <math.h>
#include <conio.h>
void main()
{
float X,A,Y;
cout<<" Input X, A : ";
cin>>X>>A;
21.
Текст программыif (X<0)
Y=(X-A)/X;
else {
if (X<A) Y=0;
else Y=A-log(fabs(X-1));
}
cout<< “Y= “<<Y;
getch();
}
22.
Базовые структуры циклов на С/С++Циклические структуры (или циклы) служат для
организации повторения некоторых операторов.
В языке С/С++ существуют три оператора цикла for,
while и do-while. Цикл for называется
параметрическим циклом или циклом с заданным
числом повторений. Циклы while и do-while
называтся циклами с выходом по условию или
условными циклами.
Рассмотрим сначала синтаксис параметрического
цикла.
23.
Параметрический циклПараметрический цикл, блок-схема которого
представлена ниже управляется переменной (так
называемым параметром, на блок-схеме для него
выбрано имя i), значение которой меняется от
начального значения до конечного с заданным шагом.
24.
Блок-схема цикла for25.
Параметрический циклДля кодирования параметрического цикла в С/С++
используется оператор:
for(i=нач_знач;i<=кон_знач; i=i+шаг)
тело цикла;
Тело цикла — оператор или составной оператор.
26.
Пример использования цикла forНаписать программу для печати таблицы значений
функции х с шагом h от А до В. A≈0.55; B ≈1.
Отрезок [A;B] и шагом h выбрать таким
образом, чтобы получить 10 значений функции.
Для проверки программы задать N=10; A=0,55; B=1.
f ( x)
ln x 2 1 3
e x 3 x 1,4
27.
Блок-схемаВвод исходных
данных: N,A,B
d=(B-A)/N
Вывод «шапки»
таблицы
Да
Y=(fabs(log(X*X))+1/3)
/sqrt(exp(X/
M_PI)+pow(X,1.0/
3)+1.4);
X=A
Вывод очередной
строки таблицы: i, X,Y
i=0
X=X+d
i<=N
Нет
i=i+1
28.
Текст программы//--------------------------------------#pragma hdrstop
//--------------------------------------#pragma argsused
#include <iostream.h>
#include <math.h>
#include <conio.h>
void main()
{float A, B, d, X, Y;
int N,i;
cout <<"Input N,A,B: \n";
cin>>N>>A>>B;
d=(B-A)/N;
29.
Текст программыcout<< "Function Table \n";
cout<<" i ________ X _______ Y”<<endl;
X=A;
for (i=0; i<=N; i=i+1)
{
Y=(abs(lоg(X*X))+1.0/3)/sqrt(exp(X/M_PI)
+pow(X,(1.0/3))+1.4);
cout<<i<<"_______"<<X<<"_____"<<Y<<endl;
X=X+d;
}
getch();
//---------------------------------------
30.
Результаты выполнения программыInput N,A,B:
10
0.55
1
Function Table
i ________ X _______ Y
0_______0.550000________0.827925
1_______0.595000________0.738553
2_______0.640000________0.656427
3_______0.685000________0.580550
4_______0.730000________0.510116
5_______0.775000________0.444465
6_______0.820000________0.383051
7_______0.865000________0.325414
8_______0.910000________0.271167
9_______0.955000________0.219980
10_______1.000000________0.171566
31.
Результаты вычисления в среде MS ExcelA
i
0,55
0
1
2
3
4
5
6
7
8
9
10
B
X
1
N
10
Y
0,55
0,827925
0,595
0,738553
0,64
0,656427
0,685
0,58055
0,73
0,510116
0,775
0,444465
0,82
0,383051
0,865
0,325414
0,91
0,271167
0,955
0,21998
1
0,171566
D
0,045