Данные символьного типа (литерная константа)
Литераня константа - любой символ языка, заключенный в апострофы. Для обьявления переменых символьного типа в разделе переменных используется слово CHAR. Пример:
| var k1: char |
К символьным данным применимы операции сравнения, т.к. символы языка Pascal упорядочены.
Данный оператор предписывает запомнить некоторое значение в переменой. Значение и идентификатор переменой разделены парой знаков :=. Типы объектов с обеих сторон знака := должны строго совпадать, за исключением того случая, когда тип переменой - REAL, а тип выражения - INTEGER.
Общий вид оператора:
< переменная >:= < выражение >
Например:
| a: = a+1 c: = f/p*100 |
Немногие программы обходятся без ввода данных и совсем нет таких, которые не выводят полученные результаты.
Ввод данных с клавиатуры выполняется операторами: READ и READLN.
Формат:
Read (список переменных);
Readln (список переменных);
где <список переменных> - последовательность имен переменных, разделенных запятыми. Буквы ln добавляются в конце оператора для того, чтобы курсор автоматически переходил на следующую строку при выводе на экран текстов или результатов выполнения программы.
Например:
Readln (x, y, z);
Read (beta, gamma);
При выполнении оператора READ(READLN) программа останавливается и ждет, пока нужное количество чисел не будет введено с клавиатуры. Вводимые числа разделяются пробелами или нажатием клавиши Enter. По завершении ввода данных следует нажать Enter, после чего компьютер перейдет к выполнению следующего оператора программы.
Вывод данных на экран дисплея выполняется операторами: WRITE и WRITELN.
Формат:
Write (список выражений);
Writeln (список выражений);
Выражение в списке разделяются запятыми. Значения выражений сначала вычисляются, а затем выводятся на экран. Буквы ln имеют то же значение, что и в операторе readln. Вслед за выражением через двоеточие можно указать ширину поля экрана, в котором разместится выводимое значение. Например, оператор write (10:3, 55:6) займет для вывода числа 10 три позиции, а для вывода числа 55 - шесть позиций на экране.
При выводе вещественных значений можно указать, сколько десятичных цифр следует сохранить в дробной части числа, причем количество цифр указывается вслед за шириной поля после двоеточия. Например, x = 3,14159, то оператор write (x:6:2) займет для вывода переменой х шесть позиций, две из которых будут использованы для дробный части х (т. е. значение х будет округлено до 3,14).
Для того чтобы прокомментировать выводимые значения, в список вывода можно помещать строки любых символов, заключенные в одинарные кавычки (апострофы). Например, при выполнении фрагмента программы
| х: = 3.5; Write ( 'Ответ ', х: 4,'км/с'); |
на экране будет выведено:
Ответ: 3.5 км/с
Для вывода информации на бумагу необходимо с помощью команды USES PRINTER в разделе объявлений и соглашений подключить модуль управления выводом на печать, после чего использовать один из операторов вывода, начиная список выражений со служебного слова LST. Например, оператор
| Write (lst, 'x=', 2.74); |
выведет на бумагу текст:
x = 2.74
Элементарные конструкции - это минимальные единицы языка, имеющие самостоятельный смысл. Они образуются из основных символов языка. Вообще-то, они так и называются "словами". Согласитесь, так удобнее. Зачем только нужны все эти заумные фразы... Все слова в паскале делятся на:
- служебные слова (слова, имеющие определенное смысловое значение);
- имена (Их еще называют идентификаторами. Ои служат для обозначения каких-либо обьектов);
Имена, в свою очередь бывают:
- стандартными (он и заложены в языке для обозначения стандартных объектов, программ, функций);
- даваемые пользователем (может состоять из цифр и букв, но обязательно начинается с буквы);
Выражение в алгоритмическом языке состоит из элементарных конструкций (то бишь слов) и символов, оно задает правило вычисления некоторого значения.
Оператор задает полное описание некоторого действия, которое необходимо выполнить. Для описания сложного действия может потребоваться группа операторов. В этом случае операторы объединяются в состанвой оператор или блок. Действия, заданные операторами, выполняются над данными. В общем, оператор это своеоборазный приказ, направленый в сторону языка програмирования, после которого он (язык) пытается сделать то что вы ему приказали, а именно совершить какике то операции над данными (например: вывести на экран, посчитать, присвоить значение, начать/закончить выполнение программы и др.). Предложения алгоритмического языка, в которых даются сведения о типах данных, называются описаниями или неисполняемыми операторами. Объединенная единым алгоритмом совокупность описаний и операторов образует программу на алгоритмическом языке.
В процессе изучения алгоритмического языка необходимо отличать алгоритмический язык от того языка, с помощью которого осуществляется описание изучаемого алгоритмического языка. Обычно изучаемый язык называют просто языком, а язык, в терминах которого дается описание изучаемого языка - метаязыком. Синтаксические определения могут быть заданы формальными или неформальным способами.
Существуют три формальных способа:
- металингвистическая символика, называемая Бэкуса-Наура формулами;
- синтаксические диаграммы;
- скобочные конструкции.
Собственно говоря, заучивать эти способы не нужно. Просто если вас когда-нибудь о них спросят, то вы с гордым чувством ответите что когда то встречались с такими понятиями. Но при программировании они вам вряд ли пригодятся.
Коментарий служит для пояснения программы или отдельной ее части.
В некоторых версиях достаточно поставить слева и справа от коментария лишь символ фигурной скобки:
| {текст комментария} |
Основные понятия языка
Обычный разговорный язык состоит из четырех основных элементов: символов, слов, словосочетаний и предложений. Алгоритмический язык содержит подобные элементы, только слова называют элементарными конструкциями, словосочетания - выражениями, предложения - операторами. Символы, элементарные конструкции, выражения и операторы составляют иерархическую структуру, поскольку элементарные конструкции образуются из последовательности символов, выражения - это последовательность элементарных конструкций и символов, а оператор-последовательность выражений, элементарных конструкций и символов.
Обычный разговорный язык состоит из четырех основных элементов: символов, слов, словосочетаний и предложений. Алгоритмический язык содержит подобные элементы, только слова называют элементарными конструкциями, словосочетания - выражениями, предложения - операторами. Символы, элементарные конструкции, выражения и операторы составляют иерархическую структуру, поскольку элементарные конструкции образуются из последовательности символов, выражения - это последовательность элементарных конструкций и символов, а оператор-последовательность выражений, элементарных конструкций и символов.
Символы языка-это основные неделимые знаки, в терминах которых пишутся все тексты на языке. Сивмолы языка паскаль не отличаются от символов обычного разговорного языка. Язык паскаль включает в себя следующие символы
- 26 латинских строчных и 26 латинских прописных букв:
A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
a b c d e f g h i j k l m n o p q r s t u v w x y z - _ подчеркивание
- 10 цифр:
0 1 2 3 4 5 6 7 8 9
- знаки операций:
+ - * / = <> < > <= >= := @
- ограничители:
. , ' ( ) [ ] (. .) { } (* *) .. : ;
- спецификаторы:
^ # $
Данные действительного типа
В языке паскаль они могут быть двух видов:
- С фиксированной точкой (изображается десятичным числом с дробной частью, которая может быть и нулевой; напрмер 7,8)
- С плавающей точкой (изображается ввиде двух чисел разделенных латинской буковой E, обозначаючей число 10. Число, стоящее перед E, называется мамтисой, а число, стоящее после E, - порядок.) В общем виде число с плавающей точкой представляет собой обычное число(мамтису), умноженное на десять(E) в некоторой степени(порядок) и выглядит вот так: mEp, где m - мамтиса, E - десять, p - порядок.
Например число 4*10-5 записывается так: 4E-5;
0,62*104 -------> 0.62E+4
Над данными действительного типа можно выполнить все арифметические операции, дающие действительный результат.
Данные данные логического типа
В языке Pascal имеются две логические константы: ИСТИНА(FALSE) и ЛОЖЬ(TRUE). Для их описания в разделе переменных используется слово Boolean:
| Var a,b,c: boolean; |
В данном примере обьявлены переменые a, b и с. Они принадлежат к логическому типу.
Для сравнения логических данных предусмотренны следующие операции:
- Меньше (<);
- Меньше или равно (<=);
- Равно (=);
- Не равно (<>);
- Больше или равно (>=);
- Больше (>);
Над логическими данными допускаются следующие операции:
- Логическое сложение (or);
- логическое умножение (and);
- Логическое отрицание (not);
Линейные алгоритмы часто применяются когда нам нужно получить только один результат, например посчитать его по какой-нибудь заданной формуле. Допустим, нам нужно посчитать площадь прямоугольника при известых: стороне и диагонали.
В математическом виде решение этой задачи будет выглядеть вот так:
Попробуем записать это решение на языке Pascal
| Program square; var a,b,s:real; begin write ('vvedite storonu'); read (a); write ('vvedite diagonal'); read (b); s:= a*sqrt(sqr(b)-sqr(a)); write ('S= ',s:4:2); readln; end. |
При выполнение программы она предложет вам сначла ввести значение стороны(выполнился оператор write и выполняется оператор read). Появится мигающий курсор, что означает что программа ждет вода значения:
Введем в качестве значения стороны число 3 и нажмем Enter. Выполнится следующий оператор write и будет выполняться оператор read. Программа предложит нам ввести значение диагонали:
Введем число 5 и нажмем Enter. После этого программа начнет выполнять следующий оператор: переменной целого типа S присвоится значение составленного нами выражения. Это и будет площадь прямоугольника. После присваивания переменной S получишегося значения оператор Write выведет его на экран. Заметим, что мы использовали форматный вывод, указав количество позицй отводимой под целую и дробную часть при выводе. Результат выведен на экране:
Програмирование алгоритмов линейной структуры заключается в написании программы таким образом, когда все опеаторы программы выполняются последовательно один за другим, а после выполнения последнего оператора выполнение программы прекращается.
Такие алгоритмы применяются при отсутсвии условий выполнения программы, т.е. ход выполнения программы независит от других каких либо условий. Поэтому программы всегда выполняется от первого оператора до последнего.
Линейные алгоритмы часто применяются когда нам нужно получить только один результат, например посчитать его по какой-нибудь заданной формуле. Допустим, нам нужно посчитать площадь прямоугольника при известых: стороне и диагонали.
В математическом виде решение этой задачи будет выглядеть вот так:
Попробуем записать это решение на языке Pascal
| Program square; var a,b,s:real; begin write ('vvedite storonu'); read (a); write ('vvedite diagonal'); read (b); s:= a*sqrt(sqr(b)-sqr(a)); write ('S= ',s:4:2); readln; end. |
При выполнение программы она предложет вам сначла ввести значение стороны(выполнился оператор write и выполняется оператор read). Появится мигающий курсор, что означает что программа ждет вода значения:
Введем в качестве значения стороны число 3 и нажмем Enter. Выполнится следующий оператор write и будет выполняться оператор read. Программа предложит нам ввести значение диагонали:
Введем число 5 и нажмем Enter. После этого программа начнет выполнять следующий оператор: переменной целого типа S присвоится значение составленного нами выражения. Это и будет площадь прямоугольника. После присваивания переменной S получишегося значения оператор Write выведет его на экран. Заметим, что мы использовали форматный вывод, указав количество позицй отводимой под целую и дробную часть при выводе. Результат выведен на экране:
Площадь равна двеннадцати. Если бы мы ввели другие значения мы бы получили бы другой результат.
Алгоритмическая структура ветвелние используется, когда дальнейшее выполнение программы зависит от значения какой-нибудь переменной или какого-нибудь выражения. Взависимости от скольких значений зависит выполнение программы используются различные операторы. Если выполнение программы зависит от двух значений, то обычно используется условный оператор, а если от нескольких то используется оператор выбора
Полный условный оператор используется, когда требуется выбор одной из альтернатив.
Оператор имеет вид:
If условие then оператор1 Else оператор2;
Выполнение условного оператора начинается с вычисления значения логического выражения, указанного в условии. Простые условия записываются в виде равенства или неравенства. Сложные условия составляются из простых с помощью логических операций. Если условие истинно, то выполняется оператор1, в противном случае - оператор2. Если необходимо выполнить не один, а несколько операторов, то они объединяются в операторные скобки BEGIN - END.
Приведем пример программы с использованием оператора if. Пусть необходимо вывести на экран большее из двух данных чисел. Программа для решения этой задачи имеет вид:
| Program pr1; Var x, y: integer; Begin Writeln ('Введите два числа'); Readln (x, y); If x>y then writeln (x) Else writeln (y); Readln; End. |
Рассмотрим выполнение программы при x=5, y=7. условие x>y не выполняется, так как 5 не больше 7. Cледовательно, будет выполняться оператор, стоящий после else, т. е. writeln (y), и на экран будет выведено число 7.
Существует также сокращенная форма условного оператора, в котором строка else отсутствует:
If условие then оператор
Например, оператор
| If x<0 then x: = -x; |
будет менять значение х на противоположное, если первоначально оно было отрицательным. При неотрицательных х никаких изменений значения переменой происходить не будет.
Задание.
1. Создать простейший тест, состоящий из одного вопроса и трёх ответов.
Домашнее задание. Создать алгоритм произвольного теста, состоящего из трёх вопросов с тремя вариантами ответов для каждого вороса. Алгоритм также должен выставлять общую оценку (5 или 3, или 2) после прохождения теста.