Страница 1 из 3

Задача по Turbo Pascal

Добавлено: 22 ноя 2007, 21:53
LovesaN
Привет всем! Помогите решить задачу
Найти периметр и площадь прямоугольной трапеции с основами a и b (a>b) и острым углом (угол задан в радианах).
Заранне спасибо

Re: Задача по Turbo Pascal

Добавлено: 23 ноя 2007, 11:03
Хыиуду
Если угол - r, то длина большего бедра l=(a-b)/cos(r), меньшего - t=l*sin(r), периметр - сумма длин сторон, а площадь S=t*(a+b)/2

Re: Задача по Turbo Pascal

Добавлено: 24 ноя 2007, 14:56
LovesaN
Хыиуду спасибо за помощь.

Помогите ище с одной задачкой :(
Найти значение ф-ции, если a изменяется от a1 до an с шагом da. В случае если вычесление значения функции невозможно, выдать соответствующее сообщение.


Вот мой код:

Код: Выделить всё

program func;

var
a,an,ak,da:real;
b,c,f:real;
x:real;
begin
write('an: ');  //начальное значение а
readln(an);
write('ak: ');  //конечное значение а
readln(ak);
write('da: ');  //шаг с каким изменяется а
readln(da);
write('b: ');   //число b
readln(b);
write('c: ');   //число с
readln(c);

a:=0;
f:=0;
a:=an;
while (a<=ak) do
begin
f:=exp(a*ln(b*c))+sqrt((ln(a+b)))/(cos(b-c)); 
writeln('a=',a,' f=',f);
a:=a+da;
end;

end.
Проблема в том, что если (b-c)=90, то cos должен быть 0, но получается совсем друго е число. Пробывал (b-c) переводить в радианы, значение функции получается слишком маленькое, например при an:=2 ak:=5 da:=1 b:=91 c:=1 результаты следущие:
f=-1.1704247605E+12
f=-1.1718040903E+12
f=-1.1731001420E+12
f=-1.1682764279E+12

Как это можно исправить?

Re: Задача по Turbo Pascal

Добавлено: 24 ноя 2007, 15:13
Хыиуду
Область определения: a+b>=1, |cos(b-c)|>=0.0001 (точность можно и изменить). Кстати, аргумент косинуса задается именно в радианах

Re: Задача по Turbo Pascal

Добавлено: 24 ноя 2007, 15:23
LovesaN
Хыиуду, спасибо ище раз :)

Re: Задача по Turbo Pascal

Добавлено: 24 ноя 2007, 19:05
alex@net
-----------

предупреждение! ИА

Re: Задача по Turbo Pascal

Добавлено: 27 ноя 2007, 14:02
annihilator
LovesaN, насколько я помню, паскаль в градусах считать не умеет, только в радианах.... или я что-то не понимаю по формуле?
alex@net, на себя посмотри

Re: Задача по Turbo Pascal

Добавлено: 27 ноя 2007, 16:13
Duncon
alex@net - в бан
Тему в решите мне задачку

Re: Задача по Turbo Pascal

Добавлено: 27 ноя 2007, 17:07
Игорь Акопян
&quot писал(а):Тему в решите мне задачку
нет, ибо автор что-то делает сам.

Re: Задача по Turbo Pascal

Добавлено: 28 ноя 2007, 22:08
LovesaN
Уже как-то стыдно задавать такие ламерские вопросы, но...

В общем есть строка. Нужно вывести на экран все символы которые встречаются в строке 1 раз. Я хотел зделать так: удалить все повторяющиеся символы, а потом вывести все те что остались.

Код: Выделить всё

label 1;
var
n,c:integer;
s:string;

begin
s:=edit1.Text;
for n:=1 to length(s)-1 do
1:for c:=n+1 to length(s) do
begin
if s[n]=s[c] then
begin
delete(s,c,1);
goto 1;

end;
end;
label1.Caption:=s;
end;

Весь прыкол в том что у меня не получается удалить первый символ s[n] с которым сравниваются все остальные s[c]

Какие будут идеи?
Заранее спасибо