Урок 3 Структура программы на языке Pascal выглядит следующим образом: • заголовок программы; • раздел подключения модулей (ранее написанных библиотек); • раздел меток (используется для правильной организации процесса решения задачи); • раздел именованных констант; • раздел типов пользователя; • раздел описания переменных; • раздел подпрограмм пользователя; • начало основной программы; • раздел операторов основной программы; • конец основной программы. В программе могут отсутствовать один или несколько разделов, однако, заголовок программы, раздел подключаемых модулей, начало основной программы, раздел операторов основной программы и конец основной программы являются обязательными. Структура простой программы Program Primer; {заголовок} Uses . . .; {раздел подключения модулей} Var . . .; {раздел описания переменных} Begin {начало программы} {раздел операторов — тело программы} End. {конец программы} ОПЕРАТОР ПРИСВАИВАНИЯ Оператор присваивания используется для сохранения результата вычисления арифметического выражения в переменной. Он имеет следующий общий вид: Переменная := <выражение>; Знак := читается как "присвоить". где <выражение> — это выражение, записанное с использованием арифметических и/или логических операций и скобок, значение которого можно вычислить; значение <выражения> должно быть того же типа, что и переменная, указанная слева от оператора присваивания; <имя переменной> — это переменная, в которую будет записано значение <выражения>. Оператор присваивания работает следующим образом: сначала вычисляется выражение, стоящее справа от знака:=, затем результат записывается в переменную, стоящую слева от знака. Например, после выполнения оператора k:=k+2; ОПЕРАТОРЫ ВЫВОДА Вывод данных это процесс передачи данных из оперативной памяти на внешний носитель. Базовая форма оператора вывода позволяет отобразить на экране значения переменных, или констант, а также строки текста. Оператор записывается в одной из следующих форм: write(список); writeln (список); Элементы списка - имена переменных, записанные через запятую, а так же текста, который комментирует, назначение переменных. Текст заключается в апострофы. write(‘<текст>’, <список переменных>); writeln(‘<текст>’, <список переменных>); Оператор write отличается от writeln тем, что при использовании оператора write, курсор остается на этой же строке после выведенного значения, а при использовании оператора writeln курсор переводится на начало следующей строки. Например: 1. Вывод текста write (‘значение константы pi= ’) write (‘3.14 ’) измените в первом операторе write на writeln и посмотрите что получится 2. Вывод нескольких переменных, с комментариями write (‘значение константы pi ’,3.14) pi:=3.14 write (‘значение константы pi ’,pi) a:=3; d:=5 write (‘a=’,a, ‘d=’,d, ’a+d=’,a+d) Составим свою первую программу и посмотрим, как работает этот оператор program osa; uses var a,b,s:integer; c,d,t:real; begin write (‘пример 1’); write (‘сложение двух чисел’); измените в первом операторе write на writeln и посмотрите что получится а затем так же изменим и во втором операторе вывода a:=3; b:=5; writeln (‘a=’,a, ‘b=’,b, ’a+b=’,a+b); writeln (‘пример 2’); s:=a+b; writeln (‘a=’,a, ‘b=’,b, ’s=’,s); Writeln (‘для вещественных переменных’); Вывод данных типа real производится в экспоненциальной форме. c:=7.5; d:=1.3 t:= c/d writeln (‘c=’,c, ‘d=’,d, ’t=’,t); Формат вывода В операторе write или writeln вещественное значение (а иногда целое) зачастую удобнее записывать с помощью формата: переменная:ширина:точность Здесь ширина - целое положительное число, определяющее, сколько экранных позиций отводится для вывода всего числа. Точность - целое положительное число, определяющее, сколько цифр из ширины отводится на вывод дробной части числа. Значение точности определено только для вещественных чисел. А=511.04 write А:8:4 511.0400 А=511.04 write А:9:4 <пробел>511.0400 Для целочисленных значений А=86 write А:3 <пробел>86 writeln (‘c=’,c:8.2, ‘d=’,d:9:2,’t=’, t:9:2); end. Оператор ввода Ввод данных – передача информации с внешних носителе в оперативную память Базовая форма оператора ввода позволяет пользователю ввести с клавиатуры значения одной или нескольких переменных. Оператор ввода с клавиатуры может быть записан в одной из следующих форм: read (список_переменных); readln (список_переменных); (Список переменных) - Имена переменных в списке перечисляются через запятую. По достижении оператора ввода выполнение программы останавливается и ожидается ввод данных пользователем. Вводимые значения переменных разделяются пробелом или переводом строки (нажатием Enter). После ввода значений всех переменных из списка работа программы продолжается со следующего оператора. Оператор отличается от read тем, что все переменные в операторе readln должны быть введены в одну строку экрана, в операторе readln клавиша Enter нажимается один раз по окончании ввода, оператор readln считывает операторы из буфера памяти и стирает их. оператор read производит считывание данных из буфера, не очищая его Форма записи readln используется, в основном, для ввода строк текста, для ввода числовых значений лучше использовать read, т. к. в этом случае пользователь может вводить данные более свободно (и в одну, и в несколько строк экрана). Если водит данные недопустимого типа (например, строку текста вместо числа), то выводится системное сообщение об ошибке и работа программы прерывается. Изменим нашу программу, заменим операторы присваивания значения переменным, оператором ввода с клавиатуры. a:=3; b:=5; read (a,b) Посмотрим, как работает программа. При достижении оператора программа останавливается и ждет ввода данных с клавиатуры. Значения переменных должны вводиться в строгом соответствии со списком переменных, в той же последовательности и тех же типов что и переменные. Обычно для более корректной работы программы перед оператором read, вставляют оператор write, который поясняет какие данные, вводятся в данный момент. Write (‘введите значения а и в через пробел и нажмите enter’) read (a,b) Введем комментарии и еще раз выполним программу. Самостоятельно: 1. Определить площадь кольца радиусами r1,r2. формула круга S=πr2 2. Определить сколько полных недель в году. Д/З Составить программу перевода рублей в доллары