Разделы презентаций


Теория алгоритмов. Циклические алгоритмы

Содержание

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

Слайды и текст этой презентации

Слайд 1Теория алгоритмов. Циклические алгоритмы
Учебное пособие по курсу «Теория алгоритмов»

Преподаватель Алексеева Н.Н.
Санкт-Петербургский

колледж информационных технологий
Санкт-Петербург 2011

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

Слайд 2Циклический алгоритм
Циклический алгоритм - описание действий, которые должны повторяться указанное

число раз или пока не выполнено заданное условие.
Перечень повторяющихся действий

называют телом цикла.

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

Циклический алгоритмЦиклический алгоритм - описание действий, которые должны повторяться указанное число раз или пока не выполнено заданное

Слайд 3Цикл с параметром. Цикл FOR
Инициализация – присвоение параметру цикла начального

значения.
Условие – условие, при выполнении которого продолжается выполнение цикла.
Изменение параметра

– служит для изменения значения параметра цикла.

for (<инициализация>; <условие>; <изменение параметра>)
оператор;

for (<инициализация>; <условие>; <изменение параметра>)
{оператор1; оператор2;}

Пример1. Вывести на экран значения чисел от 1 до10.
#include
void main()
{
int I;
for (i=1; i<=10; i++)
cout<< I;
}

Цикл с параметром. Цикл FORИнициализация – присвоение параметру цикла начального значения.Условие – условие, при выполнении которого продолжается

Слайд 4Примеры цикла FOR
for (int i=0; i

(int j=25; j>0; j--) {… }
for (int n=3; n

{… }
for (; ; ) {… }
for ( i=0, j=20; i<10; i++, j++) {… }
for (f=1, i=2; i<=n; f*=i++); // n!






Примеры цикла FORfor (int i=0; i0; j--) {… }for (int n=3; n

Слайд 5Задание:
Вывести на экран числа в диапазоне от 10 до 20
Вывести

на экран четные числа в диапазоне от 15 до 50
Вывести

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




Задание:Вывести на экран числа в диапазоне от 10 до 20Вывести на экран четные числа в диапазоне от

Слайд 6Вычисление суммы ряда
Задание1: вычислить сумму чисел в диапазоне от 1

до 100.

#include
#include
#include
int a,s;
void main()
{
clrscr();

s=0;
for (a=1;a

Вычисление суммы рядаЗадание1: вычислить сумму чисел в диапазоне от 1 до 100.#include #include #include int a,s;void main(){clrscr();s=0;for

Слайд 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< }

cout<<"\nS="<getch();
}
Вычисление суммы рядаЗадание2: вычислить сумму чисел в диапазоне от 1 до 200, которые кратны 7 и заканчиваются

Слайд 8Задание:
Вычислить сумму чисел в диапазоне от 10 до 20.
Вычислить сумму

четных чисел в диапазоне от 15 до 50.
Вычислить сумму чисел,

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



Задание:Вычислить сумму чисел в диапазоне от 10 до 20.Вычислить сумму четных чисел в диапазоне от 15 до

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

диапазоне от 100 до 200, которые кратны 17, вывести числа

на экран.

#include
#include
#include

void main()
{
int a,k;
clrscr();

k=0;
for (a=100;a<200;a++)
if (a%17==0)
{k++; cout< }

cout<<"\nk="<getch();
}
Вычисление количества элементов по заданному условиюЗадание3: вычислить количество чисел в диапазоне от 100 до 200, которые кратны

Слайд 10Алгоритм программы
конец
K=0
a=100; a

Алгоритм программыконецK=0a=100; a

Слайд 11Задание:
Вычислить количество чисел в диапазоне от 100 до 300, которые

кратны 17 и оканчиваются на цифру 2.
Вычислить количество чисел в

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




Задание:Вычислить количество чисел в диапазоне от 100 до 300, которые кратны 17 и оканчиваются на цифру 2.Вычислить

Слайд 12Цикл с предусловием WHILE
Цикл выполняется до тех пор, пока истинно

условие
while (условие)
{тело цикла}

Пример1: вычислить значение первой степени

тройки, превышающей 100.
int p=3;
while (p<=100)
p=p*3;

cout<<"\nP="<
Цикл с предусловием WHILEЦикл выполняется до тех пор, пока истинно условиеwhile (условие)   {тело цикла}Пример1: вычислить

Слайд 13Цикл с предусловием WHILE
Пример2: вычислить значение показателя первой степени тройки,

превышающей 100.

int p=3, k=1;
while (p

k=1

P<=100

p=p*3

k

начало

K++

Цикл с предусловием WHILEПример2: вычислить значение показателя первой степени тройки, превышающей 100. int p=3, k=1; while (p

Слайд 14Цикл с предусловием WHILE
Определите результат:
1. int k=1,

n=3, f=1;
while (k

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++;
}
Цикл с предусловием WHILEОпределите результат:1.    int k=1, n=3, f=1;     while

Слайд 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 ; }
Вычисление максимальной цифры числаПример3: вычислить максимальную цифру числа.void main(void) {      int n, max_d = 0, d;

Слайд 16Задание:
1. Вычислить количество цифр числа n.

2. Вычислить количество четных цифр числа n.
3. Найти

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

Слайд 17Датчик случайных чисел
Последовательность действий:
Включить директиву : #include
Инициализировать случайную последовательность:

randomize();
Выбрать случайное число в диапазоне 0 – N-1 : random

(N);

Пример1:

#include
#include
#include

/* 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();
}
Датчик случайных чиселПоследовательность действий:Включить директиву : #include Инициализировать случайную последовательность: randomize();Выбрать случайное число в диапазоне 0 –

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

Пример2: Получить 10 СВ в диапазоне

от 20 до 25 (включительно)

#include
#include
#include

void main(void)
{

randomize();
for (i=1; i<=10; i++)
cout<<“ "<< 20+random (6);
getch();
}

M+random (N-M+1)

Случайные числа от M доNПример2: Получить 10 СВ в диапазоне от 20 до 25 (включительно)#include #include #include

Слайд 19Цикл с постусловием DO WHILE
В цикле с постусловием сначала

выполняются действия тела цикла, а затем проверяется условие. Таким образом,

тело цикла выполняется хотя бы один раз.
do
{тело цикла}
while (условие)

инициализация

условие

тело цикла

ложь

истина

Цикл с постусловием DO WHILE В цикле с постусловием сначала выполняются действия тела цикла, а затем проверяется

Слайд 20Цикл с постусловием DO WHILE
Пример1: вычислить количество цифр числа случайного

числа n.
#include
#include
#include

void main(void)
{
clrscr();

int n, k=0;
randomize();
n=random(20000); cout< do
{k++;
n/=10;
}
while (n!=0);
cout<<“ - в числе "<< k<<“ цифр \n”;
getch();
}

конец

n=random(100); k=0

n!=0

n=n/10

k

начало

k++

Randomize()

Цикл с постусловием DO WHILEПример1: вычислить количество цифр числа случайного числа n. #include #include #include void main(void){

Слайд 21Задание:
1. Вычислить количество цифр числа n.

2. Вычислить количество четных цифр числа n.
3. Найти

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

Слайд 22Алгоритм Евклида. НОД
Задание: вычислить НОД двух чисел х и y.

#include
#include
#include

void main()
{
int x,y;
clrscr();
coutx>>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

ложь

ложь

истина

истина

Алгоритм Евклида. НОДЗадание: вычислить НОД двух чисел х и y. #include #include #include void main(){int x,y;clrscr();coutx>>y;do

Слайд 23Задание:
1. Отладить программу алгоритма Евклида.

2. Вычислить сумму делителей случайного числа n.
3. Вычислить

количество делителей случайного числа n.

4. Вычислить количество четных делителей введенного с клавиатуры числа n.


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

Слайд 24Вложенные циклы. Программы перебора
При решении задач один цикл может быть

вложен в другой.
Такие конструкции называются вложенными циклами или программами

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




Переменные, выполняющие роль счетчика цикла не должны совпадать.

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

Слайд 25Вложенные циклы. Программы перебора
конец
K, n, пробел
начало
ложь
ложь
истина
Пример1: Что будет выведено на

экран?
for (k=0; k

cout<< k<
Пример2: Что будет выведено на экран?
for (k=0;k<=9;k++)
{
for (n=0;n<=9;n++)
cout< cout<<"\n";
}


K=0; k<=9; k++


n=0; n<=9; n++

истина

Вложенные циклы. Программы перебораконецK, n, пробелначалоложьложьистинаПример1: Что будет выведено на экран? for (k=0; k

Слайд 26Вложенные циклы
начало
ложь
Пример3: Вывести на экран все простые числа в

интервале от 1 до N.

for (i=1; i

k=0;
for (d=1; d<=N; d++)
if (i%d==0) k++;
if (k==1 || k==2)
cout<< i< }

конец

i

ложь

истина


i=1; i<=N; i++


d=0; d<=N; d++

истина

N

K=0

K++

i % d==0

k=2, k=1

Вложенные циклы началоложьПример3: Вывести на экран все простые числа в интервале от 1 до N.for (i=1; i

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

#include
#include

void main()
{
int

n,k,i,d;
clrscr();
cin>>n;
for (i=1;i

if (k==1 || k==2)
cout< }
getch();
}

Вложенные циклыПример 3. Полный код программы :#include #include void main(){int n,k,i,d;clrscr();cin>>n;for (i=1;i

Слайд 28Задание:
1. Найти все простые 2-значные числа. Простое число имеет

2 делителя.

2. Ввести число N. Найти

такие два числа x и y, для которых выполняется равенство x2 + y2 = N.

3. Вычислить количество таких пар для задания 2.

4. Ввести число N. Найти такие три числа x, y, z, для которых выполняется равенство x2 + y2 + z2 = N.




Задание:  1. Найти все простые 2-значные числа. Простое число имеет 2 делителя.    2.

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

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

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

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

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


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

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