Глава 3 Более сложные элементы языка
____________________________________________________________________
LightCyan -ярко-бирюзовый;
LightRed - ярко-красный;
LightMagenta - ярко-малиновый;
Yellow - желтый;
White - белый;
Blink - мерцание (мигание);
Процедура TextBackGround(Color)- устанавливает цвет фона.
Процедура ClrScr - очищает экран, одновременно окрашивая его в цвет установленного фона.
Процедура Window(x1, y1, x2, y2)- определяет на экране окно,
где x1, y1- координаты левого верхнего угла, а x2, y2- координаты пра-
вого нижнего угла окна
Функция KeyPressed - возвращает значение true, если клавиша нажата и false – в противном случае.
Функция readkey – считывает символ с клавиатуры.
Пример.
Написать программу, которая очищает экран и устанавливает синий фон.
Затем выводит текст желтым цветом.
program project1;
uses
CRT, FileUtil;
begin
TextBackGround(Blue);
ClrScr;
GoToXY(6, 6);
TextColor(Yellow);
221
3.5 Модули в Паскале
____________________________________________________________________
writeln(UTF8ToConsole('Привет, Вася!'));
writeln(UTF8ToConsole('Нажмите любую клавишу'));
readkey;
end.
Дальнейшие "игры" с цветами и окнами предоставляю вам самому, ува-
жаемый читатель, а сейчас давайте напишем более серьезную программу.
Пример.
В некой компании по продаже компьютеров имеются менеджеры, фамилии которых, хранятся в массиве Name. В другом массиве имеются данные о коли-
честве проданных компьютеров каждым менеджером за месяц. Написать про-
грамму, которая выводит таблицу, в которой следующие графы: фамилия, ко-
личество проданных компьютеров, сумма выручки, сумма премии. Итоговая строка должна содержать общее количество проданных компанией компьюте-
ров за месяц, общую сумму выручки, сумму премиальных.
Стоимость компьютера принять равной 1000$, размер премии за каждый проданный компьютер 25$
program manager; uses
CRT, FileUtil, SysUtils; var
name: array of string[18]; kol: array of integer;
sum, cost, prem, i, k, n: integer; progprem: integer;
begin
writeln(UTF8ToConsole('Введите количество менеджеров'));
readln(n);
SetLength(name, n);
222
Глава 3 Более сложные элементы языка
____________________________________________________________________
SetLength(kol, n);
for k:= 0 to n - 1 do
begin
writeln(UTF8ToConsole('Введите фамилию'));
readln(name[k]);
writeln(UTF8ToConsole('Введите количество компьютеров'));
readln(kol[k]);
end;
ClrScr;
GoToXY(6,1);
write(UTF8ToConsole('Сведения о реализации компьютеров'));
GoToXY(14,2);
write(UTF8ToConsole('за январь 2010 г.'));
GoToXY(1,3); |
|
write('------------------------------------------------ |
'); |
GoToXY(1,4); |
|
write(UTF8ToConsole('Фамилия |
Количество Выручка Премия')); |
GoToXY(1,5); |
|
write('------------------------------------------------ |
'); |
cost:= 1000; |
|
progprem:= 25; |
|
for k:= 0 to n - 1 do |
|
begin |
|
sum:= cost * kol[k]; |
|
prem:= progprem * kol[k]; |
|
writeln; |
|
writeln(name[k]); |
|
GoToXY(24, k + 6); |
|
write(kol[k]); |
|
223
3.5 Модули в Паскале
____________________________________________________________________
GoToXY(32, k + 6); |
|
write(sum); |
|
GoToXY(40, k + 6); |
|
write(prem); |
|
end; |
|
sum:= 0; |
|
i:= 0; |
|
for k:= 0 to n - 1 do |
|
begin |
|
i:= i + kol[k]; |
|
sum:= i * cost; {Сумма выручки} |
|
prem:=i * progprem; |
|
end; |
|
GoToXY(1, n + 6); |
|
write('------------------------------------------------ |
'); |
GoToXY(17, n + 7); |
|
writeln(UTF8ToConsole('Итого:')); |
|
GoToXY(24, n + 7); |
|
write(i); |
|
GoToXY(32, n + 7); |
|
write(sum); |
|
GoToXY(40, n + 7); |
|
write(prem); |
|
GoToXY(1, n + 9); |
|
write(UTF8ToConsole('Нажмите любую клавишу')); readkey;
end.
224
Глава 3 Более сложные элементы языка
____________________________________________________________________
3.6. Файлы
Файл – некоторый участок на диске, где хранятся данные. Каждому файлу присваивается уникальное имя, благодаря которому становится возможным об-
ращаться к различным данным на диске. Файлы состоят из отдельных элемен-
тов одного типа. Размер файла зависит от объема того физического устройства,
на котором он хранится.
3.6.1 Тип данных – запись
Запись – совокупность данных, имеющих свои имена и тип, объединенных одним именем. Запись - комбинированный тип данных. Каждая запись состоит из отдельных полей, которые могут иметь разные типы.
Общий вид объявления записи:
type
<имя записи> = record
<имя1>: <тип1>;
<имя2>: <тип2>;
..............
<имяN>: <типN>;
end;
После этого можно объявить переменные с типом запись:
var <имя переменной>: <имя записи>;
Пример. Пусть имеется таблица следующей структуры:
Фамилия |
Имя |
Отчество |
Группа |
Год рождения |
|
|
|
|
|
Тогда можно объявить запись следующего вида:
type
225