алгоритмы, блок-схемы и языки программирования

Понятие алгоритма.

Алгоритмом называется четко определенная последовательность действий, которая за конечное число шагов должна приводить к решению задачи. Алгоритм должен отвечать следующим требованиям: 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, Ассемблер.

Используются технологии uCoz