Пока нас будет интересовать, как тексты оформляются, а не их содержание. Текст программы читают и человек, и компилятор. Компилятор –
это приложение, которое переводит текст программы c какого-либо языка в команды компьютера. Компиляторов
много: языков программирования сотни и компьютерных платформ много. Из всех
языков для сравнения выберем наиболее известные универсальные языки
программирования Фортран C Pascal. У каждого
из 3 названных языков своя история и свои традиции
историяФортрана – 50 летняя – уж сколько раз твердили миру, что он
слишком прост, но он живет, эволюционирует, выпускаются новые стандарты;
предпочтителен в вычислительных задачах (FORmulaTRANslator –переводчик формул), накоплены
огромные математические библиотеки
история C короче, этот язык популярен– живет, выпускаются
стандарты, есть дети как Java, предпочтителен в
системных задачах, в работе с БД
история Pascal интересна бурным нарождением в
период появления ПК и тихим умиранием в период появления Windows
(только Delphi под Windows),
предпочтителен в учебных задачах, не стандартизован, именно в Pascal впервые опробован стиль структурного
программирования и идеи объектно-ориентированного программирования
Есть задачи, где предпочтителен один язык, есть задачи, где все равно, на
каком языке писать, есть задачи, где предпочтительнее писать часть на одном,
часть на другом языке.Лучше знать несколько языков, тогда будет выбор.
С точки зрения обучения проще понять основы программирования в строгом языке,
какФортран или Pascal, а затем понять
вольницу языка C, или специализироваться в Web-программировании.
Оформление текста
Фортран
C
Имя
файла
laba.f90 – обязательнос расширением .f90
иногда дают имя с расширением .for
laa.cpp– обязательнос
расширением
.cpp
иногда с расширением .c
Текст программы
Текст состоит из
предложений, но в русском программировании их принято называть операторами (в
английском же, так и говорят: “statements-предложения”)
глобальные операторы-описания laba
локальные операторы-описания {
операторы-действия }
Привязка
операторовк строкам текста
Каждый оператор
начинается с новой строки,
но может занимать и несколько строк.
В стандарте языка нет
привязки к строкам, но есть определенные традиции, которые все же это делают,
но не как в Фортране.
Начало
оператора
Оператор начинается с новой
строки
F=B+C
D=A-2
Оператор начинается после “;”,
заканчивающей предыдущий оператор. F=B+C; D=A-2;
Конец
оператора
Специального знака
окончания оператора не требуется, ведь следующий оператор начнётся с новой
строки
Каждый оператор
заканчивается “;”, как и в Pascal F=B+C; D=A-2;
Все равно как писать по строкам.
Пробелы
и пустые строки
Пробелы и пустые строки
используются свободно, чтобы текст легче воспринимался, компилятору они
безразличны. Нельзя использовать пробелы внутри имен, вместо этого
используется подчеркивание “_”
комментарии
комментарий, завершает строку, стартуя с восклицательного знака
“!”
B=1!
построчный комментарий
! строка-комментарий
B=1//построчный комментарий
/*комментарий по тексту, занимающий любое
количество строк текста */
Знак
переносастроки
Имеется “&”
специальный знак переноса длинных строк,
например D= &
A-2.
Знак переноса просто не
нужен, пишем свободно по строкам,
например D=
A-2;
Знак
“;”
“;” – это
специальный знак “невидимый конец строки”, например F=B+C; D= A-2
Это 2 строкидлякомпилятора
Это 1 строкадлячеловека
Знаком “;”
заканчивается любой оператор. Например F=B+C; D=A-2
в языке “C” вызовет ошибку - второй
оператор не заканчивается знаком “;”
F=B+C;
D=A-2;
Это правильно в обоих
языках, вторая “;” в Фортране не обязательна.
Вторая “;”
так же обязательна в “C”, как и первая “;”.
Оформление операторов
Фортран
C
Виды
операторов
По составу различают
· простой оператор – это оператор, внутри которого нет
других операторов
· составной оператор содержит в себе другие операторы,
простые или составные, возможно, объединенные в блоки
Как
пишется простой оператор
Основной принцип:
один оператор–одна
строка,
возможно с переносом B=1; F=B+C
D=A-2
Строку заканчивает либо Enter
либо “;”
Знаком “;”
заканчивается любой оператор, в том числе и простой, не важно сколько будет
строк
B=1;
F=B+C; D=A-2;
Рассмотрим блоки составной
операторна примере двухблочного оператора “если” с простыми
операторами присваивания внутри
If( a>2) then
B=1; c=b-1 ! это
блок из 2 простых Else
B=0 ! это простой внутри Endif
Сколько бы ни было операторов в блоке, они
единообразно обрамляются особыми строками, здесь это
If( a>2) Then
.. .. ! этоблок
else
Ifa>2 then
{B=1; c=B-1;} // это
блок из 2 простых else
B=0 // это
простой внутри
;
Два и более операторов в блоке обрамляются
фигурными скобками {}.
Один оператор фигурными скобками не
обрамляется и не имеет отдельной “;”.
Примечание: в Pascal
блок обрамляется ключевыми словами begin
.. .. end
Составной
оператор или
Конструкция
Оформляем оператор
построчно:
If( a>2) then
! обрамляют начало B=1 ! 1-ый блок Else ! составной оператор B=0 ! 2-ой блок Endif ! перед if
добавлен End-конец
Формально,используя знак “;” можно записать все и в “одной” строке
If( a>2) then
; B=1;Else ; B=0 ; Endif
Это будет правильно, но непривычно !!!
Привязки к строкам нет, как
захочет программист, так и напишет, можно написать и так
If
a>2 then // болеетрадиционно
B=1
Else
B=0
;
итак
If a>2 then B=1 Else B=0 ;
Когда
в If
блоков
нет
Пишут If( a>2) B=1
Хотя формально правильна и более длинная запись с одним блоком из одного
простого оператора If( a>2) then
B=1 Endif
Пишут Ifa>2 B=1;
Хотя формально правильна и более длинная запись с одним блоком из одного
простого оператора Ifa>2
{B=1;} ;
Одноблочный оператор
If(a>2) then!границы оператора и блока
B=1; c=b-1 Endif! - границы оператора и блока
Ifa>2
{ B=1; c=b-1;} “;” опускать
нельзя - они заканчивают простые
операторы
Вложенные конструкции
Abol2:If( a>2) then
B=1; c=b-1 Else Amen2:If( a<2) then
B=4; c=b-1 Else
B=2 Endif Amen2 Endif Abol2 Чтоб
легче читать вложенные операторы, их можно именовать, указывая имя
конструкции в начале и конце оператора.
If( a>2) then
{B=1; c=b-1;} Else If( a<2)
then
{B=4; c=B-1;} Else
B=2
;
; Имен конструкций нет,
и остается выделять вложение отступами и новыми строками.
Традиционно вложенные
конструкции выделяют отступами
выравнивая
If
начало
Elseсередину
Endifконец
конструкции.
выравнивая
If
начало
Elseсередину
;конец конструкции.
Сравнение основных концепций языков
Фортран и “C”.
Именасостоят из
английских букв (больших и малых)
цифр, _
символов $
Имя всегда начинается с буквы, до 31 символа
в имени.
Большие
и маленькие буквы в именах
Различаются, например для B=1; c=b-1; будеткакое попалоb,
так как B иb – имена двух разных
переменных
Не различаются в Фортран и Pascal. Например для B=1; c=b-1
будет b=1 и получим c=0, так как B иb – одно и то же имя
ключевые слова
В C и в Pascal,
применяется жёсткий принцип ключевых слов, когда ряд имён, называемых ключевыми
словами, резервируется для нужд языка, например для названий операторов.
Например, if
– условный оператор
и нельзя записать if=2;
Фортран.
Концепция ключевых слов более мягкая – нельзя только допускать двусмысленности
имен в конкретной программе.
Есть стандартная функция Max, но допустимо integerMax,a,b;
Max=a; if(b>a) Max=b
Однако нельзя использовать имяMax
и в качестве переменной Max=aif(b>a) Max=b
и в качествефункции maxab=max(a,b)
в одной и той же программе.
Например, несмотря на то, что if – условный оператор, не запрещается
переменная If integerIf ; If=2
Ввод-вывод
Фортран
“C” и Pascal
Ввод-вывод реализован операторами языка
Write (6,*) ‘целое
N=’, N
Производится как контроль операторов
компилятором, так и контроль системой ввода-вывода при исполнении программы.
Операторов ввода-вывода вообще нет
Ввод-вывод
реализован не операторами языка, а внешними процедурами, например
print( “целое N=%d2”, N);
Контроль выполняется только системой
ввода-вывода при исполнении программы.
Типизация переменных
ФортраниPascal
“C”
В Фортране и Pascal строгая типизация.
В Фортране имеется 5 базовых типов
из них 3 числовых типа - целые, вещественные,
комплексные,
а также 2 нечисловых-
строки и логические величины)
и любое количество типов, определяемых
программистом.
Каждая переменная должна быть отнесена к
одному из типов.
Каждый тип подразумевает:
·свой способ хранения в памяти
·свой диапазон величин
·только свои операции
Программист не обязан досконально
знать представление данных в компьютере, применимыоперации только
своего типа.
В “C” сравнимое количество
базовых типов (за исключением комплексных и сдобавлениембеззнаковых величин) и любое количество типов (структур),
определяемых программистом. Каждая переменная должна быть отнесена к одному
из типов.
Каждый тип подразумевает:
свой способ хранения в памяти
свой диапазон величин
В “C” нетстрогой типизации:
доскональнознаяпредставление данных в
компьютере, программист может применять операции как захочет под свою
ответственность. Например, логического типа вообще нет, хотя все логические
операции доступны.
Оператор присваивания
Вычислить выражение справа и присвоить
переменной слева от знака присваивания, возможно с преобразованием для
числового типа. Все числовые типы можно смешивать в одном выражении,
автоматически впромежуточных
вычисления производится переход в наиболее широкий класс чисел по мере их
расширения
·Целые
·вещественные
·комплексные -
только в Фортране
В Фортране
в Pascal
“C”
единственный
=
знак присваивания:
единственный
:=
знак присваивания:
далеко
не единственный
Кроме =
много других вариантов присваивания =+ += - = = - a++ ++a…
Технологии программирования
Фортран
“C”
Выражение- осмысленная формула по правилам языка
Как когда-то придумали в Фортране
способ вытягивания многоэтажной формулы в строку символов, так и пишут во
всех языках программирования. Различие лишь в принятых обозначениях некоторых
операций и в функциях.
Массивы
и
указтели
Массив - прямоугольная таблица, элементы которой доступны
по одному или нескольким индексам
(до 7). Работа с массивами любой размерности единообразна.
Указатели есть, но это не основное средство для работы с
массивами.
Обычная работа с элементами
массива – черезуказатели. Для массива также есть доступ по
индексам. Двумерный массив – это обычно массив указателей на указатели.
Работа с массивами большей размерности через указатели затруднена.
Объектно-ориентированное
программирование
Нет в Фортране-90
Прописано в новом стандарте Фортран-200?, ждём появления новых
компиляторов
Имеется в наиболее общем виде MS C++
Имеется вBorlandDelphi и C++
Визуальное
программирование
Нет, но возможно будет в
новых средах программирования
Фортран-200?
Визуальное
программирование опирается на
объектно-ориентированное программирование Есть, но вBorlandDelphi и C++
более живое, чем в MS C++
Структурированные программы
Как когда-то придумали в Pascal писать программы неотрывно, как письмо, так теперь
и делают во всех языках программирования.
Модули,
как средство инкапсуляци
и пр.
Модули есть
команда includeтоже
введена в состав языка Ф-90,
видимо по аналогии с "C"- и тут же объявлена устаревшим
средством
Модулей нет, есть гораздо более слабая команда include