С Новым годом! Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 8, средняя оценка - 4.75
r00712
0 / 0 / 0
Регистрация: 07.09.2013
Сообщений: 128
#1

После ввода двух катетов найти гипотенузу и периметр - C++

07.09.2013, 12:32. Просмотров 1394. Ответов 13
Метки нет (Все метки)

Доброго времени суток всем, кто читает этот пост! Поступив в технические вуз с нулевым знанием С++ я обрек себя на долгое и мучительное самообразование..) Первое же задание я не могу выполнить без вашей помощи

Задание: Создать консольное приложение, которое после ввода двух катетов находит гипотенузу и периметр. (с гипотенузой я разобрался)

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
#include "stdafx.h"
#include <iostream>
#include <iomanip>
#include <math.h>
#include <conio.h>
using namespace std;
 
 
int _tmain(int argc, _TCHAR* argv[])
{
setlocale(LC_ALL,"RUS");    
 int p; // периметр
 int c; // гепотенуза 
 int a; // сторона а
 int b; // сторона b
      
cout << "Введите стороны а и b (см): ";
  cin >> a >> b;
  c=(a*a+b*b) ;
  float fl1 = c;
  float root;
  root = sqrt(fl1) ;
  cout<< "Гепотенуза равна:" <<root;
getch();
    return 0;
}
А вот если проделать такую же операцию с периметром (a+b+c), то консоль выдает совершенно изумительные цифры, никак не сходящиеся с периметром.. Как же это реализовать?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
07.09.2013, 12:32
Здравствуйте! Я подобрал для вас темы с ответами на вопрос После ввода двух катетов найти гипотенузу и периметр (C++):

Вычислить гипотенузу треугольника, зная длины двух катетов - C++
вычислить гипотенузу треугольника, зная длины двух катетов;

Вычислить периметр и площадь прямоугольного треугольника по длине двух катетов - C++
Помогите решить, пожалуйста. Вычислить периметр и площадь прямоугольного треугольника по длине двух катетов.

Вычислить периметр и площадь прямоугольного треугольника по длинам двух катетов - C++
Вычислить периметр и площадь прямоугольного треугольника по длинам двух катетов. Предусмотреть проверку вводимых данных на отрицательность.

Вычислить периметр и площать прямоугольного треугольника по длинам 2-х катетов - C++
Создать линейную программу для решения след. задачи. Вычислить периметр и площать прямоугольного треугольника по длинам 2-х катетов ...

Вычислить периметр и площадь прямоугольного треугольника с заданными длинами его катетов - C++
Вычислить периметр и площадь прямоугольного треугольника с заданными длинами его катетов.

Ссылки или указатели (Написать функцию , которая вычисляет гипотенузу, площадь и периметр прямоугольного треугольника) - C++
Написать функцию , которая вычисляет гипотенузу(корень квадратный из суммы квадратов катетов) , площадь и периметр прямоугольного...

13
xanderfomin
40 / 37 / 8
Регистрация: 25.10.2012
Сообщений: 112
07.09.2013, 12:39 #2
r00712, ты бы код для периметра выложил, что ли...
0
r00712
0 / 0 / 0
Регистрация: 07.09.2013
Сообщений: 128
07.09.2013, 12:45  [ТС] #3
Код p=a+b+c; Проблема в том и есть, если ввести перед формулой расчета cin >> a >> b>>c; то числа берутся новые, а не те, что надо
0
XRuZzz
Антикодер
692 / 598 / 29
Регистрация: 15.09.2012
Сообщений: 2,545
07.09.2013, 12:50 #4
Цитата Сообщение от r00712 Посмотреть сообщение
cin >> a >> b>>c;
а что мешает не писать эту строку?

Добавлено через 1 минуту
почему у вас в задании и в программе гипотенуза написано по разному?
0
r00712
0 / 0 / 0
Регистрация: 07.09.2013
Сообщений: 128
07.09.2013, 12:51  [ТС] #5
Цитата Сообщение от XRuZzz Посмотреть сообщение
а что мешает не писать эту строку?
Не записывая эту строку получается 1+2+2=8 Это я так, к примеру..
По разному написана, потому что орфография страдает=)
0
XRuZzz
Антикодер
692 / 598 / 29
Регистрация: 15.09.2012
Сообщений: 2,545
07.09.2013, 12:53 #6
Цитата Сообщение от r00712 Посмотреть сообщение
Не записывая эту строку получается 1+2+2=8 Это я так, к примеру..
и в каком коде у вас такое получается? можете написать пример
если
C++
1
2
3
a = 1; b = 2; c=2;
p=a+b+c;
cout<< p << endl;
то будет 5
0
r00712
0 / 0 / 0
Регистрация: 07.09.2013
Сообщений: 128
07.09.2013, 12:55  [ТС] #7
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
#include "stdafx.h"
#include <iostream>
#include <iomanip>
#include <math.h>
#include <conio.h>
using namespace std;
 
 
int _tmain(int argc, _TCHAR* argv[])
{
setlocale(LC_ALL,"RUS");    
 int p; // периметр
 int c; // гепотенуза 
int a; // сторона а
int b; // сторона b
      
cout << "Введите стороны а и b (см): ";
  cin >> a >> b;
  c=(a*a+b*b) ;
  float fl1 = c;
  float root;
  root = sqrt(fl1) ;
  cout<< "Гепотенуза равна:" <<root;
 
  p=a+b+c ;
  cout<< "Периметр равен:" <<p;
  getch();
 
 
    return 0;
}
0
XRuZzz
Антикодер
692 / 598 / 29
Регистрация: 15.09.2012
Сообщений: 2,545
07.09.2013, 12:59 #8
единственную проблему которую я вижу, это то что у вас типы разные
p, a, b - integer
c - float

скажем можно сделать p типа float

Добавлено через 2 минуты
ну и полезно знать что приведение типов можно сделать например так
C++
1
p=(float)a+float(b)+c ;
тут показано два разных способа.
0
r00712
0 / 0 / 0
Регистрация: 07.09.2013
Сообщений: 128
07.09.2013, 13:03  [ТС] #9
Увы...
0
xanderfomin
40 / 37 / 8
Регистрация: 25.10.2012
Сообщений: 112
07.09.2013, 13:06 #10
r00712, на самом деле, если p и c сделать float, то явное приведение типов уже не требуется.
C++
1
2
3
4
5
6
7
8
9
cout << "Введите стороны а и b (см): ";
int a = 0;
int b = 0;
cin >> a >> b;
float c = sqrt(a * a + b * b);
cout << "Гипотенуза равна:" << c;
float p = a + b + c;
cout << "Периметр равен:" << p;
getch();
В любом случае, если уж и приводить типы - лучше делать это в стиле С++.
0
r00712
0 / 0 / 0
Регистрация: 07.09.2013
Сообщений: 128
07.09.2013, 13:07  [ТС] #11
http:// s005.***********/i210/1309/05/e8be6b2eb79a.jpg
0
XRuZzz
Антикодер
692 / 598 / 29
Регистрация: 15.09.2012
Сообщений: 2,545
07.09.2013, 13:09 #12
а ну да правильно вы вместо гипотенузы использовали "c" а не root

у вас гипотенуза оставалась в root, а "c" это просто сумма квадратов катетов. найти эту проблему самостоятельно можно было написав cout << "c" в разных местах перед использованием формулы периметра.
0
reisal78
677 / 589 / 139
Регистрация: 28.04.2013
Сообщений: 1,678
07.09.2013, 13:16 #13
что я сам тут похоже зафтыкал )
0
B3op
0 / 0 / 0
Регистрация: 22.06.2013
Сообщений: 6
07.09.2013, 17:52 #14
Цитата Сообщение от r00712 Посмотреть сообщение
Кликните здесь для просмотра всего текста
Доброго времени суток всем, кто читает этот пост! Поступив в технические вуз с нулевым знанием С++ я обрек себя на долгое и мучительное самообразование..) Первое же задание я не могу выполнить без вашей помощи

Задание: Создать консольное приложение, которое после ввода двух катетов находит гипотенузу и периметр. (с гипотенузой я разобрался)

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
#include "stdafx.h"
#include <iostream>
#include <iomanip>
#include <math.h>
#include <conio.h>
using namespace std;
 
 
int _tmain(int argc, _TCHAR* argv[])
{
setlocale(LC_ALL,"RUS");    
 int p; // периметр
 int c; // гепотенуза 
 int a; // сторона а
 int b; // сторона b
      
cout << "Введите стороны а и b (см): ";
  cin >> a >> b;
  c=(a*a+b*b) ;
  float fl1 = c;
  float root;
  root = sqrt(fl1) ;
  cout<< "Гепотенуза равна:" <<root;
getch();
    return 0;
}



А вот если проделать такую же операцию с периметром (a+b+c), то консоль выдает совершенно изумительные цифры, никак не сходящиеся с периметром.. Как же это реализовать?
Если ты считаешь периметр как а+b+c то понятно в чем ошибка.
C++
1
2
  root = sqrt(fl1) ;
  cout<< "Гепотенуза равна:" <<root;
Гипотенуза у тебя присвоена переменной root,а с это просто сумма квадратов, значит чтобы посчитать периметр используй root , то есть будет не а+б+с должно быть что-то типа a+b+root и вот это уже будет периметр.Ну или убери root и просто допиши корень к "c", чтобы эта переменная была гипотенузой.
0
07.09.2013, 17:52
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
07.09.2013, 17:52
Привет! Вот еще темы с ответами:

Заданные длины двух катетов а b в прямоугольном треугольнике. - C++
Заданные длины двух катетов а b в прямоугольном треугольнике. Найти длину гипотенузы, площадь треугольника S и величину его углов\alpha...

В заданном прямоугольном треугольнике вычислить гипотенузу и величины двух углов в градусах - C++
#include &lt;iostream&gt; #include&lt;math.h&gt; using namespace std; int main () { float a,b,с,B,A; const float...

Найти гипотенузу и площадь треугольника - C++
Дано катеты прямоугольного треугольника найти его гипотенузу и площадь

Найти гипотенузу и площадь равнообедренного треугольника (по данным катетам) - C++
1 )Дан равнообедренный треугольник с катетами. Найти гипотенузу и площадь равнообедренного треугольника. 2) x1,y2,x2,y2 - координатные...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
14
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.