Основные операторы. Лекция 2 по алгоритмизации и программированию презентация

Содержание

Знаки операций Унарные

Слайд 1Основные операторы
Лекция 2


Слайд 2Знаки операций Унарные


Слайд 3Знаки операций Бинарные


Слайд 4Знаки операций Бинарные


Слайд 5Знаки операций Бинарные


Слайд 6Знаки операций Бинарные


Слайд 7Знаки операций Тернарная
Выражение1 ? Выражение2 : Выражение3;

Первым вычисляется значение выражения1.
Если оно

истинно, то вычисляется значение выражения2, которое становится результатом.
Если при вычислении выражения1 получится 0, то в качестве результата берется значение выражения3.


x<0 ? -x : x ; //вычисляется абсолютное значение x.

Слайд 8Выражения
Из констант, переменных, разделителей и знаков операций можно конструировать выражения.
Каждое

выражение состоит из одного или нескольких операндов, символов операций и ограничителей.
Если выражение формирует целое или вещественное число, то оно называется арифметическим.
Пара арифметических выражений, объединенная операцией сравнения, называется отношением.

Слайд 9
Оператор присваивания
Общая структура:
Арифметическое выражение может включать
константы (постоянные)
имена переменных
знаки арифметических операций:

+ - * / %

вызовы функций
круглые скобки ( )

умножение

деление

остаток от деления

имя переменной = выражение;

куда записать

что


Слайд 10
Сокращенная запись операций в Си
инкремент
декремент
a = a + 1;
a++;
a = a

+ b;

a += b;

a = a - 1;

a--;

a = a – b;

a -= b;

a = a * b;

a *= b;

a = a / b;

a /= b;

a = a % b;

a %= b;


Слайд 11
Порядок выполнения операций
вычисление выражений в скобках
умножение, деление, % слева направо
сложение и

вычитание слева направо

2 3 5 4 1 7 8 6 9
z = (5*a*c+3*(c-d))/a*(b-c)/ b;

2 6 3 4 7 5 1 12 8 11 10 9
x =(a*a+5*c*c-d*(a+b))/((c+d)*(d-2*a));




Слайд 12Стандартные функции
abs(x) — модуль целого числа
fabs(x) — модуль вещественного числа
sqrt(x) —

квадратный корень
sin(x) — синус угла, заданного в радианах
cos(x) — косинус угла, заданного в радианах
exp(x) — экспонента ех
ln(x) — натуральный логарифм
pow(x,y) — xy: возведение числа x в степень y
floor(x) — округление «вниз»
ceil(x) — округление «вверх»

#include

подключить математическую библиотеку

float x;
x = floor(1.6);// 1
x = ceil(1.6); // 2

x = floor(-1.6);//-2
x = ceil(-1.6); //-1


Слайд 132. Составные операторы
2.1. Составные операторы
2.2. Блоки
{
n++; //это составной оператор
summa+=n;
}
{
int n=0;
n++; //это блок
summa+=n;
}


Слайд 14
Разветвляющиеся алгоритмы
Задача. Ввести два целых числа и вывести на экран наибольшее

из них.
Идея решения: надо вывести на экран первое число, если оно больше второго, или второе, если оно больше первого.
Особенность: действия исполнителя зависят от некоторых условий (если … иначе …).

Алгоритмы, в которых последовательность шагов зависит от выполнения некоторых условий, называются разветвляющимися.


Слайд 15Условный оператор
Задача: изменить порядок действий в зависимости от выполнения некоторого условия.

полная

форма ветвления

if ( a > b )
M = a;
else
M = b;


Слайд 16Условный оператор: неполная форма

неполная форма ветвления
M = a;
if (

b > a )
M = b;

Слайд 17Условный оператор
if ( a > b )
{
с =

a;
a = b;
b = c;
}

4

6

?

4

6

4

a

b

3

2

1

c


Слайд 18Знаки отношений
>
=


Слайд 19Вложенные условные операторы
if ( a > b )
printf("Андрей старше");
else





if ( a == b )
printf("Одного возраста");
else
printf("Борис старше");

вложенный условный оператор

Задача: в переменных a и b записаны возрасты Андрея и Бориса. Кто из них старше?


Слайд 20Задача: набор сотрудников в возрасте 25-40 лет (включительно).

начало
ввод x
'подходит'


да
нет
x >= 25

и
x <= 40?

'не подходит'



Слайд 21Сложные условия
Задача: набор сотрудников в возрасте 25-40 лет (включительно).
if (

)
printf("подходит");
else
printf("не подходит");

&&

||

!

v >= 25 && v <= 40

сложное условие

«И»

«ИЛИ»

«НЕ»


Слайд 22
Сложные условия
Порядок выполнения сложных условий:
выражения в скобках
! (НЕ, отрицание)

>, >=
==, !=
&& (И)
|| (ИЛИ)
Пример:
2 1 6 3 5 4
if ( !(a > b) || c != d && b == a)
{
...
}

Слайд 23Задачи
«B»: Напишите программу, которая получает номер месяца и выводит соответствующее ему

время года или сообщение об ошибке.
Пример:
Введите номер месяца:
5
Весна.
Пример:
Введите номер месяца:
15
Неверный номер месяца.

Слайд 24Задачи
«C»: Напишите программу, которая получает возраст человека (целое число, не превышающее

120) и выводит этот возраст со словом «год», «года» или «лет». Например, «21 год», «22 года», «25 лет».
Пример:
Введите возраст: 18
Вам 18 лет.
Пример:
Введите возраст: 21
Вам 21 год.
Пример:
Введите возраст: 22
Вам 22 года.

Слайд 25Множественный выбор
if (m == 1) printf("январь");
if (m == 2) printf("февраль");
...
if (m

== 12) printf("декабрь");

switch ( m ) {
case 1: printf("январь");
break;
case 2: printf("февраль");
break;
...
case 12: printf("декабрь");
break;
default: printf("ошибка");
}


Слайд 26Множественный выбор
switch ( m ) {
case 1:

printf("январь");
case 2: printf("февраль");
case 3: printf("март");
default: printf("ошибка");
}

Если не ставить break:

февральмартошибка

При m = 2:






Слайд 27Множественный выбор
char c;
c = getch();
switch(c)
{
case 'а':

printf("антилопа\n");
printf("Анапа\n");
break;
...
case 'я':
printf("ягуар\n");
printf("Якутск\n");
break;
default: printf("Ошибка!");
}

несколько операторов в блоке

ждать нажатия клавиши, получить её код


Слайд 283. Операторы выбора
3.1. Условный оператор

if (выражение-условие) оператор; //сокращенная форма

if (выражение-условие)

оператор;
else оператор; //полная форма


Слайд 29
Условный оператор
if ( условие )
{

// что делать, если условие верно
}
else
{
// что делать, если условие неверно
}

Особенности:
вторая часть (else …) может отсутствовать (неполная форма)
если в блоке один оператор, можно убрать { }


Слайд 30Выражение-условие :
арифметическое выражение,
отношение,
логическое выражение.
Пример 1
if (x

(d>=0)
{
x1=(-b-sqrt(d))/(2*a);
x2=(-b+sqrt(d))/(2*a);
cout<< “\nx1=”<}
else cout<<“\nРешения нет”;

Слайд 313.2. Переключатель
switch (выражение)
{
case константа1 : оператор1 ;
case константа2 : оператор2 ;
.

. . . . . . . . . .
[default: операторы;]
}

switch (выражение)
{
case константа1 :
case константа2 : оператор1 ;
case константа3 : оператор2 ;

. . . . . . . . . . .
[default: операторы;]
}


Слайд 32Пример

#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";
}
}

Слайд 33
Циклические алгоритмы


Слайд 34Что такое цикл?
Цикл – это многократное выполнение одинаковых действий.
Два вида циклов:
цикл

с известным числом шагов (сделать 10 раз)
цикл с неизвестным числом шагов (делать, пока не надоест)

Задача. Вывести на экран 10 раз слово «Привет».


Слайд 35Повторения в программе
printf("Привет\n");
printf("Привет\n");
...
printf("Привет\n");


Слайд 36Блок-схема цикла

начало
конец
да
нет
тело цикла


Слайд 37Как организовать цикл?
счётчик = 0
пока счётчик < 10
printf("Привет\n");
увеличить счётчик

на 1

счётчик = 10
пока счётчик > 0
printf("Привет\n");
уменьшить счётчик на 1


результат операции автоматически сравнивается с нулём!


Слайд 38Цикл с условием
Задача. Определить количество цифр в десятичной записи целого положительного

числа, записанного в переменную n.

счётчик = 0
пока n > 0
отсечь последнюю цифру n
увеличить счётчик на 1

n = n / 10;

счётчик = счётчик + 1;





счётчик ++;


Слайд 39Цикл с условием
count = 0;
while ( )
{





}

n = n / 10;
count ++;

тело цикла

начальное значение счётчика

n > 0

условие продолжения

заголовок цикла

конец цикла


Слайд 40Цикл с условием
k = 0;
while ( k < 10 )

{
printf ( "привет\n" );
k ++;
}

При известном количестве шагов:

k = 0;
while ( k < 10 )
{
printf ( "привет\n" );
}

Зацикливание:


Слайд 41Сколько раз выполняется цикл?
a = 4; b = 6;
while ( a

< b ) a = a + 1;

2 раза
a = 6

a:= 4; b:= 6;
while ( a < b ) a = a + b;

1 раз
a = 10

a:= 4; b:= 6;
while ( a > b ) a ++;

0 раз
a = 4

a:= 4; b:= 6;
while ( a < b ) b = a - b;

1 раз
b = -2

a:= 4; b:= 6;
while ( a < b ) a --;

зацикливание


Слайд 42Цикл с постусловием
do
{


}
while ( n

);

условие продолжения

заголовок цикла

printf("Введите n > 0: ");
scanf ( "%d", &n );

тело цикла

при входе в цикл условие не проверяется
цикл всегда выполняется хотя бы один раз


Слайд 434. Операторы циклов
4.1. Цикл с предусловием
while (выражение-условие)
оператор;

Пример
a=1;s=0;
while (a!=0)
{
cin>>a;
s+=a;
}


Слайд 444.2. Цикл с постусловием
do
оператор
while (выражение-условие);

Пример
s=0;
do
{
cin>>a;
s+=a;
}
while(a!=0);


Слайд 45Задачи
«A»: Напишите программу, которая получает два целых числа A и B

(0 < A < B) и выводит квадраты всех натуральных чисел в интервале от A до B.
Пример:
Введите два целых числа:
10 12
10*10=100
11*11=121
12*12=144

«B»: Напишите программу, которая получает два целых числа и находит их произведение, не используя операцию умножения. Учтите, что числа могут быть отрицательными.
Пример:
Введите два числа:
10 -15
10*(-15)=-150


Слайд 46Задачи
«C»: Ввести натуральное число N и вычислить сумму всех чисел Фибоначчи,

меньших N. Предусмотрите защиту от ввода отрицательного числа N.
Пример:
Введите число N:
10000
Сумма 17709

Слайд 47Задачи-2
«A»: Ввести натуральное число и найти сумму его цифр.
Пример:
Введите натуральное

число:
12345
Сумма цифр 15.

«B»: Ввести натуральное число и определить, верно ли, что в его записи есть две одинаковые цифры, стоящие рядом.
Пример:
Введите натуральное число:
12342
Нет.
Пример:
Введите натуральное число:
12245
Да.


Слайд 48Задачи-2
«C»: Ввести натуральное число и определить, верно ли, что в его

записи есть две одинаковые цифры (не обязательно стоящие рядом).
Пример:
Введите натуральное число:
12342
Да.
Пример:
Введите натуральное число:
12345
Нет.

Слайд 49Цикл с переменной
Задача. Вывести все степени двойки от 21 до 210.
 
n

= 2;
while ( )
{
printf("%d\n", n);
n *= 2;
 
}

k = 1;

k <= 10

k ++;

n = 2;
for( )
{
printf("%d\n", n);
n *= 2;
  }

k=1; k<=10; k++

цикл с переменной


Слайд 50Цикл с переменной: другой шаг
for ( k = 10; k >=

1; k-- )
printf( "%d\n", k*k );

100
81
64
49
36
25
16
9
4
1

for ( k = 1; k <= 10; k += 2 )
printf( "%d\n", k*k );

1
9
25
49
81


Слайд 51Сколько раз выполняется цикл?
a = 1;
for( i = 1; i

3; i++ ) a = a + 1;

a = 4

a = 1;
for( i = 3; i <= 1; i++ ) a = a + 1;

a = 1

a = 1;
for( i = 1; i <= 3; i-- ) a = a + 1;

a = 1

a = 1;
for( i = 3; i >= 1; i-- ) a = a + 1;

a = 4


Слайд 52Задачи
«A»: Найдите все пятизначные числа, которые при делении на 133 дают

в остатке 125, а при делении на 134 дают в остатке 111.

«B»: Натуральное число называется числом Армстронга, если сумма цифр числа, возведенных в N-ную степень (где N – количество цифр в числе) равна самому числу. Например, 153 = 13 + 53 + 33. Найдите все трёхзначные Армстронга.

Слайд 53Задачи
«С»: Натуральное число называется автоморфным, если оно равно последним цифрам своего

квадрата. Например, 252 = 625. Напишите программу, которая получает натуральное число N и выводит на экран все автоморфные числа, не превосходящие N.
Пример:
Введите N:
1000
1*1=1
5*5=25
6*6=36
25*25=625
76*76=5776

Слайд 54Вложенные циклы
Задача. Вывести все простые числа в диапазоне от 2 до 1000.
сделать

для n от 2 до 1000
если число n простое то
вывод n

число n простое

нет делителей [2.. n-1]: проверка в цикле!


Слайд 55Вложенные циклы
for ( n = 2; n

)
{
count = 0;



if ( count == 0 )
printf("%d\n", n);
}

for ( k = 2; k < n; k ++ )
if ( n % k == 0 )
count ++;

вложенный цикл


Слайд 56Вложенные циклы
for ( i = 1; i


{
for ( k = 1; k <= i; k++ )
{
...
}
}

1 1
2 1
2 2
3 1
3 2
3 3
4 1
4 2
4 3
4 4


Слайд 57
Поиск простых чисел – как улучшить?
count = 0;
k = 2;
while

( )
{
if ( n % k == 0 ) count ++;
k ++;
}

while( k <= sqrt(n) )
{
...
}


while ( k*k <= n && count == 0 ) {
...
}

k*k <= n

(count == 0)


Слайд 58Задачи
«A»: Напишите программу, которая получает натуральные числа A и B (A

и выводит все простые числа в интервале от A до B.
Пример:
Введите границы диапазона:
10 20
11 13 17 19
«B»: В магазине продается мастика в ящиках по 15 кг, 17 кг, 21 кг. Как купить ровно 185 кг мастики, не вскрывая ящики? Сколькими способами можно это сделать?

Слайд 59Задачи
«C»: Ввести натуральное число N и вывести все натуральные числа, не

превосходящие N и делящиеся на каждую из своих цифр.
Пример:
Введите N:
15
1 2 3 4 5 6 7 8 9 11 12 15



Слайд 604.3. Цикл с параметром
for (выражение_1;выражение-условие;выражение_3)
оператор;

Выражение_1 – задает начальные значения для цикла

(инициализация).
Выражение-условие определяет условие выполнения цикла, если оно не равно 0, цикл выполняется, а затем вычисляется значение выражения_3.
Выражение_3 – задает изменение параметра цикла или других переменных (коррекция).

Слайд 61Пример 1.
for ( i=1;i

n>0; n--) // Уменьшение параметра
{
оператор;
}

Пример 3
for ( n=2; n<60; n+=13) // Изменение шага корректировки
{
оператор;
}

Слайд 62Пример 4.
//проверка условия отличного от того, которое налагается //на число итераций
for

( num=1;num*num*num<216; num++)
{
оператор;
}

Пример 5.
//коррекция с помощью умножения
for ( d=100.0; d<150.0;d*=1.1)
{
оператор;
}

Слайд 63Пример 6
//коррекция с помощью арифметического выражения
for (x=1;y

тело цикла отсутствует
for (x=1, y=0; x<10;x++,y+=x);

Слайд 64Примеры решения задач
Задача №1. Определить, попадет ли точка с координатами (х,

у ) в заштрихованную область.

Слайд 65#include
#include
using namespace std;
void main()
{
float x,y;
coutx>>y;
bool Ok=(y>=-x+1&& y

x>=0 && y>=0) ||
(pow(x,2)+pow(y,2)>=1 && pow(x,2)+pow(y,2)<=9 && x<=0) ||
(x>=0 && x<=1 && y<=-1 && y>=-3) ||
(x>=1 && x<=2 && y<=0 && y>=-3);
cout<<"\n"<}

Слайд 66Задача №2. Дана последовательность целых чисел из n элементов. Найти среднее

арифметическое этой последовательности.

Слайд 67#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среднее арифметическое равно="<}

Слайд 68Задача №3. Дана последовательность целых чисел, за которой следует 0. Найти

минимальный элемент этой последовательности.

Слайд 69//вариант программы №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="<}

Слайд 70//вариант программы №2
#include
using namespace std;
void main()
{
int a,min;
couta;
min=a;
do
{
cout

a";
cin>>a;
if (a==0)break;
if (a}
while(1);
cout<<"\nmin="<}

Слайд 71//вариант программы №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="<}

Обратная связь

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

Email: Нажмите что бы посмотреть 

Что такое ThePresentation.ru?

Это сайт презентаций, докладов, проектов, шаблонов в формате PowerPoint. Мы помогаем школьникам, студентам, учителям, преподавателям хранить и обмениваться учебными материалами с другими пользователями.


Для правообладателей

Яндекс.Метрика