Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.67/9: Рейтинг темы: голосов - 9, средняя оценка - 4.67
r00712
0 / 0 / 0
Регистрация: 07.09.2013
Сообщений: 140
#1

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

07.09.2013, 12:32. Просмотров 1596. Ответов 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
Ответы с готовыми решениями:

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

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

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

По длинам катетов прямоугольного треугольника найти его периметр и площадь
Даны длины катетов прямоугольного треугольника. Найти его периметр и площадь....

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

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

Добавлено через 1 минуту
почему у вас в задании и в программе гипотенуза написано по разному?
0
r00712
0 / 0 / 0
Регистрация: 07.09.2013
Сообщений: 140
07.09.2013, 12:51  [ТС] #5
Цитата Сообщение от XRuZzz Посмотреть сообщение
а что мешает не писать эту строку?
Не записывая эту строку получается 1+2+2=8 Это я так, к примеру..
По разному написана, потому что орфография страдает=)
0
XRuZzz
Антикодер
1491 / 658 / 36
Регистрация: 15.09.2012
Сообщений: 2,666
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
Сообщений: 140
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
Антикодер
1491 / 658 / 36
Регистрация: 15.09.2012
Сообщений: 2,666
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
Сообщений: 140
07.09.2013, 13:03  [ТС] #9
Увы...
0
xanderfomin
40 / 37 / 15
Регистрация: 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
Сообщений: 140
07.09.2013, 13:07  [ТС] #11
http:// s005.***********/i210/1309/05/e8be6b2eb79a.jpg
0
XRuZzz
Антикодер
1491 / 658 / 36
Регистрация: 15.09.2012
Сообщений: 2,666
07.09.2013, 13:09 #12
а ну да правильно вы вместо гипотенузы использовали "c" а не root

у вас гипотенуза оставалась в root, а "c" это просто сумма квадратов катетов. найти эту проблему самостоятельно можно было написав cout << "c" в разных местах перед использованием формулы периметра.
0
reisal78
894 / 645 / 218
Регистрация: 28.04.2013
Сообщений: 1,845
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 в прямоугольном треугольнике.
Заданные длины двух катетов а b в прямоугольном треугольнике. Найти длину...


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

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

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