- •Реферат
- •Розділ 1 Формулювання умови задачі, вихідні дані та креслення геометричної фігури
- •Розрахункові формули та пояснення щодо способу вирішення завдання та хід розв’язання
- •Розділ 2. Обчислення з поясненнями параметрів заданої фігури для довільних вихідних даних (засобами MathCad)
- •Розділ 3 Опис програмного продукту
- •Текст програмного продукту
- •Висновки
Текст програмного продукту
#include<stdio.h>
#include<conio.h>
#include<math.h>
#include<graphics.h>
#include<stdlib.h>
#include<dos.h>
#include<time.h>
char MHO(char ch);
main()
{
clrscr();
float a,d1,d2,A,B,C,D,P,S;
clock_t start,end;
start=clock();
m:printf("Vvedit` znachennja storonu romba a=");
scanf("%f",&a);
printf("\nVvedit` znachennja diagonali romba d2=");
scanf("%f",&d2);
if(a<=d2/2||a<=0||d2<=0){printf("\nDanui romb ne isnue.Povtorit` vvedennja!\n");goto m;}
D=acos((2*pow(a,2)-pow(d2,2))/(2*pow(a,2)))*180/M_PI;
A=180-D;
C=A;
B=D;
d1=2*sqrt((pow(a,2)-pow((d2/2),2)));
P=4*a;
S=d1*d2/2;
window(45,3,80,25);
textbackground(5);
textcolor(9);
clrscr();
delay(1000);
MHO('+');
cprintf("\r\n+ Rezul`tat +\n\r");
MHO('+');
cprintf("\r\n+ Storona romba +%8.3f+\n\r",a);
MHO('+');
cprintf("\r\n+ Persha diagonal` romba +%8.3f+\n\r",d1);
MHO('+');
cprintf("\r\n+ Druga diagonal` romba +%8.3f+\n\r",d2);
MHO('+');
cprintf("\r\n+ Kut A +%8.3f+\n\r",A);
MHO('+');
cprintf("\r\n+ Kut B +%8.3f+\n\r",B);
MHO('+');
cprintf("\r\n+ Kut C +%8.3f+\n\r",C);
MHO('+');
cprintf("\r\n+ Kut D +%8.3f+\n\r",D);
MHO('+');
cprintf("\r\n+ Perymetr romba +%8.3f+\n\r",P);
MHO('+');
cprintf("\r\n+ Plosha romba +%8.3f+\n\r",S);
MHO('+');
end=clock();
cprintf("\r\nChas vykonannja roboty: %4.2f sekynd",(end-start)/(CLK_TCK));
getch();
int driver=DETECT,gmode,errorcode;
initgraph(&driver,&gmode,"C:\\BORLANDC\\BGI");
errorcode=graphresult();
if(errorcode!=grOk)
{printf("Graphics error:%s\n",grapherrormsg(errorcode));
printf("press any key!");
getch();
exit(1);}
setbkcolor(14);
clearviewport();
setcolor(6);
setlinestyle(SOLID_LINE,1,NORM_WIDTH);
line(230,150,230,150+10*d2);
line(230-5*d1,150+5*d2,230+5*d1,150+5*d2);
line(230-5*d1,150+5*d2,230,150);
line(230,150,230+5*d1,150+5*d2);
line(230+5*d1,150+5*d2,230,150+10*d2);
line(230,150+10*d2,230-5*d1,150+5*d2);
outtextxy(233,150+10*d2/4,"d2");
outtextxy(230-10*d1/4,140+10*d2/2,"d1");
outtextxy(220-5*d1/2,145+5*d2/2,"a");
outtextxy(230,140,"A");
outtextxy(233+5*d1,150+5*d2,"B");
outtextxy(230,155+10*d2,"C");
outtextxy(225-5*d1,150+5*d2,"D");
outtextxy(170,410,"Vykonala studentka grupy 141 ICIT Mironova Hanna");
outtextxy(170,430,"Variant 19");
getch();
closegraph();
return 0;}
char MHO(char ch)
{int i;
for(i=0;i<35;i++)cprintf("%c",ch);return 0;}
Висновки
Отже, даний програмний продукт запрошує користувача увести з клавіатури значення сторони та другої діагоналі ромба; обчислює невідомі параметри фігури (кути, першу діагональ, периметр та площу); виводить усі параметри ромба в текстовому вікні у вигляді таблиці, межі якої задані функцією користувача, а її в свою чергу надається символ «+» з головної функції; в графічному режимі малює ромб з отриманими параметрами, підписує їх та обчислює час виконання завдання. При помилковому уведенні даних програма повідомляє про це користувачу.
Робота є актуальною та перспективною, може використовуватися учнями, вчителями на уроках математики, інформатики.
Програма також має і недоліки. Наприклад, в графічному режимі малюнок фігури буде виходити за межі вікна, якщо значення вихідних параметрів більше за 25. В такому випадку користувачу доведеться збільшувати графічне вікно.
Тож, виконуючи завдання курсової роботи, я поліпшила свої навички проведення розрахунків в програмі MathCAD, роботи в MS Word; поглибила знання у сфері алгоритмізації та декомпозиції алгоритмів (MS Visio). Також покращила вміння розробляти програмний продукт засобами мови С у середовищі BorlandC++ з підключенням стандартних та спеціальних бібліотек, використанням функції користувача, текстового та графічного режимів.
Список використаної літератури
Керниган Б., Ритчи Д. Язык программирования Си.: Пер. с англ. - М.: Издательский дом «Вильямс», 2007. -304 с.:ил.- Парал.тит.англ
Березин Б.И., Березин С.Б. Начальный курс С и С++. – М.: Диалог-Мифи, 2003. -288 с.
Лекці з дисципліни «Інформаційні технології», викладач Дубчак О.В, 2013 р.
Додатки
Додаток 1. Блок-схема
Додаток 2. Вихідні та обчислені дані
Додаток 3. Креслення у графічному режимі
