Поиск

Полнотекстовый поиск:
Где искать:
везде
только в названии
только в тексте
Выводить:
описание
слова в тексте
только заголовок

Рекомендуем ознакомиться

'Документ'
Атрибуты печатного издания: Философия русского религиозного искусства XVI-XX вв. Антология. Сост., общ. ред. и предисл. Н. К. Гаврюшина.- М.: Прогрес...полностью>>
'Конкурс'
Фамилия . Имя 3. Отчество   4. Дата рождения 5. Место рождения   . Место проживания Контактные данные (номер телефона, и другие контактные данные) Об...полностью>>
'Документ'
Трансформація суспільно-демографічної системи в Україні,особливо в період здобуття нею державної незалежності і самостійного управління соціально-еко...полностью>>
'Программа'
Завтрак. В 09:00 Обзорная экскурсия по городу на автобусе с посещением современного района Парижа – Ля Дефанс, Марсового поля, Люксембургского сада, С...полностью>>

Основы алгоритмизации

Главная > Документ
Сохрани ссылку в одной из сетей:

Основы алгоритмизации

Основы алгоритмизации 1

1. Понятие алгоритма и его свойства. Способы описания алгоритмов. Свойства алгоритмов. 2

2. Общие принципы построения алгоритмов. Основные алгоритмические конструкции. 2

3. Эволюции языков программирования, их классификация понятие системы программирования 4

4. Составление программ на алгоритмическом языке: основные элементы языка, структура программы, операторы и операции, управляющие структуры. 4

5. Структуры данных, файлы, классы памяти. Типы данных. 5

6. Составление библиотек программ. 5

7. Объектно-ориентированная модель программирования. 5

8. Основные принципы объектно-ориентированного программирования на примере алгоритмического языка Turbo Pascal. 6

9. Понятие классов и объектов, их свойств и методов. 7

10. Работа с файлами (поиск, копирование, переименование, удаление). 7

11. Алгоритмическая структура "ветвление". Команда ветвления. Привести пример. 7

12. Алгоритмическая структура "цикл". Команда повторения. Привести пример. 8

13. Объектно-ориентированное программирование. Классы объектов. Объекты: свойства и методы. 8

14. Строковые величины. Строковые функции и выражения. 9

15. Способы записи алгоритмов (описательный, графический, на алгоритмическом языке, на языке программирования). 10

16. Массивы и алгоритмы их обработки. 11

17. Разработка алгоритма методом последовательной детализации. 12

18. Основы языка программирования (алфавит, операторы, типы данных и т.д.). 12

19. Функция программиста. Объявление и использование функции. 13

20. Инструкция подключения модулей. Структура модуля программиста. 14

21. В общем виде записать инструкцию IF. Привести пример. 14

22. В общем виде записать инструкцию CASE. Привести пример. 15

23. В общем виде записать инструкцию FOR. Привести пример. 15

24. В общем виде записать инструкцию WHILE. Привести пример. 15

25. В общем виде записать инструкцию REPEAT. Привести пример. 16

26. Объявление и использование процедуры. 16

27. Локальные и глобальные переменные. Привести пример. 17

28. Понятие рекурсии. 17

29. Привести примеры объявления файла. Ввод в файл. 17

30. Чтение из файла. Привести примеры. 18

31. Графические возможности Turbo Pascal. Привести примеры. 19

1. Понятие алгоритма и его свойства. Способы описания алгоритмов. Свойства алгоритмов.

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

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

Каждый исполнитель снабжен специальным устройством управления, которое "воспринимает" алгоритмы и организует их исполнение. Все устройства управления "понимают" последовательное выполнение действий, ветвления и циклы.

Примеры исполнителей: человек, компьютер, робот-манипулятор, станок с программным управлением. Свойства алгоритма:

1. Детерминированность означает определенность или однозначность результата вычислений при заданных исходных данных.

2. Дискретность проявляется в возможности представления алгоритма в виде отдельных элементарных действии, которые могут быть выполнены ЭВМ.

3. Массовость это возможность решения задач одного типа с; разными исходными данными.

4. Результативность (конечность). Вычислительный процесс при соответствующих исходных данных должен закончиться получением иско­мого результата за конечное время.

Способы описания алгоритмов

1. Словесный.

2. С помощью математических формул.

3. С помощью блок-схем.

4. На алгоритмическом языке.

6. С помощью языка программирования.

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

Международной организацией стандартов введен ряд символов для блок-схем. Основные из них приведены ниже.

Условное обозначение Пояснение к блокам

На алгоритмической языке каждое действие алгоритма записывается строго по правилам этого языка.

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

2. Общие принципы построения алгоритмов. Основные алгоритмические конструкции.

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

На стадии проектирования строится алгоритм будущей программы, например, в виде блок-схемы. В конце 60-х — начале 70-х гг. XX столетия вырабатывается дис­циплина, которая получила название структурного программирован. Ее появление и развитие связаны с именами Э.В. Дейкст-Гм, Х.Д. Милса, Д. Е. Кнута и других ученых. Структурное программирование до настоящего времени остается основой технологии программирования. Соблюдение его принципов позволяет программисту быстро научиться писать ясные, безоши­бочные, надежные программы.

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

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

Точно так же и ветвления могут быть вложенными друг в друга. Структурный подход требует соблюдения стандарта в изображении блок-схем алгоритмов. Каждая базовая структура должна иметь один вход и один выход. Нестандартно изображенная блок-схема плохо читается, теряется наглядность алгоритма. Наряду с блок-схемами для описания алгоритмов часто используются псевдокоды. Учебный алгоритмический язык школьной информатики является примером такого псевдокода. Учебный структурный псевдокод. В нем вообще отсутствует безусловный переход. Обучение составлению алгоритмов на этом языке способствует «структурному воспитанию» программиста.

Языки программирования Паскаль и Си называют языками струкктурного программирования. В них есть все необходимые уп­равляющие конструкции для структурного построения программы. Наглядность такому построению придает структуризация внешнего вида текста программы. Основной используемый для этого прием — сдвиги строк, которые должны подчиняться следующим правилам:

- конструкции одного уровня вложенности записываются на одном вертикальном уровне (начинаются с одной позиции в строке);

- вложенная конструкция записывается смещенной по строке па несколько позиций вправо относительно внешней для неё конструкции.

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

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

«сверху вниз»: сначала строится основной алгоритм, затем I вспомогательные алгоритмы;

«снизу вверх»: сначала составляются вспомогательные алгоритмы, затем основной.

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

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

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

Ветвление — алгоритмическая альтернатива. Управление передается одному из двух блоков в зависимости от истинности и их ложности условия. Затем происходит выход на общее продолжение:

неполная форма ветвления имеет место, когда на ветви НЕТ пусто.

Цикл — повторение некоторой группы действии по условию. Различаются два типа цикла, первый — Цикл с предусловием :

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

Второй тип циклической структуры — цикл с постусловием<цикл-до>:

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

3. Эволюции языков программирования, их классификация понятие системы программирования

В 1950 - появляются первые средства автоматизации программирования – языки Автокоды. Потом они получают название – «Ассемблеры». В состав языков высокого уровня входят: Фортран, Кобол и Алгол. Языки Фортран и Алгол были ориентированы на научно-технические расчёты математического характера. Кобол - для программирования экономических задач. В 1965 – в Дартмутском ниверситете бал разработан язык Бейсик. Предназначен для программирования несложных расчётных задач. В эпоху третьего поколения ЭВМ получил широкое распостронение язык PL/1 - распространён универсальностью, разработанной фирмой IBM. В 1971 – Паскаль, учебный язык структурного программирования. Язык Си – создавался как инструментальный язык для разработки операционных систем, баз данных и других системных и прикладных программ. Позже Си++. Язык Модула-2 - основан на языке Паскаль и содержащий средства для создания больших программ. Язык ЛИСП появился в 1965, основан на понятии рекурсивно определённых функций. В 1972- язык Пролог – создан для решения проблем «искусственного интеллекта».

Системы программирования.

Современные системы программирования состоят из:

- транслятора с соответствующего языка

- редактора

- отладчика

- библиотеки подпрограмм

- компоновщика

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

4. Составление программ на алгоритмическом языке: основные элементы языка, структура программы, операторы и операции, управляющие структуры.

Программой могут называться разные вещи. Это может быть исходный текст программы – обычный текстовый файл, содержащий запись операторов программы на языке программирования. Такая запись понятна человеку, но непонятна компьютеру. Исходный текст должен быть откомпилирован (оттранслирован), то есть переведен на язык машинных команд, понятный компьютеру. В этом случае исполняемый файл (его отличительная черта – имя, оканчивающееся на *.ехе). Именно исполняемый файл иногда называют программой. И, наконец, программой могут называть набор всевозможных файлов, как исполняемых, так и текстовых (а возможно и в других форматах).

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

Структура программы имеет вид:

Первой строкой любой программы идет слово program, а за ним, после одного или нескольких пробелов, следует идентификатор – имя программы. В Турбо Паскале оператор заголовка может быть опущен.

Раздел описаний:

- Описание меток

- Определение констант

- Определение типов

- Описание переменных

- Описание процедуры

- Описание функции.

Вложенные операторы цикла

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

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

Управляющие структуры:

1. if ..then….else;

2. while;

3. repeat;

4. for…i…to..;

5. case.

5. Структуры данных, файлы, классы памяти. Типы данных.

Для описания множества допустимых значений величины и совокупности операций, в которых может участвовать данная величина, используется указание ее типа данных. Тип данных – это множество величин, объединенных определенной совокупностью допустимых операций. Каждый тип данных имеет свой диапазон значений и специальное зарезервированное слово для описания.

Целочисленный тип данных

Вещественный тип

Символьный (литерный) тип

Строковый тип

Логический (булев) тип

Файлы: Введение файлового типа в язык Pascal вызвано необходимостью обеспечить возможность работы с периферийными (внешними) устройствами ЭВМ, предназначенными для ввода, вывода и хранения данных. Файловый тип данных или файл определяет упорядоченную совокупность произвольного числа однотипных компонент. Общее свойство массива, множества и записи заключается в том, что количество их компонент определено на этапе написания программы, тогда как количество компонент файла в тексте программы не определяется и может быть произвольным. Понятие файла достаточно широко. Это может быть обычный файл на диске, коммуникационный порт ЭВМ, устройство печати, клавиатура или другие устройства.

Классы памяти: Под всякую переменную, используемую в программе, должно быть место в памяти ЭВМ. Выделение памяти может происходить либо на стадии компиляции программы, либо во время её выполнения.

Существуют 4 класса памяти:

1. Автоматическая (ключевое слово Auto)

2. Внешняя (extern)

3. Статическая (static)

4. Регистровая (register)

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

6. Составление библиотек программ.

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

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

Создание и использование модулей. Модуль - это набор ресурсов, разрабатываемых и хранимых независимо от использующих их программ. В основе идеи модульности лежат принципы структурного программирования. Существуют стандартные модули (SYSTEM, CRT, GRAPH.)

Структура модуля:

Unit <имя модуля>; {заголовок модуля}

Interface

{интерфейсная часть}

Implementation

{раздел реализации}

Begin

{раздел инициализации модуля}

End.

7. Объектно-ориентированная модель программирования.

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

В основе ООП лежит понятие объекта, сочетающего в себе данные и действия над ними. Объект в некотором роде похож на стандартный тип - запись, но включает в себя не только поля данных, но также и подпрограммы для обработки этих данных, называемые методами. Таким образом, в объекте сосредоточены его свойства и поведение. Идея создания нового типа - объект - была уже заложена при введении процедурного типа, отождествляющего между собой данные и действия над ними. Фактически тип-объект включает в себя помимо данных элементы процедурных типов, правда, несколько иначе оформленные с расширенным набором особенностей.

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

Наследование позволяет создавать иерархию объектов, начиная с некоторого простого первоначального (предка) и кончая более сложными, но включающими (наследующими) свойства предшествующих элементов (потомки). Эта иерархия в общем случае может иметь довольно сложную древовидную структуру. Каждый потомок несет в себе характеристики своего предка (содержит те же данные и методы), а также обладает собственными характеристиками. При этом наследуемые данные и методы описывать у потомка нет необходимости. В качестве такой иерархии можно рассмотреть точку на экране дисплея, задаваемую своими координатами (предок), отрезок, задаваемый координатами двух точек - его концов (потомок точки), перемещаемый отрезок, задаваемый координатами своих концов и процедурой, обеспечивающей его перемещение (потомок неперемещаемого отрезка) и т.д.

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

ООП обладает рядом преимуществ при создании больших программ. К ним можно отнести:

1. Использование более естественных с точки зрения повседневной практике понятий, простота введения новых понятий.

2. Некоторое сокращение размера программ за счет того, что повторяющиеся (последующие) свойства и действия можно не описывать многократно, как это делается при использовании подпрограмм; кроме того, использование динамических объектов позволяет более эффективно использовать оперативную память.

3. Возможность создания библиотеки объектов.

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

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

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

7. Возможность разделения доступа к различным объектам программы и т.д.

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

Понятие объекта. Основным понятием ООП и элементом программы является объект, сочетающий в себе как совокупность данных, так и действия над ними. Тип - объект напоминает тип-запись, однако вместо зарезервированного слова record не используется слово object, а кроме полей, представляющих данные, в нем перечислены и заголовки подпрограмм, называемых методами. После зарезервированного слова object перечисляются все поля объекта и заголовки методов, после чего пишется слово end.

Некоторые объекты программы, особенно находящиеся в начале иерархического дерева, могут и не соответствовать каким-либо реальным объектам. Так, например, объекты типов tConnection (связь) tstructure (структура) и tOperation (операция) не имеют какого-либо физического воплощения - они указывают лишь на некоторые свойства других, реальных объектов, таких, как строки, элементы строк. Однако, выделение этих общих свойств в отдельные объекты бывает удобно, т.к. позволяет затем не повторять их многократно при описании уже реальных объектов. Такие объекты называются абстрактными, и переменных таких типов в программе, как правило, не бывает.



Скачать документ

Похожие документы:

  1. Основы алгоритмизации и программирования (11 ч)

    Документ
    Простые и составные условия. Основные алгоритмические конструкции: ветвление, повторение. Запись основных алгоритмических конструкций на языке программирования.
  2. «Основы алгоритмизации и объектно-ориентированного программирования на языке Gambas»

    Тезисы
    Тема «Алгоритмизация и программирование» начинается на всех ступенях средней школы, но на разном уровне. В начальной школе происходит знакомство на интуитивном уровне с понятиями алгоритма, алгоритмических конструкций, основ алгебры логики.
  3. Рабочая программа дисциплины Программирование и основы алгоритмизации (Наименование дисциплины) (2)

    Рабочая программа
    Целью дисциплины «Программирование и основы алгоритмизации» является формирование у студентов знаний об основных принципах алгоритмизации и теории алгоритмов, программе и программировании, а также формирование практических навыков
  4. Методические указания к лабораторной работе по курсу «Информатика» Основы алгоритмизации и программирования на языке Pascal

    Методические указания
    В соответствующую графу записать математическое выражение на языке Pascal и нажать ОК. Если выражение введено не верно, то на экране появится соответствующая запись.
  5. Рабочая программа дисциплины Программирование и основы алгоритмизации (Наименование дисциплины) (1)

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

Другие похожие документы..