алгоритмы, блок-схемы и языки программирования
Понятие алгоритма.
Алгоритмом называется четко определенная последовательность действий, которая за конечное число шагов должна приводить к решению задачи. Алгоритм должен отвечать следующим требованиям:
1. Детерминированность - последовательность действий должна быть четко определена.
2. Общность – алгоритм должен приводить к решению задачи при любых допустимых начальных условиях.
3. Конечность - алгоритм должен приводить к решению задачи за конечное (разумное) число шагов.
Термин алгоритм произошел от имени Абу Мусы Джафара ибн Мухамеда аль Хорезми - узбекского (предположительно ) математика, в книге под редакцией которого
описывались 4 арифметических действия (алгоритмов) с арабскими цифрами.
Алгоритмы можно записывать в словесной форме или при помощи блок – схем, в которых используются следующие элементы:
1. Ветвление – при этом, проверяется какое либо условие и в зависимости от результата проверки выполняется или не выполняется какое либо действие. Например
2. Цикл-последовательность однотипных действий, выполняемая до достижения определенного результата. Различают:
а)Цикл с предусловием – перед циклическим действием проверяется условие. б)Цикл с постусловием – после циклического действия проверяется условие в)Цикл с определенным числом шагов
пример цикла
Языки программирования
Язык программирования - искусственный (формальный) язык, предназначенный для записи алгоритмов. Язык программирования задается своим описанием и
реализуется в виде специальной программы: компилятора или интерпретатора.
В настоящее время в мире существует несколько сотен реально используемых языков программирования. Для каждого есть своя область применения.
Следует различать понятия: язык программирования, компилятор и интерпретатор.
С помощью языка программирования создается не готовая программа, а только ее текст, описывающий алгоритм.
Чтобы получить работающую программу, надо этот текст либо автоматически перевести в машинный код (с помощью программы компилятора ) и затем использовать отдельно от исходного текста,
либо сразу выполнять пошагово команды языка, указанные в тексте программы (программы-интерпретаторы).
Языки программирования
Любой алгоритм, как мы знаем, есть последовательность предписаний, выполнив которые можно за конечное число шагов перейти от исходных данных к результату. В зависимости от степени детализации предписаний обычно определяется уровень языка программирования — чем меньше детализация, тем выше уровень языка.
По этому критерию можно выделить следующие уровни языков программирования:
машинные;
машинно-оpиентиpованные (ассемблеpы);
машинно-независимые (языки высокого уровня).
Машинные языки и машинно-ориентированные языки — это языки низкого уровня, требующие указания мелких деталей процесса обработки данных. Языки же высокого уровня имитируют естественные языки, используя некоторые слова разговорного языка и общепринятые математические символы. Эти языки более удобны для человека.
Языки высокого уровня делятся на:
процедурные (алгоритмические) (Basic, Pascal, C , Fortran и др.), которые предназначены для однозначного описания алгоритмов; для решения задачи процедурные языки требуют в той или иной форме явно записать процедуру ее решения;
логические (Prolog, Lisp и др.), которые ориентированы не на разработку алгоритма решения задачи, а на систематическое и формализованное описание задачи с тем, чтобы решение следовало из составленного описания;
объектно-ориентированные (Object Pascal, C++, Java, C# и др.), в основе которых лежит понятие объекта, сочетающего в себе данные и действия над нами. Программа на объектно-ориентированном языке, решая некоторую задачу, по сути описывает часть мира, относящуюся к этой задаче. Описание действительности в форме системы взаимодействующих объектов естественнее, чем в форме взаимодействующих процедур.
В настоящее время в мире существует несколько сотен реально используемых языков программирования. Для каждого есть своя область применения.
И для каждого свои компиляторы или интерпретаторы. Например: компиляторы
Borland C++ Builder, Borland Delphi (для Object Pascal), Turbo Pascal, Visual C++, Microsoft Visual Basic, Symantec Cafe (Java) ПРимером интерпретатора может
служить интерпретатор Java Script, встроенный в браузеры.
Каждое понятие алгоритмического языка подразумевает некоторую синтаксическую единицу (конструкцию) и определяемые ею свойства программных объектов или процесса обработки данных.
Понятие языка определяется во взаимодействии синтаксических и семантических правил. Синтаксические правила показывают, как образуется данное понятие из других понятий и букв алфавита, а семантические правила определяют свойства данного понятия
Основными понятиями в алгоритмических языках обычно являются следующие.
1. Имена (идентификаторы) — употpебляются для обозначения объектов пpогpаммы (пеpеменных, массивов, функций и дp.).
2. Опеpации. Типы операций:
аpифметические опеpации + , — , * , / и дp. ;
логические опеpации и , или , не ;
опеpации отношения < , > , <= , >= , = , <> ;
опеpация сцепки (иначе, "присоединения", "конкатенации" ) символьных значений дpуг с другом с образованием одной длинной строки; изображается знаком "+".
3. Данные — величины, обpабатываемые пpогpаммой. Имеется тpи основных вида данных: константы, пеpеменные и массивы.
5. Операторы (команды). Оператор — это наиболее крупное и содержательное понятие языка: каждый оператор представляет собой законченную фразу языка и определяет некоторый вполне законченный этап обработки данных. В состав опеpатоpов входят:
ключевые слова;
данные;
выpажения и т.д.
Операторы подpазделяются на исполняемые и неисполняемые. Неисполняемые опеpатоpы пpедназначены для описания данных и стpуктуpы пpогpаммы,
а исполняемые — для выполнения pазличных действий (напpимеp, опеpатоp пpисваивания, опеpатоpы ввода и вывода,
условный оператор, операторы цикла, оператор процедуры и дp.)
Примеры операторов:
write,read,goto,for to do, begin end, repeat until, do while, if then else, и траляля тра ляля.
особо хотелось бы отметить оператор присваивания ": =" , который присваивает переменной стоящей слева от него значение выражения, находящегося справа от него
например S:=5; S:=S+2; в результате S станет равным 7.
контрольные вопросы
Классифицируйте следующие названия: Pascal, Delphi, Front Page EXpress,Goto,Java, Ассемблер.