русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Объекты алгоритма


Дата добавления: 2013-12-24; просмотров: 4768; Нарушение авторских прав


Циклический алгоритм

Разветвляющийся алгоритм

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

Подобная структура называется также «ЕСЛИ – ТО – ИНАЧЕ», или «развилка». Каждый из путей (ТО или ИНАЧЕ) ведет к общей точке слияния, так что выполнение программы продолжается независимо от того, какой путь был выбран.

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

Рис. 2 Разветвляющаяся структура алгоритма Рис. 3 Структура «неполное ветвление»

 

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

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

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

 
изображен на рис. 6.

Циклы с условием используются тогда, когда число повторений заранее неизвестно, но задано условие окончания цикла. Причем, если условие окончания цикла проверяется перед выполнением тела цикла, то такие циклические структуры называют циклами с предусловием («Выполнять пока» рис. 4), а если проверка условия происходит после выполнения тела цикла – циклами с постусловием («Выполнять до тех пор пока не» рис.5).



Рис. 4 Рис. 5 Рис. 6

 

Решение любой задачи предполагает наличие реальных объектов – объектов задачи.

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

Каждый объект задачи имеет свои характеристики (атрибуты). Фамилии и наименования – это строки символов, а коэффициенты уравнений, количество выпускаемой продукции – это числовые константы, представленные арифметическими выражениями или числами.

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

В практике программирования число базовых объектов невелико. Это константы, переменные массивы, файлы и некоторые другие.

Понятие константы. Например, в задаче нужно вычислить длину окружности L = π * D, здесь L и D – объекты задачи, а π – величина постоянная в любой задаче, т.е. это константа.

Константа может быть не только числом. Например, в некотором списке фамилий определяется наличие фамилии Иванов. В алгоритме фамилия – это объект, а Иванов – символьная константа.

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

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

Например, требуется вычислить и напечатать значение функции при изменении аргумента от заданного начального значения до заданного конечного значения с заданным шагом. Начальное значение, конечное значение, шаг – объекты задачи, которые в условии задачи не определены. Эти значения станут известны по ходу выполнения алгоритма: введены пользователем или получены в результате вычислений. Если не предусмотреть механизм их определения, исполнение алгоритма будет невозможно.

Имя объекта алгоритма. Каждый объект в алгоритме фигурирует под своим именем. Имя это неизменно, фиксировано и уникально. Имена для объектов устанавливает автор алгоритма. Рекомендуется выбирать мнемонические имена, которые отражают суть объекта.

Понятие массива. Массив – объект алгоритма. Во многих случаях разрозненные переменные удобно объединить в совокупность – массив, именуя все коэффициенты общим именем (именем массива) и индексами (номерами в массиве).

Индекс элемента массива позволяет обратиться к элементу массива «напрямую». По индексу массив строго упорядочен.

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

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

В любом алгоритме всегда присутствует раздел инструкций (выполнения действий), который имеет одну точку входа (НАЧАЛО) и одну точку выхода (КОНЕЦ). Закодированная форма инструкции, несущая определенный смысл называется оператором.

Рис. 7 – Пример записи алгоритм сортировки выбором с помощью блок-схемы

 

51. Языки программирования: понятие, классификация, поколения.

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

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

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

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

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

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

Ассемблеры предназначены для перевода программы, написанной на языке ассемблера, в машинный код.

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

Процесс поиска ошибок в программе называется тестированием, процесс устранения ошибок – отладкой.



<== предыдущая лекция | следующая лекция ==>
Линейный алгоритм | Поколения языков программирования


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 0.005 сек.