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

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

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

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

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

Закрытая тема
Ваша тема закрыта, почему это могло произойти? Возможно,
Нет наработок или кода, если нужно готовое решение - создайте тему в разделе Фриланс и оплатите работу.
Название темы включает слова - "Помогите", "Нужна помощь", "Срочно", "Пожалуйста".
Название темы слишком короткое или не отражает сути вашего вопроса.
Тема исчерпала себя, помните, один вопрос - одна тема
Прочитайте правила и заново правильно создайте тему.
 
Опции темы Поиск в этой теме
Старый 10.12.2013, 23:09   #11
spectrum988
Форумчанин
 
Аватар для spectrum988
 
Регистрация: 24.10.2013
Сообщений: 241
По умолчанию

Скажите,а как правильно мне в функции обьявить массив ?!
spectrum988 вне форума
Старый 10.12.2013, 23:44   #12
Smitt&Wesson
Старожил
 
Аватар для Smitt&Wesson
 
Регистрация: 31.05.2010
Сообщений: 13,543
По умолчанию

Цитата:
Сообщение от spectrum988 Посмотреть сообщение
Скажите,а как правильно мне в функции обьявить массив ?!
Вам нужно обявить или передатьв функцию?
Передать в функцию, можно через указатель: function(&arrey){}. После выполнения функции, результат будет в массиве.
Пиши пьяным, редактируй трезвым.
Справочник по алгоритмам С++ Builder
Smitt&Wesson вне форума
Старый 11.12.2013, 00:14   #13
spectrum988
Форумчанин
 
Аватар для spectrum988
 
Регистрация: 24.10.2013
Сообщений: 241
По умолчанию

Ну по условию задания мне нужно найти длинны сторон треугольника заданных координатами.А координаты состоят из массива[5] и я вот из-за массивам и путаюсь!Как мне быть?
spectrum988 вне форума
Старый 11.12.2013, 00:34   #14
type_Oleg
Старожил
 
Аватар для type_Oleg
 
Регистрация: 02.03.2008
Сообщений: 2,499
По умолчанию

Сказано " длину стороны определять в подпрограмме " ( в функции то есть). А то, что массивы передавать в функцию не сказано.
Функцию сделали, считает расстояние между точками, то есть длину любой стороны.
Даже оператор для расчета периметра приведен. В виде суммы трех возвращаемых функцией значений.
Все.. Вставляйте его в тело {} оператора for, где генерируются координаты, и вывод периметра туда же. И все.
Только в for - пока i<5. То есть 0,1,2,3,4 - всего 5 штук.

PS Это - если не надо еще и длины сторон выводить на экран. Но про это вроде не сказано. Значит не надо.

Последний раз редактировалось type_Oleg; 11.12.2013 в 00:43.
type_Oleg вне форума
Старый 11.12.2013, 01:11   #15
spectrum988
Форумчанин
 
Аватар для spectrum988
 
Регистрация: 24.10.2013
Сообщений: 241
По умолчанию

Код выглядит так,но видимо прототип не правильно обьявлен,да и переменую i нужно как-то по другому обьявлять.Не так ли ?!
Код:
#include <stdio.h>
#include <conio.h>
#include <iostream.h>
#include <stdlib.h>
double dlina(double xa,double ya,double xb, double yb,double xz, double yz);
void main()
{
int xa[5],ya[5],xb[5],yb[5],xz[5],yz[5],i,p;
for (i=0; i<5;i++)
{
xa[i]=rand()% 100;
ya[i]=rand()% 100;
xb[i]=rand()% 100;
yb[i]=rand()% 100;
xz[i]=rand()% 100;
yz[i]=rand()% 100;
cout <<"xa:";
cout << xa[i]<<' ';cout <<"\t ";
cout <<"ya:";
cout << ya[i]<<' '; cout <<"\t ";
cout <<"xb:";
cout << xb[i]<<' ';cout <<"\t ";
cout <<"yb:";
cout << yb[i]<<' '; cout <<"\t ";
cout <<"xz:";
cout << xz[i]<<' '; cout <<"\t ";
cout <<"yz:";
cout << yz[i]<<' '; cout <<"\n ";
cout<<"Perimetr treygolnika = "<<p<<endl;
p=dlina(xa[i],ya[i],xb[i],yb[i])+ dlina(xa[i],ya[i],xz[i],yz[i])+dlina(xb[i],yb[i],xz[i],yz[i]);
cout <<"\n ";
}
puts("\n Press any key ... ");
getch();
}
double dlina(double xa,double ya,double xb, double yb,double xz, double yz)
{
return sqrt(pow((xa[i]-xb[i]),2)+pow((ya[i]-yb[i]),2));
return sqrt(pow((xb[i]-xz[i]),2)+pow((yb[i]-yz[i]),2));
return sqrt(pow((xa[i]-xz[i]),2)+pow((ya[i]-yz[i]),2));
}
spectrum988 вне форума
Старый 11.12.2013, 01:22   #16
type_Oleg
Старожил
 
Аватар для type_Oleg
 
Регистрация: 02.03.2008
Сообщений: 2,499
По умолчанию

Вместо последних строк, начиная с double dlina... вот это.
Код:
double dlina(int x1, int y1, int x2, int y2)
{ return sqrt((x1-x2)*(x1-x2)+(y1-y2)*(y1-y2)); }
Вверху - тоже в dlina заменить в скобках double на int. Раз у вас координаты int.

Периметр p - не int, а double, иначе округлит.

Читайте про функции, формальные и фактические параметры.

Последний раз редактировалось type_Oleg; 11.12.2013 в 01:24.
type_Oleg вне форума
Старый 12.12.2013, 20:14   #17
spectrum988
Форумчанин
 
Аватар для spectrum988
 
Регистрация: 24.10.2013
Сообщений: 241
По умолчанию

Спасибо большое,а скажите пожалуйста чего периметр периметр первого выводит такое число
xa:0 ya:2 xb:0 yb:6 xz:7 yz:5

Perimetr treygolnika = 5.43231e-312

xa:5 ya:8 xb:6 yb:4 xz:8 yz:1

Perimetr treygolnika = 18.6868

С чем это может быть связано ?!Проверял результаты других периметров,то было все правильно!
spectrum988 вне форума
Старый 12.12.2013, 21:15   #18
type_Oleg
Старожил
 
Аватар для type_Oleg
 
Регистрация: 02.03.2008
Сообщений: 2,499
По умолчанию

Смещение какое -то в этих двух примерах.
Для первого треугольника правильный результат - в ответе второго.
type_Oleg вне форума
Старый 12.12.2013, 22:36   #19
spectrum988
Форумчанин
 
Аватар для spectrum988
 
Регистрация: 24.10.2013
Сообщений: 241
По умолчанию

Все уже разобрался,еще раз спасибо за помощь!
spectrum988 вне форума
Закрытая тема


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помогите разобраться с программой С++ Builder spectrum988 C++ Builder 10 25.10.2013 01:15
Управление STM8S-Discovery программой на C++ Builder ShevlyakoV Общие вопросы C/C++ 3 10.12.2012 19:26
Процесс после завершения работы с программой остается в диспетчере зедач с++ builder romec1 Помощь студентам 0 09.06.2010 14:07
Помогите с программой Borland C++ Builder 6.0 Vikelf Помощь студентам 1 15.05.2009 15:09