Алгоритмизация. Языки програмиравания

Автор работы: Пользователь скрыл имя, 04 Июня 2012 в 07:06, контрольная работа

Краткое описание

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

Прикрепленные файлы: 1 файл

Алгоритмизация.doc

— 56.00 Кб (Скачать документ)

Алгоритмизация. Языки програмиравания. 
 

ПРОЦЕСС РАЗРАБОТКИ НОВЫХ ПРОГРАММ ДЛЯ ЭВМ  ВКЛЮЧАЕТ В СЕБЯ:

1) ПОСТАНОВКУ  ЗАДАЧИ 

2) СОЗДАНИЕИ  АЛГОРИТМА ЕЕ РЕШЕНИЯ 

3) РЕАЛИЗАЦИЮ  АЛГОРИТМА НА ЭВМ В ВИДЕ  ПРОГРАММЫ 

4) ОТЛАДКУ  ПРОГРАММЫ 

Рассмотрим  поочередно все эти этапы.

1) ПОСТАНОВКА  ЗАДАЧИ СОСТОИТ В ЧЕТКОМ ФОРМУЛИРОВАНИИ  ЦЕЛЕЙ РАБОТЫ. Необходимо четко  определить, что является исходными  данными, что требуется получить  в качестве результата, каким  должен быть интерфейс программы  (т.е. каким путем будет осуществляться диалог с пользователем) и т.д. Постановка задачи является чрезвычайно важным этапом работы. Многие специалисты считают, что правильная постановка задачи это уже полшага в направлении ее решения.

2) АЛГОРИТМ-ОПИСАНИЕ ПОСЛЕДОВАТЕЛЬНОСТИ ОПЕРАЦИЙ, КОТОРЫЕ НУЖНО ВЫПОЛНИТЬ ДЛЯ РЕШЕНИЯ ЗАДАЧИ. Слово "алгоритм" происходит от имени арабского математика Мухаммеда бен Мусы аль-Хорезми, предложившего в IX веке первые алгоритмы решения арифметических задач.

ГРАФИЧЕСКАЯ ИНТЕРПРЕТАЦИЯ АЛГОРИТМА НАЗЫВАЕТСЯ БЛОК-СХЕМОЙ. В качестве примера рассмотрим блок-схему простого и хорошо всем известного алгоритма перехода улицы через перекресток, оборудованный светофором.

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

ТРЕБОВАНИЯ  К АГОРИТМАМ:

А) ОТСУТСТВИЕ ОШИБОК.

Б) ОДНОЗНАЧНОСТЬ, Т.Е. ЧЕТКОЕ ПРЕДПИСАНИЕ, ЧТО И КАК  ДЕЛАТЬ В КАЖДОЙ КОНКРЕТНОЙ СИТУАЦИИ. Никаких неоднозначностей ("можно  сделать так, а можно и так...") быть не должно. Один из пунктов рассмотренного выше алгоритма перехода улицы звучит неоднозначно- "немного подождать". Понятно, что данный алгоритм ориентирован на человека, а человек поймет, что означает слово "немного", правда каждый по-своему. Для компьютера понятия "немного" не существует, поэтому при создании машинно-ориентированных алгоритмов нужно указывать конкретные величины, например "подождать 3 секунды".

В) УНИВЕРСАЛЬНОСТЬ, Т.Е. ПРИМЕНИМОСТЬ ДАННОГО АЛГОРИТМА  К РЕШЕНИЮ ЛЮБОЙ ЗАДАЧИ ДАННОГО  ТИПА. Это означает, что если Вы пишите программу для решения квадратного уравнения, использованный в ней алгоритм должен позволить использовать ее для решения любого квадратного уравнения, а если Вы пишите программу для создания мультфильмов, то это нужно делать так, чтобы с ее помощью можно было создавать любые мультфильмы, и т.д. Данное требование- экономическое. Разработка серьезной программы это очень сложный, длительный и трудоемкий процесс, и окупится он только тогда, когда созданная в результате программа будет использоваться многократно. Писать программы, которые будут использоваться только однажды смысла нет. Исключением могут быть только какие-то особые случаи и обучение программированию.

Г) РЕЗУЛЬТАТИВНОСТЬ, Т.Е. ОТСУТСТВИЕ ЗАЦИКЛИВАНИЙ. Любая  программа должна всегда приводить  к результату, даже если этим результатом будет аварийное сообщение. Иными словами, рельсы должны быть проложены так, чтобы идущий по ним трамвай в любой ситуации доехал от начала до конца, т.е. необходимо предусмотреть все возможные ситуации. Обратимся снова к рассмотренному выше алгоритму перехода улицы. Очевидно, что если светофор сломан, данный алгоритм не сработает. Иными словами, эта аварийная ситуация в нем не предусмотрена, и в данном случае, результат будет не таким, каким должен быть. Конечно, человек, не дождавшись зеленого сигнала, поймет, что что-то не так и предпримет какие-то действия. Но компьютер ведь думать не умеет, он как трамвай идет по проложенным рельсам! Если рельсы проложены так, что аварийная ситуация не предусмотрена, произойдет зацикливание или будут иметь место какие-либо другие непредсказуемые результаты. Тогда, в ряде случаев программы "зависают", или зацикливаются, как в рассматриваемой ситуации. Выйти из образовавшегося замкнутого круга можно только принудительным прерыванием работы программы, например, путем перезагрузки компьютера.

3) О  ПРОГРАММЕ, ВЫПОЛНЯЮЩЕЙ ДЕЙСТВИЯ, ПРЕДПИСАННЫЕ АЛГОРИТМОМ, ГОВОРЯТ,  ЧТО ОНА РЕАЛИЗУЕТ ДАННЫЙ АЛГОРИТМ  НА ЭВМ. Следующим шагом после  создания алгоритма является  написание реализующей его программы.  Основная сложность здесь заключается в том, что программа, как Вы помните, представляет собой набор двоичных кодов - нулей и единиц. Алгоритм же формулируется на естественном человеческом языке- русском, английском, немецком, арабском и.т.д. Понятно, что перевести текст на естественном человеческом языке в набор цифр чрезвычайно сложно:

В связи  с этим в данный процесс вводится промежуточный этап - разработка текста программы:

ЯЗЫК  ПРОГРАММИРОВАНИЯ-ИСКУССТВЕННЫЙ ЯЗЫК, ЯВЛЯЮЩИЙСЯ ПРОМЕЖУТОЧНЫМ ПРИ ПЕРЕХОДЕ ОТ ЕСТЕСТВЕННОГО ЧЕЛОВЕЧЕСКОГО ЯЗЫКА К МАШИННЫМ ДВОИЧНЫМ КОДАМ. ЯЗЫКИ ПРОГРАММИРОВАНИЯ БЫВАЮТ ВЫСОКОГО И НИЗКОГО УРОВНЕЙ. ЯЗЫКИ ПРОГРАММИРОВАНИЯ ВЫСОКОГО УРОВНЯ (как видно из схемы) ЯВЛЯЮТСЯ БОЛЕЕ БЛИЗКИМИ К ЕСТЕСТВЕННОМУ ЧЕЛОВЕЧЕСКОМУ ЯЗЫКУ ПО СРАВНЕНИЮ С ЯЗЫКАМИ ПРОГРАММИРОВАНИЯ НИЗКОГО УРОВНЯ. СОЗДАНИЕ ТЕКСТА ПРОГРАММЫ НА ЯЗЫКЕ ПРОГРАММИРОВАНИЯ ВЫПОЛНЯЕТСЯ ЧЕЛОВЕКОМ ВРУЧНУЮ, А ПЕРЕВОД ТЕКСТА ПРОГРАММЫ В МАШИННЫЕ ДВОИЧНЫЕ КОДЫ - ТРАНСЛЯЦИЯ (англ.translation - перевод) ВЫПОЛНЯЕТСЯ СПЕЦИАЛЬНЫМИ ПРОГРАММАМИ- ТРАНСЛЯТОРАМИ.

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

К ЯЗЫКАМ ВЫСОКОГО УРОВНЯ ОТНОСЯТСЯ: ФОРТРАН, БЕЙСИК, ПАСКАЛЬ, СИ, АЛГОЛ, АЛМИР, АДА, СИ++, DELPHI, JAVA и сотни других.

Старейшим языком программирования высокого уровня является ФОРТРАН (англ. FORmula TRANslation, перевод формул). Он был создан группой программистов американской фирмы IBM под руководством Джона Бекуса в 1957 году. Несколько позже в Европе был разработан язык АЛГОЛ (англ.ALGOrythmic Language, алгоритмический язык). Эти языки послужили основой для других новых языков программирования. Так, язык БЕЙСИК (англ. basic, базовый, или Beginner's All-purpose Symbolic Instruction Code, многоцелевой язык символических команд для начинающих) был создан Джоном Кемени в США в 1965 году. Он представляет собой упрощенную версию ФОРТРАНА, который оказался сложным для большинства пользователей из-за своей избыточности. Язык АЛГОЛ послужил основой для не менее популярного языка ПАСКАЛЯ, созданного в 1969 году швейцарским математиком Никласом Виртом. ПАСКАЛЬ не сложнее Бейсика, но в него изначально были заложены более широкие возможности. Дальнейшее развитие язык ПАСКАЛЬ получил в виде системы программирования DELPHI. На Украине в 1965 году на базе АЛГОЛА был создан язык АЛМИР, отличавшийся использованием символики на основе русского, а не английского языка. Этот язык считается первым в мире языком программирования на основе национального языка (Native Language).

Язык  СИ, в котором использованы элементы ПАСКАЛЯ, был создан в 1972 году в американской фирме Bell Laboratories под руководством Дениса Ритчи. Название языка СИ связано с тем, что наиболее удачной оказалась его третья версия ( СИ- третья буква английского алфавита). СИ считается наиболее эффективным среди языков программирования высокого уровня. С одной стороны он не намного сложнее ПАСКАЛЯ или ФОРТРАНА, но с другой обладает возможностями, присущими языкам программирования низкого уровня. Поэтому СИ иногда называют языком программирования среднего уровня и используют как при написании прикладных программ, так и при разработке системных. Дальнейшим развитием языка СИ стали языки СИ++ и JAVA.

К ЯЗЫКАМ НИЗКОГО УРОВНЯ ОТНОЯТСЯ АССЕМБЛЕР  И АВТОКОД. Ассемблер, как язык низкого уровня, фактически состоит из набора команд данной машины, записанных в виде сокращений на английском языке. Автокод- вариант ассемблера на основе русского языка.

Программы трансляторы бывают двух типов:

ИНТЕРПРЕТАТОРЫ  ТРАНСЛИРУЮТ ТЕКСТ ПРОГРАММЫ И СРАЗУ ЖЕ ВЫПОЛНЯЮТ ПРЕДПИСАННЫЕ В НЕМ ДЕЙСТВИЯ, НЕ СОЗДАВАЯ .ЕХЕ-ФАЙЛ. КОМПИЛЯТОРЫ ТРАНСЛИРУЮТ ТЕКСТ ПРОГРАММЫ И СОЗДАЮТ ГОТОВУЮ К ИСПОЛНЕНИЮ ПРОГРАММУ В ВИДЕ .ЕХЕ-ФАЙЛА, КОТОРЫЙ МОЖНО БУДЕТ ПОСЛЕ ЗАПУСТИТЬ НА ИСПОЛНЕНИЕ.  
 

ИСПОЛЬЗОВАННАЯ ЛИТЕРАТУРА:

1. Вебер  Р. Конфигурирование ПК на процессорах  Pentium. Пер. с нем.- М.: Мир, 1996.-256с. 

2. Вершинин  О.Е. Компьютер для менеджера:  Учеб.пособие для экон. спец. вузов.- М.: Высш.школа, 1990.-240с. 

3. Дьяконов  В.П. Windows 95 на вашем компьютере. -Смоленск: Русич, 1997.-528с.

4. Кирсанов  Д. Понятный Интернет: Практическое  пособие по настройке и навигации  с Netscape Navigator. - СПб: Символ-Плюс, 1996. -252с. 

5. Кенин  А.М., Печенкина Н.С. Окно в мир  компьютеров: Научно-популярное  издание. - Екатеринбург: Тезис, 1994. -400с.

6. Крайзмер  Л.П., Кулик Б.А. Персональный компьютер  на вашем рабочем месте. - СПб.: Лениздат, 1991. -286с. 

7. Ратч  Э. IBM AT. Руководство для начинающих. Справ. пособие. -М.: Радио и связь, 1993. -160с. 

8. Тимофеев А.В. Информатика и компьютерный интеллект. -М.: Педагогика, 1991.- 128с.

9. Фигурнов  В.Э. IBM PC для пользователя. Изд. 6-е,  перераб. и доп. -М.: ИНФРА-М, 1996.- 432с. 

10. Яцкевич  Ю.Э. Сети ЭВМ: Учеб.пособие. - СПб:  Изд-во СПбГТУ, 1995. -125с. 


Информация о работе Алгоритмизация. Языки програмиравания