Лекция 1 Алгоритмизация и программирование. Понятие алгоритма Алгоритм Неформальное определение Формальное определение.

Презентация:



Advertisements
Похожие презентации
АЛГОРИТМИКА © МОУ СШ Изначально компьютеры были созданы для арифметических вычислений. Но сегодня ЭВМ также используются для изучения явлений природы,
Advertisements

Этапы решения задач на компьютере.
Понятие алгоритма и его свойства. Этапы решения задачи с использованием компьютера 1. Постановка задачи; 2. Определение условий; 3. Построение модели.
1 Тема 1.7. Алгоритмизация и программирование Информатика.
Алгоритм - точная конечная последовательность действий, описывающая процесс преобразования объекта из начального состояния в конечное, записанная с помощью.
Даутова Т.К., Алматы, 2013г.. П редписание исполнителю называется командой. Каждый исполнитель имеет свою систему команд, то есть множество предписаний,
Алгоритмизация и требования к алгоритму Алгоритм и алгоритмизация Алгоритм и алгоритмизация.
Алгоритм - понятное и точное предписание совершить определенную последовательность действий, направленных на достижение указанной цели или решение поставленной.
АЛГОРИТМЫ Умение составлять алгоритмы просто необходимо, если человек хочет поручить обработку информации машине Алгоритм - определенная последовательность.
ОСНОВЫ АЛГОРИТМИЗАЦИИ И ОБЪЕКТНО-ОРИЕНТИРОВАННОГО ПРОГРАММИРОВАНИЯ СВОЙСТВА АЛГОРИТМА И ЕГО ИСПОЛНИТЕЛИ.
Выполнила: Ученица 10 Б класса МБОУСОШ 22 Хрушкова Елена Учитель: Буткевич И. В. «Алгоритмы»«Алгоритмы»
Алгоритм и его формальное исполнениеАлгоритм Алгоритм – это предназначенное для конкретного исполнителя точное описание последовательност и действий, направленных.
ОБЩИЕ СВЕДЕНИЯ ОБ АЛГОРИТМАХ Линейный алгоритм. ВОПРОСЫ. 1. Алгоритм. Исполнители алгоритмов. 2. Свойства алгоритмов. 3. Способы описания алгоритмов.
1 1. Постановка задачи формулировка условия задачи; определение конечных целей решения задачи; определение формы выдачи результатов; описание данных (их.
Презентация к уроку (информатика и икт, 9 класс) на тему: Алгоритм и его формальное исполнение
Этапы решения задачи на компьютере 1.Постановка задачи 2.Анализ и исследование задачи, разработка и построение модели 3.Разработка алгоритма: 4.Программирование.
ВЫПОЛНЕНИЕ АЛГОРИТМОВ КОМПЬЮТЕРОМ. Алгоритм, записанный на «понятном» компьютеру языке программирования, называется программой. Программа данные, предназначенные.
Алгоритмы Самое короткое объяснение Алгоритм это порядок действий, необходимых для получения определённого результата за конечное число шагов.
АЛГОРИТМ И ЕГО ФОРМАЛЬНОЕ ИСПОЛНЕНИЕ. АЛГОРИТМ Определенная последовательность действий направленных на получения результата за конечное число шагов с.
Глава 2 Основы алгоритмизации и объектно- ориентированного программирования 2.1. Алгоритм и его формальное исполнение Свойства алгоритма и его исполнители.
Транксрипт:

Лекция 1 Алгоритмизация и программирование

Понятие алгоритма Алгоритм Неформальное определение Формальное определение

Неформальное определение алгоритма АЛГОРИТМ – точное предписание, которое задает вычислительный процесс, начинающийся с произвольного исходного данного (из некоторой совокупности возможных для данного алгоритма исходных данных) и направленный на получение полностью определяемого этим исходным данным результата. Математическая энциклопедия, 1977

Неформальное определение алгоритма АЛГОРИТМ – это процесс последовательного построения величин, идущий в дискретном времени таким образом, что в начальный момент времени задается исходная система величин, а в каждый следующий момент система величин получается по определенному закону из системы величин, имевшейся в предыдущий момент времени. акад. Мальцев А.И., 1986

Свойства алгоритма 1)Понятность 2)Дискретность 3)Элементарность шагов 4)Детерминированность (определенность, точность) 5)Конечность (финитность) 6)Массовость

Понятность Алгоритм должен быть записан на языке, понятном исполнителю. СКИ: ВВЕРХ ВПРАВО

Дискретность Алгоритм состоит из конечного числа инструкций и все инструкции выполняются в дискретном времени. Инструкции выполняются мгновенно в моменты времени t 0, t 1, t 2, …, и между этими моментами ничего не происходит.

Элементарность шагов Объем работы выполняемый на всяком шаге ограничен сверху некоторой константой, не зависящей от объема данных. Элементарные шагиНЕ элементарны - сложение; - вычитание; - умножение; - деление; - сравнение чисел … - сравнение двух файлов; - проверка жесткого диска на вирусы; - архивирование папки …

Детерминированность (определенность, точность) Для каждого шага по набору исходных данных результат выполнения шага определяется однозначно и не зависит ни от каких случайных факторов. Тогда и итоговый результат всего алгоритма тоже будет однозначно определен.

Конечность (финитность) Выполнение алгоритма должно завершиться за конечное число шагов. Число шагов может быть очень большим, но оно не может быть равно.

Массовость (универсальность) Алгоритм должен быть применим к разным наборам допустимых исходных данных. Алгоритм, выходные данные которого уникальны в силу свойства детерминированности будет давать всегда один и тот же результат. => Построение такого алгоритма теряет смысл.

Язык программирования ПРОГРАММА – это алгоритм, записанный на определенном языке программирования. ЯЗЫК ПРОГРАММИРОВАНИЯ – это формальная знаковая система, предназначенная для записи компьютерных программ.

Какие бывают ЯП?

Транслятор ТРАНСЛЯТОР – это программа, которая переводит программу с языка высокого уровня на язык машинных команд. По способу трансляции различают: - компиляторы; - интерпретаторы.

Компиляторы и интерпретаторы Компилятор Интерпретатор В код переводится весь текст программы целиком В код переводятся отдельные строки программы и сразу выполняются Создается исполняемый файл, который впоследствии можно запускать даже при отсутствии компилятора Исполняемый файл (*.exe) не создается В отсутствии интерпретатора программа не запустится

Основные компоненты языка программирования Описание лексики – задание алфавита языка. Описание синтаксиса – задание правил построения конструкций ЯП. Описание семантики – придание смысла конструкциям языка. Описание прагматики – отвечает на вопрос: «Как писать программы на этом языке?»

Способы описания языков программирования Используются метаязыки, т.е. посредством которых можно описать другой язык: Нотация Бэкуса-Наура Синтаксические диаграммы Вирта Терминальные символы – это элементы алфавита языка, из них строится текст программы. Нетерминальные символы – это понятия, которые требуют дальнейшей расшифровки, пока не превратятся в терминальные.

Бэкуса-Наура форма (БНФ) Нетерминальные символы заключаются в угловые скобки ( ). Метасимволы БНФ: ::= определяется как Разделяет левую и правую часть правила. |или Разделяет альтернативы. [ ]может быть Цепочка, записанная внутри скобок может отсутствовать. { } может быть ноль или более раз Цепочка может повторяться многократно или может отсутствовать.

Примеры БНФ ::= 0 | 1 ::= { } ::= if ( ) [ else ]

Диаграммы Вирта Терминальные символы располагаются внутри кругов или прямоугольников со скругленными углами

Диаграммы Вирта Нетерминальные символы заключаются в прямоугольники

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

Этапы решения задачи с помощью ЭВМ 1. Постановка задачи (определение требований к системе) 2. Анализ и проектирование (построение формальных моделей, определение структур данных, выбор методов решения) 3. Разработка (кодирование) 4. Тестирование 5. Развертывание и сопровождение

Этап тестирования Тестирование – это выполнение программы с целью обнаружения факта наличия в программе ошибки. Отладка – определение места ошибки и внесение исправлений в программу.

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

Принципы тестирования Перед началом тестирования следует сформулировать цели, которые должны быть достигнуты в ходе тестирования. В процессе тестирования необходимо фиксировать выполненные тесты и реально полученные результаты. Тесты должны быть одинаково тщательны как для правильных, так и для неправильных входных данных. Необходимо проверить два момента: программа делает то, что должна делать; программа не делает того, чего делать не должна.

Принципы тестирования Результаты теста необходимо изучать досконально и объяснять полностью. Недопустимо ради упрощения тестирования изменять программу. После исправления программы необходимо повторное тестирование. Ошибки «кучкуются». Окончательное тестирование программы лучше проводить не ее автору, а другому человеку.

Способы тестирования Тестирование по принципу «черного ящика» описывают тестирование с точки зрения поставленной задачи без учета внутреннего устройства программы. Тестирование по принципу «белого ящика» учитывают структуру программы.

Тестирование по принципу «черного ящика» тестирование функций; тестирование классов входных данных; тестирование классов выходных данных;

Тестирование границ класса 1) нормальные условия 2) граничные (экстремальные) условия 3) исключительные условия (выход за границу класса).