Автор: Пользователь скрыл имя, 15 Декабря 2012 в 12:57, контрольная работа
Алгоритм – заранее заданное понятное и точное предписание возможному исполнителю совершить определенную последовательность действий для получения решения задачи за конечное число шагов.
Понятие алгоритма является не только одним из главных понятий математики, но одним из главных понятий современной науки. Более того, с наступлением эры информатики алгоритмы становятся одним из важнейших факторов цивилизации.
На практике наиболее распространены следующие формы представления
алгоритмов:
• словесная (запись на естественном языке);
• графическая (изображения из графических символов);
• псевдокоды (полуформализованные описания алгоритмов на условном алгоритмическом языке, включающие в себя как элементы языка
программирования, так и фразы естественного языка, общепринятые
математические обозначения и др.);
• программная (тексты на языках программирования).
.Алгоритмы
1.1 Понятие алгоритма………………………………………………….. .2
1.2 Исполнитель алгоритма……………………………………………..3
1.3 Свойства алгоритмов………………………………………………..4
1.4 Формы записи алгоритмов………………………………………….5
2. Языки программирования.
2.1 Уровень Языка программирования…………………………….........7
2.2 Достоинства и недостатки машинных языков…………………….....8
2.3 Язык ассемблера………………………………………………………..9
2.4 Преимущества алгоритмических языков перед
машинными языками……………………………………………………...10
Список используемой литературы………………………………………11
Содержание
1.Алгоритмы
1.2 Исполнитель алгоритма……………………………………………..3
1.3 Свойства алгоритмов………………………………………………..
1.4 Формы записи алгоритмов………………………………………….5
2. Языки программирования.
2.1 Уровень Языка программирования……………………………...
2.2 Достоинства и недостатки машинных языков…………………….....8
2.3 Язык ассемблера………………………………………
2.4 Преимущества алгоритмических языков перед
машинными языками……………………………………………………...
Список используемой литературы………………………………………11
АЛГОРИТМИЧЕСКИЕ ЯЗЫКИ
1. Алгоритмы
1.1. Понятие алгоритма
Понятие алгоритма такое же основополагающее для информатики, как и
Понятие информации. Именно поэтому важно в нем разобраться.
Название «алгоритм» произошло от латинской формы имени величайшего среднеазиатского математика Мухаммеда ибн Муса ал - Хорезми
(Alhorithmi), жившего в 783-850 гг. В своей книге «Об индийском счете» он изложил правила записи натуральных чисел с помощью арабских цифр и правила действий над ними «столбиком», знакомые теперь каждому школьнику. В XII веке эта книга была переведена на латынь и получила широкое распространение в Европе. Человек ежедневно встречается с необходимостью следовать тем или иным правилам, выполнять различные инструкции и указания. Например, переходя через дорогу на перекрестке без светофора надо сначала посмотреть направо. Если машин нет, то перейти полдороги, а если машины есть, ждать, пока они пройдут, затем перейти полдороги. После этого посмотреть налево и, если машин нет, то перейти дорогу до конца, а если машины есть, ждать, пока они пройдут, а затем перейти дорогу до конца.
В математике для решения типовых задач мы используем определенные
правила, описывающие последовательности действий. Например, правила сложения дробных чисел, решения квадратных уравнений и т.д. Обычно любые инструкции и правила представляют собой последовательность действий, которые необходимо выполнить в определенном порядке. Для решения задачи надо знать, что дано, что следует получить, какие действия, и в каком порядке следует для этого выполнить. Предписание, определяющее порядок выполнения действий над данными с целью получения искомых результатов, и есть алгоритм.
Алгоритм – заранее заданное понятное и точное предписание возможному исполнителю совершить определенную последовательность действий для получения решения задачи за конечное число шагов.
Это – не определение в математическом смысле слова, а, скорее, описание интуитивного понятия алгоритма, раскрывающее его сущность.
Понятие алгоритма является не только одним из главных понятий математики, но одним из главных понятий современной науки. Более того, с наступлением эры информатики алгоритмы становятся одним из важнейших факторов цивилизации.
1.2. Исполнитель алгоритма.
Исполнитель алгоритма – это некоторая абстрактная или реальная
(техническая, биологическая или биотехническая) система, способная выполнить действия, предписываемые алгоритмом.
Исполнителя характеризуют:
· среда;
· элементарные действия;
· система команд;
· отказы.
Среда (или обстановка) – это «место обитания» исполнителя.
Система команд. Каждый исполнитель может выполнять команды только из некоторого строго заданного списка – системы команд исполнителя. Для каждой команды должны быть заданы условия применимости (в каких состояниях среды может быть выполнена команда) и описаны результаты выполнения команды.
После вызова команды исполнитель совершает соответствующее элемент-
тарное действие.
Отказы исполнителя возникают, если команда вызывается при недопустимом для нее состоянии среды.
Обычно исполнитель ничего не знает о цели алгоритма. Он выполняет все полученные команды, не задавая вопросов «почему» и «зачем».
В информатике универсальным исполнителем алгоритмов является компьютер.
1.3. Свойства алгоритмов
Основные свойства алгоритмов следующие:
1. Понятность для исполнителя – исполнитель алгоритма должен понимать, как его выполнять. Иными словами, имея алгоритм и произвольный вариант исходных данных, исполнитель должен знать, как надо действовать для выполнения этого алгоритма.
2. Дискретность (прерывность, раздельность) – алгоритм должен представлять процесс решения задачи как последовательное выполнение простых (или ранее определенных) шагов ( этапов).
3. Определенность – каждое правило алгоритма должно быть чётким,
Однозначным и не оставлять места для произвола. Благодаря этому свойству выполнение алгоритма носит механический характер и не требует никаких дополнительных указаний или сведений о решаемой задаче.
4. Результативность (или конечность) состоит в том, что за конечное
число шагов алгоритм либо должен приводить к решению задачи, либо после конечного числа шагов останавливаться из-за невозможности получить решение с выдачей соответствующего сообщения, либо неограниченно продолжаться в течение времени, отведенного для исполнения алгоритма, с выдачей промежуточных результатов.
5. Массовость означает, что алгоритм решения задачи разрабатывается
в общем виде, т.е. он должен быть применим для некоторого класса задач, различающихся лишь исходными данными. При этом исходные данные могут выбираться из некоторой области, которая называется областью применимости алгоритма.
1.4. Формы записи алгоритмов
На практике наиболее распространены следующие формы представления
алгоритмов:
· словесная (запись на естественном языке);
· графическая (изображения из графических символов);
· псевдокоды (полуформализованные описания алгоритмов на условном алгоритмическом языке, включающие в себя как элементы языка
программирования, так и фразы естественного языка, общепринятые
математические обозначения и др.);
· программная (тексты на языках программирования).
Словесный способ записи алгоритмов представляет собой описание последовательных этапов обработки данных. Алгоритм задается в произвольном изложении на естественном языке. Словесный способ не имеет широкого распространения, так как такие описания:
· строго не формализуемы;
· страдают многословностью записей;
· допускают неоднозначность толкования отдельных предписаний.
Графический способ представления алгоритмов является более компактным и наглядным по сравнению со словесным.
При графическом представлении алгоритм изображается в виде последовательности связанных между собой функциональных блоков, каждый из которых соответствует выполнению одного или нескольких действий. Такое графическое представление называется схемой алгоритма или блок-схемой. В блок-схеме каждому типу действий (вводу исходных данных, вычислению значений выражений, проверке условий, управлению повторением действий, окончанию обработки и т.п.) соответствует геометрическая фигура, представленная в виде блочного символа. Блочные символы соединяются линиями переходов, определяющими очередность выполнения действий. В таблице приведены наиболее часто употребляемые символы.
Псевдокод представляет собой систему обозначений и правил, предназначенную для единообразной записи алгоритмов.
Псевдокод занимает промежуточное место между естественным и формальным языками. С одной стороны, он близок к обычному естественному языку, поэтому алгоритмы могут на не записываться и читаться как обычный текст. С другой стороны, в псевдокоде используются некоторые формальные конструкции и математическая символика, что приближает запись алгоритма к общепринятой математической записи.
В псевдокоде не приняты строгие синтаксические правила для записи команд, присущие формальным языкам, что облегчает запись алгоритма на стадии его проектирования и дает возможность использовать более широкий набор команд, рассчитанный на абстрактного исполнителя.
Однако в псевдокоде обычно имеются некоторые конструкции, присущие
формальным языкам, что облегчает переход от записи на псевдокоде к записи алгоритма на формальном языке. В частности, в псевдокоде, так же, как и в формальных языках, есть служебные слова, смысл которых определен раз и навсегда. Они выделяются в печатном тексте жирным шрифтом, а в рукописном тексте подчеркиваются.
Единого или формального определения псевдокода не существует, поэтому возможны различные псевдокоды, отличающиеся набором служебных слов и основных (базовых) конструкций.
Отличие программного способа записи алгоритмов от других.
При записи алгоритма в словесной форме, в виде блок-схемы или на псевдокоде допускается определенный произвол при изображении команд. Вместе с тем такая запись точна настолько, что позволяет человеку понять суть дела и исполнить алгоритм.
Однако на практике в качестве исполнителей алгоритмов используются
специальные автоматы — компьютеры. Поэтому алгоритм, предназначенный для исполнения на компьютере, должен быть записан на понятном ему языке. И здесь на первый план выдвигается необходимость точной записи команд, не оставляющей места для произвольного толкования их исполнителем.
Следовательно, язык для записи алгоритмов должен быть формализован.
Такой язык принято называть языком программирования, а запись алгоритма на этом языке – программой для компьютера.
Компоненты алгоритмического языка.
Алгоритмический язык (как и любой другой язык) образуют три его составляющие: алфавит, синтаксис и семантика.
Алфавит – это фиксированный для данного языка набор основных символов, т.е. «букв алфавита», из которых должен состоять любой текст на этом языке – никакие другие символы в тексте не допускаются.
Синтаксис – это правила построения фраз, позволяющие определить,
правильно или неправильно написана та или иная фраза. Иначе говоря, синтаксис языка представляет собой набор правил, устанавливающих, какие комбинации символов являются осмысленными предложениями на этом языке.
Семантика определяет смысловое значение предложений языка. Являясь
системой правил истолкования отдельных языковых конструкций, семантика
устанавливает, какие последовательности действий описываются теми или
иными фразами языка и, в конечном итоге, какой алгоритм определен данным текстом на алгоритмическом языке.
2. Языки программирования
2.1. Уровень языка программирования
В настоящее время в мире существует несколько сотен реально используемых языков программирования. Для каждого есть своя область применения.
Любой алгоритм, как мы знаем, есть последовательность предписаний,
которые выполнить можно за конечное число шагов, перейти от исходных данных к результату. В зависимости от степени детализации предписаний обычно определяется уровень языка программирования – чем меньше
детализация, тем выше уровень языка. По этому критерию можно выделить следующие уровни языков программирования:
· машинные;
· машинно-оpиентиpованные (ассемблеpы);
· машинно-независимые (языки высокого уровня).
Машинные языки и машинно-ориентированные языки – это языки низкого уровня, требующие указания мелких деталей процесса обработки данных.
Языки же высокого уровня имитируют естественные языки, используя некоторые слова разговорного языка и общепринятые математические символы. Эти языки более удобны для человека.
Языки высокого уровня делятся на:
· процедурные (алгоритмические) (Basic, Pascal, C и др.), которые предназначены для однозначного описания алгоритмов; для решения задачи процедурные языки требуют в той или иной форме явно записать процедуру ее решения;
·логические (Prolog, Lisp и др.), которые ориентированы не на разработку
алгоритма решения задачи, а на систематическое и формализованное описание задачи с тем, чтобы решение следовало из составленного описания;
· объектно-ориентированные (Object Pascal, C++, Java и др.), в основе которых лежит понятие объекта, сочетающего в себе данные и действия над нами. Программа на объектно-ориентированном языке, решая некоторую задачу, по сути, описывает часть мира, относящуюся к этой задаче. Описание действительности в форме системы взаимодействующих объектов естественнее, чем в форме взаимодействующих процедур.