Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Центр помощи > Помогите решить 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 цифры после точки:

Код

program test;

uses crt;

var r: Real;

begin
    randomize;
    r := random(1000)/1000;
    writeln(r);
end.


Сгенерировали мы таким образом точки (каждую координату мы генерируем отдельным вызовом функции 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
Цитата(John @ 6.1.2005, 15:06)
Вводится число N. Построить последовательность его простых сомножителей.

В "алгоритмы"


Цитата(John @ 6.1.2005, 15:06)
Вводится массив. Сколько в нем чисел в 3 раза больше минимального элемента.

Сам подумай. Если даже такие простые задания тебе будут решать, ты никогда не научишься программровать.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)