0 / 0 / 0
Регистрация: 31.10.2008
Сообщений: 4
|
|
1 | |
Определить, являются ли эти числа длинами сторон треугольника31.10.2008, 20:56. Показов 11594. Ответов 12
Метки нет Все метки)
(
помогите пожалуйста решить задачу:
Вводятся тройки чисел. Определить, являются ли эти числа длинами сторон треугольника , а если являются, то какого? Программа завершает работу, если первое число равно 999. программу необходимо написать на паскале..если кто поможет, буду очень благодарен, тк сам не могу(
0
|
|
31.10.2008, 20:56 | |
Ответы с готовыми решениями:
12
Определить, являются ли числа длинами сторон треугольника
Введите 3 числа. Если они могут быть длинами сторон треугольника, вычислите его площадь |
Почетный модератор
64275 / 47574 / 32739
Регистрация: 18.05.2008
Сообщений: 115,182
|
|
31.10.2008, 22:25 | 2 |
Держи, товарищ. Предусмотрел вроде все случаи, если что не надо, выкинь.
Код
uses crt; var a,b,c:integer; function CosMax(max:integer):real; {функция определяет косинус большего угла} var x,y:integer; begin CosMax:=(a*a+b*b-max*max)/(2*a*b); end; function MaxX(a,b,c:integer):integer; {функция определяет самую длинную сторону, против которой лежит самый большой угол} var max:integer; begin if (a>b)and(b>c)then max:=a else if (b>a)and(b>c)then max:=b else if (c>a)and(c>b)then max:=c; MaxX:=max; end; begin {начало программы} clrscr; repeat {цикл повторений, пока не выполнится условие} writeln('Vvedite 3 chisla:'); readln(a); readln(b); readln(c); if (a+b<=c)or(a+c<=b)or(b+c<=a)then writeln('Это не треугольник!') {если одна из сторон больше двух других} else if (a=b)and(b=c)then writeln('Это равносторонний треугольник!') {все стороны равны} else if ((a=b)and(b<>c))or((a=c)and(b<>c))or((b=c)and(a<>c)) {две стороны равны} then writeln('Это равнобедренный треугольник!') else if CosMax(MaxX(a,b,c))>0 then writeln('Это остроугольный треугольник!') {если косинус угла против большей стороны > 0} else if CosMax(MaxX(a,b,c))<0 then writeln('Это тупоугольный треугольник!') {< 0} else if CosMax(MaxX(a,b,c))=0 then writeln('Это прямоугольный треугольник!'); {= 0} until a=999; readln end.
1
|
0 / 0 / 0
Регистрация: 31.10.2008
Сообщений: 4
|
|
31.10.2008, 22:27 [ТС] | 3 |
а разве начало не такое должно быть?
Код
program ...; uses crt; var a, s , k ,q: integer; begin clr scr; k:=0; s:=0; q:=0; repeat write('введите число') readln (A) if A <>999 then
0
|
Почетный модератор
64275 / 47574 / 32739
Регистрация: 18.05.2008
Сообщений: 115,182
|
|
31.10.2008, 22:41 | 4 |
Если тебе не надо определять остроугольный, или тупоугольный, или прямоугольный, это можно убрать. Если надо, то без косинуса большего угла, зная только длины сторон, это не определишь. По поводу ввода. Если написать как у тебя, т.е сразу определять А, то после этого надо писать, а если не 999, то есть писать лишний код. Как у меня ты вводишь тройки чисел, пока не надоест, потом вводишь 999 и еще 2 любых числа, программа сообщает о треугольнике и завершает работу.
0
|
0 / 0 / 0
Регистрация: 31.10.2008
Сообщений: 4
|
|
31.10.2008, 22:45 [ТС] | 5 |
ну а как сделать, чтобы Программа завершала работу, если первое число равно 999.?
0
|
(Yellow_Duck)
1261 / 130 / 15
Регистрация: 16.10.2008
Сообщений: 733
|
|
31.10.2008, 22:45 | 6 |
fuction - отгугли модульное программирование функции
0
|
Почетный модератор
64275 / 47574 / 32739
Регистрация: 18.05.2008
Сообщений: 115,182
|
|
31.10.2008, 22:53 | 7 |
Вот облегченный вариант.
Код
uses crt; var a,b,c:integer; begin clrscr; repeat writeln('Vvedite 3 chisla:'); readln(a); readln(b); readln(c); if (a+b<=c)or(a+c<=b)or(b+c<=a)then writeln('Это не треугольник!') else if (a=b)and(b=c)then writeln('Это равносторонний треугольник!') else if ((a=b)and(b<>c))or((a=c)and(b<>c))or((b=c)and(a<>c)) then writeln('Это равнобедренный треугольник!') else writeln('Это разносторонний треугольник!'); until a=999; readln end.
1
|
0 / 0 / 0
Регистрация: 31.10.2008
Сообщений: 4
|
|
31.10.2008, 23:36 [ТС] | 8 |
так тоже подходит, но как сделать, чтобы программа заканчивалась, если первое число равно 0?
0
|
Почетный модератор
64275 / 47574 / 32739
Регистрация: 18.05.2008
Сообщений: 115,182
|
|
31.10.2008, 23:40 | 9 |
Проверять уже поздно, думаю так:
Код
writeln('Vvedite 3 chisla:'); readln(a); if a=0 then halt;
0
|
(Yellow_Duck)
1261 / 130 / 15
Регистрация: 16.10.2008
Сообщений: 733
|
|
31.10.2008, 23:47 | 10 |
А как быть если b=0????? o_O
0
|
monteo
|
|
19.03.2009, 22:45 | 11 |
привет всем, вот похожая задачка. Какой вид будет иметь программа?
Проверить, каким является треугольник – равносторонним, равнобедренным или разносторонним (вводя длины сторон) |
Почетный модератор
64275 / 47574 / 32739
Регистрация: 18.05.2008
Сообщений: 115,182
|
||||||
19.03.2009, 22:54 | 12 | |||||
0
|
0 / 0 / 2
Регистрация: 17.09.2013
Сообщений: 56
|
|
22.12.2013, 13:42 | 13 |
Подскажи, а ты сам пишешь описание функций (то что в красных скобках), или есть какой-то софт ?
0
|
22.12.2013, 13:42 | |
Помогаю со студенческими работами здесь
13
На плоскости задан треугольник длинами своих сторон, найти наименьший из углов треугольника
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |