Вопрос № 64278: Здравствуйте уважаемые знатоки, помогите написать программку на Паскале. Её надо написать через IF, помогите пожалуйста.
Задача.
Функция задана графически, определить аналитически и вычислить в заданной точке х.
Такая кривая. т...Вопрос № 64320: Добрый вечер, как привести эту процедуру в рабочий вид?
var n,i:integer;
a : array [1..10] of integer;
Procedure Sort;
var max,imax,i,j:integer;
begin
for i:=n downto 2 do
begin
max:=a[i];
imax:=1;
...
Вопрос № 64.278
Здравствуйте уважаемые знатоки, помогите написать программку на Паскале. Её надо написать через IF, помогите пожалуйста.
Задача.
Функция задана графически, определить аналитически и вычислить в заданной точке х.
Такая кривая. т.к. тут рисовать нельзя, я задам по точкам. Первая точка (-5;5), вторая точка (0;-4), 3 точка (-2;3), 4 точка (0;3), 5 точка (7;0).
Заранее благодарен.
Отправлен: 26.11.2006, 15:01
Вопрос задал: Arian (статус: Посетитель)
Всего ответов: 1 Мини-форум вопроса >>> (сообщений: 4)
Отвечает: Устинов Сергей Евгеньевич
Здравствуйте, Arian!
Ну, после рисуночка можно дать ответ. (Буду считать, что после x=7 прямая продолжается. Если нет - подкорректируете решение)
Для начала немного теории (геометрия):
График прямой проходящей через точки A(x1,y1) и B(x2,y2) имеет такой вид:
(x-x1)/(x2-x1)=(y-y1)/(y2-y1).
Отсюда y=(x-x1)*(y2-y1)/(x2-x1)+y1
Теперь зададим функцию аналитически.
1. Для всех Х меньше -4 графиком функции будет прямая, проходящая через точки (-5;5) и (-4;0). (пользуемся формулой выше)
y=(x+5)(-5)/1+5=-5x-20
2. На промежутке от -4 до -2 график функции проходит через точки (-4;0) и (-2;3)
y=(x+4)*3/2+0=(3/2)*x+6
3. На промежутке от -2 до 0 функция принимает значение y=3
4. При x>=0 график функции проходит через точки (0;3) и (7;0)
y=(-3/7)x+3
В соответствии с этим и строим программу (в приложении).
Удачи! (а подумать над задачей все-же нужно было!)
Приложение:
--------- Ответы на все вопросы - на сайте www.ya.ru ☺
Ответ отправил: Устинов Сергей Евгеньевич (статус: Практикант)
Ответ отправлен: 28.11.2006, 00:27 Оценка за ответ: 5 Комментарий оценки: Большое спосибо, вы мне очень помогли.
Вопрос № 64.320
Добрый вечер, как привести эту процедуру в рабочий вид?
var n,i:integer;
a : array [1..10] of integer;
Procedure Sort;
var max,imax,i,j:integer;
begin
for i:=n downto 2 do
begin
max:=a[i];
imax:=1;
for j:=1 to i-1 do
if a[j] > max then
begin
max:=a[j];
imax:=j;
end;
if imax <> i then
begin
a[imax]:=a[i];
a[n]:=max;
end;
end;
end;
Begin
Read(n);
for i:=1 to n do
writeln(Sort(a[i]));
end.
Отправлен: 26.11.2006, 21:42
Вопрос задал: ataman (статус: 2-ой класс)
Всего ответов: 2 Мини-форум вопроса >>> (сообщений: 0)
Отвечает: Олег Владимирович
Здравствуйте, ataman!
Sort - это процедура, а не функция, она не возвращает никакого результата, поэтому нет смысла её использовать в writeln. Sort не имеет параметров, так зачем же ей их пытаться передать(sort(a[i]))?
Программа, насколько я понял, должна сортировать массив a. В приложении работающая версия.
Удачи!
Приложение:
--------- Факультет ПМ-ПУ - лучший в СПбГУ!
Ответ отправил: Олег Владимирович (статус: 7-ой класс)
Ответ отправлен: 26.11.2006, 22:29
Отвечает: Dr1m
Здравствуйте, ataman!
особо не вникал, но должно быть так:
Приложение:
Ответ отправил: Dr1m (статус: 1-ый класс)
Ответ отправлен: 26.11.2006, 22:54