TW-CAD
    Что такое TestWard
    Технология
    Заказать тест
    Регистрация
    FAQ
    Статьи
  Проектирование
    Информация
    Вирт. лаборатория
  Учебный процесс
    1-й курс
      Лекции
      Ликбез
      Сессия
    5-й курс
      Литература
      Практикум
      Сессия
    Консультации
  Информация
    Как с нами связатся
    О нас

 

 

 

Как выглядят тексты на Фортране и

 

Как выглядят тексты на Фортране и “C”.

Пока нас будет интересовать, как тексты оформляются, а не их содержание. Текст программы читают и человек, и компилятор. Компилятор – это приложение, которое переводит текст программы c какого-либо языка в команды компьютера. Компиляторов много: языков программирования сотни и компьютерных платформ много. Из всех языков для сравнения выберем наиболее известные универсальные языки программирования Фортран C Pascal. У каждого из 3 названных языков своя история и свои традиции

история Фортрана – 50 летняя – уж сколько раз твердили миру, что он слишком прост, но он живет, эволюционирует, выпускаются новые стандарты; предпочтителен в вычислительных задачах (FORmula TRANslator –переводчик формул), накоплены огромные математические библиотеки

история C короче, этот язык популярен – живет, выпускаются стандарты, есть дети как Java, предпочтителен в системных задачах, в работе с БД

история Pascal интересна бурным нарождением в период появления ПК и тихим умиранием в период появления Windows (только Delphi под Windows), предпочтителен в учебных задачах, не стандартизован, именно в Pascal впервые опробован стиль структурного программирования и идеи объектно-ориентированного программирования

Есть задачи, где предпочтителен один язык, есть задачи, где все равно, на каком языке писать, есть задачи, где предпочтительнее писать часть на одном, часть на другом языке. Лучше знать несколько языков, тогда будет выбор. С точки зрения обучения проще понять основы программирования в строгом языке, как Фортран или Pascal, а затем понять вольницу языка C, или специализироваться в Web-программировании.

Оформление текста

 

Фортран

C

Имя файла

laba.f90 – обязательно с расширением .f90
иногда дают имя с расширением .for

laa.cpp обязательно с расширением
.cpp
иногда с расширением .c

Текст программы

Текст состоит из предложений, но в русском программировании их принято называть операторами (в английском же, так и говорят: “statements-предложения”)

Как строится текст программы

program laba
   операторы-описания
   операторы-действия
End program laba

    глобальные операторы-описания
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

If a>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

Пишут If a>2 B=1 ;
Хотя формально правильна и более длинная запись с одним блоком из одного простого оператора If a>2 {B=1;} ;

 

Одноблочный оператор

If(a>2) then ! границы оператора и блока
      B=1; c=b-1
Endif ! - границы оператора и блока

If a>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, но допустимо integer Max,a,b;      Max=a;   if(b>a) Max=b  

Однако нельзя использовать имя Max

  • и в качестве переменной
    Max=a if(b>a) Max=b
  • и в качестве функции
    maxab=max(a,b) в одной и той же программе.

Например, несмотря на то, что  if – условный оператор, не запрещается переменная If
integer   If ;  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++

Имеется в Borland Delphi и C++

Визуальное программирование

Нет, но возможно будет в новых средах программирования

Фортран-200?

Визуальное программирование опирается на объектно-ориентированное программирование Есть, но в Borland Delphi и C++ более живое, чем в MS C++

Структурированные программы

Как когда-то придумали в Pascal писать программы неотрывно, как письмо, так теперь и делают во всех языках программирования.

Модули,
как средство инкапсуляци
и
пр.

Модули есть
команда include тоже введена
в состав языка Ф-90, видимо по аналогии с "C"-  и тут же объявлена устаревшим средством

Модулей нет,
есть гораздо более слабая команда include

 

Hosted by uCoz
.

 

 Web-design Звягин В.Ф. со товарищи: Аминев Р.Ш..
197101, Россия, Санкт-Петербург, ул.Саблинская, 14
ИТМО
Hosted by uCoz