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

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

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

 
 Ответить  Открыть новую тему 
> Задача на нахождение площади треугольника, Подскажите, правильный ли у меня код.
сообщение
Сообщение #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 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #2


Гость






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


Пионер
**

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

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


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


--------------------
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #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 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #5


Гость






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


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

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

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


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


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


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


Пионер
**

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

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


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


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


Гость






найти площадь и периметр равностороннего треугольника, если известна одна из его длин?
 К началу страницы 
+ Ответить 
сообщение
Сообщение #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

 





- Текстовая версия 25.01.2022 11:32
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name