ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 21.03.2025
Просмотров: 1668
Скачиваний: 1
СОДЕРЖАНИЕ
Московский государственный социальный университет
Лекция 1: Введение в программирование.
Лекция 2: Язык Паскаль и системы программирования на Паскале.
Лекции 3-4: Базисные конструкции языка.
Лекции 5-6: Простые операторы и программы с линейной структурой.
Лекция 7: Операторы с условиями.
Лекция 8: Методика разработки простых программ.
Лекция 9: Концепция типа данных.
Лекция 10: Структурный тип - Массив.
Лекция 11: Структурный тип - Строка.
Лекция 15: Структурный тип - Множество.
Лекция 16: Структурный тип - Запись.
Лекции 17-19: Модули и их использование.
Лекция 20: Структурный тип - Файл.
Лекции 21-22: Основные задачи обработки файлов.
Лекция 23: Динамическая память и указатели.
Лекции 24-25: Использование указателей для представления динамически структур данных.
Лекции 26-27: Объекты и объектно-ориентированное программирование.
Операторы вывода write и writeln. Синтаксическая структура этих операторов: write( < список выражений вывода > );
writeln( < список выражений вывода >);
< список выражений вывода > ::= < выражение > { ,< выражение >}
В операторах вывода допустимы выражения стандартных типов integer, real, char, string. В качестве выражения могут использоваться также константы и переменные указанных типов. Константы удобно использовать в операторах вывода для отображения на экран дисплея различных заголовков, запросов и другой постоянной информации пользовательского интерфейса.
При выполнении операторов write и writeln последовательно отображаются на экране дисплея значения выражений из списка выражений вывода, просматриваемого слева направо до его исчерпания. При этом при переполнении строки вывода автоматически осуществляется переход на новую строку экрана, а при заполнении всего экрана его содержимое сдвигается вверх на одну строку.
Для элемента списка вывода типа integer или real можно указывать (после элемента) формат вывода, т.е. задавать количество выводимых цифр в целой и дробной части числа. Формат имеет следующую синтаксическую структуру:
< формат числа > ::= : < целый формат > [ : < дробный формат > ]
< целый формат > ::= < целое без знака >
< дробный формат > ::= < целое без знака >
Целый формат задает минимальное количество цифр в целой части (если действительная длина целой части числа меньше указанной в формате, то она дополняется нулями, а если больше - формат игнорируется). Дробный формат имеет смысл лишь для чисел типа real и задает количество цифр в дробной части (после точки), при этом при отсутствии формата число выводится в экспоненциальной форме, а если формат нулевой, то ни точка, ни дробная часть не выводятся.
Оператор writeln отличается лишь тем, что после его окончания осуществляется переход к новой строке экрана. Допускается использовать writeln без параметров, что эквивалентно переводу курсора в начало следующей строки.
3. Простые операторы управления вводом-выводом в текстовом режиме.
Кроме ввода и вывода потока символов более удобный пользовательский интерфейс может быть обеспечен при использовании ввода-вывода в текстовом режиме экрана. Экранный ввод-вывод рассматривает экран как прямоугольное окно стандартного размера 25х80 (25 строк по 80 символов в строке). Все позиции символов характеризуются своими координатами: верхний левый угол имеет координаты 1,1; правый нижний угол - координаты 80, 25.
В Турбо Паскале имеются средства управления вводом с клавиатуры, управления курсором, вывода на экран, управления цветом фона экрана и выводимых символов, яркостью символов и ряд других функций (в том числе управления звуковым генератором). Кроме того, предусмотрены средства установки на экране любых окон и обеспечения ввода-вывода текстовой информации в окна.
Все эти средства сосредоточены в стандартном модуле Турбо Паскаля - модуле CRT. Мы рассмотрим здесь лишь простейшие средства экранного ввода-вывода, которые будем использовать уже в простых программах, отложив более подробное изучение модуля CRT на лекции, посвященные модулям Турбо Паскаля.
Для возможности доступа к средствам управления экранным вводом-выводом в программе на Турбо Паскале необходимо первой строкой раздела описаний программы записать ссылку на использование модуля CRT в форме:
uses CRT;
где: uses - ключевое слово, означающее подключение модуля к программе.
Установка цвета фона, цвета символов и очистка экрана.
Модуль CRT допускает использовать в текстовом режиме экрана 16 цветов, задаваемых стандартными константами цветов от black до white (это имена констант, а сами константы являются целыми числами от 0 до 15, так black соответствует константе 0, а white - константе 15). Эти константы представлены следующей таблицей:
Таблица 2. Константы цветов модуля CRT.
|
Black |
Blue |
Green |
Cyan |
Red |
Magenta |
Brown |
LightGray |
|
0 черный |
1 синий |
2 зеленый |
3 голубой |
4 красный |
5 фиолет. |
6 коричн. |
7 свет.сер. |
|
DarkGray |
LightBlue |
Light Green |
LightCyan |
LightRed |
Light Magenta |
Yellow
|
White |
|
8 тем.сер. |
9 ярк.син. |
10 ярк.зел. |
11 ярк.гол. |
12 розов. |
13 малин. |
14 желтый |
15 белый |
Для цвета фона можно использовать первые 8 цветов, а для цвета символов - все 16 цветов. Эти цвета устанавливаются следующими операторами:
TextBackground( < цвет> );
TextColor(< цвет> );
где: < цвет> - константа цвета.
Следует иметь в виду, что установки цвета всегда относятся к последующим операторам ввода и вывода, и не имеют обратного действия (на ранее выполненные операторы).
Часто для установки цвета фона на экране используют оператор очистки экрана. Его действие эквивалентно заполнению всего экрана пробелами (с предварительно установленным цветом фона) и установке курсора в верхний левый угол экрана (с координатами 1,1). Этот оператор очистки экрана имеет название ClrScr. Оператор стирает имеющуюся ранее информацию и подготавливает вывод в верхнюю строку экрана (в отличие от потокового вывода, выполняемого всегда в нижнюю строку экрана). Ввод и вывод при этом могут выполняться теми же операторами read, readln, wrire, writeln.
Установка окон на текстовом экране.
Для установки окна предусмотрен оператор
window (x1,y1,x2,y2);
где: x1,y1,x2,y2 - координаты левого верхнего и правого нижнего угла окна.
При установке окна просто соответствующая площадь экрана резервируется для последующего ввода-вывода. Никакого стирания ранее выведенной информации не происходит, не происходит также и обрамления окна рамками (для этого необходимо использовать программу обрамления, которая не предусмотрена в составе средств CRT).
После установки окна все последующие операторы ввода-вывода, в том числе и операторы CRT относятся только к этому окну до тех пор, пока не будет открыто новое окно (сам оператор window относится к полному экрану). Полный экран можно рассматривать как окно, устанавливаемое оператором window (1,1,80,25).
|
Замечание
|
Если в операторе window указать координаты окна вне экрана, выполнение оператора window будет проигнорировано без какого либо системного сообщения! |
4. Примеры программ с линейной структурой.
Проиллюстрируем изложенные в данной лекции средства Турбо Паскаля на примерах программ с линейной структурой, т.е. содержащих лишь операторы присваивания, ввода, вывода, управления цветом.
program first;{вычисление среднего балла}
var math,phys,phil,hist:integer;{баллы по предметам}
average:real; {средний балл}
begin write('математика:'); read(math);
write('физика:'); read(phys);
write('философия:'); read(phil);
write('история;'); read(hist);
average:=(math+phys+phil+hist)/4; writeln(' Средний балл:',average:1:2);
end {first}.
Другой вариант программы - first_2, использует средства экранного вывода текста и отличается также тем, что запрашивает ввод в окно экрана не только балла, но и названий четырёх дисциплин.
program first_2;{второй вариант программы first}
uses CRT;
var name: string; {названия предметов}
v1,v2,v3,v4:integer;{баллы по предметам}
average:real; {средний балл}
begin TextBackground(cyan);TextColor(yellow);ClrScr;
window(10,10,70,16);TextBackground(green);ClrScr;
writeln('Введите в одну строку названия 4-х предметов,');
writeln('а в следующую строку - баллы по этим предметам:');
readln(name); readln(v1,v2,v3,v4);
average:=(v1+v2+v3+v4)/4;writeln(' Средний балл:',average:1:2);
end {first_2}.
Лекция 7: Операторы с условиями.
1. Композиция условий и операторов.
2. Операторы условного перехода.
3. Примеры программ с ветвящейся структурой.
4. Операторы итерационных циклов.
5. Примеры программ с циклами.
1. Композиция условий и операторов.
Простые операторы, несмотря на свою важность, недостаточны для того, чтобы представлять любые алгоритмы задач. Их использование подобно прямолинейному движению автомобиля на трассе. Очевидно, что вы не сможете далеко уехать, если не будете реагировать на светофоры и другие сигнальные знаки, в том числе указывающие на возможные разветвления на трассе. Аналогично обстоит дело и в программировании: прежде чем выполнять соответствующие действия бывает совершенно необходимо проанализировать (и учесть) те или иные условия, представляемые в Паскале как выражения типа Boolean.
Особое значение приобретают сложные операторы, представляющие композиции условий и операторов (простых или сложных). В Паскале имеются две группы таких композиций (операторы с условиями):
операторы условного перехода (if-then-else и if-then) и
операторы итерационных циклов (while- do и repeat-until).
Каждая из этих групп использует композицию из одного условия и одного или двух операторов и образует новый вид операторов, который способен выбирать (по значению условия) одно из двух действий, либо выполнять повторение (итерацию) действия. Такие композиции весьма важны и без них практически не обходится ни один алгоритм.
2. Операторы условного перехода.
Операторы условного перехода имеют следующую синтаксическую структуру:
if <условие> then <оператор 1> else <оператор 2>;
if <условие> then <оператор >;
Оператор if-then-else выполняется следующим образом: вначале вычисляется значение условия (проверяется условие). Если это значение true - выполняется оператор1, а если значение условия равно false - выполняется оператор2. В качестве оператора1 или оператора2 может быть любой оператор Паскаля (простой или сложный), однако это должен быть один оператор. Если по логике алгоритма необходимо выполнить последовательность из нескольких операторов вместо оператора1 или оператора2, то должен быть использован составной оператор, образуемый заключением последовательности операторов в операторные скобки begin end. Скобки begin end превращают любую последовательность операторов в один оператор.