| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Центр помощи > Помогите решить 3 задачи...По ''Pascal'' |
| Автор: John 6.1.2005, 16:06 |
| Народ- уважаемые программисты, будьте так добры помочи мне решить 3 задачки по ''Pascal'' Нужен тексты программ. Они мне нужны для школы. Возможно решил бы сам, но реально нет время. Поэтому, если можете помогите пожалуйста. Заранее СПАСИБО тем кто откликнется и попробует мне помоч. 1) Вот вариант первой программы: Вводится число N. Внутри квадрата с вершинами в точках (0;0), (0;1), (1;1), (1;0) случайно выбираются N точек (точка задается парой координат x и y). Определить количество точек n, попавших в круг радиуса 1 с центром в начале координат и найти pi из соотношения pi/4 примерно равно n/N. 2) Вот вариант второй программы: Вводится число N. Построить последовательность его простых сомножителей. 3) Вот вариант третий программы: Вводится массив. Сколько в нем чисел в 3 раза больше минимального элемента. СПАСИБО !!!!! |
| Автор: dvs 7.1.2005, 01:13 |
| http://forum.vingrad.ru/index.php?showtopic=35881&view=findpost&p=293769 |
| Автор: neutrino 7.1.2005, 15:11 | ||||||
| 1) Привет! Чтобы сгенерировать число, можно воспользоваться функцией random.Но для того, чтобы она работала, сначала нужно построить последовательность случайных чисел с помощью вызова процедуры randomize. Функция random(n) возвращает случайное число от 0 до параметра n. Тебе нужно сгенерировать число от 0 до 1, значит нужно разделить на необходимую степень 10 (эта степень равна количеству цифр, которое тебе нобходимо), чтобы отодвинуть цифры за точки. Например, генерируем 3 цифры после точки:
Сгенерировали мы таким образом точки (каждую координату мы генерируем отдельным вызовом функции random). Важно заметить, что процедуру randomize для генерированиея последовательности случайных чисел нужно вызвать только один раз в начале программы. Теперь осталось узнать, попала ли конкретная точка в окружность с центром (0,0) и радиусом 1. Для этого мы можем воспользоваться проверкой на простое неравенство: (x - Xo)^2 + (y - Yo)^2 <= R^2 ((Xo,Yo) - координаты точки, (x,y) - координаты центра, знак обозначает "в квадрате", R - радиус окружности). В твоем случае координаты центра - нули, значит неравенство имеет вид: Xo^2 + Yo^2 <= R^2 Что нам осталось? Общая структура программы. Хорошо. Нужно в цикле от 0 до н-1 генерировать пару координат (одну для оси абцисс, вторую для ординат) и проверять вышеуказанное неравенство, если оно правдиво, надо увеличить на 1 счетчик заведомо (до цикла) обнуленный. Саму программу я писать не буду. Но если у тебя возникнут вопросы по ее составлению спрашивай - помогу. Добавлено @ 15:15
В "алгоритмы"
Сам подумай. Если даже такие простые задания тебе будут решать, ты никогда не научишься программровать. |