:) Составление программ на языке высокого уровня
Составление программ на языке высокого уровня

Язык программирования – это набор правил, определяющих способ записи алгоритма.

Написание текста программы – только один из этапов длинного пути.

Этапы решения задач на ЭВМ

 

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

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

3.     Перевод на язык программирования. Оптимизация кода.

4.     Трансляция и исправление ошибок при кодировке.

5.     Прогон – результаты программисту или постановщику задачи .

6.     Отладка – возврат к пунктам 2,3,4,5. Редко – к 1.

7.     Решение задачи – месяцы расчетов – анализ удобства программы, возможен возврат ко всем предыдущим пунктам.

8.     анализ результатов расчетов – возврат к предыдущим пунктам.

9.     выводы, документирование, комментирование, причесывание и т.д.

 

При разработке программ с интерфейсом работа делится на две задачи – собственно задача и разработка интерфейса. Это уже из области искусства.

 

             После того, как составлен исходный текст программы, он заносится в некоторый файл (обычно с расширением .for). Он не может быть выполнен компьютером, так как процессор «понимает» только числовой двоичный код. Поэтому надо выполнить следующий этап – трансляцию (или компиляцию) программы. Выходом компилятора (compiler) является файл с двоичным объектным кодом (обычно файл с расширением .obj). Но для преобразования его в исполняемый нужна еще одна стадия – линковка. Для этого запускается linker (редактор связей). Одной из его задач является нахождение в файлах библиотек кода стандартных подпрограмм (sin, cos, sqrt, …) и подключение его к объектным кодам. Кроме того, исходный код больших программ пишется в нескольких исходных файлах. После компиляции каждого из них получается свой объектный файл. Линковщик собирает все их вместе, настраивает адреса, глобальные данные и создает один исполняемый файл (чаще всего с расширением .exe).

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

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

 

Составив алгоритм – поработай машиной – пройди по всем этапам и представь, что ЭВМ сможет сделать по твоему алгоритму.

Для решения любой задачи мы должны оперировать данными – числами, текстом, образами и т.д. Мы должны хранить это все – где? – в памяти. Так же и ЭВМ должна хранить все – где? – в памяти. Программист должен позаботиться о месте хранения – выделить место. Для того, чтобы ЭВМ смогла работать с этими данными, необходимо дать имя этому месту. Для этого в языках программирования введено понятие переменной (реже - константы). Это имя области памяти, где хранится какая-то информация. Можно рассматривать это как ящички или плошки с котлетами. Когда мы работаем с информацией, она имеет какой-то тип и от него зависит набор действий над этой информацией. Следовательно и переменные должны иметь какой-то тип. Какие типы чаще всего используются – зависит от области работы программиста. Для расчетных задач - целые и вещественные. Их смысл понятен и так. Также бывают комплексные, символьные и логические.

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

Для определения типа служат НЕИСПОЛНЯЕМЫЕ операторы описания – т.е.  операторы, которые не участвуют в решении задачи, а только подготавливают его – настраивают программу, информируют компилятор и т.д.

Несколько слов о правилах записи программы. Представьте тетрадку в клетку. Каждая клетка – позиция для одного символа. Есть два формата записи программы на языке Фортран: старый – FIXED и новый – FREE. В формате FIXED: с первой по пятую позицию в строке может стоять только метка – номер оператора, по которому вы сможете вернуться к нему в программе или сослаться на него. С 7 по 73 – поле операторов, после – комментарии. В 6 – продолжение строки. Комментарии могут стоять в любой строке программы, если поставить символ «С» в первой позиции.

Вернемся к переменным. У каждой переменной есть имя. По этому имени мы обращаемся к содержимому переменной. Как нам положить в переменную значение? Берем в Правую руку значение, в левую переменную и кладем:

«имя = значение».

Это называется оператором присваивания.

Для выполнения алгоритма пользователь должен задать компьютеру исходные данные. Компьютер положить их  в выделенные для этого переменные. Для этого используется оператор ввода данных:

READ (*,*) список переменных

Например, при выполнении оператора READ (*,*) a,b компьютер ждет, пока пользователь не наберет на клавиатуре два числа и нажмет клавишу ENTER.

 

Fortran

Ранее стандарты языков программирования являлись формально чисто американскими и утверждались Американским Национальным Институтом Стандартов (American National Standard Institute — ANSI), позднее они стали фиксироваться также Международной Организацией Стандартов (International Standard Organization — ISO). Поэтому современные стандарты имеют обозначение ANSI/ISO.

С момента создания первой системы Fortran фирмой IBM в 1950 г. по сегодняшний день было принято три стандарта языка. При этом следует отметить еще одну особенность Fortran — все его стандарты предусматривают полную совместимость "снизу-вверх". Первый стандарт FORTRAN 66 был принят в 1966 г., второй стандарт, FORTRAN 77, — в 1978 г.

В 1992 г. был принят новый стандарт — Fortran 90.

В конце 2004 года опубликован новый международный стандарт языка Фортран - Фортран 2003.

Фортран 2003 содержит существенные нововведения. Некоторые из наиболее важных новых направлений:

·       Средства объектно-ориентированного программирования.

·       Средства взаимодействия с языком Си, обеспечивающие как вызов Си-функций из Фортран-программы, так и наоборот.

·       Параметризованные производные типы.

·       Новые средства ввода/вывода (асинхронный ввод/вывод, потоковый доступ к файлам, новые спецификаторы формата и др.).

·       Средства обработки исключительных ситуаций для операций с плавающей точкой.

·       Новые возможности, касающиеся размещаемых массивов.

·       Более полная интеграция с операционной системой.

·       Новые встроенные процедуры.

 

             Одна из задач студента – научиться читать разнообразные описания языка программирования. Это и многочисленные, не всегда хорошие учебники, и HELP, и стандарт языка – формальное, сухое описание.

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

DO s [,] i=e1,e2[,e3]  означает, что знак запятой после s и последнее выражение e3 могут отсутствовать.

Символ повторения – три точки – означает, что стоящий перед ними элемент может быть повторен 0 или более раз подряд. Например, в

INTEGER v[,v]… означает, что в одной инструкции  может быть описано более одной переменной.

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

n в кружке – по данному пути можно пройти ровно n раз;

n под дугой - по данному пути можно пройти не более n раз;

 

логическая константа

 

 


 

показывает, что логическая константа есть либо .TRUE. , либо .FALSE.

 

Целая константа состоит из знака, который может отсутствовать, и последовательности из одной или более цифр.

 

Метка состоит от 1 до 5 цифр.

 

Последовательность – это множество элементов, упорядоченное путем установления взаимно однозначного соответствия с числами 1,2,…n. Последовательность может быть пустой, т.е. не содержать ни одного элемента. Пример – программа – последовательность инструкций, массив – непустая последовательность элементов, строка –последовательность литер.

Список – непустая последовательность синтаксических элементов, разделенных запятыми. Пример – спецификация форматов в инструкции FORMAT, имена переменных в в инструкции DATA, описатели размерности в декларации массива.

Статус определенности – означает, что в любой момент времени элемент находится в состоянии либо определенном, либо неопределенном. Определен – значит имеет некоторое значение, которое не изменится до явного переопределения, либо до перехода в состояние неопределенности.

 

 

 

 

 

НА ГЛАВНУЮ ДАЛЕЕ


Hosted by uCoz