Слайд 2Оператор «выражение»
i++;
a+=2;
x=a+b;
;
Основное назначение выражения:
1) определить порядок вычисления некоторого выражения;
2) найти значение
выражения.
Если результатом вычисления выражения является число, то данное выражение – арифметическое. Если результатом будет значение «истина» или «ложь», то это логическое выражение.
Слайд 3Примеры решения задач
Задача №1. Определить, попадет ли точка с координатами (х,
у ) в заштрихованную область.
Слайд 4#include
#include
using namespace std;
void main()
{
float x,y;
coutx>>y;
bool Ok=(y>=-x+1&& y
x>=0 && y>=0) ||
(x*x+y*y>=1 && x*x+y*y<=9 && x<=0) ||
(x>=0 && x<=1 && y<=-1 && y>=-3) ||
(x>=1 && x<=2 && y<=0 && y>=-3);
cout<<"\n"<}
Слайд 62. Составные операторы
2.1. Составные операторы
2.2. Блоки
{
n++; //это составной оператор
summa+=n;
}
{
int n=0;
n++; //это блок
summa+=n;
}
Слайд 7ПРОГРАММИРОВАНИЕ ВЕТВЛЕНИЙ
В языке С для программирования ветвлений существуют:
1) условная операция;
2) условный
оператор
3) оператор-переключатель.
Условная операция
<выражение> ? <выражение_1>:<выражение_2>
(левоассоциативная операция)
Вычисляется значение выражения.
Если значение отлично от 0, то вычисляется «выражение_1».
Если выражение будет равно 0, то вычисляется «выражение_2» и результатом будет значение выражения 2.
max=(a>b)?a:b;
Слайд 8Выражение-условие :
арифметическое выражение,
отношение,
логическое выражение.
Слайд 93. Операторы выбора
3.1. Условный оператор
if (выражение-условие) оператор; //сокращенная форма
if
(выражение-условие) оператор;
else оператор; //полная форма
Слайд 11Найти решение квадратного уравнения ax2+bx+c=0.
#include “stdio.h”
#include “math.h”
void main ()
{ float a,b,c;
float
d,x1,x2;
printf(“\nВведите a, b, c”);
scanf(“%f%f%f”,&a,&b,&c);
d=b*b-4*a*c;
if (d>0) { printf(“\nДва корня”);
x1=(–b+sqrt(d))/(2*a);
x2=(–b–sqrt(d))/(2*a);
printf(“: x1=%8.3f x2=%8.3f”,x1,x2);
}
else { x1=–b/(2*a);
x2=sqrt(fabs(d))/(2*a);
if (d<0) { printf (“\n Комплексные корни”);
printf(“\nx1=%8.3f+%8.3f*I”,x1,x2);
printf(“\nx2=%8.3f-%8.3f*I”,x1,x2);
}
else printf (“\nКратный корень: %8.3f”,x1);
}
}
Слайд 123.2. Переключатель
switch (выражение)
{
case константа1 : оператор1 ;
case константа2 : оператор2 ;
.
. . . . . . . . . .
[default: операторы;]
}
Слайд 14Пример
#include
using namespace std;
void main()
{
int i;
couti;
switch(i)
{
case 1:cout
one";
case 2:cout<<"\n2*2="<
case 3: cout<<"\n3*3="< case 4: cout<<"\n"< default:cout<<"\nThe end of work";
}
}
Результаты работы программы:
1. При вводе 1 будет выведено:
The number is one
2*2=1
3*3=1
1 is very beautiful!
The end of work
2. При вводе 2 будет выведено:
2*2=4
3*3=4
2 is very beautiful!
The end of work
3. При вводе 3 будет выведено:
3*3=9
3 is very beautiful!
The end of work
4. При вводе 4 будет выведено:
4 is very beautiful!
The end of work
5. При вводе всех остальных чисел будет выведено:
The end of work
Слайд 15y=1.0;
n=4;
switch (n)
{ case 5: y=y*x;
case 4: y*=x;
case 3: y*=x;
case 2: y*=x;
case 1:
y*=x; printf(“\ny=%e”,y);
default: printf(“\nСтепень больше 5”);
}
При х=2 фрагмент программы вычисляет значение 2^4.
Слайд 16Оператор break – оператор завершения какого-либо действия.
Моделирование оператора выбора аналогичного оператору
выбора на языке Паскаль с помощью оператора-переключателя производится следующим образом:
switch (<целочисленное выражение>)
{ case <константа 1>: <список операторов>; break;
case <константа 2>: <список операторов>; break;
...
case <константа N>: <список операторов>; break;
[default: < список операторов >;]
}
Слайд 17ПРОГРАММИРОВАНИЕ ЦИКЛОВ
Если для решения задачи необходимо несколько раз подряд выполнить действие
или группу действий, то для этого организуются циклы.
Все циклические алгоритмы делятся на две группы:
количество повторений заранее известно (используются циклы с параметром);
количество повторений заранее неизвестно (используются циклы с предусловием и с постусловием).
Слайд 184.1. Цикл с параметром
for (выражение_1;выражение-условие;выражение_3)
оператор;
Выражение_1 – задает начальные значения для
цикла (инициализация) могут присутствовать
другие операторы присваивания.
Выражение-условие определяет условие выполнения
цикла, если оно не равно 0, цикл выполняется,
а затем вычисляется значение выражения_3.
Выражение_3 – задает изменение параметра цикла или
других переменных (коррекция).
Слайд 19Вычислить F=n!=1∙2∙3∙4…∙n.
F=1;
for (i=1; i
for(i=1,F=1; i<=n; i++) F=F*i;
4)F=1;
for (i=1; i<=n; F*=i,i++);
/* Сначала идет вычисление факториала, а затем изменение шага. Тело цикла является пустым.*/
5)for (F=1,i=1; i<=n; F*=i,i++);
6)for(F=1,i=1;i<=n; i++, F*=i);
вычисляет значение (n+1)!.
Слайд 20Задача №2. Дана последовательность целых чисел из n элементов. Найти среднее
арифметическое этой последовательности.
Слайд 21#include
using namespace std;
void main()
{
int a,n,i;
double s=0;
coutn;
for(i=1;i
s+=a;
}
s=s/n;
cout<<"\nсреднее арифметическое равно="<}
Слайд 22В качестве параметра цикла может выступать переменная любого типа.
Пример
Получить на отрезке
от a до b значения функции y=sin x с шагом h. Данные задачи: x∈[a;b], h, y=sin x, x=x+h.
...
float a,b,h,x,y;
for (x=a;x<=b;x+=h)
{ y=sin(x);
printf(“\nx=%5.3f y=%5.3f”,x,y);
}
...
Слайд 234.2. Цикл с предусловием
while (выражение-условие)
оператор;
Пример
a=1;s=0;
while (a!=0)
{
cin>>a;
s+=a;
}
Слайд 24Пример
Найти сумму цифр произвольного целого числа.
...
S=0;
n=abs(n);
while (n)
{S+=n%10; // n%10 – выделяет
последнюю цифру числа
n/=10; ; // n/10 – «зачеркивает» последнюю цифру
}
...
Оператор цикла или один из операторов, составляющих тело цикла, обязательно должен изменить условие продолжения цикла. Особенность цикла с предусловием – тело цикла может не выполниться ни разу в случае, когда n=0.
Слайд 254.3. Цикл с постусловием
do
Оператор;
while (выражение-условие);
Пример
s=0;
do
{
cin>>a;
s+=a;
}
while(a!=0);
Слайд 26Задача №3. Дана последовательность целых чисел, за которой следует 0. Найти
минимальный элемент этой последовательности.
Слайд 27//вариант программы №1
#include
using namespace std;
void main()
{
int a,min;
couta;
min=a;
while(a!=0)
{
cout
a";
cin>>a;
if (a!=0&&a}
cout<<"\nmin="<}
Слайд 28//вариант программы №2
#include
using namespace std;
void main()
{
int a,min;
couta;
If (a!=0)
{
min=a;
do
{
cout<<"\nEnter a";
cin>>a;
if (a!=0 && a }
while(a!=0);
cout<<"\nmin="<}
else cout<<"\nPYSTO\n";
}
Слайд 29//вариант программы №3
#include
using namespace std;
void main()
{
int a,min;
couta;
min=a;
for(;a!=0;)
{
cout<<"\nEnter a";
cin>>a;
if (a!=0&&a}
cout<<"\nmin="<}