Слайд 1
Презентация
по теме:
Алгоритмизация и программирование
Информатика 10-11 класс
Слайд 2Содержание:
Разветвляющиеся алгоритмы
Массивы
Циклические алгоритмы
Линейные алгоритмы
Понятие алгоритма
Слайд 3Понятие алгоритма
Понятие алгоритма не есть
для нас нечто новое и необычное.
Они встречаются в нашей жизни
на каждом шагу.
Пример:
открывание двери ключом
стирка белья
приготовление блюд
различные алгоритмы выполнения алгебраических заданий и т.д.
Попробуйте переставить местами любые два действия.
Мы получим
либо алгоритм не выполнимым
либо результат не будет соответствовать тому, что мы должны были получить
Поэтому алгоритм это не только набор действий но и их определенный порядок.
Слайд 4Алгоритм - понятное и точное предписание исполнителю выполнить конечную организованную последовательность
команд, приводящую от исходных данных к искомому результату.
Само слово «алгоритм» происходит от латинской формы написания имени великого математика IX века
аль-Хорезми (Muhammed ibn Musa al Horesmi), который сформулировал правила выполнения арифметических действий. Первоначально под алгоритмами и понимали только правила выполнения четырех арифметических действий, а в дальнейшем это понятие стало использоваться для обозначения последовательности действий, приводящих к решению поставленной задачи.
Слайд 5Предписание о выполнении отдельного законченного действия исполнителем называется командой алгоритма. Совокупность
всех команд, которые могут быть выполнены некоторым исполнителем, образуют систему команд данного исполнителя (СКИ). Компьютер один из наиболее впечатляющих примеров исполнителей.
В общем виде схему работы алгоритма можно представить следующим образом:
Исходные
данные
Алгоритм
Искомый
результат
Слайд 6Для того, что бы исполнитель выполнил задание ему не требуется понимание
сущности алгоритма, он должен лишь точно выполнять команды, не нарушая их последовательности.
Алгоритм должен быть:
Точным (каждая команда – однозначное действие)
Понятным (те команды, которые выходят в систему)
Конечным (конечное число шагов)
Слайд 7Свойства алгоритмов
Свойство дискретности означает, что путь решения задачи
разделен на отдельные
шаги (действия). Каждому действию соответствует предписание (команда). Только выполнив одну команду, исполнитель может приступить к выполнению следующей.
Свойство понятности означает, что алгоритм состоит только из предписаний, входящих в СКИ исполнителя. То есть таких предписаний, которые исполнитель может воспринять и выполнить по ним требуемые действия.
Свойство определенности означает, что в алгоритме нет команд, смысл которых может быть истолкован неоднозначно; недопустимы ситуации. Когда после выполнения очередной команды исполнителю не ясно, какую команду надо выполнять на следующем шаге.
Свойство результативности означает, что алгоритм должен обеспечивать возможность получения результата после конечного, возможно очень большого, числа шагов. При этом результатом считается не только обусловленный поставленной задачей ответ, но и вывод о невозможности продолжения решения данной задачи по какой-либо причине.
Свойство массовости означает, что алгоритм должен обеспечивать возможность его применения для решения класса однотипных задач.
Слайд 8Существуют
три способа написания алгоритмов:
На естественном языке
(с помощью описания)
На алгоритмическом
языке
(языке программирования)
На языке схем (с помощью графических объектов)
Слайд 9Алгоритм на естественном языке выглядит в виде описания последовательности шагов.
Например: алгоритм
открывания двери
1.Взять ключ;
2. Вставить ключ в замочную скважину;
3. Сделать ключом необходимое количество оборотов;
4. Вынуть ключ из замочной скважины;
5. Открыть дверь.
Алгоритм
на естественном языке
Слайд 10Алгоритм
на языке программирования
Записанный на языке программирования алгоритм называется программой. Система
программирования – это программное обеспечение ПК , предназначенное для разработки, отладки и выполнения программ на некотором языке программирования.
Из используемых процедурных языков программирования в настоящее время наиболее распространенными являются Паскаль, Делфи, Бейсик и СИ.
Чаще всего именно эти языки изучаются на уроках информатики.
Наиболее подходящим языком для первоначального освоения программирования является язык Паскаль. Как известно, автор Паскаля
Н. Вирт создавал его прежде всего как учебный язык. Позднее фирмой Borland была разработана система программирования Турбо-Паскаль, расширившая область применения языка и развившая сам язык программирования. Современные версии Турбо-Паскаля достаточно широко распространены в компьютерных классах учебных заведений.
Слайд 11Компьютер работает с информацией, хранящейся в его памяти.
Отдельный информационный объект (число,
символ, строка, таблица) называется величиной.
С понятием величины связаны такие характеристики, как:
Имя (место в памяти компьютера). Величины в программировании , как и в математике, делятся на
- переменные, обозначающиеся символическими именами (индефикаторами) . Имя переменной может состоять из одной или нескольких латинских букв и цифр: А1,М, АР.
- постоянные (константы). Значение константы хранится в выделенном под нее поле памяти и остается неизменным в течение работы программы.
Если значением переменной является не число, а некоторый набор символов, то к ее имени добавляется символ $: А1$;
Значение (информация о величине, хранимая в определенном месте).
Тип (существует пять типов
величин, с которыми работает
компьютер
Слайд 12Арифметические операции и стандартные математические функции
Слайд 13Пример 1. Записать математическое выражение в виде арифметических выражений на Паскале.
1.
2.
3.
Математическое
выражение
Выражение на Паскале
sqr(x)-7*x+6
(abs(x)-abs(y))/(1+abs(x*y))
Ln(abs((y-sqrt(abs(x)))*
(x-y/(z+sqr(x)/4))))
Слайд 14Программирование на языке Турбо-Паскаль
Программа может содержать числа, величины (переменные), арифметические выражения,
операторы.
Набор правил записи компьютерной программы называется алгоритмическим языком (или языком программирования)
Оператор- это команда алгоритмического языка.
Операторы в Паскале:
Присваивания имя := выражение (предназначен для изменения значения величины)
Ввода readln (список переменных) (предназначены для считывания информации в память компьютера с устройств ввода, например с клавиатуры)
Вывода writeln ('подсказка', список переменных) (предназначены для вывода значения переменных на устройства вывода, например на экран монитора)
Обращения к процедурам.
Слайд 15Program ;
Var ;
Begin
;
Writeln (‘ввести …‘);
Readln (…);
…
:= …;
Writeln (‘ответ …‘, …:0:2);
Readln ;
End.
Структура программы на Паскале
Начало
Ввод (если есть)
Действие
Вывод
Конец
Слайд 16Алгоритм на языке схем
Схема – наглядное графическое изображение алгоритма, когда отдельные
его действия (этапы) изображаются при помощи различных геометрических фигур (блоков), а связи между этапами указываются при помощи стрелок, соединяющих эти фигуры.
Подобные схемы называются блок-схемами.
Слайд 17Условные графические обозначения в схемах алгоритмов.
НАЧАЛО
КОНЕЦ
Слайд 18Решение задач на компьютере
МПЗ (математическая постановка задачи).
ОД (описание данных).
РА (разработка алгоритма):
Блок-схема,
Программа
на языке программирования.
КЭ (компьютерный эксперимент).
Открыть Турбо-Паскаль и ввести программу,
Осуществить компиляцию (проверить на наличие ошибок с помощью нажатия клавиш Alt+F9),
Выполнить отладку программы и запустить программу с помощью нажатия клавиш Ctrl+F9,
Ввести значения входных переменных (через пробел или enter),
Проанализировать полученные результаты и при необходимости осуществить корректировку.
Слайд 19Линейные алгоритмы
Алгоритм, в котором команды выполняются в порядке их естественного следования
друг за другом независимо от каких-либо условий, является алгоритмом линейной структуры (АЛС).
Линейный процесс является наиболее простым видом организации вычислительного процесса.
Таким, например, будут алгоритмы вычислений по самым простейшим формулам: формулам вычисления площади круга, длины окружности, квадрата гипотенузы и так далее.
Алгоритм линейной структуры (АЛС). Блок-схема.
начало
ввод
вывод
действие1
действие2
конец
…
действие1
Слайд 20Задача
Составить программу вычисления периметра и площади треугольника, у которого стороны равны
a, b и c см.
МПЗ
Дано: ΔАВС
a, b и c – стороны
Р – периметр , S - площадь
Найти: Р, S
Решение:
Р=a+b+c S=
(по формуле Герона)
где p– полупериметр,
А
В
С
2. ОД
Входные :
Промежуточные:
Выходные:
a, b, c
p
P, S
Слайд 213.РА
3.1. Блок-схема
3.2. Программа
начало
Ввод a,b,c
p:=P/2
P:=a+b+c
Вывод P,S
конец
S:=sqrt (p*(p-a)*(p-b)*(p-c))
Program P1;
Var a,b,c,p,P,S : real;
Begin
Writeln
(‘ввести a,b,c‘);
Readln (a,b,c);
P:=a+b+c;
p:=P/2;
S:=sqrt (p*(p-a)*(p-b)*(p-c));
Writeln (‘ответ : P=‘, P:0:2);
Writeln (‘S=‘, S:0:2);
Readln ;
End.
P:=a+b+c
Слайд 22Разветвляющиеся алгоритмы
Ветвление – это такая форма организации действий, при которой в
зависимости от выполнения некоторого условия, совершается либо одна, либо другая последовательность операторов.
Для программирования ветвящихся алгоритмов применяются:
условный оператор (оператор ветвления)
Например: условие –на улице дождь
если да нет
то надо взять зонт иначе не надо брать зонт
Слайд 23Существуют две формы условного оператора:
ПОЛНАЯ
НЕ ПОЛНАЯ
На естественном языке
ЕСЛИ
ТО
<оператор 1 >
ИНАЧЕ <оператор 2>
На языке программирования
If <логическое выражение>
then<оператор 1 >
else<оператор 2>;
На языке блок-схем
На естественном языке
ЕСЛИ <логическое выражение>
ТО <оператор 1>
На языке программирования
If <логическое выражение>
then<оператор >;
На языке блок-схем
+
условие
оператор1
оператор2
+
_
условие
оператор
_
оператор1
Слайд 24Задача
Составить программу для решения квадратного уравнения вида .
Решение:
1. МПЗ
a,b,c – коэффициенты
х1,х2
– корни уравнения
D – дискриминант
Условие: если D≥0, то уравнение имеет корни,
если D<0,то уравнение не имеет корней
2. ОД
входные: a,b,c
промежуточные: D
выходные: х1,х2
Слайд 253. РА
3.1 Блок-схема 3.2 Программа
начало
Ввод a,b,c
D:=b*b-4*a*c
D
Writeln (‘ввести a,b,c‘);
Readln (a,b,c);
D:=b*b-4*a*c;
if D<0 then
Writeln (‘ответ : корней нет’)
else
Begin x1:=(-b+sqrt(D))/(2*a);
x2:=(-b-sqrt(D))/(2*a);
Writeln (‘Ответ:х1=‘, х1:0:2);
Writeln (‘х2=‘, х2:0:2);
End;
Readln ;
End.
да
нет
Слайд 26Циклические алгоритмы
Цикл – это многократное повторение выполнение последовательности действий по некоторому
условию.
Существует три типа циклов:
Цикл с предусловием
Цикл с постусловием
Цикл с параметром
Слайд 27Цикл «ПОКА» – это цикл выполнение которого повторяется, пока истинно условие
цикла.
На естественном языке На языке блок-схем
ПОКА <условие> ПОВТОРЯТЬ
НЦ
<тело цикла>
КЦ
На языке программирования
whiIe <логическое выражение> do
Begin
< тело цикла >
end;
Цикл с предусловием
условие
Тело цикла
нет
да
Слайд 28Цикл «ДО» – это цикл выполнение которого заканчивается, когда условие цикла
становится истинно.
На естественном языке На языке блок-схем
ПОВТОРЯТЬ
<тело цикла>
ДО <условие>
На языке программирования да
Repeat < тело цикла >
untiI <логическое выражение> нет
Цикл с постусловием
Тело цикла
условие
Слайд 29Цикл с параметром
Цикл «ДЛЯ» – это цикл выполнение которого повторяется, пока
целочисленный параметр лежит в интервале между In и Ik.
На естественном языке На языке блок-схем
ДЛЯ I от In до Ik
ПОВТОРЯТЬ
НЦ
<тело цикла>
КЦ
На языке программирования
For I:=In to Ik DO
Begin < тело цикла >
End
Тело цикла
I:=In , Ik
Слайд 30Массивы
Представление таблицы в языках программирования называется массивом.
Массив – это упорядоченная последовательность,
состоящая из фиксированного количества величин одного типа.
Однотипные величины называются компонентами массива.
Массив имеет имя (Н-р: A, B, D, F).
Идентификатор компоненты – переменная с индексом, где индекс может быть выражением порядкового типа (Н-р: A[1], А[2], А[3]…).
Описание массива определяет имя, размер массива и базовый тип.
Var <имя массива>: array [тип индекса] of <базовый тип>;
Слайд 31Массивы
Представление таблицы в языках программирования называется массивом.
Массивы бывают:
Одномерные (линейные) – это
массив, у которого элементы – простые переменные.
В одномерных массивах хранятся значения линейных таблиц. Примеры описания одномерных массивов:
Var A : array [0..5] of real;
N : array [ ′A′..′Z′] of real;
Ввод и вывод массива производится поэлементно.
Обычно для этого используется цикл с параметром.
Слайд 32Массивы
Пример 1 в программе вводится десять значений целочисленного массива А и
выводятся значения вещественного массива В, содержащего 50 элементов.
Соответствующие фрагменты программы:
Var A : array [1..10] of integer;
B : array [1..50] of real; i : integer;
begin for i :=1 to 10 do
begin write (′A[′,i,′]=′); readln (A[i]);
end;
……………………………………………….
ввод
вывод
for i :=1 to 50 do
begin writeln (′B[′,i,′]=′); B[i]); end; readln;
end.
Слайд 33Массивы
Задача (на сортировку) Дан целочисленный линейный массив. Отсортировать его элементы в
порядке возрастания значений.
Дано: А – линейный массив
N- количество элементов массива А
I - индекс элементов массива А
J – индекс элементов массива А для сортировки
Р – меньшее значение
Решение:
Если А[1]<= А[2], то А[1]= А[1], А[2] = А[2],
Иначе А[1]= А[2], А[2] = А[1],
Если А[2]<= А[3], то А[2]= А[2], А[3] = А[3],
Иначе А[3]= А[2], А[2] = А[3],
И т.д.
«Метод пузырька». Последовательное перемещение путем попарных перестановок наибольшего значения сначала на место N-го элемента, затем N-1–го и т.д.
Слайд 34Program Sortirovka;
Var N,I,J,P: integer; A: array [1..20] of integer;
begin write (‘введите
число элементов:‘); readln (N);
forI :=1 to N do
begin write (′ введите A[′,I,′]=′); readln (A[I]); end;
for I :=1 to N-1 do
begin for J:=1 to N-1 do
if A[J]<= A[J+1] then
begin P:= A[J]; A[J]:= A[J+1]; A[J+1]=P end;
end;
for I:=1 to N do write (A[I], ′ ′);
readln ;
end.
Слайд 35Массивы
Массивы бывают:
2. Двумерные.
Двумерные массивы – структура данных, хранящая прямоугольную матрицу. В
матрице каждый элемент определяется номером строки и столбца, на пересечении которых он расположен.
Описание двумерных массивов:
Var М : array [0..10] of array [0..20] of real; (или)
Var М : array [0..10,0..20] of real;
Обычно первый индекс связывают с номером строки, второй – сномером столбца.
Слайд 36Массивы
Задача Сформировать матрицу Пифагора (таблицу умножения в матричной форме) и вывести
ее на экран.
Дано: P – двумерныый массив
I - индекс строк массива Р
J – индекс столбцов массива Р
Решение:
Р[I,J]=I*J
Вычисления и вывод матрицы производится в двух вложенных циклах.
Слайд 37Program Pifagor;
Var P: array [1..9,1..9] of integer; I,J: integer;
begin
for I :=1 to 9 do
for J :=1 to 9 do
Р[I,J]:=I*J
for I :=1 to 9 do
begin for J:=1 to 9 do
write (P[I,J]:4);
end;
readln ;
end.