Задача по Turbo Pascal
Модераторы: Duncon, Naeel Maqsudov, Игорь Акопян, Хыиуду
Привет всем! Помогите решить задачу
Найти периметр и площадь прямоугольной трапеции с основами a и b (a>b) и острым углом (угол задан в радианах).
Заранне спасибо
Найти периметр и площадь прямоугольной трапеции с основами a и b (a>b) и острым углом (угол задан в радианах).
Заранне спасибо
Если угол - r, то длина большего бедра l=(a-b)/cos(r), меньшего - t=l*sin(r), периметр - сумма длин сторон, а площадь S=t*(a+b)/2
Искусство программирования - заставить компьютер делать все то, что вам делать лень.
Для "спасибо" есть кнопка "Спасибо" в виде звездочки внизу под ником автора поста.
Для "спасибо" есть кнопка "Спасибо" в виде звездочки внизу под ником автора поста.
Хыиуду спасибо за помощь.
Помогите ище с одной задачкой
Найти значение ф-ции, если a изменяется от a1 до an с шагом da. В случае если вычесление значения функции невозможно, выдать соответствующее сообщение.
Вот мой код:
Проблема в том, что если (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
Как это можно исправить?
Помогите ище с одной задачкой

Найти значение ф-ции, если 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.
f=-1.1704247605E+12
f=-1.1718040903E+12
f=-1.1731001420E+12
f=-1.1682764279E+12
Как это можно исправить?
- Вложения
-
- f.JPG (3.04 КБ) 130 просмотров
Область определения: a+b>=1, |cos(b-c)|>=0.0001 (точность можно и изменить). Кстати, аргумент косинуса задается именно в радианах
Искусство программирования - заставить компьютер делать все то, что вам делать лень.
Для "спасибо" есть кнопка "Спасибо" в виде звездочки внизу под ником автора поста.
Для "спасибо" есть кнопка "Спасибо" в виде звездочки внизу под ником автора поста.
-----------
предупреждение! ИА
предупреждение! ИА
- annihilator
- Сообщения: 35
- Зарегистрирован: 27 ноя 2007, 00:22
LovesaN, насколько я помню, паскаль в градусах считать не умеет, только в радианах.... или я что-то не понимаю по формуле?
alex@net, на себя посмотри
alex@net, на себя посмотри
Вот представьте себе: чистое поле - ни кустика, ни деревца, и вдруг из-за угла выезжает танк!
alex@net - в бан
Тему в решите мне задачку
Тему в решите мне задачку
- Игорь Акопян
- Сообщения: 1440
- Зарегистрирован: 13 окт 2004, 17:11
- Откуда: СПБ
- Контактная информация:
нет, ибо автор что-то делает сам." писал(а):Тему в решите мне задачку

Уже как-то стыдно задавать такие ламерские вопросы, но...
В общем есть строка. Нужно вывести на экран все символы которые встречаются в строке 1 раз. Я хотел зделать так: удалить все повторяющиеся символы, а потом вывести все те что остались.
Весь прыкол в том что у меня не получается удалить первый символ s[n] с которым сравниваются все остальные s[c]
Какие будут идеи?
Заранее спасибо
В общем есть строка. Нужно вывести на экран все символы которые встречаются в строке 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]
Какие будут идеи?
Заранее спасибо