- •Литература
- •10. Основы программирования на языке turbopascal. Учебное пособие. Б. А. Крымов, а. О. Мовшин, с. В. Кулакова. Воронеж: вгта. 2000.
- •Тема 1. Основные понятия информатики
- •1.1. Место информатики в человеческой деятельности
- •1.2. Информационные процессы: подробности
- •1.2.1. Процесс сбора данных
- •1.2.2. Процесс хранения данных.
- •1.2.3. Процесс передачи данных
- •Оконечное оборудование
- •1.2.4. Процесс обработки данных
- •Тема 2. Алгоритмизация и программирование
- •2.1. Алгоритм и его свойства
- •2.2. Формы записи алгоритма
- •Var m, n : integer;
- •2.3. Базовые алгоритмические структуры
- •2.4. Последовательность подготовки и решения задачи на эвм
- •Var X,y,с11,с12,с21,с22,a,b,Dx,Dy,d : real;
- •2.5. Конструктивные элементы языка pascal
- •2.6. Структура программы на языке pascal Программа на pascal состоит из двух частей: описательная часть и собственно программные операторы (исполняемая часть – список действий).
- •Var m, n : integer;
- •Тема 3. Данные и выражения простых типов
- •3.1. Данные целого типа
- •Var имя1, имя2,...: integer;
- •3.2. Данные вещественного типа
- •Var имя1, имя2,...: real;
- •Var a2, result, psi : real;
- •3.3. Данные логического типа
- •Var имя1, имя2,...: boolean;
- •3.4. Данные символьного типа
- •Var имя1, имя2, ... : char;
- •3.5. Данные ограниченного типа
- •Var month : summer;
- •3.5. Порядок выполнения операций
- •Тема 4. Основные операторы языка pascal
- •4.1. Оператор присваивания
- •4.2. Ввод числовых данных с клавиатуры
- •4.3. Вывод данных на экран монитора
- •Writeln(a,b,c);
- •Writeln(a,' ',b,' ',c)
- •Var omega, q: real;
- •4.4. Условные и составные операторы
- •Полная форма условного оператора if предназначена для программирования разветвлений и имеет вид:
- •If Логическое выражение then оператор 1 else оператор 2;
- •Var a, b, max: real;
- •Краткая форма условного оператора if. Эта форма используется при программировании ответвлений и имеет вид:
- •If Логическое выражение then оператор 1;.
- •Var a, b : real;
- •Вложенная ветвящаяся структура
- •X, y, a, b : real;
- •Var X, a, z : real;
- •4.5. Операторы цикла
- •4.5.1. Оператор цикла с предусловием Структура оператора
- •X, y, deltaX, a, b : real;
- •4.5.2. Оператор цикла с постусловием
- •X, y, deltaX, a, b : real;
- •4.5.3. Вычисление сумм
- •Var s : real;
- •Var s : real;
- •X, s, eps, a : real;
- •X, s, eps, a : real;
- •4.5.4. Оператор цикла с параметром
- •Var X, y, deltaX, a, b: real;
- •Var s: real;
- •Тема 5. Структурированные типы данных
- •5.1. Одномерные массивы
- •Var имя массива : array [тип индекса] of тип элементов;
- •Var имя массива : имя типа;
- •Имя массива [ индекс ]
- •5.2. Организация циклов с использованием массивов
- •I: integer;
- •Var max : real;
- •I : integer;
- •Var I, kP,j : integer ;
- •5.3. Двумерные массивы
- •Var I, k : integer ;
- •Var c:array [-1..8,0..19] of real;
- •I,j:integer;
- •5.4. Примеры задач с двумерными массивами
- •Var mat : array [1..N, 1..N] of real ;
- •I, j, i1, i2 : integer ;
- •Var I, j : integer;
- •Тема 6. Подпрограммы
- •6.1. Вводные понятия
- •6.2. Процедуры
- •Var p, s : real;
- •Var имя1, имя2, ... : тип параметров;
- •6.3. Функции
- •Function имя функции (список форм. Параметров) : тип результата;,
- •Var p : real;
- •Тема 7. Обзор языков программирования
- •Приложение 1 Наиболее часто используемые служебные слова pascal
- •Приложение 2 Стандартные функции pascal
4.3. Вывод данных на экран монитора
Вывод означает запись информации на экран, диск или на другое устройство. PASCAL имеет две основные процедуры вывода writeln ( [райтлн] ) и write. ([райт] – писать).
Назначение процедуры writeln – выводить информацию на экран монитора. Ее синтаксис:
writeln ( элемент1, элемент2,...),
где элемент1, элемент2,... – это элементы той информации, которую нужно вывести на экран (список вывода). В качестве элементов списка вывода можно использовать константы, имена переменных, арифметические выражения.
В процессе выполнения процедуры writeln на экран монитора последовательно в одну и ту же строку будут выведены значения элементов списка вывода, после чего произойдет переход на новую строку.
Кроме элементов, перечисленных выше, в список вывода можно помещать текст, заключенный в апострофы (символьные конставны). Таким способом выводимые результаты можно сопровождать пояснениями.
writeln ('Результат счета: y = ',y);
Сначала на экран будет выведена комбинация символов, заключенных в апострофы, т.е. “Результат счета: y =”, затем численное значение переменной y, после чего курсор будет установлен в начало следующей строки.
Если необходимо оставить курсор на прежней строке после вывода последнего элемента списка, то используется процедура write. Синтаксис обеих процедур одинаков.
При выводе элементов списка они не разделяются между собой пробелами автоматически. Если же такая необходимость возникла, то их нужно расположить в тех местах списка вывода, где это требуется.
Пример 4.3. Пусть имеем три переменных целого типа a =1; b = 2; c =3. Тогда процедура
Writeln(a,b,c);
выведет значение переменных a, b и c в виде 123; процедура
Writeln(a,' ',b,' ',c)
– в виде 1 2 3, а процедура
writeln('a=',a,' ','b=',b,' ','c=',c)
– в виде a=1 b=2 c=3.
Данные вещественного типа хранятся в памяти в нормализованном виде, независимо от того, в какой форме они в память вводились. Так, например, значение переменной b, введенное как 1234.5678, будет храниться в виде 1.2345678000000E+0003. В нормализованной форме будет осуществляться и вывод этих данных, если в программе не оговорена другая форма их представления. Если же возникла необходимость вывести вещественные данные в форме с фиксированной точкой, то каждое выводимое данное нужно снабдить спецификацией формата вида m:n, где m, n – константы или переменные целого типа. Величина m, называемая длиной формата, задает общее количество позиций на экране под выводимое число, включая его знак, целую и дробную части, а также десятичную точку; n задает число позиций, отводимых под его дробную часть.
Формат располагают вслед за именем выводимой переменной, разделяя их двоеточием.
Пример 4.4
const m = 6; n = 2;
Var omega, q: real;
begin
………………………………
writeln(omega:8:3, q:m:n);
………………………………
Конкретные значения выводимых данных в большинстве случаев программисту не известны, поэтому при назначении длин форматов легко допустить ошибку. При этом может возникнуть одна из двух ситуаций: либо длина формата назначена больше, чем это необходимо, либо она недостаточна для вывода данного.
В первом случае лишние позиции заполняются пробелами перед целой частью числа, а во втором длина формата автоматически увеличивается до минимально необходимой.
Если количество цифр в дробной части выводимого числа превышает величину n, указанную в формате, то дробная часть округляется до n-ного знака. Если же количество цифр в дробной части меньше величины n то дробная часть дополняется нулями в соответствии с величиной n.
Пример 4.5. Пусть x = 1.23456780000000E+0003, тогда:
а) оператор writeln(x:9:4) выведет 1234.5678 – формат полностью соответствует выводимому данному;
б ) оператор writeln(x:12:4) выведет 1234.5678 – длина формата превышает количество позиций в числе (восемь цифр плюс точка); три лишние позиции заполнены пробелами перед целой частью числа;
в ) оператор writeln(x:12:2) выведет 1234.57 – под дробную часть данного отведено две позиции вместо необходимых четырех, поэтому она округлена до двух знаков после десятичной точки; пять лишних позиций перед целой частью заполнены пробелами;
г) оператор writeln(x:8:4) выведет 1234.5678 – длина формата увеличена до минимально необходимой;
д ) оператор writeln(x:12:6) выведет 1234.567800 – дробная часть числа справа дополнена двумя нулями, целая часть слева одним пробелом.
Для вывода данных целого, символьного и булевского типов используют спецификацию формата, состоящую из одной целой константы, которая задает его длину.
Пример 4.6. Пусть z = 5656. Тогда:
а) оператор writeln(z:6) выведет 5656;
б) оператор writeln(z:3) выведет 5656, причем длина формата будет автоматически увеличена на одну позицию.
При указании только длины формата вещественные числа распечатываются в нормализованной форме.
Пример 4.7. Пусть x = 421.53. Тогда:
а) оператор writeln(x) выведет 4.215300000000000E+0002, а
б) оператор writeln(x:8); выведет 4.2E+02