1.Среди N треугольников, у которых известна одна сторона и прилежащие к ней углы, определить равнобедренные, и среди них найти треугольник с самой большой стороной(решить через массивы)
2.1. Удалить в словах первое вхождение буквы ‘е’, если такое имеется(через строковые переменные)
Другие языки программирования и технологии
Free Pascal помогите кто шарит
1) Предположим, что углы заданы в градусах:
const Eps := 0.0001;
type Triangle = record
A, B, C, MaxL : Real;
Alpha, Betta, Gamma : Real;
end;
var M : array [1..MaxSize] of Triangle;
...
for N := 1 to Size do
begin
Write('Введите значения треугольника ', N);
Write('Сторона = '); ReadLn(M[N].A);
WriteLn('1 прилегающий угол = '); ReadLn(M[N].Betta);
WriteLn('2 прилегающий угол = '); ReadLn(M[N].Gamma);
{ Остальные значения треугольника рассчитываем }
M[N].Alpha := 180 - M[N].Betta - M[N].Gamma;
M[N].B := M[N].A * sin(Pi * M[N].Betta / 180) / Sin(Pi * M[N].Alpha / 180);
M[N].C := M[N].A * sin(Pi * M[N].Gamma / 180) / Sin(Pi * M[N].Alpha / 180);
Max := M[N].A; if Max < M[N].B then Max := M[N].B; if Max < M[N].C then Max := M[N].C;
M[N].MaxL := Max;
end;
Kol := 0;
Max := 0;
for N := 1 to Size do
if (Abs(M[N].A - M[N].B) < Eps) or (Abs(M[N].A - M[N].C) < Eps) or (Abs(M[N].B - M[N].C) < Eps) then begin
Inc(Kol); if Max = 0 then Max := N else if M[Max].MaxL < M[N] then Max := N; end;
WriteLn('Равнобедренных ', Kol);
if Max > 0 then WriteLn('С наибольшей стороной ', Max);
2) Вообще ни о чём:
if Pos('e', Str) > 0 then Delete(Str, Pos('e', Str), 1);
const Eps := 0.0001;
type Triangle = record
A, B, C, MaxL : Real;
Alpha, Betta, Gamma : Real;
end;
var M : array [1..MaxSize] of Triangle;
...
for N := 1 to Size do
begin
Write('Введите значения треугольника ', N);
Write('Сторона = '); ReadLn(M[N].A);
WriteLn('1 прилегающий угол = '); ReadLn(M[N].Betta);
WriteLn('2 прилегающий угол = '); ReadLn(M[N].Gamma);
{ Остальные значения треугольника рассчитываем }
M[N].Alpha := 180 - M[N].Betta - M[N].Gamma;
M[N].B := M[N].A * sin(Pi * M[N].Betta / 180) / Sin(Pi * M[N].Alpha / 180);
M[N].C := M[N].A * sin(Pi * M[N].Gamma / 180) / Sin(Pi * M[N].Alpha / 180);
Max := M[N].A; if Max < M[N].B then Max := M[N].B; if Max < M[N].C then Max := M[N].C;
M[N].MaxL := Max;
end;
Kol := 0;
Max := 0;
for N := 1 to Size do
if (Abs(M[N].A - M[N].B) < Eps) or (Abs(M[N].A - M[N].C) < Eps) or (Abs(M[N].B - M[N].C) < Eps) then begin
Inc(Kol); if Max = 0 then Max := N else if M[Max].MaxL < M[N] then Max := N; end;
WriteLn('Равнобедренных ', Kol);
if Max > 0 then WriteLn('С наибольшей стороной ', Max);
2) Вообще ни о чём:
if Pos('e', Str) > 0 then Delete(Str, Pos('e', Str), 1);
Помогу, но не бесплатно.
Похожие вопросы
- Вопрос про Free Pascal!!! помогите плз!
- free pascal. пожалуйста скиньте код конкулятора для free pascal
- Объясните пожалуйста вот этот алгоритм в Free Pascal
- Какая разница между Turbo Pascal и free Pascal?
- В чем заключается отличия Turbo Pascal от Free Pascal&
- Значит такой вопрос. Для чего нужен компилятор Free pascal. Не я понимаю что это язык программирования и...
- В чём разница между free pascal и pascal
- В чём отличия Pascal ABC, Free Pascal, Lazarus, Delphi?
- Помогите написать программу на Free pascal
- Кто шарит в Borland Pascal помогите написать прогу