Вы находитесь на странице: 1из 8

МИНИСТЕРСТВО ВЫСШЕГО И СРЕДНЕГО СПЕЦИАЛЬНОГО

ОБРАЗОВАНИЯ РЕСПУБЛИКИ УЗБЕКИСТАН

ТАШКЕНТСКИЙ УНИВЕРСИТЕТ ИНФОРМАЦИОННЫХ


ТЕХНОЛОГИЙ ИМЕНИ МУХАММАД АЛ-ХОРАЗМИЙ

Кафедра «Основы информатики»

По предмету
“Основы программирования на языке Python”

Лекция №1.
Введение в программирования. Алгоритм, виды
алгоритмов и их свойства.

на 2018-2019 учебный год


(для бакалавров 1-курса, 1-семестр)

Ташкент – 2018 г.
Лекция № 1
Введение в программирования. Алгоритм, виды
алгоритмов и их свойства.

План лекции:
1.Алгоритм и его свойства. Виды алгоритмов.
2.Алгоритмические языки программирования и их классификация.
3.Основные этапы решения задачи на ПЭВМ. Понятия транслятора.
4. Контрольные вопросы.

Литература
1.Культин М.Б. Программирование в Turbo Pascal и Delphi, Санкт-Петербург,
2002 г.
2.Шафрин Ю. Основы компьютерной технологии. Бишкек, ”Туркистан”,
1998г.

1.Алгоритм и ее свойства. Виды алгоритмов


Алгоритм – система точных и понятных предписаний (команд,
инструкций, директив) о содержании и последовательности выполнения
конечного числа действий, необходимых для решения любой задачи данного
типа. Как всякий объект, алгоритм имеет название (имя). Также алгоритм
имеет начало и конец.
Понятие алгоритма в информатике является фундаментальным, т. е.
таким, которое не определяется через другие, более простые понятия.
История термина.
Современное формальное определение алгоритма было дано в 30—50-е
годы XX века в работах Тьюринга, Поста, Чёрча (тезис Чёрча — Тьюринга),
Н. Винера, А. А. Маркова.
Само слово «алгоритм» происходит от имени персидского учёного Абу
Абдуллах Мухаммеда ибн Муса аль-Хорезми (алгоритм — аль-Хорезми).
(Аль-Хорезми [имя] + Аритмос [число] → алгоритм)
Около 825 года он написал сочинение, в котором впервые дал описание
придуманной в Индии позиционной десятичной системы счисления. Аль-
Хорезми сформулировал правила вычислений в новой системе и, вероятно,
впервые использовал цифру 0 для обозначения пропущенной позиции в
записи числа (её индийское название арабы перевели как as-sifr или просто
sifr, отсюда такие слова, как «цифра» и «шифр»). Приблизительно в это же
время индийские цифры начали применять и другие арабские учёные. В
первой половине XII века книга аль-Хорезми в латинском переводе проникла

2
в Европу. Переводчик, имя которого до нас не дошло, дал ей название
Algoritmi de numero Indorum («Алгоритмы о счёте индийском»). По-арабски
же книга именовалась Китаб аль-джебр валь-мукабала («Книга о сложении и
вычитании»). Из оригинального названия книги происходит слово Алгебра
(алгебра — аль-джебр — восполнение).
Алгоритм обладает следующими свойствами.

1. Дискретность (от лат. discretus – разделенный, прерывистый)


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

2. Детерминированность (от лат. determinate – определенность,


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

3. Конечность определяет, что каждое действие в отдельности и


алгоритм в целом должны иметь возможность завершения.

4. Результативность требует, чтобы в алгоритме не было ошибок, т.е.


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

5. Массовость. Это свойство показывает, что один и тот же алгоритм


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

3
Алгоритмом также называется информационный процесс, обладающий
следующими свойствами:
 Наличие исполнителя преобразований (с его системой команд).
 Разбиение всего процесса преобразования на отдельные команды
(понятные исполнителю).
 Определено начальное состояние объекта (над которым производится
преобразование) и его требуемое конечное состояние (цель преобразования).
Тип алгоритма определяется характером решаемой (в соответствии с
его командами) задачи.
Типовые конструкции алгоритмов:
 Линейная.
 Циклическая.
 Разветвляющаяся.
 Вспомогательная.
Линейный (последовательный) алгоритм – описание действий, которые
выполняются однократно в заданном порядке.
Циклический – описание действий или группы действий, которые
должны повторяться указанное число раз или пока не выполнено заданное
условие. Совокупность повторяющихся действий – тело цикла.
Разветвляющийся – алгоритм, в котором в зависимости от условия
выполняется либо одна, либо другая последовательность действий. Условие –
выражение, находящееся между словом «если» и словом «то» и
принимающее значение «истина» (ветвь «да») или «ложь» (ветвь «нет»).
Возможна полная и неполная форма ветвления.
Вспомогательный – алгоритм, который можно использовать в других
алгоритмах, указав только его имя. Вспомогательному алгоритму должно
быть присвоено имя.
Существуют различные способы записи алгоритмов:
4
 на естественном языке;
 на специальном (формальном) языке;
 с помощью формул, рисунков, таблиц;
 с помощью стандартных графических объектов (геометрических
фигур) – блок-схемы.
Текстовый процессор Word из офисного пакета Microsoft Office
позволяет создавать блок-схемы для графического описания алгоритмов.

Блок-схема представляет собой графической способ описание


алгоритма. В блок в схемах могут использоваться блоки разных типов, в
зависимости от характера выполняемых действий.
Основные элементы для изображения блок-схемы алгоритма
следующие:

-начало или конец алгоритма;


5
-ввод либо вывод данных с экрана дисплея;
-процесс (вычисления, обработка);
-развилка (условный переход, т.е. выбор направления
выполнения алгоритма в зависимости от некоторых условий);
-блок для выполнения цикла.

-вспомогательный алгоритм

В теории алгоритмов доказано, что любой, сколь угодно сложный


алгоритм может быть составлен из трех основных алгоритмических структур:
линейной, ветвления и цикла, показанных, соответственно на рис. 2, 3, 4.

Структура "цикл" имеет несколько разновидностей. На рис. 4 показан


цикл типа "пока" с предусловием. Действия внутри этого цикла повторяются
пока выполняется условие в блоке ветвления, причем сначала проверяется
условие, а затем выполняется действие. Достаточно часто используются
другие типы цикла, показанные на рис. 5 и 6.

В цикле с постусловием проверка условия выхода из цикла


выполняется после очередного действия. Цикл "для" является модификацией
цикла "пока" для ситуации, когда заранее известно количество повторений
некоторых действий. Запись в блоке заголовка цикла на рис.6 показывает
пример описания заголовка цикла, в котором действия повторяются столько
раз, сколько целых значений приобретает параметр цикла i от своего
начального значения 1 до конечного N с шагом 1.

6
2. Алгоритмические языки программирования и их
классификация
После разработки алгоритма решения задачи можно перейти к
написанию программы - на выбранном языке программирования.
Программа - это набор инструкций (операторов), записанных на
алгоритмическом языке и реализующих заданный алгоритм. Программа на
алгоритмическом языке записывается в обычном текстовом редакторе и
сохраняется как файл. Такой программный файл называется исходным
модулем программы. Каждый из языков программирования имеет свое
название. В настоящее время языки программирования делятся на:
-процедурные, к которым относится большинство классических языков
программирования, например: Fortran, Pascal, Basic, C и др.
-логические, например: Lisp, Prolog и др.
-объектно-ориентированные, например: C++, Java, Delphi и др.
Общепринятой и строгой классификации языков программирования не
существует. Если рассмотреть языки программирования по уровням, можно
дать следующие классификации:
 языки ассемблера;
 языки высокого уровня;
 командные языки базы данных.
Язык ассемблера позволяет создавать наиболее эффективные
программы, однако очень трудоёмок и требует высокий квалификации
программиста.
К языкам высокого уровня (их часто называют алгоритмическими)
относятся Fortran, Basic, Cobol, C, С++, С#, Pascal, Delphi, Prolog и многие
другие. Они имеют свою предметную область применения, например: Fortran
- для инженерных расчетов; Cobol - для коммерческих расчетов; C - для
системного программирования.
3.Основные этапы решения задачи на ПЭВМ
Процесс решения задачи на ПЭВМ включают в себя следующие
основные этапы:
1.Постановка задачи: сбор информации; формулировка условия;
определение конечных целей решения; форма выдачи результатов; описание
данных.
2.Формулировка математической модели задачи: составление
математической модели; выбор метода решения задачи; разработка структур
данных,
3.Разработка алгоритма: метод построения алгоритма; выбор тестов и
методов тестирования; построение алгоритма.

7
4.Составление программы: выбор языка программирования; уточнение
способов организации данных; запись алгоритма на языке
программирования.
5.Отладка и тестирование программы на ПЭВМ: проверка синтаксиса,
семантики и логической структуры; тестовые расчеты; совершенствование
программы.
6.Реализация программы на ПЭВМ для реальных данных.
7.Анализ полученных результатов.
8.Модернизации алгоритма расчета и программы (если необходимо)

Понятие транслятора
Трансляторы преобразуют исходный модуль программы в машинный
код. Есть два вида трансляторов: компиляторы и интерпретаторы.
Компилятор преобразует исходный текст в машинный код. В результате
получается так называемый объектный модуль. Он записан в машинном коде,
но работать не может. Для его выполнения необходима специальная
программа - так называемый редактор связи. Только после этого получается
работающая программа - ее называют рабочей или исполняемой
программой.
Кроме компиляторов используются также интерпретаторы.
Интерпретаторы обрабатывают текст не заранее, как компилятор, а
непосредственно во время работы программы. Интерпретатор - это
программа-посредник, она читает команды из исходного файла, переводит их
на язык процессора - “на код” и немедленно исполняет.
4 Контрольные вопросы.
1. Что такое алгоритм ? Перечислите свойства алгоритма.
2. Что такое язык программирования ?
3. Каковы основные этапы решения задачи ПЭВМ ?
4. Что такое язык низкого и высокого уровня ?
5. Что такое транслятор ?