Презентация на тему: Теория алгоритмов. Циклические алгоритмы

Реклама. Продолжение ниже
Теория алгоритмов. Циклические алгоритмы
Циклический алгоритм
Цикл с параметром. Цикл FOR
Примеры цикла FOR
Задание:
Вычисление суммы ряда
Вычисление суммы ряда
Задание:
Вычисление количества элементов по заданному условию
Алгоритм программы
Задание:
Цикл с предусловием WHILE
Цикл с предусловием WHILE
Цикл с предусловием WHILE
Вычисление максимальной цифры числа
Задание:
Датчик случайных чисел
Случайные числа от M до N
Цикл с постусловием DO WHILE
Цикл с постусловием DO WHILE
Задание:
Алгоритм Евклида. НОД
Задание:
Вложенные циклы. Программы перебора
Вложенные циклы. Программы перебора
Вложенные циклы
Вложенные циклы
Задание:
1/28
Средняя оценка: 4.6/5 (всего оценок: 23)
Код скопирован в буфер обмена
Скачать (214 Кб)
Реклама. Продолжение ниже
1

Первый слайд презентации: Теория алгоритмов. Циклические алгоритмы

Учебное пособие по курсу «Теория алгоритмов» Преподаватель Алексеева Н.Н. Санкт-Петербургский колледж информационных технологий Санкт-Петербург 2011

Изображение слайда
Изображение для работы со слайдом
1/2
2

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

Циклический алгоритм - описание действий, которые должны повторяться указанное число раз или пока не выполнено заданное условие. Перечень повторяющихся действий называют телом цикла. Такие циклы называются - циклы с параметром. Тело цикла - это многократно повторяющийся участок программы. Параметр цикла - это переменная, которая принимает новые значения при каждом повторении цикла.

Изображение слайда
Изображение для работы со слайдом
Изображение для работы со слайдом
1/3
3

Слайд 3: Цикл с параметром. Цикл FOR

Инициализация – присвоение параметру цикла начального значения. Условие – условие, при выполнении которого продолжается выполнение цикла. Изменение параметра – служит для изменения значения параметра цикла. for (< инициализация >; < условие >; < изменение параметра > ) оператор; for (< инициализация >; < условие >; < изменение параметра > ) { оператор1; оператор2; } Пример1. Вывести на экран значения чисел от 1 до10. #include < iostream.h > void main() { int I; for ( i =1 ; i <=10; i ++ ) cout << I; }

Изображение слайда
1/1
4

Слайд 4: Примеры цикла FOR

for ( int i =0; i <25; i ++) {… } for ( int j=25; j>0; j--) {… } for ( int n=3; n<52; n+=2) {… } for (; ; ) {… } for ( i =0, j=20; i <10; i ++, j++) {… } for (f=1, i =2; i <=n; f*= i ++); // n!

Изображение слайда
1/1
5

Слайд 5: Задание:

Вывести на экран числа в диапазоне от 10 до 20 Вывести на экран четные числа в диапазоне от 15 до 50 Вывести на экран числа, кратные 3, в диапазоне от 10 до 20 Вывести на экран все двухзначные числа, которые делятся на 12 Вычислить факториал числа n (n вводится с клавиатуры)

Изображение слайда
1/1
6

Слайд 6: Вычисление суммы ряда

Задание1: вычислить сумму чисел в диапазоне от 1 до 100. #include < iostream.h > #include < conio.h > #include < math.h > int a,s ; void main() { clrscr (); s=0; for (a=1;a<100;a++) s+=a; cout <<"S="<<s<<"\n"; getch (); }

Изображение слайда
1/1
7

Слайд 7: Вычисление суммы ряда

Задание2: вычислить сумму чисел в диапазоне от 1 до 200, которые кратны 7 и заканчиваются на цифру 9. void main() { int a,s ; clrscr (); s=0; for (a=1; a<200; a++) if ((a%7==0) && (a%10==9)) {s+=a; cout <<a<<" "; } cout <<"\ nS ="<<s; getch (); }

Изображение слайда
1/1
Реклама. Продолжение ниже
8

Слайд 8: Задание:

Вычислить сумму чисел в диапазоне от 10 до 20. Вычислить сумму четных чисел в диапазоне от 15 до 50. Вычислить сумму чисел, кратных 3, в диапазоне от 10 до 100, которые оканчиваются на цифру 1 (вывести их на экран). Вычислить сумму всех двухзначных чисел, которые делятся на 12. Найти сумму чисел в диапазоне от 20 до 100, кратных 4, и заканчивающихся на 2 или 8 (вывести их на экран).

Изображение слайда
1/1
9

Слайд 9: Вычисление количества элементов по заданному условию

Задание3: вычислить количество чисел в диапазоне от 100 до 200, которые кратны 17, вывести числа на экран. #include <iostream.h> #include <conio.h> #include <math.h> void main() { int a,k; clrscr(); k=0; for (a=100;a<200;a++) if (a%17==0) {k++; cout <<a<<"\n"; } cout <<"\ nk ="<<k<<"\n"; getch(); }

Изображение слайда
1/1
10

Слайд 10: Алгоритм программы

конец K=0 a=100; a<200; a++ a%17=0 K++ a k начало

Изображение слайда
1/1
11

Слайд 11: Задание:

Вычислить количество чисел в диапазоне от 100 до 300, которые кратны 17 и оканчиваются на цифру 2. Вычислить количество чисел в диапазоне от 200 до 500, которые кратны 12 и 36. Вычислить количество чисел, кратных 3, в диапазоне от 10 до 100, которые оканчиваются на цифру 1 (вывести их на экран). Вычислить количество чисел в диапазоне от 20 до 100, кратных 4, и заканчивающихся на 2, 4 или 8 (вывести их на экран). Найти их сумму. Найти все тройки чисел x, y, z из интервала от 10 до 50, для которых выполняется равенство: x 2 + y 2 - z = 0.

Изображение слайда
1/1
12

Слайд 12: Цикл с предусловием WHILE

Цикл выполняется до тех пор, пока истинно условие while ( условие) { тело цикла } Пример1: вычислить значение первой степени тройки, превышающей 100. int p=3; while (p<=100) p=p*3; cout <<"\ nP ="<<p<<"\n“;

Изображение слайда
1/1
13

Слайд 13: Цикл с предусловием WHILE

Пример2: вычислить значение показателя первой степени тройки, превышающей 100. int p=3, k=1; while (p<=100) {p=p*3; k++;} cout <<"\ nk ="<<k<<"\n“; конец p=3; k=1 P<=100 p=p*3 k начало K++

Изображение слайда
1/1
14

Слайд 14: Цикл с предусловием WHILE

Определите результат: 1. int k=1, n=3, f=1; while (k <=n ) f=f*k; k++; 2. int x=1, t =1 ; while (x<= 3 ) { t+=x; x++; } 3. int k=1; while (k<=10) { cout << (k % 2 ? “ **** ” : “++++”); k++; }

Изображение слайда
1/1
Реклама. Продолжение ниже
15

Слайд 15: Вычисление максимальной цифры числа

Пример3: вычислить максимальную цифру числа. void main(void) {      int n, max_d = 0, d;      cout << " Введите число: "; cin >> n; while (n > 0) {         d = n % 10;         if (d > max_d ) { max_d = d; }         n /= 10;     }      cout << " Наибольшая цифра в числе " << n << " равна "           << max_d ; }

Изображение слайда
1/1
16

Слайд 16: Задание:

1. Вычислить количество цифр числа n. 2. Вычислить количество четных цифр числа n. 3. Найти сумму цифр числа n, меньших 5. 4. Вычислить, сколько раз встречается заданная цифра в числе n. 5. По данному натуральному числу n определите количество цифр в его десятичной записи. Определите сумму цифр числа n. Найдите наибольшую и наименьшую цифры.

Изображение слайда
1/1
17

Слайд 17: Датчик случайных чисел

Последовательность действий: Включить директиву : #include <STDLIB.H > Инициализировать случайную последовательность: randomize(); Выбрать случайное число в диапазоне 0 – N-1 : random (N); Пример1: #include < iostream.h > #include < conio.h > #include < stdlib.h > /* prints a random number in the range 0 to 99 */ void main(void) { randomize(); cout <<"\ nRandom number in the 0-99 range: "<< random (100); getch (); }

Изображение слайда
1/1
18

Слайд 18: Случайные числа от M до N

Пример 2 : Получить 10 СВ в диапазоне от 20 до 25 (включительно) #include < iostream.h > #include < conio.h > #include < stdlib.h > void main(void) { randomize (); for (i=1; i<=10; i++) cout <<“ "<< 20+random (6); getch (); } M+random (N-M+1)

Изображение слайда
1/1
19

Слайд 19: Цикл с постусловием DO WHILE

В цикле с постусловием сначала выполняются действия тела цикла, а затем проверяется условие. Таким образом, тело цикла выполняется хотя бы один раз. do { тело цикла } while ( условие) инициализация условие тело цикла ложь истина

Изображение слайда
1/1
20

Слайд 20: Цикл с постусловием DO WHILE

Пример1: вычислить количество цифр числа случайного числа n. #include < iostream.h > #include < conio.h > #include < stdlib.h > void main(void) { clrscr (); int n, k=0; randomize(); n=random(20000); cout <<n; do {k++; n/=10; } while (n!=0); cout <<“ - в числе "<< k<<“ цифр \n”; getch (); } конец n=random(100); k=0 n!=0 n=n/10 k начало k++ Randomize()

Изображение слайда
1/1
21

Слайд 21: Задание:

1. Вычислить количество цифр числа n. 2. Вычислить количество четных цифр числа n. 3. Найти сумму цифр числа n, меньших 5. 4. Вычислить, сколько раз встречается заданная цифра в числе n. 5. По данному натуральному числу n определите количество цифр в его десятичной записи. Определите сумму цифр числа n. Найдите наибольшую и наименьшую цифры.

Изображение слайда
1/1
22

Слайд 22: Алгоритм Евклида. НОД

Задание: вычислить НОД двух чисел х и y. #include < iostream.h > #include < conio.h > #include < stdlib.h > void main() { int x,y ; clrscr (); cout <<"Vv. 2 chisla "; cin >>x>>y; do {if (x>y) x= x%y ; else y= y%x ; } while((x!=0)&&(y!=0)); cout <<"NOD="<<( x+y ); getch (); } конец x > y x=x % y k начало Вв. 2 числа: x, y x=0 или y=0 y=y % x ложь ложь истина истина

Изображение слайда
1/1
23

Слайд 23: Задание:

1. Отладить программу алгоритма Евклида. 2. Вычислить сумму делителей случайного числа n. 3. Вычислить количество делителей случайного числа n. 4. Вычислить количество четных делителей введенного с клавиатуры числа n.

Изображение слайда
1/1
24

Слайд 24: Вложенные циклы. Программы перебора

При решении задач один цикл может быть вложен в другой. Такие конструкции называются вложенными циклами или программами перебора. Используемые циклы называются внутренним и внешним. При использовании вложенных циклов необходимо соблюдать следующее условие: внутренний цикл должен полностью исполняться за один шаг внешнего цикла. Допускается вложение циклов различных типов. Переменные, выполняющие роль счетчика цикла не должны совпадать.

Изображение слайда
1/1
25

Слайд 25: Вложенные циклы. Программы перебора

конец K, n, пробел начало ложь ложь истина Пример1: Что будет выведено на экран? for ( k=0 ; k<=9; k++) for ( n=0 ; n<=9; n++) cout<< k<<n<<’ ‘; Пример 2 : Что будет выведено на экран? for (k=0;k<=9;k++) { for (n=0;n<=9;n++) cout<<k<<n<<" "; cout<<"\n"; } K=0; k<=9; k++ n=0; n<=9; n++ истина

Изображение слайда
1/1
26

Слайд 26: Вложенные циклы

начало ложь Пример3: Вывести на экран все простые числа в интервале от 1 до N. for ( i=1 ; i<=N; i++) { k=0; for ( d=1 ; d<=N; d++) if ( i%d ==0) k++; if (k==1 || k==2) cout << i<< endl ; } конец i ложь истина i =1; i <=N; i ++ d=0; d<=N; d++ истина N K=0 K++ i % d==0 k=2, k=1

Изображение слайда
1/1
27

Слайд 27: Вложенные циклы

Пример 3. Полный код программы : #include < iostream.h > #include < conio.h > void main() { int n,k,i,d ; clrscr (); cin >>n; for ( i =1;i<= n;i ++) { k=0; for (d=1;d<= n;d ++) if ( i%d ==0) k++; if (k==1 || k==2) cout << i << endl ; } getch (); }

Изображение слайда
1/1
28

Последний слайд презентации: Теория алгоритмов. Циклические алгоритмы: Задание:

1. Найти все простые 2-значные числа. Простое число имеет 2 делителя. 2. Ввести число N. Найти такие два числа x и y, для которых выполняется равенство x 2 + y 2 = N. 3. Вычислить количество таких пар для задания 2. 4. Ввести число N. Найти такие три числа x, y, z, для которых выполняется равенство x 2 + y 2 + z 2 = N.

Изображение слайда
1/1