Turbo Pascal, страница 3
Описание файла
Документ из архива "Turbo Pascal", который расположен в категории "". Всё это находится в предмете "информатика" из 3 семестр, которые можно найти в файловом архиве МАИ. Не смотря на прямую связь этого архива с МАИ, его также можно найти и в других разделах. Архив можно найти в разделе "книги и методические указания", в предмете "информатика" в общих файлах.
Онлайн просмотр документа "Turbo Pascal"
Текст 3 страницы из документа "Turbo Pascal"
Логические выражения в результате вычисления принимают логические значения True и False. Операндами это выражения могут быть логические константы, переменные, отношения. Идентификатор логического типа в Паскале: boolean.
В Паскале имеется 4 логические операции: отрицание -NOT, логическое умножение -AND, логическое сложение - OR, исключающее «или» -XOR . Использованы обозначения: T – true, F – false.
A | B | Not A | A and B | A or B | A xor B |
T | T | F | T | T | F |
T | F | F | F | T | T |
F | F | T | F | F | F |
F | T | T | F | T | T |
Приоритеты операций: not, and, or, xor. Операции отношения ( = , <> …) имеют более высокий приоритет, чем логические операции, поэтому их следует заключать в скобки при использовании по отношению к ним логических операций.
Пример. Составить программу, по которой будет выведено значение «истина», если точка с заданными координатами (x, y) лежит внутри некоторой области, и «ложь» – в противном случае. Область состоит из 2 частей: первая часть x £ 0; y ³ -x-3 и y2 + x2 £ 9, вторая часть - x ³ 0 и x2 + y2 £ 25.
Решение: Данная область состоит из 2 частей. 1: x<=0; x2+y2<=9; y>= - x-3.
2: x>=0; x2+y2<=25.
Точка с координатами (x,y) лежит в данной области, если она принадлежит 1 или 2 части.
Program point;
Var x, y:real; L:boolean;
Begin
Writeln(‘Введите х и y’);
Readln(x,y);
L:= (x<=0) and (sqr(x)+sqr(y)<=9) and (y>=-x-3) or
(x>=0) and (sqr(x)+sqr(y)<=25);
writeln(‘Точка лежит в области?’, L);
end.
Результатом выполнения программы будет:
Введите x и y
2 0 {с клавиатуры сами ввели через пробел 2 и 0}
Точка лежит в области?TRUE
Приоритет операций (в порядке убывания):
-
вычисление функции;
-
унарный минус, not;
-
умножение, деление, div, mod, and;
-
сложение, вычитание, or, xor;
-
операции отношения
Ввод и вывод данных
Решение даже самой простой задачи на компьютере не обходится без операций ввода – вывода информации. Ввод данных – это передача информации от внешнего носителя в оперативную память для обработки. Вывод - обратный процесс, когда данные передаются после обработки из оперативной памяти на внешний носитель (экран монитора, принтер, дискету или винчестер и другие устройства). Выполнение этих операций производится путем обращения к стандартным процедурам: Read, Readln, Write, Writeln.
Ввод данных с клавиатуры
Процедура чтения Read обеспечивает ввод данных для последующей их обработки программой. Общий вид: Read (<список переменных>);
В списке перечисляются имена переменных. Значения этих переменных набираются через пробел на клавиатуре и высвечиваются на экране после запуска программы. После набора данных для одной процедуры Read нажимается клавиша ввода Enter. Значения переменных должны вводиться в строгом соответствии с синтаксисом языка Паскаль. Если соответствие нарушено, то возникают ошибки.
Процедура чтения Readln аналогична процедуре Read, единственное отличие в том, что после считывания последнего в списке значения курсор переходит на начало новой строки.
Пример:
Program primer;
Var i, k:integer; c,d, s: real;
begin
readln (c,d);
read(i,k);
…
end.
В данном случае необходимо ввести сначала два действительных числа через пробел. Переменной с присваивается значение, равное первому введенному числу, а переменной d – значение, равное второму введенному числу. После ввода этих значений курсор переходит на начало новой строки (за это отвечает ln следующий за словом Read). Далее требуется ввести еще два целых числа, которые будут присвоены значениям переменных i и k соответственно.
Вывод данных
Процедура вывода Write производит вывод данных.
Общий вид: Write(<список вывода>);
В списке вывода могут быть представлены выражения допустимых типов данных (integer, real, char и т.д.) и произвольный текст, заключенный в апострофы.
Например, Write(‘Привет’); Write(34.7); Write(45+55); Write(b, d);
Процедура Writeln аналогична процедуре Write. Отличие в том, что после вывода последнего в списке выражения курсор переходит на начало новой строки.
В процедурах вывода Write и Writeln имеется возможность записи выражения, определяющего ширину поля вывода.
При рассмотрении форматов вывода примем следующие обозначения:
I, p, q – целочисленное выражение;
R - выражение вещественного типа;
# - цифра;
* - знак «+» или «- »;
_ - пробел.
Значение I | Выражение | Результат |
324 | Write (I); | 324 |
34 | Write (I, I, I); | 343434 |
324 | Write (I : 6); | ___324 |
312 | Write (I + I : 7); | ____624 |
|
|
|
Значение R | Выражение | Результат |
123.432 | Write (R); | __1.2343200000E+02 |
-1.34E+01 | Write (R); | _ -1.3400000000E+01 |
304.55 | Write (R :15); | 3.045500000E+02 |
Значение R | Выражение | Результат |
304.66 | Write (R :8 : 4); | 304.6600 |
45.322 | Write (R : 5 : 2); | 45.32 |
Пример:
Program primer;
Var
a, b, c, sum:integer;
begin
a:=4; b:=6; c:=55;
Write(a:3); Write(b:3); Write(c:3);
Sum:=a+b+c;
Writeln (‘A=’,a);
Writeln (‘B=’,b);
Writeln (‘C=’,c);
Writeln (‘Сумма A+B+C равна ’, sum);
End.
Результат выполнения:
4 6 55
А=4
В=6
С=55
Сумма А+В+С равна 65
Общие сведения
Оператором называется предложение языка программирования, задающее полное описание некоторого действия, которое необходимо выполнить. Основная часть программы на языке Турбо Паскаль представляет собой последовательность операторов. Разделителем операторов служит точка с запятой. Операторы, не содержащие других операторов, называются простыми. К ним относятся операторы присваивания, безусловного перехода, вызова процедуры, пустой. Структурные операторы представляют собой конструкции, построенные из других операторов по строго определенным правилам. Эти операторы можно разделить на три группы: составные, условные и повтора.
Оператор вызова процедуры
Оператор вызова процедуры служит для активизации стандартной процедуры или процедуры, определенной пользователем. Стандартные процедуры находятся в файлах, подключаемых модулем и для их использования достаточно указать имя процедуры, и если необходимо дополнительные параметры. Для того, чтобы вызвать свою процедуру, ее для этого надо описать перед началом программы (begin), а затем уже использовать.
Например, ClrScr; {Вызов стандартной процедуры очистки экрана}. Подробное рассмотрение данной темы приведено в части 3.
Оператор безусловного перехода
Оператор безусловного перехода (go to) означает «перейти к» и применяется в случаях, когда после выполнения некоторого оператора надо выполнить не следующий по порядку, а какой-либо другой, отмеченный меткой, оператор. Общий вид: go to <метка>.
Метка объявляется в разделе описания меток и состоит из имени и следующего за ним двоеточия. Имя метки может содержать цифровые и буквенные символы, максимальная длина имени ограничена 127 знаками. Раздел описания меток начинается зарезервированным словом Label, за которым следует имя метки.
Пример.
Program primer;
Label 999, metka;
Begin
….
Go to 999;
…
999: write (‘ Имя’);
…
Go to metka;
….
Metka: write(‘Фамилия’);
…
end.
Использование безусловных передач управления в программе считается теоретически избыточным и подвергается критике, так как способствует созданию малопонятных и трудномодифицируемых программ, которые вызывают сложности при отладке. Поэтому рекомендуется минимальное использование оператора безусловного перехода с соблюдением следующих правил:
-
Следует стремиться применять операторы перехода для передачи управления только вниз (вперед) по тексту программы;
-
Расстояние между меткой и оператором перехода на нее не должно превышать одной страницы текста (или высоты экрана дисплея).
Пустой оператор
Пустой оператор не содержит никаких символов и не выполняет никаких действий. Используется для организации перехода к концу блока в случаях, если необходимо пропустить несколько операторов, но не выходить из блока. Для этого перед зарезервированным словом end ставятся метка и двоеточие, например:
Label m;
…
begin
…
go to m;
…
m:
end;
Структурные операторы
Структурные операторы представляют собой конструкции, построенные из других операторов по строгим правилам. Их можно разделить на три группы: составные, условные и повтора. Применение структурных операторов в вашей программе очень часто просто незаменимо, потому что они позволяют программисту сделать его программу зависимой от каких-либо условий, например введенных пользователем. К тому же применяя операторы повтора вы получаете возможность обрабатывать большие объемы данных за сравнительно малый отрезок времени (это конечно же зависит и от процессора:)
Составной оператор
Это оператор представляет собой совокупность произвольного числа операторов, отделенных друг от друга точкой с запятой, и ограниченную операторными скобками begin и end. Он воспринимается как единое целое и может находиться в любом месте программы, где возможно наличие оператора.
Условные операторы
Условные операторы предназначены для выбора к исполнению одного из возможных действий, в зависимости от некоторого условия (при этом одно из действий может отсутствовать). Для программирования ветвящихся алгоритмов в Турбо Паскале есть специальные операторы. Одним из них является условный оператор If. Это одно из самых популярных средств, изменяющих порядок выполнения операторов программы.
Он может принимать одну из форм:
If <условие> then <оператор1>
else<оператор2>;
или
If <условие> then <оператор>;
Оператор выполняется следующим образом. Сначала вычисляется выражение, записанное в условии. В результате его вычисление получается значение логического (булевского) типа. Если это значение – «истина», то выполняется оператор1, указанный после слова then. Если же в результате имеем «ложь», то выполняется оператор2. В случае, если вместо оператора1 или оператора2 следует серия операторов, то эту серию операторов необходимо заключить в операторные скобки begin…end.
Обратить внимание, что перед словом else точка с запятой не ставится.
Пример 1. Составить программу, которая запрашивает возраст ребенка и затем выдает решение о приеме ребенка в школу (возраст ³ 7лет).
Program sh;
Var v: integer;
Begin
Write(‘Введите возраст ребенка’);
Readln(v);
If v>=7 then writeln(‘Принимаем в школу’)
else writeln (‘Не принимаем в школу’);
end.
Задание. Модифицировать данную программу, чтобы ограничить верхнюю границу приема в школу 16 годами.
Решение:
Program sh;
Var v: integer;
Begin