Вопрос № 162753: Решите пожалуйста задачу: Написать программу для вычисления определенного интеграла указанными методами. ²∙⁴ 1 ∫ ——————―― dx , метод прямоугольников, Симпсона. 0.8 ...
Вопрос № 162755: дан одномерный массив, состоящий из n вещественных элементов. 1) вычислить произведение элементов массива, расположенных после максимального элемента(задачу решить за один
проход по массиву) 2) преобразовать массив таким образом, чтобы сначала ...Вопрос № 162757: помогите пожалуйста решить задачку из ЕГЭ!!! при написании программы, вводящей последовательность из n целых чисел и печатающих максимальную длину убывающего участка, программист допустил ошибку. приведите пример данных, демонстрирующих неверный р...
Вопрос № 162.753
Решите пожалуйста задачу: Написать программу для вычисления определенного интеграла указанными методами.
Отправлен: 19.03.2009, 15:36
Вопрос задал: Андреев Андрей Андреивич
Всего ответов: 1 Мини-форум вопроса >>> (сообщений: 1)
Отвечает: Micren
Здравствуйте, Андреев Андрей Андреивич! Программа:
Код:
program Pascal_162753;
type TIFunc=function (x:double):double; { Интегрируемая функция } function f(x:double):double; begin f:=1.0/sqrt(2*x*x+3); end; { Метод прямоугольников } function IRect(IFunc:TIFunc;A,B:double;Intervals:word):double; var sum,step:double; begin sum:=0; step:=(B-A)/Intervals; A:=A+step/2; while
A<B do begin sum:=sum+step*IFunc(A); A:=A+step; end; IRect:=sum; end; { Метод симпсона } function ISympson(IFunc:TIFunc;A,B:double;Intervals:word):double; var sum,step:double; i:LongInt; function x(i:LongInt):double; begin x:=A+step*i; end; begin step:=(B-A)/2/Inter
vals; sum:=IFunc(x(1))*4; for i := 1 to Intervals-1 do sum:=sum+IFunc(x(i*2+1))*4+IFunc(x(i*2))*2; ISympson:=(IFunc(x(0))+IFunc(x(2*Intervals))+sum)*step/3; end;
var A,B:double; Intervals:word; begin Write('A=');ReadLn(A); Write('B=');ReadLn(B); Write('Intervals=');ReadLn(Intervals); WriteLn('Rectangles=',IRect(@f,A,B,Intervals):0:5); WriteLn('Sympson=',ISympson(@f,A,B,Intervals):0:5); ReadLn; end.
По просьбе автора код исправлен
--------
∙ Отредактировал: Виктор Пырлик, Профессионал
∙ Дата редактирования: 23.03.2009, 06:42 (время московское)
Ответ отправил: Micren (статус: Студент)
Ответ отправлен: 19.03.2009, 16:41
Как сказать этому эксперту "спасибо"?
Отправить SMS
#thank 245626 на номер 1151 (Россия) | Еще номера >>
Вам помогли? Пожалуйста, поблагодарите эксперта за это!
Вопрос № 162.755
дан одномерный массив, состоящий из n вещественных элементов. 1) вычислить произведение элементов массива, расположенных после максимального элемента(задачу решить за один проход по массиву) 2) преобразовать массив таким образом, чтобы сначала располагались все элементы, модуль которых не превышает 1, а потом - все остальные.
Отвечает: Пупорев Юрий Борисович
Здравствуйте, сальникова светлана! Решение задачи с пояснениями в приложении.
Приложение:
Ответ отправил: Пупорев Юрий Борисович (статус: Специалист)
Ответ отправлен: 19.03.2009, 16:51
Как сказать этому эксперту "спасибо"?
Отправить SMS
#thank 245628 на номер 1151 (Россия) | Еще номера >>
Вам помогли? Пожалуйста, поблагодарите эксперта за это!
Отвечает: Micren
Здравствуйте, сальникова светлана! Программа с динамическим массивом.
Код:
program Pascal_162755; var arr,aptr,aptr2:^double; p,max,tmp:double; N,i:word; begin { Вводим количество элементов } Write('N=');ReadLn(N); { Выделяем память } GetMem(arr,N*sizeof(double)); {
Вводим массив } aptr:=arr; for i := 1 to N do begin Write('arr[',i,']=');ReadLn(aptr^); Inc(aptr); end; { Ищем произведение элементов после максимального } aptr:=arr; max:=aptr^; p:=1; Inc(aptr); for i := 2 to N do begin if aptr^>max then begin max:=aptr^; p:=1; end else p:=p*aptr^; Inc(aptr); end; WriteLn('P=',p); { Переставляем эле
меньы согласно условия } aptr:=arr;aptr2:=arr;Inc(aptr2,N-1); while aptr<>aptr2 do begin { Ищем неправильно расположенные элементы } while (aptr<>aptr2) and (abs(aptr^)<=1) do Inc(aptr); while (aptr<>aptr2) and (abs(aptr2^)>1) do Dec(aptr2); { Переставляем их } tmp:=aptr^; aptr^:=aptr2^; aptr2^:=tmp; end; { Выводим получившийся массив } WriteLn('Result array:'); aptr:=arr; for i := 1 to N do begin Write(aptr^:9,'
'); Inc(aptr); end; { Освобождаем память } FreeMem(arr); ReadLn; end.
Ответ отправил: Micren (статус: Студент)
Ответ отправлен: 19.03.2009, 17:30
Как сказать этому эксперту "спасибо"?
Отправить SMS
#thank 245633 на номер 1151 (Россия) | Еще номера >>
Вам помогли? Пожалуйста, поблагодарите эксперта за это!
Вопрос № 162.757
помогите пожалуйста решить задачку из ЕГЭ!!! при написании программы, вводящей последовательность из n целых чисел и печатающих максимальную длину убывающего участка, программист допустил ошибку. приведите пример данных, демонстрирующих неверный результат. исправьте программу, чтобы она работала при любом наборе данных
* Стоимость одного СМС-сообщения от 7.15 руб. и зависит от оператора сотовой связи.
(полный список тарифов)
** При ошибочном вводе номера ответа или текста #thank услуга считается оказанной, денежные средства не возвращаются.
*** Сумма выплаты эксперту-автору ответа расчитывается из суммы перечислений на портал от биллинговой компании.