Томский государственный университет систем управления и радиоэлектроники
Опубликован: 01.11.2012 | Доступ: свободный | Студентов: 651 / 76 | Длительность: 06:01:00
Лекция 1:

Первые программы

Лекция 1: 12 || Лекция 2 >

Оператор program

Оператор program – задает имя программе; является необязательным оператором.

Правило хорошего тона – записывать оператор program с именем программы.

Имя программы может состоять из символов:

  1. латинские буквы (большие/маленькие);
  2. цифры 0..9, со второй позиции;
  3. знак "подчеркивание", со второй позиции.
program flow_3D или program TestSolveDiff

! Отсутствие зарезервированных имен !

program program

Оператор print

Оператор print – печатает данные на экране

!  Вывод строки текста
  print *, "Fortran 2008"

!  Вывод текста и числа
  print *, "Resistance R0 = ", 2000, " Om"

"*" означает вывод под управлением списка или с форматом по умолчанию, т.е. "программа знает" как печатать данные на экране.

Умолчания можно изменить, если вместо "*" указать строку формата.

Строка формата

Строка формата заключается между символами "( строка формата )" и может содержать дескрипторы:

  • A – вывод символов,
  • \ – запрет перехода на следующую строку,
  • / – переход на следующую строку,
  • // – пропуск строки,
  • nx – вывод n пробелов
  • ...
! Форматированный вывод строки текста
  print "(A)", "Hello world!"

! Курсор останется на той же строке 
  print "(A,\)", "Hello world!" 

Форматированный вывод

print "(A5)", "Hello world!" 
 ! 5 позиций под вывод символов текста
 ! Выведется только 5 букв, Hello

 print "(A30)", "Hello world!" 
 ! 30 позиций под вывод символов текста
 ! Сначала выводятся пробелы, затем текст
 ! Используется для выравнивания

 print "(2(A10))", "Hello", " world!" 
 ! Вывод двух строк текста на одной строке

 print "(A10,/,A10)", "Hello", " world!" 
 ! Вывод двух строк текста, на двух строках

Оператор format

Позволяет избегать дублирование строки формата.

print "(A20,\)", "Pressure = " 
 print "(A20,\)", "Velocity = " 
 print "(A20,\)", "Length = " 
 print "(A20,\)", "Width = " 

Лучше записать с использованием целочисленной метки на оператор format

print 100, "Pressure = " 
 print 100, "Velocity = " 
 print 100, "Length = " 
 print 100, "Width = " 
 100 format(A20,\)

Оператор end

Указывает на конец программы.

End может использоваться с другими операторами. Можно указать явно к какому оператору относится данный end.

program solver
....
end program solver
\Longleftrightarrow
program solver
....
end

Самая короткая программа на языке Fortran состоит из одного оператора end.

Об ошибках компиляции

Неверно записанная программа приводит к синтаксическим ошибкам!

Устранять ошибки – работа программиста!


Как писать без ошибок ?

Писать без ошибок не получится

Учитесь исправлять ошибки.

Изучайте язык и пишите программы

2-я программа

Печать текста в столбик.

program prog2A
!--- первый вариант
 print *, "W" 
 print *, "o" 
 print *, "r" 
 print *, "l" 
 print *, "d" 
 print *, "!" 
end
program prog2B
!--- второй вариант
 print 100, "W", & 
            "o", &
            "r", & 
            "l", & 
            "d", & 
            "!" 
100 format(6(A,/))
end

Если не хватает строки в редакторе, то используем символ "&" для продолжения на следующей.

Оператор write

Вместо оператора print можно использовать оператор write.

print *,   "TEXT"
print 100, "TEXT"

! печать
! пустой строки
print *
\Longleftrightarrow
write(*,*) "TEXT"
write(*,100) "TEXT"

! печать
! пустой строки
write(*,*)

Оператор write также используется при работе с файлами, имеется возможность обработки ошибок.

3-я программа

Вывод текста по буквам после нажатия клавиши Enter.


Оператор read используется для ввода данных в программу.

read(*,*) – ожидание нажатия клавиши Enter

Оператор stop

program prog3
 write(*,*) "Fortran"
 write(*,*) "BASIC"
 stop "Only two rows necessary!"

 ! остальные операторы не выполняются
 write(*,*) "C++"
 write(*,*) "JAVA"
end

Оператор stop останавливает выполнение программы.

Текстовая строка содержит сообщение по какой причине произошла остановка.

4-я программа

program prog4
                ! ----- второй вариант -----
 write(*,100)   ! write(*,"(A)") "**********" 
 write(*,101)   ! write(*,"(A)") "*        *" 
 write(*,101)   ! write(*,"(A)") "*        *" 
 write(*,100)   ! write(*,"(A)") "**********" 
 
100 format(10("*"))     ! повторяем 10 "*" и
101 format("*",8x,"*")  ! 8 пробелов
end

Результат работы программы


Задания

  1. Составить программу, которая печатает информацию о разработчиках.
  2. Программа-караоке. После каждого нажатия клавиши Enter должна выводиться очередная строка куплета. Припевы выводятся полностью и отделены от куплетов двумя пустыми строками.
  3. При помощи строки формата вывести на экран треугольник из символов.

Лекция 1: 12 || Лекция 2 >