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

Алгоритм, его определение, основные свойства, способы описания и построения. Виды алгоритмов: линейный, разветвляющийся, циклический. Языки и виды программирования: алгоритмическое или модульное, структурное, объектно-ориентированное программирование.

Рубрика Программирование, компьютеры и кибернетика
Вид реферат
Язык русский
Дата добавления 02.04.2014
Размер файла 22,0 K

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

Размещено на http://www.allbest.ru/

Реферат

на тему: «Алгоритмизация вычислительных процессов и программирование на структурированных алгоритмических языках»

по дисциплине: Информационные технологии в психологии

Иванова М.Н.

Дзержинский

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

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

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

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

Любой алгоритм обладает рядом свойств:

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

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

3. Результативность алгоритма. Выполнение алгоритма должно приводить к получению определенного результата после конечного числа шагов.

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

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

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

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

На примере квадратного уравнения рассмотрим процесс создания алгоритма.

Пусть есть квадратное уравнение:

ax2 + bx + c = 0

1. Вычислим значение дискриминанта:

D = b2- 4ac

2. Если значение дискриминанта больше или равно нулю, то вычисляем корни уравнения.

3. Если дискриминант меньше нуля, то уравнение действительных корней не имеет.

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

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

Алгоритм может быть описан следующими способами:

* Словесно-формульное описание алгоритма, т. е. описание алгоритма с помощью слов или формул. Например, кулинарный рецепт.

* Графическое описание алгоритма, т. е. описание с помощью схем.

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

* Описание алгоритма на алгоритмическом языке.

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

* Описание алгоритма на языке программирования.

Выделяют следующие виды алгоритмов:

- Линейный;

- Разветвляющийся;

- Циклический.

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

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

Блок-схема алгоритма решения квадратного уравнения выглядит следующим образом.

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

2. Языки программирования. Виды программирований

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

Языки программирования - это искусственно созданные языки. От естественных они отличаются ограниченным числом «слов» и очень строгими правилами записи команд (операторов). Совокупность подобных требований образует синтаксис языка программирования, а смысл каждой команды и других конструкций языка - его семантику.

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

Машиннозависимые языки программирования

Машиннозависимые языки - это языки, наборы операторов и изобразительные средства которых существенно зависят от особенностей ЭВМ (внутреннего языка, структуры памяти и т. д.). Эти языки называются языками программирования низкого уровня. Они ориентированы на конкретный тип процессора и учитывают его особенности. Операторы такого языка близки к машинному коду и ориентированы на конкретные команды процессора, то есть данный язык является машиннозависимым. Языком низкого уровня является язык Ассемблер. С его помощью создаются очень эффективные и компактные программы, так как разработчик получает доступ ко всем возможностям процессора. Подобные языки применяются для написания небольших системных приложений, драйверов устройств, библиотек. В тех случаях, когда объем ОЗУ и ПЗУ мал (в районе нескольких килобайт) альтернативы ассемблеру нет. Именно эти языки программирования позволяют получать самый короткий и самый быстродействующий код программы.

Машиннонезависимые языки программирования

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

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

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

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

Можно писать программы непосредственно на машинном языке, хотя это и сложно. На заре компьютеризации (в начале 1950-х гг.) машинный язык был единственным языком, большего человек к тому времени не придумал. Для спасения программистов от сурового машинного языка программирования были созданы языки высокого уровня (т. е. немашинные языки), которые стали своеобразным связующим мостом между человеком и машинным языком компьютера. Языки высокого уровня работают через трансляционные программы, которые вводят «исходный код» (гибрид английских слов и математических выражений, который считывает машина) и в конечном итоге заставляют компьютер выполнять соответствующие команды, которые даются на машинном языке.

К языкам программирования высокого уровня можно отнести следующие: Fortran, Cobol, Algol, Pascal, Basic, C, C++, Java, HTML, Perl и другие.

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

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

Выделяют несколько разновидностей программирования.

Алгоритмическое или модульное

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

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

Структурное программирование

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

Подпрограммы бывают двух видов - процедуры и функции. Отличаются они тем, что процедура просто выполняет группу операторов, а функция вдобавок вычисляет некоторое значение и передает его обратно в главную программу (возвращает значение). Это значение имеет определенный тип (говорят, что функция имеет такой-то тип).

Подпрограммы решают три важные задачи:

* избавляют от необходимости многократно повторять в тексте программы аналогичные фрагменты;

* улучшают структуру программы, облегчая ее понимание;

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

Объектно-ориентированное программирование

В середине 80-х годов в программировании возникло новое направление, основанное на понятии объекта. До того времени основные ограничения на возможность создания больших систем накладывала разобщенность в программе данных и методов их обработки.

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

Объектно-ориентированный язык программирования характеризуется тремя основными свойствами:

1. Инкапсуляция - объединение данных с методами в одном классе;

2. Наследование - возможность создания на основе имеющегося класса новые классы с наследованием всех его свойств и методов и добавлением собственных;

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

Размещено на Allbest.ru

...

Подобные документы

  • Понятие алгоритма и его характеристики как основного элемента программирования. Формы представления алгоритмов, основные алгоритмические структуры. Структурное и событийно-ориентированное программирование. Объектно-ориентированное программирование.

    реферат [86,0 K], добавлен 17.07.2008

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

    презентация [386,7 K], добавлен 21.04.2011

  • Особенности разработки программ для ЭВМ. Этапы планирования программы. Понятие и особенности алгоритмов. Средства, используемые для создания программ. Виды и классификация языков программирования. Структурное и объектно-ориентированное программирование.

    реферат [59,7 K], добавлен 19.08.2010

  • Почему C++. Возникновение и эволюция языка C++. Сравнение языков С++ и С. Эффективность и структура. Процедурное программирование. Модульное программирование. Абстракция данных. Объектно-ориентированное программирование. Улучшенный С.

    реферат [26,4 K], добавлен 03.06.2004

  • Процесс появления новых знаковых систем для записи алгоритмов. Набор лексических, синтаксических и семантических правил, используемых при составлении компьютерной программы. Процедурное, функциональное, объектно-ориентированное программирование.

    презентация [912,2 K], добавлен 22.10.2013

  • Предмет исследования – современные методы разработки программ таких, как объектно-ориентированное программирование и визуальное проектирование, а также структурное и модульное программирование. C++ - универсальный язык программирования. Ключевые понятия.

    курсовая работа [1,1 M], добавлен 10.01.2009

  • Характеристика модульного программирования: процедуры и функции, модули и их структура, открытые массивы и строки, нетипизированные параметры. Способы передачи параметров в подпрограммы в Borland Pascal. Объектно-ориентированное программирование.

    контрольная работа [28,9 K], добавлен 28.04.2009

  • Объектно-ориентированное программирование как методология программирования, опирающаяся на инкапсуляции, полиморфизме и наследовании. Общая форма класса. Наследование как процесс, посредством которого один объект получает свойства другого объекта.

    презентация [214,9 K], добавлен 26.10.2013

  • Основные сведения о языках программирования и их состав. Программа для компьютера. Использование компилятора и операторы. Языки программирования высокого уровня. Концепции объектно-ориентированного программирования. Языки искусственного интеллекта.

    презентация [6,3 M], добавлен 14.08.2013

  • Анализ объектно-ориентированного программирования, имитирующего способы выполнения предметов. Основные принципы объектно-ориентированного программирования: инкапсуляция, наследование, полиморфизм. Понятие классов, полей, методов, сообщений, событий.

    контрольная работа [51,7 K], добавлен 22.01.2013

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

    презентация [128,2 K], добавлен 22.10.2012

  • Характеристики и свойства языков программирования. Исследование эволюции объектно-ориентированных языков программирования. Построение эволюционной карты механизмов ООП. Разработка концептуальной модели функционирования пользовательского интерфейса.

    курсовая работа [2,6 M], добавлен 17.11.2014

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

    контрольная работа [125,7 K], добавлен 15.09.2013

  • Алгоритмизация и структурное программирование на языке С/С++. Создание справочника в памяти (ввод данных), вывод справочника на экран с использованием потоковых классов, сортировка методом Шелла. Циклы, описание применяемых специальных алгоритмов.

    курсовая работа [1,0 M], добавлен 26.02.2012

  • Определение норм времени на программирование задач для ЭВМ. Постановка и решение задачи разбиения сложной системы программного обеспечения на функциональные модули. Структурное кодирование, как метод написания хорошо структурированных программных модулей.

    контрольная работа [606,0 K], добавлен 28.10.2010

  • Изучение принципов объектно-ориентированного программирования, в котором основными концепциями являются понятия классов и объектов. Свойства этого вида программирования: инкапсуляция, полиморфизм, наследование. Описание класса. Конструкторы и деструкторы.

    презентация [74,8 K], добавлен 14.10.2013

  • Понятие и свойства алгоритмов: рекурсивного, сортировки и поиска. Простая программа и структурный подход к разработке алгоритмов. Язык блок-схем и проектирования программ (псевдокод). Рассмотрение принципов объектно-ориентированного программирования.

    презентация [53,1 K], добавлен 13.10.2013

  • Графические обозначения символов, применяемые при составлении схем алгоритмов. Оформление текстовых документов. Описание вычислительных методов алгоритмизации и программирования задач. Ручной просчет отладочного варианта. Машинное тестирование программы.

    курсовая работа [178,2 K], добавлен 01.06.2014

  • Использование объектно-ориентированной методологии при программировании математических процессов. Среда языка программирования Delphi для решения математических задач. Объектно-ориентированные, декларативные и императивные языки программирования.

    дипломная работа [1,8 M], добавлен 14.09.2011

  • Рассмотрение способов построения алгоритмов для решения конкретных задач. Программирование с помощью базовых операторов языка Turbo Pascal. Решение задачи определения площади и объема трехмерных фигур. Математическое моделирование геометрических тел.

    курсовая работа [365,3 K], добавлен 24.07.2014

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.