
- •Алфавит языка Паскаль. Правила построения идентификаторов.
- •Структура Паскаль-программы. Прокомментировать назначения разделов.
- •Структура программы на языке Паскаль такова:
- •Логические переменные в Паскале. Основные операции над ними. Логические выражения. Правила записи и вычсления сложных логических выражений.
- •Арифметические, строковые и логические выражения. Операции mod и div.
- •Формат и правила выполнения оператора присваивания.
- •Понятие и применение составного оператора.
- •Формат и правила выполнения условного оператора if.
- •Оператор цикла с известным числом повторений for: формат, порядок выполнения.
- •Оператор цикла с неизвестным числом повторений While: формат, порядок выполнения.
- •Оператор цикла с неизвестным числом повторений Repeat...Until: формат, порядок выполнения.
- •Сравнительный анализ возможностей оператора цикла с неизвестным числом повторений While и оператора цикла с известным числом повторений For.
- •Сравнительный анализ возможностей оператора цикла с неизвестным числом повторений Repeat...Until и оператора цикла с известным числом повторений For.
- •Сравнительный анализ возможностей операторов цикла с неизвестным числом повторений While и Repeat...Until.
- •Операторы ввода данных Read и Readln, их форматы, сходство и различие между операторами.
- •Операторы вывода данных Write и Writeln, их форматы, сходство и различие между операторами.
- •Оператор case: формат, порядок выполнения.
- •Организация управления выполнением программы с помощью меню (на примере).
- •Одномерный массив. Понятие, варианты об0ъявления, настройка на фактическое число элементов массива.
- •Алгоритм упорядочения элементов одномерного массива методом обмена пар смежных записей (метод "пузырька"). Рационализация алгоритма.
- •Алгоритм и особенности этой сортировки таковы:
- •Двумерный массив: понятие, варианты объявления, настройка на фактическое число строк и столбцов массива. Организация в программе вывода двумерного массива в матричной форме.
- •Основные действия с двумерными массивами Паскаля
- •Ввод двумерного массива Паскаля.
- •Вывод двумерного массива Паскаля на экран.
- •Представление двумерного массива Паскаля в памяти
- •Строки в Паскале: понятие, описание, варианты представления и использования.
- •Стандартные процедуры и функции работы со строками.
- •Понятие процедуры и функции в Паскале. Их назначение, применение, варианты размещения в программе.
- •Формат процедуры, размещение ее в программе обращение к ней из вызывающей программы.
- •Обмен информацией между процедурой и вызывающей программой: понятие формального и фактического параметра. Требования к этим параметрам, их описание и применение.
- •27. Формат функции в Паскале, размещение ее в программе, обращение к ней из вызывающей программы
- •28. Обмен информацией между функцией и вызывающей программой: понятие входных параметров, их описание, особенности технологии возврата результата.
- •29. Сравнительный анализ возможностей процедуры и функции. Возможности преобразования процедуры в функцию и наоборот.
- •30. Область действия имен. Глобальные и локальные переменные.
- •31. Достоинства и недостатки использования глобальных переменных и параметров при обмене информацией между программами. Рекомендации по применению.
- •32. Модуль в Паскале (Unit), его назначение, структура модуля, назначение и описание частей модуля.
Структура программы на языке Паскаль такова:
Program FirstProgram; |
{ заголовок программы, не обязателен, в версии 7.0 } |
Uses Crt, Graph; |
{ используемые модули, если таких нет, не указывается } |
Label 1,2,3,Label1; |
{ объявление меток, в случае отсутствия - пропускаем } |
{ процедуры, функции } |
|
Const A = 29; |
{ объявление констант } |
Var I: Integer; |
{ объявление переменных , не объявляем, если их нет :) } |
{ процедуры, функции } |
|
Begin |
{ начало программы } |
I := 10; |
{ присваеваем переменной I значение 10 } |
WriteLn('I*I=', I*I); |
{ Выводим на экран квадрат переменной I } |
End. |
{ конец программы } |
Логические переменные в Паскале. Основные операции над ними. Логические выражения. Правила записи и вычсления сложных логических выражений.
В операторах if, while, repeat мы привыкли писать выражения вида a>b, i<=0, c=’крот’, 3>2, (a>b)AND(a>c) и т.п. Про каждое из этих выражений можно сказать, истинно оно в данный момент или ложно. Например, выражение 3>2 истинно всегда, а выражение i<=0 ложно в тот момент, когда i равно, скажем, 2. Такие выражения называются логическими выражениями.
Говорят, что логическое выражение 3>2 имеет значение “истина” (true), а логическое выражение i<=0 имеет значение “ложь” (false ).
Внутренняя идеология построения языка Паскаль требует определить новый тип переменных - логический тип Boolean. Запись VAR a:Boolean означает, что переменная a может принимать всего два значения - true и false. Так, мы можем записать a:=false.
Слова true и false являются логическими константами и их можно употреблять в логических выражениях или вместо них. Например, if a=true then... Конструкцию if (a>b)=false then... можно перевести “если неправда, что a больше b, то...”.
Значения true и false удобно применять для организации бесконечных циклов:
while true do .......
repeat ........... until false
Решим конкретный пример на этот тип.
Задача: В группе - 6 студентов. Сколько из них сдали зачет по физике?
Сначала напишем программу без использования типа Boolean. В ней единицей я обозначил зачет, нулем - незачет. Массив Zachet из 6 элементов хранит информацию о зачете.
CONST Zachet :array[1..6] of Integer = (1,1,0,1,1,1); VAR c,i :Integer; BEGIN c:=0; {c - счетчик зачетов} for i:=1 to 6 do if zachet[i] = 1 then c:=c+1; WriteLn(c) END.
Теперь напишем программу с использованием типа Boolean. В ней через true я обозначил зачет, через false - незачет.
CONST Zachet :array[1..6] of Boolean = (true,true, false, true, true, true); VAR c,i :Integer; BEGIN c:=0; for i:=1 to 6 do if zachet[i] = true then c:=c+1; WriteLn(c) END.
Отличие второй программы от первой в том, что выражение zachet[i] = true (зачет равен истина) выглядит естественнее и понятнее, чем zachet[i] = 1 (зачет равен единице, то есть колу?). В общем, чуть-чуть нагляднее.
Кстати, вполне правильно было бы написать и if zachet[i] then .... Ведь условием после слова if может стоять любое логическое выражение, имеющее значением true или false.
Кроме численных переменных во всех языках программирования существует возможность использовать переменные для хранения других типов данных. Самой простой, с одной стороны, и самой «экзотической» с другой, является переменная для хранения данных логического типа.
К логическому относятся тип Boolean, который может принимать лишь два значения: False (ложь) и True (истина).
Объявляются переменные логического типа в разделе объявления переменных следующим образом:
Var a: Boolean;
d34, Done: Boolean;
Присваивание (определение значения) для переменных логического типа выполняется следующим образом:
a:=True;
Done:=False;
С правой части от знака присваивания могут также находиться выражения, результат которых логическая величина.
Определить значение логической переменной с помощью ввода информации во время работы программы нельзя.
Логические операции
Логические операции применяются к величинам логического типа, результат операции — тоже логического типа. Имеется одна унарная логическая операция not (отрицание) и три бинарные операции and (и), or (или), xor (исключающее или).
Логическая операция not
Ставиться перед логической переменной (выражением). Инвертирует (меняет на противоположное) значение логической переменной или логического выражения.
Логическая операция and
Объединяет две логические переменные (логические выражения). Результат получившегося выражения будет истинным, если истинны обе переменные (оба выражения) составляющие данное выражение. В противном случае выражение ложно.
Логическая операция or
Объединяет две логические переменные (логические выражения). Результат получившегося выражения будет истинным, если истинной является хотя бы одна из переменных (выражений) составляющие данное выражение. В противном случае выражение ложно.
Логическая операция xor
Объединяет две логические переменные (логические выражения). Результат получившегося выражения будет истинным, если значения этих переменных (выражений) различны. В противном случае выражение ложно.
Для описания всех логических операций используют так называемые таблицы истинности. В этих таблицах X и Y — это логические переменные (выражения), составляющие результирующее выражение.
Таблица истинности not
X |
not X |
False |
True |
True |
False |
Таблица истинности операций and, or ,xor
X |
Y |
X and Y |
X or Y |
X xor Y |
False |
False |
False |
False |
False |
False |
True |
False |
True |
True |
True |
False |
False |
True |
True |
True |
True |
True |
True |
False |
Примеры использования логических операций
a:=False; d34:=True;
Done := not a; {Done = True}
Done := a and d34; {Done = False}
Done := a or d34; {Done = True}
Done := a xor d34; {Done = True}
Существует ряд операций и функций, результатом которых являются величины логического типа.
Операции отношения
Операции отношения предназначены для сравнения двух величин. Результат сравнения имеет логический (Boolean) тип.
= равно;
<> не равно;
< меньше;
> больше;
<= меньше или равно;
>= больше или равно;
Примеры использования операций отношения
Done:=(5<0); {Done = False}
Done:=(c<=2); {Done = True при c<=2}
Done:=(c<=10) and (c>=0); {Done = True при 0>=c>=10}
Логическая функция ODD (x)
Определяет четность целого числа х. Возвращает значение True, если х нечетно и False в противоположном случае.
Упорядоченность логических переменных
К логическим переменным могут применяться операции отношения. Упорядочены логические (булевские) переменные следующим образом:
False < True
При составлении сложных арифметических или логических выражений необходимо помнить о порядке (очередности выполнения) операций того или иного типа. Порядок выполнения операций (вычисления выражений) часто называют приоритетом действий.
Порядок вычисления выражений — приоритеты действий:
1. Вычисления в круглых скобках
2. Вычисление значений функций {sin(x), cos(x), sqrt(x) и т. д.}
3. Унарные операции { not }
4. Мультипликативные операции { *, /, div, mod, and }
5. Аддитивные операции { +, -, or, xor }
6. Операции отношения { =, <>, <, >, <=, >= }