Домашние задания: Информатика

Помогите с информатикой

Пожалуйста не спрашивайте..
Помогите понять что это а по возможности решить ведь оказывается это задача
"Пожалуйста не спрашивайте.." - не спрашивать не получится. Но это - позже, а сперва объяснение:

"а по возможности решить" - вот перед этим я и задам вопрос, а пока:

"Помогите понять что это" - это - задание. Нужно найти периметр и площадь фигур(ы). Что именно - вопрос не ко мне - не я писАл задание. Тут либо треугольника, либо параллелограмма, либо и треугольника и параллелограмма. Значения h и Side вводятся вручную с клавиатуры (о чем свидетельствует слово "input" - т.е., в переводе на русский язык, "ввод"). Ну а ниже даны формулы, по которым вычислять. Т.е. S=a*h (площадь фигуры), а P=2*(a+b) - периметр фигуры.

Ну а теперь, собственно вопрос: т.к. в задании сказано ввести значения, то задание может предполагать составление блок-схемы и/или написание программы. Что именно из этого нужно? (Т.е. что проходите, что конкретно задано, вернее, что именно делать с этим листочком). Ну а если программу написать, то на каком языке программирования (какой проходите)? - Нет, программе-то, конечно, без разницы, на каком языке программирования она написана (а их (языков программирования) существует около 40, и хоть не все из них распространены широко в обучении, всё равно изучаются 5 или 6 языков программирования (1 из 5, точнее)), а вот учитель/преподаватель может спросить, с чего это вдруг программа написана на этом языке программирования, а не на том, который он(а) преподает. Скажу сразу, я (да и наверняка не только я, но и многие из Ваших помощников) не знаю всех языков программирования, так что максимум смогу помочь с теми, которые знаю.

Так что уточняйте, а я попробую в комментариях к этому ответу Вам помочь. Предупреждаю сразу - процесс не очень быстрый.
Madina Dairova
Madina Dairova
43 559
Лучший ответ
Madina Dairova Итак, формулы даны для параллелограмма. Но для вычисления периметра параллелограмма нужно знать 2 его стороны, а дана лишь 1 (она же Side, она же a), если я правильно понял. И дана высота (h). Если площадь можно вычислить сразу S=a*h, то для периметра нужно найти сторону b. Для этого сперва рассмотрим картинку: высота образует треугольник. А для нахождения 2-ой стороны параллелограмма есть формула: высота делить на синус угла (см. прикрепленное изображение):Согласно о теореме о сумме углов треугольника, собственно, сумма углов треугольника =180 градусов.
Madina Dairova Т.к. высота образует прямой угол (90 градусов), то сумма остальных его углов так же = 90 градусов (т.к. 180-90=90). 90=60+30. Т.к. чем острее угол, тем меньше его размер в градусах, то нетрудно догадаться по картинке, что нужный нам угол для вычисления составляет 60 градусов (или же 1,0472 радиан или же 66.(6) град). Согласно таблицам Брадиса, синус 60 градусов = √3, деленный на 2. Т.е. √3/2. Сторону же (катет) прямоугольного треугольника вычислим по теореме Пифагора, согласно которой, квадрат гипотенузы равен сумме квадратов катетов.

Ну а теперь, собственно, приступаем к написанию программы.
Madina Dairova Вот программа на Паскале (Pascal):
 Program P1; 
uses crt;
var h, side: real;
begin
clrscr;
writeln ('Введите с клавиатуры значения стороны и высоты параллелограмма (только числа), после ввода каждого значения нажимайте клавишу Enter. При вводе дробных значений целую часть от дробной отделяйте точкой, а не запятой.');
write ('Введите сторону параллелограмма: ');
readln (side);
write ('Введите высоту параллелограмма: ');
readln (h);
writeln ('Pp=', 2*(side+(h/(sqrt (3)/2))));
writeln ('Sp=', side*h);
writeln ('Pt=', sqrt (sqr (h/(sqrt (3)/2))-sqr (h))+h+(h/(sqrt (3)/2)));
writeln ('St=', (sqrt (sqr (h/(sqrt (3)/2))-sqr (h))*h)/2); //
write ('Программа завершена. Для выхода нажмите клавишу Enter.');
readkey;
end.
Madina Dairova В той программе (и вообще в моих программах к этому заданию): Pp - периметр параллелограмма, Sp - площадь параллелограмма, Pt - периметр треугольника, St - площадь треугольника. Да, двойную дробь ("//") там уберите в строке
 writeln ('St=', (sqrt (sqr (h/(sqrt (3)/2))-sqr (h))*h)/2); // 
Т.е. строку исправьте (замените) на:
 writeln ('St=', (sqrt (sqr (h/(sqrt (3)/2))-sqr (h))*h)/2); 
Madina Dairova Программа на C++:
 #include  
#include
using namespace std;
int main()
{
std:: setlocale (LC_ALL, "RUS");
float h, side;
cout
Madina Dairova Продолжение программы на C++:
 cout							
Madina Dairova А на Python возможно 2 варианта:

1-ый:
 import math 
print ("Введите с клавиатуры значения стороны и высоты параллелограмма (только числа), после ввода каждого значения нажимайте клавишу Enter. При вводе дробных значений целую часть от дробной отделяйте точкой, а не запятой.")
side=float (input ("Введите сторону параллелограмма: "))
h=float (input ("Введите высоту параллелограмма: "))
print ("Pp=", 2*(side+(h/(math.sqrt (3)/2))))
print ("Sp=", side*h)
print ("Pt=", math.sqrt ((h/(math.sqrt (3)/2))**2-h**2)+h+(h/(math.sqrt (3)/2)))
print ("St=", (math.sqrt ((h/(math.sqrt (3)/2))**2-h**2)*h)/2)
Madina Dairova 2-ой вариант программы на Python:
 print ("Введите с клавиатуры значения стороны и высоты параллелограмма (только числа), после ввода каждого значения нажимайте клавишу Enter. При вводе дробных значений целую часть от дробной отделяйте точкой, а не запятой.") 
side=float (input ("Введите сторону параллелограмма: "))
h=float (input ("Введите высоту параллелограмма: "))
print ("Pp=", 2*(side+(h/(3**0.5/2))))
print ("Sp=", side*h)
print ("Pt=", ((h/(3**0.5/2))**2-h**2)**0.5+h+(h/(3**0.5/2)))
print ("St=", (((h/(3**0.5/2))**2-h**2)**0.5*h)/2)