Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 05.03.2013, 03:18   #1
lisica198808
Пользователь
 
Регистрация: 06.11.2012
Сообщений: 64
Вопрос описание переменных в функциях.как правильно??

Заданы окружность(положением центра и радиусом), треугольник (координатами трех вершин). Определить – можно ли расположить треугольник внутри окружности.


для ввода-вывода на экран треугольника и окружности програмку сделала..
Код:
#include <graphics.h> // vkljy4it' opisanie grafi4eskich fynkcij Ñ/Ñ++ Borland'a
#include<stdio.h>
#include <conio.h>      // opisanie fynkcii vvoda-vivoda s konsoli(dlja getch())
#include <math.h> 


int okr()
{int a,b,r;
    printf("vvedite koordinati centra i radius okru*nosti: ");
 scanf("%d%d%d",&a, &b,&r); printf("\n");  
 
 circle(a,b,r);
}


int treyg()
{int x1,x2,x3,y1,y2,y3;

printf("vvedite koordinati vershin treygol'nika:\n");
printf("x=");
 scanf("%d%d",&x1, &y1);   printf("\n");
printf("y=");
 scanf("%d%d",&x2, &y2);   printf("\n"); 
 printf("z=");
 scanf("%d%d",&x3, &y3);   printf("\n");

moveto(x1,y1);
lineto(x2,y2);
lineto(x3,y3);//risuet linii - storoni treygol'nika
lineto(x1,y1);

}





int main ()
{
  int gdriver = DETECT, gmode;
  initgraph(&gdriver, &gmode, "");      
  setbkcolor(2);                                      
  setcolor(5);
  okr();
  treyg();
  
  getch();                 
  closegraph();        
  return 0;
}
и отдельно сделала програмку для условия при котором можно расположить треугольник внутри окружности. правда для координат x1,x2,x3,y1,y2,y3 брала произвольные значения..
воть
Код:
#include<stdio.h>
#include<stdlib.h>
#include<math.h>
#include<conio.h>
int main()
{int x1=45,x2=5,x3=20,y1=31,y2=10,y3=400;
int x21,x32,x13,y21,y32,y13;
double a1,b1,c1,p,s,r1,r;
r=5547388.2;printf("%.1f - radius zadannoj okru*nosti\n",r);
x21=x2-x1; y21=y2-y1;
x32=x3-x2; y32=y3-y2; //koordinati  storon treygol'nika
x13=x1-x3; y13=y1-y3;

a1=sqrt(pow(x21,2)+pow(y21,2));
b1=sqrt(pow(x32,2)+pow(y32,2));// dlinu storon treygol'nika
c1=sqrt(pow(x13,2)+pow(y13,2));

p=(a1+b1+c1)/2;                 //polyperimetr treygol'nika, dlja...

s=sqrt(p*(p-a1)*(p-b1)*(p-c1));//...formylu Gerona
                       //(dlja opredelenija ploshadi treygol'nika)

r1=(a1*b1*c1)/4*s;// opredeljaem radiys okry*nosti,kotoryjy mo*no opisat'
                    //vokrug dannogo treygol'nika
 printf("%.1f - radiys okry*nosti,kotoraja opisuvaet dannij treygol'nik\n",m);
 if (r>=r1)                   
     printf("treygol'nik mo*no raspolo*it' v dannoj okru*nosti\n");
     // dannaja okru*nost' opisivaet treygol'nik,esli r=m,
     // v dannoj okru*nocti mo*no raspolo*it' treygol'nik pri r>m
else printf("treygol'nik nel'zja raspolo*it' v dannoj okru*nosti\n");
 system("pause");
 return 0;

    }
а как правильно обьявить данное условие функцией основной программы незнаю

описать просто внутри данной функции в начале
Код:
okr();
treyg();
понимаю неправильно.. нужно чтоб из
Код:
okr()
считывалось значение радиуса в данную функцию, а из
Код:
treyg();
должны читаться для функции значения
Код:
int x1,x2,x3,y1,y2,y3;
обьявлять как глобальные переменные пробовала - выбивает какието ошибки на данные переменные.. а как правильно???
подскажите пожалуйста
lisica198808 вне форума Ответить с цитированием
Старый 05.03.2013, 11:51   #2
Abstraction
Старожил
 
Аватар для Abstraction
 
Регистрация: 25.10.2011
Сообщений: 3,178
По умолчанию

Цитата:
а как правильно обьявить данное условие функцией основной программы незнаю
1) main() в программе один.
2) Функции в норме должны "общаться" только через аргументы и возвращаемые значения.
3) Имеет смысл писать функцию, возвращающую радиус описанного вокруг окружности треугольника. Её заголовок:
Код:
double CircumscribedRadius(double x1, double y1, double x2, double y2, double x3, double y3);
Её использование:
Код:
double radius;
double x1, x2, x3, y1, y2, y3; //Обратите внимание - имена здесь могут быть и другими!
//...
if(radius >= CircumscribedRadius(x1, y1, x2, y2, x3, y3)){
  printf("Circle is big enough.\n");
} else {
  printf("Circle isn't big enough.\n");
}
4) Умножение и деление имеют одинаковый приоритет. Это:
Код:
r1=(a1*b1*c1)/4*s;
эквивалентно этому:
Код:
r1=((a1*b1*c1)/4)*s;
Вероятно, Вы ожидали иного результата.
Abstraction вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Паскаль.Описание лабораторной работы. Помиогите сделать описание проги .какая формула что делает. Elimay25 Паскаль, Turbo Pascal, PascalABC.NET 1 01.03.2012 16:34
C++ Как изменять значения закрытых данных переменных через функцию с открытыми данными?Правильно ли я понимаю создание объектов? Shadol Помощь студентам 4 14.02.2012 13:58
описание файловых переменных в турбо паскале 7.0 сергей12345 Помощь студентам 10 31.03.2011 18:25
Описание переменных Shift_sk Общие вопросы C/C++ 1 18.01.2011 20:06
Как сделать чтобы двумерный массив который создается в функции можно было использовать в других функциях Olya90 Помощь студентам 4 20.04.2009 18:39