IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

> Задача на нахождение площади треугольника, Подскажите, правильный ли у меня код.
Merlin
сообщение 26.10.2005 23:28
Сообщение #1


Пионер
**

Группа: Пользователи
Сообщений: 114
Пол: Мужской
Реальное имя: Ден

Репутация: -  0  +


Введите три числа. Если они могут быть сторонами равностороннего треугольника, то найдите его периметр и площадь.
Код

Program tr;
 var
   S,P,a,b,c,alfa: real;
begin
  repeat
write('ввод a,b');
readln(a,b);
 until (a=b) and (a>0) and (b>0);
 repeat
write('ввод c');
readln(c);
 until ( c>0) and (a=c);
 repeat
write('ввод alfa');
readln(alfa);
until(alfa>0) and (alfa<180);
  alfa:=alfa*pi/180;
P:=a+b+c;
S:=1/2*a*b*sin(alfa);
writeln('площадь треугольника S=' , S:8:3);
writeln('периметр треугльника P=' , P:8:3);
 end.


--------------------
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов(1 - 10)
volvo
сообщение 26.10.2005 23:54
Сообщение #2


Гость






Merlin,
Цитата
Введите три числа. Если они могут быть сторонами равностороннего треугольника, то найдите его периметр и площадь.
А ты что делаешь? Ждешь ввода трех чисел, которые точно будут сторонами равностороннего треугольника. Так не пойдет ...
 К началу страницы 
+ Ответить 
Merlin
сообщение 27.10.2005 0:21
Сообщение #3


Пионер
**

Группа: Пользователи
Сообщений: 114
Пол: Мужской
Реальное имя: Ден

Репутация: -  0  +


Это надо делать через " IF"


--------------------
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
klem4
сообщение 27.10.2005 6:44
Сообщение #4


Perl. Just code it!
******

Группа: Модераторы
Сообщений: 4 100
Пол: Мужской
Реальное имя: Андрей

Репутация: -  44  +


Ну так и сделай. IF стороны у треугольника рывны THEN считаем площадь.
Ты это имел в виду ? Ну а ввести наверняка, чтобы это был равносторонний можно например вот так :
repeat
readln(a,b,c);
until (a=b)and(b=c);


М
А именно:
Если они могут быть сторонами равностороннего треугольника, то найдите его периметр и площадь.
Altair



--------------------
perl -e 'print for (map{chr(hex)}("4861707079204E6577205965617221"=~/(.{2})/g)), "\n";'
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
volvo
сообщение 27.10.2005 9:07
Сообщение #5


Гость






To: klem4
Опять не пойдет... Внимательно читай задание...
Вот так надо:
writeln(' Ввод A, B, C: ');
readln( A, B, C );
if ( A = B ) and ( A = C ) then {ищем периметр и площадь...}
 К началу страницы 
+ Ответить 
klem4
сообщение 27.10.2005 15:02
Сообщение #6


Perl. Just code it!
******

Группа: Модераторы
Сообщений: 4 100
Пол: Мужской
Реальное имя: Андрей

Репутация: -  44  +


Ну ведь я так и написал :
Цитата(klem4)
IF стороны у треугольника рывны THEN считаем площадь.


а код который я привел служит для того чтобы пользователь мог ввести только такие стороны, которые бы являлись сторонами равностороннего треугольника.Может это и не нужно :p2:


--------------------
perl -e 'print for (map{chr(hex)}("4861707079204E6577205965617221"=~/(.{2})/g)), "\n";'
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Merlin
сообщение 7.11.2005 20:27
Сообщение #7


Пионер
**

Группа: Пользователи
Сообщений: 114
Пол: Мужской
Реальное имя: Ден

Репутация: -  0  +


Введите три числа. Если они могут быть сторонами равностороннего треугольника, то найдите его периметр и площадь.



Подскажите почему вылезает ошибка, может я в операторе (do begin ) что то не то сделал ?


Program tr;
Var a,b,c,P,S:real;
begin
repeat
writeln('Введите три стороны треугольника');
readln(a,b,c);
until (a>0) and (b>0) and (c>0);
if (a=b) and (a=c) then do begin
writeln('Треугольник равносторонний ');
P:=a+b+c;
S:1/2*a*b*sin 60;
else writeln('Треугольник не равносторонний, повторите ввод');
writeln('площадь треугольника S=' , S:8:3);
writeln('периметр треугльника P=' , P:8:3);
end;
readln;
end.


--------------------
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
volvo
сообщение 7.11.2005 20:35
Сообщение #8


Гость






Цитата
может я в операторе (do begin ) что то не то сделал ?

Так там вообще Do не нужно... Убери его...
if (a=b) and (a=c) then {do} begin


Кстати, у тебя структура программы нарушена... Вот так делай:
begin
repeat
writeln('Введите три стороны треугольника');
readln(a,b,c);
until (a>0) and (b>0) and (c>0);

if (a=b) and (a=c) then begin
writeln('Треугольник равносторонний ');
P:=a+b+c;
S:=1/2*a*b*sin(60);
writeln('площадь треугольника S=' , S:8:3);
writeln('периметр треугльника P=' , P:8:3);
end
else writeln('Треугольник не равносторонний, повторите ввод');

readln;
end.


Хотя я бы НЕ советовал сравнивать числа типа Real через "=" ... Можешь получить неожиданные результаты blum.gif
 К началу страницы 
+ Ответить 
Merlin
сообщение 7.11.2005 21:45
Сообщение #9


Пионер
**

Группа: Пользователи
Сообщений: 114
Пол: Мужской
Реальное имя: Ден

Репутация: -  0  +


Спасибо за всю помощь, вроде со всеми задачами справился... good.gif


--------------------
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Гость
сообщение 15.01.2007 13:19
Сообщение #10


Гость






найти площадь и периметр равностороннего треугольника, если известна одна из его длин?
 К началу страницы 
+ Ответить 
klem4
сообщение 15.01.2007 13:53
Сообщение #11


Perl. Just code it!
******

Группа: Модераторы
Сообщений: 4 100
Пол: Мужской
Реальное имя: Андрей

Репутация: -  44  +


blink.gif

P = 3 * длина стороны
S = длина стороны в квадрате умножить на квадратный корень из 3 и всё разделить на 4.


--------------------
perl -e 'print for (map{chr(hex)}("4861707079204E6577205965617221"=~/(.{2})/g)), "\n";'
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



- Текстовая версия 20.07.2025 2:22
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"