Р. А. Юсупов, С. Н. Искандарова, Ш. Мирзанова C/C++ тилида топшириқ ва масалалар Самарқанд – 2013 йил


Download 1.35 Mb.
bet92/105
Sana13.04.2023
Hajmi1.35 Mb.
#1353566
TuriУчебник
1   ...   88   89   90   91   92   93   94   95   ...   105
Bog'liq
CPP masalalari1


Часть II. Решения 201
void diagr()
{
int x,y; // координаты левого нижнего угла
// столбика диаграммы
int 1; // индекс массива
// цвет столбиков
int color[4] = {YELLOW, BLUE, GREEN, RED};
char buf[10];
outtextxy(40,50,"Результаты контрольной работы\0");
rectangle(40,80,170,310);
X = 50; у = 300; // левый нижний угол первого столбика
// столбики диаграммы
for (i = 3; i >= 0; i—)
{
setfillstyle(SOLID_FILL, color[i]);
bar(x,y,x+10,y-h[i]); // столбик
sprintf(buf,"%2.If",p[i]);
outtextxy(x,y-h[i]-10,buf);
X += 20;
}
// численные значения
X = 50;
for (i = 3; 1 >= 0; i—)
{
setfillstyle(SOLID_FILL,color[i]);
//bar(x,y,x+10,y-h[i]); // столбик
//OutTextXY(x,y-h[i]-10,RealToStr(p[i],5,l)+»%\n");
X = x+20;
}
// легенда
X = 200;y = 100;
for (i = 3; i >= 0; i—)
{
setfillstyle(SOLID_FILL,color[i]);
bar(x,y,x+20,y+10); // столбик
outtextxy(x+25,у,mes[i]);
у += 20;
}
202 С/С-^"*- в задачах и примерах
void main О
{
int gdriver = DETECT; // драйвер
int gmode; // режим
int errorcode; // код ошибки
obrO; // ввод и обработка результатов
initgraph(&gdriver, &gmode, PATHTODRIVER);
errorcode = graphresult();
if (errorcode == grOk)
diagrO; // вывод диаграммы
else
{
printf("Ошибка: %d\n", errorcode);
puts("Для завершения программы нажмите ");
}
getch();
}
Задача 231
// круговая диаграмма
#include
#include
#include
#include
#define PATHTODRIVER "c: WborlandcWbgiW"
#define N 4 // количество категорий
void krdiagr(char* *name, float* dol)
{
int al,a2; // угол начала и конца сектора
int color[4] = {BLUE, YELLOW, GREEN, RED};
int x,y; // координаты вьшода легенды
char St[25]; // изображение числа
int i;
Чисть II. Решения 203
// строим диаграмму
al = 0; // от оси ОХ
X = 350; у = 100; // левый верхний угол области легенды
for (i =0; i < N; i++)
{
// сектор
a2 = al + 3.6 * dol[i]; // 1% - 3.6 градуса
if (i == N-1) a2 = 360; // последний, no счету, сектор
setfillstyle(SOLID_FILL, color[i]);
sector(200,200,al,a2,100,100);
// pieslice(200,200,al,a2,100);
al = a2; // следующий сектор - от конца текущего
// легенда
Ьаг(х,у,х+30,у+10);
rectangle(х,у,х+30,у+10);
sprintf(st, "%s - %2.1f%\0", name[i], dol[i]);
outtextxy(x+50,y,st);
у +== 20;
}
}
void main (void)
{
char *name[N] = {"Книги\0","Журналы\0",
"Канцтовары\0","Прочее\0"};
float kol[N]; // количество для категории
float dol[N]; // доля категории в общем количестве
float sum =0; // общее кол-во по всем категориям
int i;
int gdriver = DETECT; // драйвер
int gmode; // режим
int errorcode; // код ошибки
// ввод исходных данных
puts("Введите количество по каждой категории");
for (1 = 0; i < N; i+-f)
{
printf("%s -> ", name[i3);
scanf("%f", &kol[i]);
204 C/C++ в задачах и примерах
sum += kol[i];
}
// вычислим долю каждой категории в общей сумме
for (i = 0; i < N; i+4-)
dol[i] = kol[i]/sum*100;
// инициализация графического режима
initgraph(&gdriver, &gmode, PATHTODRIVER);
errorcode = graphresult();
if (errorcode == grOk)
{
krdiagr(name, dol);// строим диаграмму
getch();
closegraphO; // выход из графического режима
}
else {
printf("Ошибка: %d\n", errorcode);
puts("Дня завершения нажмите ");
getch();
}
Задача 232
// Светофор
#include
#include
#include
#include
#define PATHTODRIVER "c: WborlandcWbgiW"
// рисует круг заданного цвета
void krug(int x,int у, int r, int fc, int be)
{
// x, y, r - координаты центра и радиус
// fc, be - цвет круга и окантовки
setfillstyle(SOLID_FILL,fс);
setcolor(fc);

Download 1.35 Mb.

Do'stlaringiz bilan baham:
1   ...   88   89   90   91   92   93   94   95   ...   105




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling