Синтаксическая диаграмма двоичного код
Возвратная стрелка обозначает возможность многократного повторения. Очевидно, что диаграмма более наглядна, чем БНФ.Синтаксические диаграммы были введены Н. Виртом и использованы для описания созданного им языка Паскаль.
2) Операторы: присваивания, пустой, перехода, вызова процедуры, составной.
Пустой оператор.
· Не обозначается и не вызывает никаких действий(дополнительная точка с запятой в текстепрограммы). Например: if A>5 then; ; ;
· В целях унификации рекомендуется добавлятьпустой оператор как последний оператор составногооператора. Например:
if A>5 thenbegin
Z:=3;
C:=i+1; { здесь разделитель не обязателен }
end;
Оператор присваивания
<Переменная> := <Выражение>
· замена текущего значения переменной новым;
· определение значения, возвращаемого функцией
Типы переменной и выражения должны бытьсовместимы по присваиванию.
Примеры:
A:=A+3; Ch:=’S’; S:=’Stop’; K:=8.5;
Stop := (Z<10) and (i>3); Z:=Sqr(i)*A+K;
M[i, j+10, k mod 3] := Z+A;
Оператор вызова процедуры
<Имя процедуры>(<Список фактических параметров>)
Активизирует процедуру с указанным именем,передавая формальным параметрам значения
соответствующих фактических параметров.
Примеры:
ClrScr;
InputData(A, B);
Calculate(A, B, 23, Result);
OutputData(Result);
Составной оператор
begin
<Список операторов>
end
Допустим везде, где допустим один оператор.
Пример:
if A>5 then
begin
C:=Z-10;
i:=j+2;
end;
Операторы перехода
Goto<Метка>;
<Метка> представляет собой целое без знака или идентификатор (только Турбо Паскаль), определяется в секции Label того же блока и находится в том же блоке, что и оператор GoTo.
Операторы break и continue (только Турбо Паскаль) – "синтаксический сахар" оператора Goto:
break досрочно прекращает выполнение цикла;
continue досрочно начинает очередную итерацию цикла.
3) Типы данных: Литерные (символьные), логический, перечислимые, интервальные.
Литерный тип(Char)
Литерный тип обозначается именем char (от слова character - символ, знак).
Значением переменной литерного типа является один символ из набора символов, определяемого конкретной реализацией. При этом некоторые из символов могут не иметь графического представления - это управляющие символы (например, переключение с одного регистра на другой, переход к следующей строке на бумаге печатающего устройства и т. д.)
Каждой отдельной версии языка Паскаль множество символов должно отвечать следующим требованиям:
для любого набора символов (литер)все символы фиксированы и упорядочены;
включены все прописные буквы латинского алфавита от A до Z; это множество упорядочено по алфавиту;
включены десятичные цифры от 0 до 9; это множество по возрастанию цифр и связано;
если в реализации допускаются строчные латинские буквы от a от z, то они должны быть упорядочены по алфавиту;
включены такие символы, как пробел, запятая, точка и др.;
отношение порядка между двумя символами множества значений типа char должно быть таким же, как и между их порядковыми номерами.
Элементы множества типа charсчитаются пронумерованными начиная с нуля. Переменные этого типа занимают 1 байт памяти.
Константой литерного (символьного) типа является одна из допустимых литер, взятая в апострофы.
Логический тип(Boolean)
В языке Паскаль имеется две константы логического типа: true (истина) и false (ложь). Поэтому множество возможных значений переменных типа Boolean, ByteBool, WordBool, LongBool (логических переменных) состоит из двух значений. Этот тип определен так, что false<true (упорядоченность), причем эти логические значения имеют порядковые номера 0 и 1 соответственно.
Над данными логического типа могут выполняться следующие операции:
Логические
not- логическое отрицание, "не" - является унарной операцией, то есть имеет один операнд, который и инвертирует.
and - логическое умножение (конъюнкция), "и", ее результат имеет значение true, если только оба операнда имеет значение true.
or - логическое сложение (дизъюнкция), "или", ее результат имеет значение true, если хотя бы один из операндов имеет значение true.
for - "исключающее или", ее результат истинный, когда значения операндов не совпадают.
ОПЕРАЦИЯ | НАИМЕНОВАНИЕ |
not | логическое НЕ |
and | логическое И |
or | логическое ИЛИ |
for | логическое исключающее ИЛИ |
Операции сравнения (равно "=" и неравно "<>")
Перечисляемый тип
Перечисление позволяет программисту описывать новые типы данных, значение которых определяет программист.
Описание перечисляемого типа состоит из списка его элементов, разделяемого запятыми, заключенного в круглые скобки. Каждый из элементов представляет собой уникальный идентификатор.
ПРИМЕР. Type Season=(Spring, Summer, Autumn, Winter);
Интервальный тип
Интервальный тип данных –это подмножество уже определенного или стандартного скалярного типа (кроме real)
Интервальный тип представляет собой диапазон (интервал) значений какого-либо порядкового типа, называемого базовым. При описании интервального типа указывается наименьшее и наибольшее значение диапазона значений, допустимых для этого типа. Минимальное и максимальное значение интервала разделяется знаком ".." (две точки).
ПРИМЕР. 0..500; -128..127; 'A'..'Z'; Mon..Fri
Билет 13
1) Этапы решения задач на ЭВМ
Работа по решению любой задачи с использованием компьютера делится на следующие этапы:
1. Постановка задачи.
2. Формализация задачи.
3. Построение алгоритма.
4. Составление программы на языке программирования.
5. Отладка и тестирование программы.
6. Проведение расчетов и анализ полученных результатов.
Часто эту последовательность называют технологической цепочкой решения задачи на ЭВМ. На этапе постановки задачи должно быть четко сформулировано, что дано и что требуется найти. Второй этап — формализация задачи. Здесь чаще всего задача переводится на язык математических формул, уравнений, отношений. Третий этап — построение алгоритма. Опытные программисты часто сразу пишут программы на языках, не прибегая к каким-либо специальным способам описания алгоритмов (блок-схемам, псевдокодам). Однако в учебных целях полезно использовать эти средства, а затем переводить полученный алгоритм на язык программирования. Первые три этапа предусматривают работу без компьютера. Дальше следует собственно программирование на определенном языке, в определенной системе программирования. Последний (шестой) этап — это использование уже разработанной программы в практических целях.
2) Логические выражения и функции.
Логическое выражение есть логическая формула, записанная на языке программирования. Логическое выражение состоит из логических операндов, связанных логическими операциями и круглыми скобками. Результатом вычисления логического выражения является булева величина (false или true). Логическими операндами могут быть логические константы, переменные, функции, операции отношения. Один отдельный логический операнд является простейшей формой логического выражения. Примеры логических выражений (здесь d, b, с — логические переменные; х, у — вещественные переменные; к — целая переменная): 1) х<2*у; 2) true; 3) d; 4) odd(k); 5) not not d; 6) not (x>y/2); 7) d and (xoy)andb; 8) (c or d) and (x = y)ornotb. Если d=true; b=false; c=true; x=3.0; y=0.5; k=5, то результаты вычисления будут следующими: 1) false; 2) true; 3) true; 4) true; 5) true; 6) false; 7) false; 8) true. В примере использована логическая функция odd (k). Это функция от целого аргумента к, которая принимает значение true, если значение к нечетное, и false, если к четное.
В табл. 3.6 приводится список стандартных функций, обеспечивающих связь между различными типами данных.
функции ord, pred и succприменимы только к порядковым типам. Из простых типов это все, кроме вещественного. функция ord, применяемая к целому числу, дает его собственное значение.
3) Оператор варианта CASE. Примеры
Пример для программы интерпретатора.
{выполнение арифметической операции}
Case Str[2]of
`+`: C: =А+В;
`-`: С: =А-В;
`*`: С: =А*В
End;
{вывод результата}
WritenLn(C:2)
End.
Он называется оператором выбора. Формат этого оператора описывается синтаксической диаграммой (рис. 33).
Здесь <селектор> — это выражение любого порядкового типа; <константа> — постоянная величина того же типа, что и селектор; <оператор> — любой простой или составной оператор.
Выполнение оператора выбора происходит так: вычисляется выражение-селектор; затем в списках констант ищется такое значение, которое совпадает с полученным значением селектора; далее исполняется оператор, помеченный данной константой. Если такой константы не найдено, то происходит переход к выполнению оператора, следующего после оператора выбора. В приведенной выше программе роль селектора играет символьная величина Str {2 ]. Если она равна +, то выполнится оператор c:=a + b; если равна -, то выполнится оператор с:=а-Ь; если равна *, выполнится оператор с:=а*Ь. Для любых других значений Str [2] не выполнится ни один из операторов присваивания, и значение переменной с останется неопределенным. Приведенное выше описание оператора выбора соответствует стандарту Паскаля.
Билет №14
1) Данные как объекты обработки в ЭВМ.
Данные- это совокупность сведений, зафиксированных на определенном носителе
в форме, пригодной для постоянного хранения, передачи и обработки. Преобразование и
обработка данных позволяет получить информацию. Обработка данных предполагает производство различных операций над ними, в первую очередь арифметических и логических, для получения новых данных, которые объективно необходимы
Информация- это результат преобразования и анализа данных. Отличие информации от данных состоит в том, что данные - это фиксированные сведения о событиях и явлениях, которые хранятся на определенных носителях, а информация появляется в результате обработки данных при решении конкретных задач. Например, в базах данных хранятся различные данные, а по определенному запросу система управления базой данных выдает требуемую информацию.
Совокупность величин, с которыми работает компьютер, принято называть данными. По отношению к программе данные делятся на исходные, результаты(окончательные данные) и промежуточные, которые получаются в процессе вычислений.
2) Арифметические операции, приоритет.