Алгоритмизация линейных, разветвляющихся и циклических алгоритмов

Содержание

Слайд 2

Этапы решения задачи на ЭВМ 1. Постановка задачи: • сбор информации

Этапы решения задачи на ЭВМ

1. Постановка задачи:
• сбор информации о

задаче;
• формулировка условия задачи;
• определение конечных целей решения задачи;
• определение формы выдачи результатов;
• описание данных (их типов, диапазонов величин, структуры и т. п.).
2. Анализ и исследование задачи, модели:
• анализ существующих аналогов;
• анализ технических и программных средств;
• разработка математической модели;
• разработка структур данных.
3. Разработка алгоритма:
• выбор метода проектирования алгоритма;
• выбор формы записи алгоритма (блок-схемы, псевдокод и др.);
• выбор тестов и метода тестирования;
• проектирование алгоритма.
4. Программирование:
• выбор языка программирования;
• уточнение способов организации данных;
• запись алгоритма на выбранном языке
программирования.
5. Тестирование и отладка:
• синтаксическая отладка;
• отладка семантики и логической структуры;
• тестовые расчеты и анализ результатов тестирования;
• совершенствование программы.
6. Анализ результатов решения задачи и уточнение в случае необходимости математической модели с повторным выполнением этапов 2-5.
7. Сопровождение программы:
• доработка программы для решения конкретных задач;
• составление документации к решенной задаче, к математической модели, к алгоритму, к программе, к набору тестов, к использованию.
Слайд 3

- это последовательность действий, которые необходимо выполнить для решения задачи. Алгоритм

- это последовательность действий, которые необходимо выполнить для решения задачи.

Алгоритм (лат. algorithmi

– аль Хорезми – ср. азиатский математик IX в.,)
Слайд 4

Графический способ описания алгоритмов Основан на изображении структуры алгоритма в виде

Графический способ описания алгоритмов

Основан на изображении структуры алгоритма в виде блок-схем.
Блок-схема

- графическое изображение структуры алгоритма, в котором каждый этап представлен в виде геометрических фигур (блоков), имеющих определённую форму в зависимости от характера выполняемых действий.
Слайд 5

Условные обозначения блоков схем алгоритмов.

Условные обозначения блоков схем алгоритмов.

Слайд 6

Основные алгоритмические конструкции СЛЕДОВАНИЕ ВЕТВЛЕНИЕ ПОВТОРЕНИЕ Логическая структура любого алгоритма может

Основные
алгоритмические конструкции

СЛЕДОВАНИЕ  

ВЕТВЛЕНИЕ  

ПОВТОРЕНИЕ

Логическая структура любого алгоритма может быть представлена

комбинацией трех базовых структур:


да

нет

Слайд 7

Следование (линейный алгоритм) - это алгоритм, в котором этапы вычислений выполняются

Следование (линейный алгоритм)

- это алгоритм, в котором этапы вычислений выполняются в

линейной последовательности и каждый этап выполняется только один раз.
Слайд 8

х:=2 Вычисления по алгоритму Алгоритм Ответ: s = 48 у:=х*х у:=у*у

х:=2

Вычисления по алгоритму

Алгоритм

Ответ: s = 48

у:=х*х

у:=у*у

х:=у*х

s:=x+y

2

-

-

2

4

-

2

16

-

32

16

-

32

16

48

Слайд 9

начало x:=2, y:=0 конец Выполнить алгоритм, занести значения переменных в таблицу s:=x x:=y y:=s y:=x+s

начало

x:=2, y:=0

конец

Выполнить алгоритм, занести
значения переменных в таблицу

s:=x

x:=y

y:=s

y:=x+s

Слайд 10

начало x:=2, y:=0 конец Выполнить алгоритм, занести значения переменных в таблицу

начало

x:=2, y:=0

конец

Выполнить алгоритм, занести
значения переменных в таблицу

s:=x

x:=y

y:=s

y:=x+s

2

0

-

2

0

2

0

0

2

0

2

2

0

2

2

Слайд 11

Следование Нарисовать в виде блок-схемы алгоритм расчета соотношения Пифагора: соотношение между объемами цилиндра и шара Тест:

Следование

Нарисовать в виде блок-схемы алгоритм расчета соотношения Пифагора: соотношение между

объемами цилиндра и шара

Тест:

Слайд 12

Этап 5 - Тестирование программы. Виды тестов Тестирование – это процесс

Этап 5 - Тестирование программы. Виды тестов

Тестирование – это процесс

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

#include #include main(){ float x,y; cout cin>>x; if ( (x>2+1.0/3) &&

#include
#include
main(){
float x,y;
cout<<"Введите х \n";
cin>>x;
if ( (x>2+1.0/3) && (x<18) )
{


y=log (36-2*x, x*x)+log(3*x-7, x);
cout << "y = "<< y;
}
else cout<< "Некорректные входные данные";
}
ТЕСТЫ

Набор текстов должен быть таким, чтобы каждый оператор программы выполнился хотя бы один раз.
Составим программу для расчета функции
f(x)=

Слайд 14

Задание. На доске нарисовать блок-схемы для решения следующих задач: Вычислите среднее

Задание. На доске нарисовать блок-схемы для решения следующих задач:

Вычислите среднее арифметическое

трех чисел
Зная длины трех сторон треугольника, вычислить периметр треугольника по формуле Герона:
S = √(p·(p - a)·(p - b)·(p - c)).
Слайд 15

Слайд 16

С помощью операции / вычисляется целое частное, с помощью операции %

С помощью операции / вычисляется целое частное, с помощью операции %

- остаток.

Целочисленная арифметика

8 : 3 = 2 (ост.2)

7 : 3 = 2 (ост.1)

8 % 3 = 2

7 / 3 = 2

8 % 3 = 2

7 % 3 = 1

10 / 3 =

13 / 4 =

10 % 3 =

13 % 4 =

3

1

3

1

Дано трехзначное число, надо определить среднюю цифру числа.

Пусть а=246
b:=a / 10 = 24
b:=b % 10 = 4
Или одним выражением b:=(a / 10) % 10
Или по другому:
b:=a % 100 = 46
b:=b / 10 = 4
Или одним выражением b:=(a % 10) / 10

Слайд 17

Нарисовать в виде блок-схемы для линейных алгоритмов расчета следующих задач: 1)

Нарисовать в виде блок-схемы для линейных алгоритмов расчета следующих задач:

1) Даны

два действительных числа х и у. Составить программу для нахождения их суммы, разности, произведения и частного..
2) Поменять 1 и 3 цифры в записи трехзначного числа.
3) Определить h – полное количество часов и m – полное количество минут, прошедших от начала суток до f-ой секунды.
4) Пешеход шел по пересеченной местности. Его скорость движения по равнине v1 км/ч, в гору — v2 км/ч и под гору — v3 км/ч. Время движения соответственно t1, t2 и t3 ч. Какой полный путь прошел пешеход?
5) Дана величина A, выражающая объем информации в байтах. Перевести А в более крупные единицы измерения информации( Килобайты – К, Мегабайты – М, Гигабайты – Г).
6) Скорость первого автомобиля V1 км/ч, второго - V2 км/ч, начальное расстояние между ними S км. Определить расстояние между ними через T часов, если автомобили удаляются друг от друга.
7) Вычислить периметр и площадь прямоугольного треугольника по заданным длинам двух катетов a и b.
8) Вычислить произведения цифр трехзначного числа.
9) Найти площадь кольца с внутренним радиусом r и внешним радиусом R.
10) В исходном четырёхзначном числе поменять местами первую и последнюю цифру местами. Например: входное число 1234 выходное – 4231.
11) Составить программу для нахождения площади и периметра равностороннего треугольника со стороной а.
12) Дана длина ребра куба. Составить программу для нахождения площади грани, площади полной поверхности и объема этого куба.
Слайд 18

Ветвление (условный, разветвляющийся алгоритм) - алгоритм, реализующийся по одному из нескольких

Ветвление (условный, разветвляющийся алгоритм)

- алгоритм, реализующийся по одному из нескольких заранее

предусмотренных направлений в зависимости от выполнения некоторых условий.
Слайд 19

Условные алгоритмы Нарисовать в виде блок-схемы алгоритм вычисления значения функции А:

Условные алгоритмы

Нарисовать в виде блок-схемы алгоритм вычисления значения функции А:

Слайд 20

Задание. На доске нарисовать блок-схемы для решения следующих задач: Составьте алгоритм,

Задание. На доске нарисовать блок-схемы для решения следующих задач:

Составьте алгоритм, который

в зависимости от измеренных значений H и h выдает одно из следующих значений: «нормальное», «повышенное», «пониженное». Кровяное давление у старшеклассников считается нормальным, если верхняя его граница H≤100, а нижняя h≥60 и H-h≥30.
Решение квадратного уравнения ax²+bx+c=0 (a≠0)
Слайд 21

Составьте алгоритм, который в зависимости от измеренных значений H и h

Составьте алгоритм, который в зависимости от измеренных значений H и h

выдает одно из следующих значений: «нормальное», «повышенное», «пониженное». Кровяное давление у старшеклассников считается нормальным, если верхняя его граница H≤100, а нижняя h≥60 и H-h≥30.
Слайд 22

Решение квадратного уравнения ax²+bx+c=0 (a≠0)

Решение квадратного уравнения ax²+bx+c=0 (a≠0)

Слайд 23

Задача Какое значение получит переменная Z в результате выполнения следующего алгоритма?

Задача

Какое значение получит переменная Z в результате выполнения следующего алгоритма?

Начало

X,Y

Z:=0

X>0

Y>0

Z:=1

Z:=2

Z

Конец

А) Х=1,

Y=1
Б) X=1, Y=-1
В) X=-1, Y=1

Z=1

Z=2

Z=0

Нет

Нет

Да

Да

Слайд 24

Пример По координатам точки (х, y) определить принадлежит ли точка осям

Пример

По координатам точки (х, y) определить принадлежит ли точка осям

координат. Фрагмент программы:
if ( x =0) cout <<"\nТочка на оси ОY";
if ( y = 0 ) cout < <"\nТочка на оси ОX";

Тесты:

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

Слайд 25

Нарисовать блок-схему с использованием разветвляющегося алгоритма для следующих задач: Для нормального

Нарисовать блок-схему с использованием разветвляющегося алгоритма для следующих задач:

Для нормального разведения

золотых рыбок необходимо, чтобы на каждую рыбку в аквариуме приходилось не менее 3-х литров воды. По известным объему аквариума V и количеству рыбок N, в нем содержащихся, определить, является ли аквариум "перенаселенным" или нет.
Даны две переменные целого типа: A и B. Если их значения не равны, то присвоить каждой переменной сумму этих значений, а если равны, то присвоить переменным нулевые значения. Вывести новые значения переменных A и B.
Даны две переменные вещественного типа: A, B. Если их значения упорядочены по возрастанию, то удвоить их; в противном случае заменить значение каждой переменной на противоположное. Вывести новые значения переменных A, B.
На числовой оси расположены три точки: A, B, C. Определить, какая из двух последних точек (B или C) расположена ближе к A, и вывести эту точку и ее расстояние от точки A.
Даны три вещественных числа. Выбрать те из них, которые принадлежат интервалу [1,3].
Даны три действительных числа. Возвести в квадрат те из них, значения которых неотрицательны.
Составьте алгоритм, определяющую, пройдет ли график функции y = 5x2 – 7x + 2 через заданную точку с координатами (a, b).
Даны три вещественных числа x, y, z. Вычислить значения выражений x + y + z и x*y*z и вывести максимальное из них.
Даны две точки: А(x1,y1) и B(x2,y2). Составить алгоритм, определяющий, которая точка находится ближе к началу координат.
В кубический, наполненный на 70% аквариум со стороной a метров выпустили рыбу-шар диаметром b см. Определить, выплеснется ли вода из аквариума (хвост и плавники рыбы не учитывайте).
Определить, пройдет ли мяч радиусом R в квадратную форточку размером а.
Удвоить меньшее из двух чисел.
Слайд 26

Повторение (циклический алгоритм) - алгоритм, в котором многократно повторяются одни и

Повторение (циклический алгоритм)

- алгоритм, в котором многократно повторяются одни и те

же действия, но при разных значениях исходных данных до тех пор, пока выполняется некоторое условие.
Слайд 27

Алгоритмическая структура «цикл» Циклический алгоритм – описание действий, которые должны повторяться

Алгоритмическая структура «цикл»

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

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

Цикл с
предусловием

Цикл
с постусловием

Цикл с
параметром

Условие

Тело цикла

да

нет

…..

Тело цикла

Условие

нет

да


Счётчик

Тело цикла


Слайд 28

Разложить целое число, вводимое с клавиатуры, на простые множители. Определим переменную

Разложить целое число, вводимое с клавиатуры, на простые множители. Определим переменную X

для ввода разлагаемого числа, m - переменная, используемая в качестве делителя (mod – остаток от деления, div – целая часть отделения). Для задания алгоритма будем использовать цикл с предпроверкой условия.

Повторение (цикл) 

Цикл «С предпроверкой условия»

Слайд 29

Вычислить значение суммы Повторение (цикл) Цикл «С постпроверкой условия»

Вычислить значение суммы

Повторение (цикл) 

Цикл «С постпроверкой условия»

Слайд 30

Дано действительное число x. Вычислить сумму ряда 2x+3x+…+ 10x. Повторение (цикл) Цикл «С параметром» Тело цикла

Дано действительное число x. Вычислить сумму ряда 2x+3x+…+ 10x.

Повторение (цикл) 


Цикл «С параметром»

Тело цикла

Слайд 31

Задача К какому результату приведет исполнение представленного в виде блок-схемы алгоритма?

Задача

К какому результату приведет
исполнение представленного в виде
блок-схемы алгоритма?

Начало

I:=0

I<=10

НЕТ

ДА

Вывод:
«ПРИВЕТ!»

I:=I+2

Вывод: I

Конец

Ответ: I=

12

Сколько раз выполнится вывод текста в алгоритме?

Ответ: 6 раз

Изменим условие: I:=I*2

I:=I*2

Сколько раз выполнится вывод текста в алгоритме?

Ответ: бесконечно.

Слайд 32

Определите значение переменных X и Y после выполнения фрагмента алгоритма. 1

Определите значение переменных X и Y после
выполнения фрагмента алгоритма.

1 задача

2 задача

Х=13;

Y=20

Х=30; Y=20

Слайд 33

Задание. Нарисовать блок-схемы для решения следующих задач: Возвести число a в

Задание. Нарисовать блок-схемы для решения следующих задач:

Возвести число a в степень

n.
Вычислить сумму всех двузначных нечетных чисел.
Слайд 34