
- •Реферат
- •Розділ 1 Формулювання умови задачі, вихідні дані та креслення геометричної фігури
- •Розрахункові формули та пояснення щодо способу вирішення завдання та хід розв’язання
- •Розділ 2 Обчислення з поясненнями параметрів заданої фігури для довільних вихідних даних (засобами MathCad)
- •Розділ 3 Опис програмного продукту
- •Текст програми:
- •Висновки
Текст програми:
#include<stdio.h>
#include<conio.h>
#include<math.h>
#include<graphics.h>
#include<stdlib.h>
#include<time.h>
char KKU(char ch);
main()
{
clrscr();
float a,b,c,P,p,S,h1,h2,h3,xa,ya,xb,yb,xc,yc,xm,ym,A,B,C;
clock_t start,end;
start=clock();
m:printf("Vvedit` znachennia storony a=");
scanf("%f",&a);
printf("\nVvedit` znachennia storony c=");
scanf("%f",&c);
printf("\nVvedit` znachennia perimetru P=");
scanf("%f",&P);
b=P-(a+c);
if(P<=a+c||a<=0||c<=0||a>b+c||b>a+c||c>a+b){printf("\nDanui trukytnyk ne isnue. Povtorit', bud' laska, vvedennua\n");goto m;}
p=P/2;
S=sqrt(p*(p-a)*(p-b)*(p-c));
h1=2*S/a;
h2=2*S/b;
h3=2*S/c;
A=acos((pow(b,2)+pow(c,2)-pow(a,2))/(2*b*c))*180/M_PI;
B=acos((pow(a,2)+pow(c,2)-pow(b,2))/(2*a*c))*180/M_PI;
C=acos((pow(a,2)+pow(b,2)-pow(c,2))/(2*b*a))*180/M_PI;
xa=100;
ya=350;
xb=xa+a*cos(C*M_PI/180);
yb=ya-a*sin(C*M_PI/180);
xc=xa+b;
yc=ya;
xm=xa+a*cos(C*M_PI/180);
ym=ya;
window(40,1,80,25);
textbackground(BROWN);
textcolor(CYAN);
clrscr();
KKU('=');
cprintf("\r\n Rezul`tat \n\r");
KKU('=');
cprintf("\r\n= Odna storona trukytnyka =%8.2f=\n\r",a);
KKU('=');
cprintf("\r\n= 2-aya storona trukytnyka =%8.2f=\n\r",b);
KKU('=');
cprintf("\r\n= 3-ya storona trukytnyka =%8.2f=\n\r",c);
KKU('=');
cprintf("\r\n= Perymetr trukytnyka =%8.2f=\n\r",P);
KKU('=');
cprintf("\r\n= Plosha trukyntyka =%8.2f=\n\r",S);
KKU('=');
cprintf("\r\n= Vysota 1 trukyntyka =%8.2f=\n\r",h1);
KKU('=');
cprintf("\r\n= Vysota 2 trukyntyka =%8.2f=\n\r",h2);
KKU('=');
cprintf("\r\n= Vysota 3 trukyntyka =%8.2f=\n\r",h3);
KKU('=');
cprintf("\r\n= Kut A =%8.2f=\n\r",A);
KKU('=');
cprintf("\r\n= Kut B =%8.2f=\n\r",B);
KKU('=');
cprintf("\r\n= Kut C =%8.2f=\n\r",C);
KKU('=');
end=clock();
cprintf("\r\nChas vykonannja roboty: %4.2f sekund",(end-start)/(CLK_TCK));
getch();
int driver=DETECT,gmode,errorcode;
initgraph(&driver,&gmode,"C:\\BORLANDC\\BGI");
setbkcolor(MAGENTA);
clearviewport();
setcolor(LIGHTBLUE);
setlinestyle(SOLID_LINE,1,THICK_WIDTH);
line(xa,ya,xb,yb);
line(xa,ya,xc,yc);
line(xb,yb,xc,yc);
line(xm,ym,xb,yb);
outtextxy(xa-5,ya+3,"A");
outtextxy(xb,yb-8,"B");
outtextxy(xc+5,yc+3,"C");
outtextxy(xm,ym+5,"M");
outtextxy(150,380,"AB=a,BC=c,AC=b");
outtextxy(140,410,"Vykonav student 141-oi grupy ICIT Kuznetsov Constantine");
outtextxy(200,430,"Variant #13");
getch();
closegraph();
return 0;}
char KKU(char ch)
{int i;
for(i=0;i<40;i++)cprintf("%c",ch);return 0;}
Висновки
Отже, дана програма зчитує уведені з клавіатури змінні (дві сторони та периметр) на обчислює наступні невідомі величини: третю сторону, площу, три висоти, три кути та координати вершин. Результати подано у вигляді таблиці у зафарбованому відповідним кольором вікні. Границі таблиці – символ «=». Програма виводить час виконання роботи під таблицею й малює графік с заданими умовами: блакитні суцільні товсті лінії на темно-рожевому фоні. Кожна вершина підписана. Графік адаптується під введені дані, але якщо вести такі, за якими трикутник не зможе існувати, програма попросить користувача ввести дані знову.
Дана робота є дуже результативною в плані порозуміння студентами логіки елементарного програмування. Це також є квінтесенцією усього навчального матеріалу за курс, тож, виконуючи дану курсову, студент вдосконалює свої навички не тільки у сфері програмного середовища Borland C++, а й покращує своє порозуміння програмного кодування взагалі.
Таким чином, виконуючи цю курсову роботу, я вдосконалив свої навички роботи з програмними середовищами MS Word (коректне, згідно з зазначеними правилами, оформлення), MS Visio (блок-схема до програми), MathCad (обчислення та перевірка вхідних значень) та Borland C++ (сама програма).
Список використаної літератури
Глушаков С. В., Коваль А. В., Смирнов С. В. Язык программирования C++. Учебный курс, 2001
Подбельский В. В., Фомин С.С. Программирование на языке Си, 2004
Лекці з дисципліни «Інформаційні технології», викладач Дубчак О.В, 2013 р.
Додатки
Додаток 1. Блок-схема
Додаток 2. User screen
Додаток 3. Креслення у графічному режимі