|
|
zadach421.PAS |
|
{* Задача 421 *}Unit ZADACH421;Interface Implementation Begin writeln('. Заданы пять значений количества заболевших свиным гриппом в классе за пять лет. Например: 12 (1990), 30 (1991), 11 (1992), 21 (1993), 4 (1994). С помощью Bard3D постройте диаграмму отражающую динамику (в высоте столбца) заболеваемости. Под каждым столбцом укажите год. Исходные данные вводятся с клавиатуры.'); End. Program zadach421; Uses crt, Graph; {Подключаем модули crt, graph} Const {* Предопределенные *} TotDiagram = 5; {Объявляем константу: количество годов для запросов} Var {* Объявление переменных *} Gd : Integer; Gm : Integer; {Переменные для графического режима } Y1 : Integer; Y2 : Integer; X1 : Integer; X2 : Integer; {Координаты для графиков} dx : Integer; {Интервал для одного графика} dx2 : Integer; {Половина интервала для определения центра} i : Integer; {Счетчик для циклов} k : Integer; {если высота графика будет больше чем видимая область, то будем делить на это число} MaxEl : Integer; {Максимальное значение графика} StrGod : String; StrPok : String; {переменные для преобразования числа в строку} InArr : Array [1..5, 1..2] Of Integer; {Массив для хранения результатов запросов} {Начало основоной программы} Begin clrscr; {Очищаем экран} MaxEl := 0; {Обнуляем максимальный элемент} {Цикл для ввода исходных значений в массив} For i := 1 To TotDiagram Do {* Увеличиваем i от 1 до TotDiagram с шагом 1 *} Begin запрос входных параметров} write('Введите значение ', i, ' года: '); readln(InArr[i, 1]); write('Введите количество заболевших в ', InArr[i, 1], ' году: '); readln(InArr[i, 2]); If MaxElGetMaxY - 50 Do Begin k := k * 10; MaxEl := MaxEl Div 10; End; For i := 1 To TotDiagram Do {* Цикл для i => [1 .. TotDiagram] *} Begin dx2 := dx Div 2; {находим середину для i-го графика} {Определяем левые верхние координаты, уменшая координату y на k} x1 := (dx * i) - (dx2 + (dx2 Div 2)); y1 := ((GetMaxY - 50) - (inArr[i, 2] Div k)); {Определяем правые нижние координаты} x2 := (dx * i) - (dx2 - (dx2 Div 2)); y2 := GetMaxY - 50; {Строим графики при помощи Bard3D} Bar3D(x1, y1, x2, y2, 10, TopOn); {Переводим числа в строку для отображения на графике} str(InArr[i, 1], StrGod); str(InArr[i, 2], StrPok); {Выводим подписи для всех графиков} OutTextXY(x1 + 40, GetMaxY - 30, StrGod); OutTextXY(x1 + 40, y1 - 20, StrPok); End; End; clrscr; {Очищаем экран} writeln('Для продолжения нажмите ENTER...'); Readln; {* Ждем подтверждения пользователя *} CloseGraph; {Закрываем графический режим} End. 07.08.2014 - Breakpoint - точка остановки 07.08.2014 - Топ-10 самых популярных приложений в Facebook 18.11.2013 - Панель управления и персонализация системы. Windows Vista 18.11.2013 - Логические и физические диски. Windows Vista 18.11.2013 - Удаление файлов и папок 01.11.2013 - Программирование дисковых подсистем: возможности 31.10.2013 - Windows8 или Windows7? 31.10.2013 - Windows8, игры |
|
Non-commercial fansite
|