Форум «Всё о Паскале» _ Задачи _ Редактирование интеграла и символы
Автор: }0pa 29.09.2006 2:47
1. Вот это функция вычисляющая определенный интеграл методом правых прямоугольников. Преподаватель сказал, что можно испраить немного эту функцию, чтобы получить оптимальный вариант. Как это сделать?
Код
function prav(a,b:real;n:integer):real; var s,x:real; dx:real; xb:real; i:integer; begin dx:=(b-a)/n; s:=0; xb:=b; for i:=1 to n do begin x:=xb-i*dx; s:=s+f(x)*dx; end; prav:=s; end;
--------------------------------------------------------------------- 2.Используя ЦЕПОЧКИ СИМВОЛОВ (не стринги), вывести все слова начинающие на "М". Слова разделены пробелами. Стринги не использовать, т.к. сам уже сделал
Автор: volvo 29.09.2006 2:52
Цитата
Используя ЦЕПОЧКИ СИМВОЛОВ (не стринги)
Пример цепочек символов - в студию (лично мне это понятие не знакомо)...
Насчет функции - я бы сделал так:
begin dx:=(b-a)/n; s:=0; x := b; for i:=1 to n do begin x := x - dx; s:=s+f(x)*dx; end; prav:=s; end;
А вообще - не изобретай велосипедов: http://soft32.ru/delphi.shtml?topic=syntax&title=calc_integral2
P.S. (Что ж ты в FAQ неоптимальный код запостил? Доведи его до ума, потом посмотрим...)
Автор: lapp 29.09.2006 5:56
Цитата(}0pa @ 28.09.2006 23:47)
Используя ЦЕПОЧКИ СИМВОЛОВ (не стринги)
Цитата с сервера http://www.vzmakh.ru/info/pascal/modules/page6.html
Цитата
Про величину, значением которой является последовательность (цепочка) символов, (т.е. элементов типа char) говорят, что она имеет строковый или литерный тип (тип string).
Непонятно, что ты имел в виду. Просто массив of char? Строку, заканчивающуюся нулем (как в С)?
Автор: }0pa 29.09.2006 14:20
Цитата
Пример цепочек символов - в студию (лично мне это понятие не знакомо)...
Код
var c:Char; i:integer; begin
for i:=1 to 10 do begin read(c); write(c); end;
end.
В общем, когда заранее известно длина строки.
Цитата
А вообще - не изобретай велосипедов
Я стараюсь задачи сам решать, просто я только начинаю изучать паскаль, поэтому мне нужны некоторые советы.
Цитата
(Что ж ты в FAQ неоптимальный код запостил? Доведи его до ума, потом посмотрим...)
А разве простой пользователь может разместить свой пример в ФАКе? А вообще, по-моему, этот код годится для FAQa, может только методы прямоугольников подредактировать
Цитата(volvo @ 28.09.2006 22:52)
Насчет функции - я бы сделал так:
Большое спасибо!
Я думаю теперь код годиться для фака. Теперь можно опубликовать?
Автор: volvo 29.09.2006 14:48
В-общем, это у тебя не цепочка символов, а просто символ. Один... В FAQ-е разговор не про это, а про PChar, который, к сожалению, является Null-Terminated String, а ты просил String-и не предлагать...
Цитата
А разве простой пользователь может разместить свой пример в ФАКе?
Ну, ты же попытался, хотя написано, что тот раздел - на премодерации, и код будет тестироваться, прежде чем будет разрешен... А тут вдруг ты сам признаешь, что код неоптимальный... Зачем нам такой? Неоптимальных кодов знаешь, сколько по всему интернету раскидано?
Автор: }0pa 29.09.2006 16:43
Цитата(volvo @ 29.09.2006 10:48)
А тут вдруг ты сам признаешь, что код неоптимальный... Зачем нам такой? Неоптимальных кодов знаешь, сколько по всему интернету раскидано?
Ну, теперь-то он оптимальный.
В принципе, задача решенная что-то вроде по ниженаписанному примеру, тоже подойдет. "Слова разделены пробелом, вывести все слова на букву "М""....
Код
var s:string; f:Char i:byte; begin readln(s); for i:=1 to Length(s) div 2 do begin f:=s[i]; s[i]:=s[Length(s)-i+1]; s[Length(s)-i+1]:=f; end; writeln(s); end.
P.S. из FAQ-a
Автор: }0pa 30.09.2006 19:21
Ну, кто-нить помогите м задачей
Автор: мисс_граффити 1.10.2006 15:37
может, цепочка символов - это такой мини-список? то есть у эл-та 2 поля: символ и указатель на следующий? (или еще и на предыдущий)?
Автор: }0pa 2.10.2006 1:10
Цитата(мисс_граффити @ 1.10.2006 11:37)
может, цепочка символов - это такой мини-список? то есть у эл-та 2 поля: символ и указатель на следующий? (или еще и на предыдущий)?
Я знаюб что такое динамические однонаправленные списки. Я же говорю, см. пример на один пост выше