Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Informatika_3.doc
Скачиваний:
7
Добавлен:
16.11.2019
Размер:
521.22 Кб
Скачать

Вопрос 3 Анализ текста данной программы

  1. Рассмотрим использование словаря (алфавита) языка программирования. В состав алфавита входят ключевые (служебные) слова и символы. В рассматриваемой программе используются служебные слова: program, var, real, begin, end, integer. Символы подразделяются на буквы, арабские цифры, знаки арифметических операций, знаки опера­ций сравнения, разделители (знаки препинания, скобки, апост­рофы, :=).

  2. Комментарии помещаются в программу только для программистов и пользователей программы. Текст комментария заключается в фигурные скобки и ЭВМ не анализируется. В программе запрещается использовать вне комментария русские буквы, за исключением вывода строки символов.

  3. Вторая строка является заголовком программы. Имя программы lec1. Она находится в файле j:\vtp\pas\lec1.pas.

  4. В данной программе используются имена (идентификаторы): переменных - u , i , r и стандартных подпрограмм - write, writeln, readln. Стандартными на­зываются подпрограммы, входящие в комплект программного обеспечения языка программирования. Идентификаторы должны начинаться с буквы, за которой могут следовать цифры.

  5. В общем случае используемые в программе подпрограммы, константы, типы переменных и переменные должны быть описаны (объявлены). Это делается либо непосредственно в программе в соответствующем разделе описаний, либо с помощью указания в предложении uses имен моду­лей типа Unit, в которых эти описания выполнены. Исключением являются описания, выполненные в стандартном модуле System, которые всегда доступны программе. Так процедурами, описан­ными в этом модуле, и используемыми в программе являются: write, writeln, readln.

При описании переменных (см. строку 3) должен быть указан их тип. Используются такие стандартные типы данных как геаl (действительный (синоним - вещественный) ), integer (целочисленный), char (символ). С помощью типа real, в отличие от типа integer, описываются переменные, при записи значений которых используются цифры после десятичной точки.

  1. Следует уделять внимание размещению текста программы. Использование пробелов и отступов позволяет улучшить наглядность программы. Количество используемых строчек для записи каждого оператора и количество операторов в каждой строке не ограничивается и выбирается из соображений удобства чтения программы человеком. Однако нельзя разделять пробелами части одного идентификатора или размещать их на разных строках. Там, где можно по синтаксису языка поставить один пробел, там можно поставить произвольное количество пробелов.

  2. Операторы отделяются друг от друга символом ";".

  3. Для задания границ каждого блока программы служат слова begin и end. Для простых программ, в отличие от сложных, обычно достаточно одной такой пары. Последнее слово end программы должно заканчиваться точкой. После набора этой точки необходимо не забыть нажать на клавишу "Ввод".

  4. Ввод и вывод значений переменных.

Пусть в рассматриваемой программе вводятся значения u=20.5 i=5. Тогда на экране пользователя появится (после завершения программы) следующий текст:

Укажите исходные данные:

напряжение u(B)=20.5

ток i(A)=5.0

...

Программа завершена. Нажмите Enter

Также будет выведен следующий фрагмент текста на экран пользователя:

Исходные данные: u=20.5,B i=5.0,A

Результаты: r=4.1,Oм

Как видно из приведенного примера оператор вызова стан­дартной процедуры вывода writeln (сокр. от write line) обеспечи­вает вывод строки. Т. е. после того как будут напечатаны дан­ные, указанные в скобках в списке параметров этой подпро­граммы, будет осуществлен переход курсора на следующую строку. Таким образом, при выполнении следующего оператора вызова процедуры вывода, вывод будет производиться уже на новую строку.

В случае использования процедуры write указанный переход курсора на новую строку не производится. При выполнении следующего оператора вызова процедуры вывода, вывод будет осуществляться в ту же строку. Аналогичная разница существует между операторами вызова стандартных процедур ввода данных readln ("введи строку") и read.

При выводе данных могут указываться форматы в виде одного (":количество выводимых символов") или для действительных переменных двух (":общее количество выводимых символов: количество цифр после десятичной точки") чисел. Для того чтобы определить, как будет осуществляться вывод, необходимо зафик­сировать позиции, выделяемые в соответствии со вторым числом (в случае его наличия) списка форматов. При необходимости правая часть числа с десятичной точкой усекается в соответст­вии со вторым числом списка форматов. Затем если общее коли­чество выводимых символов окажется меньше указанного с по­мощью формата вывода, то недостающее до указанного количе­ства нужно заполнить пробелами в левой части порции вывода. Если после этого количество символов, подлежащее выводу, бу­дет больше, чем указанное с помощью первого числа списка форматов, то формат будет увеличен автоматически.

  1. В общем случае оператор присваивания имеет вид V:=A, где V-переменная, A-выражение, := - операция присваивания, ко­торая заключается в том, что численное значение выражения A записывается в ячейку памяти, выделенную для хранения пере­менной V.

Пользователь должен следить, чтобы тип значения, получен­ного в результате выполнения выражения А, не конфликтовал с типом переменной V. Так, например, не должен иметь место опе­ратор присваивания, в котором в левой части была бы перемен­ная типа integer, а в правой части результат типа real. Это может получиться, например, в случае, если одна целочисленная пере­менная делится (с помощью операции /) на другую целочислен­ную переменную, или хотя бы одна переменная в выражении A имеет действительный тип.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]