Форум «Всё о Паскале» _ Задачи _ Подготовка к олимпеаде
Автор: Вацура 19.12.2006 19:17
Здравствуйте. 21 мне ехать на олимпеаду по информатике, а я практически не готов. Учитель заболел, так что помочь можете только вы. Изучать паскаль начал совсем недано, с массивами и с графикой вообще не знаком , может кто может дать ссылки на статьи о массивах? Вот две задачи из прошлой олимпеады, как решать даже не представляю. Помогите разобраться.
C помощью одного из языков программирования приближённо решите графическим способом уравнение: x^3-cosx=0. Решите это же уравнение с использованием компьютерной модели в электронной таблице.
Разработайте программу, в которой реализуеться сортировка числового массива по убыванию с использованием общей процедуры поиска максимального элемента. Элементы массива задаються ЭВМ случайным образом.
Заранее благодарен.
Автор: Ozzя 19.12.2006 19:47
Такие задачи решались многократно. Используйте поиск. Что за олимпиада такая? С элементарными заданиями?
Автор: Вацура 19.12.2006 20:29
Цитата
Что за олимпиада такая? С элементарными заданиями?
Школьная районая олимпиада.
Автор: Michael_Rybak 19.12.2006 21:04
Ну напиши программу которая увеличенный график выводит. Ты знаешь что такое "решить графически"?
Автор: Вацура 19.12.2006 21:28
Цитата
Ну напиши программу которая увеличенный график выводит. Ты знаешь что такое "решить графически"?
Я знаю что такое решить графически, на бумаге я всё сделал, но как это сделать в паскале? Я незнаю даже как нарисовать прямую, а строить графики наверное сложнее. Покажи как, я постараюсь понять. Для второй задачи я что то нарыл, щяс буду пробовать решать.
Автор: Michael_Rybak 19.12.2006 21:44
Поищи на форуме, графики были не раз. Выводить можно по точкам или по линиям, в твоем случае второй вариант лучше. Линия выводится процедурой Line. Посмотри примеры в хелпе, или позапускай с форума программки.
Автор: Вацура 20.12.2006 1:34
Ко второй задачи вот только что мог сделать:
uses crt; type mas=array[1..20] of real; var a:mas; i,n:integer; amax:real; begin clrscr; write('‚ўҐ¤ЁвҐ N:'); readln(n); for i:=1 to n do begin writeln('A[',i,']='); a[i]:=random(50) end; amax:=a[1]; ; for i:=2 to n do if a[i]>amax then begin amax:=a[i]; end; writeln('…Ј® § 票Ґ', amax:5:1); readln; end.
Как сделать чтобы случайные числа выбиралис случайно от минус и до плюс бесконечности? Как сделать чтобы у знака равно пасалось а[i]? И гланое, как сделать чтобы напечатался ряд по убыванию?
Автор: Вацура 20.12.2006 2:13
Со второй задачей почти разобрался, немогу только сделать, чтобы числа выбирались любые. Помогите пожалуйста решить первую задачу! Или дайте ссылку на похожее задание.
Автор: мисс_граффити 20.12.2006 2:20
понятие бесконечности для компа не определено... ну, можно так:
a[i]:=random(MaxInt)-(MaxInt div 2);
будет достаточно большой разброс
первая - воспользуйся поиском. почему мы должны это делать за тебя?
Автор: Вацура 20.12.2006 2:27
Цитата(мисс_граффити @ 19.12.2006 22:20)
первая - воспользуйся поиском. почему мы должны это делать за тебя?
спасиб за 2 задачу, хоть одна готова. Пробовал поиском, но ничего не нашол, надол только разложение синуса в ряд. В FAQ нашол только как строить графики 3 и 4 порядка, но что то ничего для решения задачи... уж извините, наверное плохо умею пользоваться поиском
Автор: мисс_граффити 20.12.2006 2:36
и чем тебе не нравится то, что нашел? построил графики y=x^3 y=cos(x) это и будет графическим решением
Автор: Lapp 20.12.2006 4:57
Цитата(мисс_граффити @ 19.12.2006 23:20)
понятие бесконечности для компа не определено... ну, можно так:
a[i]:=random(MaxInt)-(MaxInt div 2);
Понятие бесконечности в этом смысле не определено не только для компа. Дай мне выборку из десятка действительно случайных чисел в диапазоне от -00 до +00 - и я гарантирую тебе Нобеля..
мисс_граффити, человек просил числа типа real. a[i]:=(Random - 0.5)*2*R; Это даст действительные числа от -R до +R.
Автор: Bokul 20.12.2006 5:23
Цитата
Дай мне выборку из десятка действительно случайных чисел в диапазоне от -00 до +00 - и я гарантирую тебе Нобеля..
да как бы ни было.. Любой диапазон бесконечно мал по сравнению с бесконечностью. Давай, для примера, возьмем размер нашей Галактики - типа 100 000 000 000 000 000 000 м. Ну и окажется, что твоя выборка пляшет где-то вблизи нашего Солнца.. Еще скажи спасибо, что я взял расстояние в метрах, а не в мм или в ангстремах.. . А также не взял размер всей Вселенной (что тоже не предел, по крайней мере для чисел ))))
Автор: Вацура 20.12.2006 14:35
Цитата(мисс_граффити @ 19.12.2006 22:36)
и чем тебе не нравится то, что нашел? построил графики y=x^3 y=cos(x) это и будет графическим решением
Как на основе этого построить график y=x^3? или =cosx?
procedure semi_cubic(t: double; var x, y: double); far; begin x := sqr(t); y := a * sqr(t) * t; end; { Вызов: } draw_curve(-10, 10, step, semi_cubic);
Я незнаю. Если поподробней объясните что это такое
Цитата
draw_curve(-10, 10, step, semi_cubic);
и вот это
procedure semi_cubic(t: double; var x, y: double); far;
то возможно пойму я непойму откуда берёться t и a...
Автор: мисс_граффити 20.12.2006 21:07
это что-то, заданное параметрически, по-моему. вот здесь посмотри лучше: http://forum.pascal.net.ru/index.php?showtopic=2729&hl=%EF%EE%F1%F2%F0%EE%E5%ED%E8%E5+%E3%F0%E0%F4%E8%EA%E0