Технический форум
Вернуться   Технический форум > Программирование > Форум программистов > Помощь студентам


Ответ
 
Опции темы Опции просмотра
Старый 19.11.2013, 23:13   #1 (permalink)
zwenya
Новичок
 
Регистрация: 04.04.2013
Сообщений: 9
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию Треугольник С++

Сумма катетов прямоугольного треугольника постоянна и равна m. (x+y=m)
Написать функцию, которая определяет треугольник с наименьшей длиной гипотенузы. x и y представить в виде массивов из 1000 элементов

помогите,пожалуйста, с заданием. Заранее спасибо.
zwenya вне форума   Ответить с цитированием

Старый 19.11.2013, 23:13
Helpmaster
Member
 
Аватар для Helpmaster
 
Регистрация: 08.03.2016
Сообщений: 0

Тема довольно популярная и ранее создавалась на нашем форуме

Массив. В квадратном массиве обменять верхний треугольник
Четырехполюсник. Схема треугольник
Треугольник на Паскале
Что означает желтый треугольник с предупреждением на локальной сети

Старый 20.11.2013, 08:43   #2 (permalink)
grelly
падаван
 
Аватар для grelly
 
Регистрация: 23.01.2013
Сообщений: 739
Сказал(а) спасибо: 307
Поблагодарили 27 раз(а) в 3 сообщениях
Репутация: 10792
По умолчанию

как то так:
Код:
#include <math.h>
///////////////////////////////////////////////////////////////////////////////////////////
/// [in]
/// double m, double masX[], double masY[], int size //m - сумма катетов, masX и masY - массивы катетов, size - размер массивов
/// [out]
/// int& indexX, int& indexY // переменные, в которые записываются значения индексов массивов катетов
///////////////////////////////////////////////////////////////////////////////////////////
void CalcMinHyp(double m, double masX[], double masY[], int size, int& indexX, int& indexY)
{  
  indexX = -1;//после вызова функции сделать проверку что indexX и indexY не равны -1. если равны значит ошибка
  indexY = -1;
  double minHyp = -1, hyp;
  for(unsigned int i = 0; i < size; i++)
    for(unsigned int j = 0; j < size; j++)
    {
      if((masX[i] + masY[j]) == m)// проверку на размер массивов нужно сделать обязательно!!! иначе программа вылетит с исключением
      {
  	hyp = sqrt(masX[i] * masX[i] + masY[j] * masY[j]);//рассчет гипотенузы (для использования функции sqrt нужно включить файл math.h - см. первую строку)
	if(minHyp < 0 || hyp < minHyp)//первое условие для случая первого вычисления гипотенузы
	{
	  minHyp = hyp;
	  indexX = i;
	  indexY = j;
	}
      }
    }
}
grelly вне форума   Ответить с цитированием
Ads

Яндекс

Member
 
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
Ответ


Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Выкл.
HTML код Выкл.
Trackbacks are Вкл.
Pingbacks are Вкл.
Refbacks are Выкл.




Часовой пояс GMT +4, время: 15:45.

Powered by vBulletin® Version 6.2.5.
Copyright ©2000 - 2014, Jelsoft Enterprises Ltd.