Модераторы: volvo877, Snowy, MetalFan

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Паскаль и простые числа, Распределение расстояний между пр.числам 
:(
    Опции темы
spectr
  Дата 31.1.2005, 04:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 9
Регистрация: 31.1.2005

Репутация: нет
Всего: нет



smile Граждане коллеги! Подскажите пожалуйста как можно в Паскале замутить график распределение расстояний между простыми числами. Алгоритм нахождения самих чисел я сделал. smile smile
PM MAIL   Вверх
Druidik25
Дата 31.1.2005, 14:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 64
Регистрация: 27.1.2005
Где: Киев, Украина

Репутация: нет
Всего: нет



В каком виде тебе нужен график??? Чего с чем??? Можешь поподробнее рассказать???
PM MAIL ICQ   Вверх
Akina
Дата 31.1.2005, 14:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: нет
Всего: 454



Да собсно... бегишь по массиву простых, вычитаешь предыдущее, подсчитываешь количество, добег до конца - строишь график...

В чем проблема-то?




--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
spectr
Дата 1.2.2005, 07:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 9
Регистрация: 31.1.2005

Репутация: нет
Всего: нет



Druidik25 Рассказываю побробно: Есть программа собств. производства, выводит простые числа на экран. Но это фигня. Необходимо, чтобы этаже самая программа, после того как нашла эти числа, построила обыкновенный график в двух осях координат (как в геометрии). По одной оси (например оХ) откладываем расстояния (измеряем в количестве составных чисел между двумя соседними простыми), а по другой оси откладываем эти самые простые числа
PM MAIL   Вверх
Fedor
Дата 1.2.2005, 09:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Днепрянин
****


Профиль
Группа: Участник
Сообщений: 2090
Регистрация: 8.2.2003
Где: Великий

Репутация: нет
Всего: 32



Вот примерно так.

Код

uses graph;                                  
function prime(a:longint):boolean;
begin
 {твоя функция определения простоты числа}
end;

var
 i,j,n:longint;
 gd,gm:integer;
 last:integer;
begin
 gd:=detect;
 InitGraph(gd,gm,'');    {инициализируем графический режим}
 for i:=1 to n do             {здесь n - в роли максимального числа}
   if Prime(i) then
    begin
      PutPixel(i,i-last,white);   {ставим точку белого цвета}
      last:=i;
    end;
 closegraph;                 {закрываем графический режим}
end.



--------------------
Мы - Днепряне. Мы всех сильней.
PM ICQ   Вверх
Akina
Дата 1.2.2005, 09:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: нет
Всего: 454



Ну по мере вывода наполняй массив разностей текущего и предыдущего

Count(NextSimple-PreviousSimple) = Count(NextSimple-PreviousSimple) +1

в результате у тебя i-й элемент массива содержит количество разностей, равных i, в ряду простых чисел.

Или проблема в том как нарисовать график?


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
spectr
Дата 4.2.2005, 10:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 9
Регистрация: 31.1.2005

Репутация: нет
Всего: нет




Akina Мне необходимо построить ГРАФИК а не просто набор точек. В двух осях, как в алгебре и геометрии, просто график функции R( I[1]-I[2] ). Где R-расстояние между 2 соседними простыми числами, I- простое число smile
PM MAIL   Вверх
Akina
Дата 4.2.2005, 10:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: нет
Всего: 454



Ну и строй... набор R( I[1]-I[2] ) у тебя есть... какие проблемы?


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
Romtek
  Дата 7.2.2005, 00:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 153
Регистрация: 7.12.2004
Где: Холон

Репутация: нет
Всего: 4



Сначала берёшь максимальное расстояние между числами и сравниваешь его с высотой экрана GetMaxY, чтобы график поместился полностью в высоту + оставить некоторое пространство для других деталей. Аналогично с шириной графика.
Далее, делишь ширину на кол-во найденных простых чисел, чтобы узнать зазор между каждым.

Код
MX - GetMaxX
MY - GetMaxY

MarginX - зазор между графиком и экраном по оси X
MarginY - зазор между графиком и экраном по оси Y
OrigX - начальная координата графика по оси X
OrigY - начальная координата графика по оси Y

Height - высота графика
Width - ширина графика
WBar - ширина столбика (допустим, 10)
Step - зазор между столбиками
MaxDist - макс. растояние между простыми числами (собственно, высота столбика)
ScaleY - масштаб высоты столбика


Код
//определение начала координат графика
OrigX := (MX - 2 * MarginX) div 2;
OrigY := (MY - 2 * MarginY) div 2;

Step := (Width - WBar * PrimeCount) div (PrimeCount - 1);
ScaleY := Height div MaxDist;

For k := 1 to PrimeCount do
begin
 BarHeight := ScaleY * Distance[k];
 DrawBar (BarHeight, k); // рисуешь к-тый столбик высотой BarHeight. Позицию вычисли сам
end;


Надеюсь, разъяснил более (менее?) понятно. smile

--------------------
Romiras HomeLab - материалы и статьи по разработке ПО, моделирование алгоритмов, обработка и анализ информации, нейронные сети, машинное зрение и пр.
PM WWW   Вверх
spectr
Дата 9.2.2005, 09:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 9
Регистрация: 31.1.2005

Репутация: нет
Всего: нет



Ребята, вы меня наверное неправильно поняли, .... а может я вам неправильно объяснял smile Мне короче говоря,чтобы сразу отвергнуть всякие недопонимания, нужно полуичть в итоге примерно такую штуку график
Добавлено @ 09:02
Это конечно я так, на бумаге, только до 71, но выглядеть на машине должно так же. Ребята помогите пожалуйста, очень надо.
PM MAIL   Вверх
Akina
Дата 9.2.2005, 09:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: нет
Всего: 454



spectr
1) Давать файлам имена с нацсимволами в Инете не принято.
2) Твоя просьба все больше напоминает "сделайте за меня"... это в раздел "Работа". Или все-таки начинай ДЕЛАТЬ.


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
Fedor
Дата 9.2.2005, 09:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Днепрянин
****


Профиль
Группа: Участник
Сообщений: 2090
Регистрация: 8.2.2003
Где: Великий

Репутация: нет
Всего: 32



spectr Файл не качается. Сделай его с английским именем.


--------------------
Мы - Днепряне. Мы всех сильней.
PM ICQ   Вверх
Romtek
Дата 9.2.2005, 11:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 153
Регистрация: 7.12.2004
Где: Холон

Репутация: нет
Всего: 4



Насколько я понимаю, график должен быть из дискретных значений, а не непрерывным.

Fedor, http://www.spectr.nm.ru/%E3%F0%E0%F4%E8%EA2.jpg - так поможет?
--------------------
Romiras HomeLab - материалы и статьи по разработке ПО, моделирование алгоритмов, обработка и анализ информации, нейронные сети, машинное зрение и пр.
PM WWW   Вверх
Akina
Дата 9.2.2005, 11:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: нет
Всего: 454



Romtek
Цитата(Romtek @ 9.2.2005, 12:09)
Fedor, http://www.spectr.nm.ru/%E3%F0%E0%F4%E8%EA2.jpg - так поможет?

Нет, не поможет однозначно. Переименуй файл в grafik.jpg или нечто аналогичное - но БЕЗ РУССКИХ БУКВ!!!


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
spectr
Дата 10.2.2005, 07:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 9
Регистрация: 31.1.2005

Репутация: нет
Всего: нет



Переименовал.


Akina smile Я не прошу сделать за меня, я прошу подсказать как это сделать. Просто у кого не спрошу,все руками разводят. Я у вас как у опытных спецов спрашиваю.
Добавлено @ 07:16
График
PM MAIL   Вверх
Akina
Дата 10.2.2005, 09:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: нет
Всего: 454



Цитата(spectr @ 10.2.2005, 08:14)
я прошу подсказать как это сделать

У тебя 3 этапа решения задачи.
1) Получить массив простых чисел Simples(). Это сделано.
2) Получить массив разностей следующего и предыдущего DiffSimples(i)=Simples(i+1)-Simples(i). Элементарно.
3) Построить график по полученным на этапе 2 данным. Fedor и Romtek тебе кроки накидали. Начинай делать, когда будут конкретные вопросы по каким-то операторам - задавай... а то сейчас разговор глухого со слепым получается...


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
Romtek
Дата 10.2.2005, 11:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 153
Регистрация: 7.12.2004
Где: Холон

Репутация: нет
Всего: 4



spectr, большой разницы нет.
Строй тогда линиями:
MoveTo (OrigX, OrigY), а потом в цикле LineTo (ValueX, ValueY)

Что именно у тебя вызывает затруднение?
--------------------
Romiras HomeLab - материалы и статьи по разработке ПО, моделирование алгоритмов, обработка и анализ информации, нейронные сети, машинное зрение и пр.
PM WWW   Вверх
spectr
Дата 17.2.2005, 07:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 9
Регистрация: 31.1.2005

Репутация: нет
Всего: нет



Да все у меня вызывает затруднения, ничего не получается, рисует просто какие-то непонятно откуда взявшиеся линии.....
Эх вы.....
PM MAIL   Вверх
Fedor
Дата 17.2.2005, 08:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Днепрянин
****


Профиль
Группа: Участник
Сообщений: 2090
Регистрация: 8.2.2003
Где: Великий

Репутация: нет
Всего: 32



spectr Ну выложи код, попробуем посмотреть, где там линии лишние.

Цитата(spectr @ 17.2.2005, 06:58)
Эх вы.....

А вот это не надо. Тут тебе люди все-таки помогают, делают все возможное...


--------------------
Мы - Днепряне. Мы всех сильней.
PM ICQ   Вверх
spectr
Дата 17.2.2005, 09:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 9
Регистрация: 31.1.2005

Репутация: нет
Всего: нет



Ладно ребята, я уже не знаю что делать....сроки просто за горло хватают..... Да, я дурак, но хочу научится....
Fedor Я смотрю ты неплохой человек, извини за "Эх вы...", но может быть все-таки поможешь?....Твою аську я себе в лист записал...
Выкладываю код нахождения простых чисел с описанием переменных:
Код моей программы

И внимательно слушаю ваши предложения по второй части( график).....ругаться не буду....честно

Это сообщение отредактировал(а) spectr - 17.2.2005, 09:55
PM MAIL   Вверх
spectr
Дата 17.2.2005, 09:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 9
Регистрация: 31.1.2005

Репутация: нет
Всего: нет



PM MAIL   Вверх
Fedor
Дата 17.2.2005, 18:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Днепрянин
****


Профиль
Группа: Участник
Сообщений: 2090
Регистрация: 8.2.2003
Где: Великий

Репутация: нет
Всего: 32



Цитата(spectr @ 17.2.2005, 08:21)
Твою аську я себе в лист записал...

аська у меня временно не работает пока... smile проблемы с инетом... smile

А код я посмотрю сейчас...


Цитата(spectr @ 17.2.2005, 08:21)
Fedor Я смотрю ты неплохой человек

спасибо smile


--------------------
Мы - Днепряне. Мы всех сильней.
PM ICQ   Вверх
Fedor
Дата 17.2.2005, 21:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Днепрянин
****


Профиль
Группа: Участник
Сообщений: 2090
Регистрация: 8.2.2003
Где: Великий

Репутация: нет
Всего: 32



Лови код

Код
{$N+}
program PrimeNumberGraph;
Uses Crt,Graph;


Const N=20;
     Coef=10; {на сколько умножается каждая единица для прорисовывания в графике}
var
 Gd,Gm:Integer;
 i, j, UpTo: LongInt; (*i - делимое, j - делитель, UpTo - макс. делитель *)
 P, T: ^LongInt;      (* указатель на массив *)
 q, Ops: LongInt;     (* q- сколько найдено простых чисел *)
                      (* Ops - сколько выполнено операций деления *)
 IsPrime: Boolean;    (*True - чило простое, False - нет *)
 S: Double;           (* кв. корень числа *)

 LastZnach:Longint;   (*используется при посторении графика: i-1 -ое значение простого числа*)
 LastR:Longint;       (*используется при посторении графика: i-1 -ое значение расстояния между пр. числами*)
 tmps:string;
begin

 GetMem(T, N * 4); (* запрос на выделение памяти = кол-во ээлементов умноженное *)
                   (* на размер элемента массива *)
 if T = nil then
 begin
   WriteLn('Не хватает памяти');
   Exit;
 end;

 P := T; {Получим указатель на массив}
 P^ := 1; {Элементу с индексои 0 присваеваем значение 1 }
 Inc(P); P^ := 2; {1}
 Inc(P); P^ := 3; {2}
 i := 3;                                   {БЫЛА ОШИБКА!!! БЫЛО I:=5!!!}
 q := 3; {Сколько простых чисел нам известно}
 Ops := 0;

 repeat (* цикл перебора делимых (проверяемых чисел) *)
   inc(i, 2); {Проверяем только нечетные числа}
   IsPrime := True;
   j := 3;
   S := Sqrt(i);
   UpTo := Trunc(S);
   if Frac(S) = 0 then (* Если корень из числа            *)
     Continue;         (* не имеет дробной части,         *)
                       (* бессмысленна его дальнейшая     *)
                       (* проверка.*)

   repeat (* цикл перебора делителей *)
     Inc(Ops); (* увеличиваем число выполненных опер. деления *)
     if (i mod j) = 0 then (* получить остаток от деления и сравнить его с 0 *)
       begin
         IsPrime := False;
         break;
       end;
       Inc(j,2);
   until j > UpTo; (*до тех пор, пока текщий делитель НЕ станет равным максимальному *)

   if IsPrime then
   begin
     Inc(P); (* увеличивем указатель на массив на 4, т.е. переходим к след. элем. *)
     P^ := i; (* присваеваем элементу массива значение текущего делимого *)
     Inc(q); (* увеличавем кол-во известных простых чисел *)
   end;

 until q = N; (*до тех пор, пока число извесных простых чисел НЕ превысит кол-ва *)
              (* элементов массива*)

 P := T; (* переход на начало массива *)

 for i := 0 to q - 1 do
 begin
   WriteLn('P[',i,']= ',P^);
   Inc(P);
 end;

 WriteLn('Найдено ', q, ' простых чисел');
 WriteLn('Произведено  ', Ops, ' операций деления');
 ReadLn;
 Gd:=Detect;
 InitGraph(Gd,Gm,'');

 (*РИСОВАНИЕ ГРАФИКА!!!!!!!!*)
 Line(20,400,20,20);
 Line(20,400,620,400);

 P := T;  (* переход на начало массива *)
 Inc(P);
 Inc(P);
 LastZnach:=P^;
 Inc(P);
 (*После выполнения предыдущих операций
   LastZnach=3
   P^=5
 *)
 LastR:=1;
 for i := 3 to q - 1 do
 begin
   Circle(20+LastZnach*COEF,(400-COEF)-LastR*COEF,2); (*точка чтоб была хорошо видна рисуетсыя в виде круга*)
   Line(20+LastZnach*COEF,(400-COEF)-LastR*COEF,20+P^*COEF,(400-COEF)-(P^-LastZnach-1)*COEF); (*линия*)

   str(LastZnach,tmps);
   OutTextXY(16+LastZnach*COEF,410,tmps);
   str(LastR,tmps);
   OutTextXY(10,(400-COEF)-LastR*COEF,tmps);

   LastR:=(P^-LastZnach-1);
   LastZnach:=P^;
   Inc(P);
 end;
 Circle(20+LastZnach*COEF,(400-COEF)-LastR*COEF,2);
 str(LastZnach,tmps);
 OutTextXY(16+LastZnach*COEF,410,tmps);
 str(LastR,tmps);
 OutTextXY(10,(400-COEF)-LastR*COEF,tmps);

 readkey;
 CloseGraph;
 FreeMem(T, N * SizeOf(LongInt));
 end.



--------------------
Мы - Днепряне. Мы всех сильней.
PM ICQ   Вверх
Romtek
Дата 17.2.2005, 23:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 153
Регистрация: 7.12.2004
Где: Холон

Репутация: нет
Всего: 4



Вот как я понимаю это задание:
Код
(*
 График разности простых чисел
 Romiras
*)

{$N+}
program PrimeDiffGraph;
Uses Crt,Graph;

Const
 N = 20;
 Prime: array [1 .. N] of byte =
   (2,3,5,7,11,13,17,19,23,29,31,37,41,43,47,53,59,61,67,71);
 MarginX = 20;
 MarginY = 60;

var
 MaxDist,
 PrimeCount: integer;
 Distance: array [1 .. N - 1] of integer;

function I2S(I: integer): String;
var
 S: string[6];
begin
 Str(I, S);
 I2S := S;
end;

procedure PlotGraph;
var
 k: byte;
 Width, Height,
 Xold, Y0,
 X, Y,
 Step,
 ScaleY,
 OrigX, OrigY : integer;
begin
{ определение высоты и ширины графика }
Width := GetMaxX - 2 * MarginX;
Height := GetMaxY - 2 * MarginY;

{ шаг между соседними значениями, в пикселях}
Step := Width div (PrimeCount - 2);

{ определение начала координат графика }
OrigX := MarginX;
OrigY := MarginY + Height;

{ коэффициент увеличения по оси Y }
ScaleY := Height div MaxDist;

{ значения по оси Y }
       SetColor (White);
       for k := 1 to MaxDist do
           OutTextXY (OrigX-16, OrigY - k * ScaleY, i2s (k));

{ значения по оси X }
       for k := 1 to PrimeCount do
           OutTextXY (OrigX + step * (k - 1), OrigY + 2, i2s (Prime[k]) );

{ граница поля графика }
       SetColor (Cyan);
       Rectangle (MarginX, MarginY, MarginX + Width, MarginY + Height);

{ сам график }
       SetColor (Yellow);
       Xold := OrigX;
For k := 2 to PrimeCount - 1 do
begin
  X := OrigX + step * (k - 1);
  Y := OrigY - ScaleY * Distance[k - 1];
         Line (Xold, Y, X, Y);
         Xold := X;
end;
end;

var
 k,
 Gd,Gm: Integer;

begin
 PrimeCount := N;

 MaxDist := 1;
 For k := 1 to PrimeCount - 1 do
 begin
      Distance[k] := Prime [k + 1] - Prime[k];
      if Distance[k] > MaxDist then
         MaxDist := Distance[k];
 end;

 Gd := Vga;
 gm := VgaHi;
 InitGraph(Gd,Gm,'..\bgi');
 if GraphResult <> grOk then
    Halt (1);

 PlotGraph;

 readLn;
 CloseGraph;
end.

--------------------
Romiras HomeLab - материалы и статьи по разработке ПО, моделирование алгоритмов, обработка и анализ информации, нейронные сети, машинное зрение и пр.
PM WWW   Вверх
spectr
Дата 19.2.2005, 06:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 9
Регистрация: 31.1.2005

Репутация: нет
Всего: нет



Fedor Федюнчик, Володя........СПАСИБО!!!!. ЭТО ПРОСТО КРАСОТА!!! Это настолько красиво, что прямо слов нет!!!!!
Б.. буду, если окажусь на Украине.....ящик горилки поставлю.....
Такого я не забываю......
Добавлено @ 06:09
Fedor Эх жалко что я здесь новичок, а то "репутацию" твою поднял на 100 очков.

PM MAIL   Вверх
Fedor
Дата 19.2.2005, 07:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Днепрянин
****


Профиль
Группа: Участник
Сообщений: 2090
Регистрация: 8.2.2003
Где: Великий

Репутация: нет
Всего: 32



smile

Пожалуйста. Приходи почаще.


--------------------
Мы - Днепряне. Мы всех сильней.
PM ICQ   Вверх
Guest
Дата 1.3.2005, 08:58 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Код

const
X = 0;
Y = 400;
ZOOM = 10;

procedure TForm1.Button1Click(Sender: TObject);
var
 i: integer;
begin
 PaintBox1.Canvas.MoveTo(X + 0, Y - 0);
for i:=1 to 22 do
begin
 PaintBox1.Canvas.LineTo(X + st[i]*ZOOM, Y - (sn[i]-sn[i-1])*ZOOM);
end;
end;


Так пойдет? sn - массив простых чисел, st - массив количества составных чисел между двумя соседними простыми, то есть st[i] это количество составных чисел между sn[i] и sn[i+1] например
  Вверх
Romtek
Дата 1.3.2005, 11:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 153
Регистрация: 7.12.2004
Где: Холон

Репутация: нет
Всего: 4



Во-первых, ему уже ответили, а во-вторых, этот раздел - чистый Паскаль, а не Дельфи.
--------------------
Romiras HomeLab - материалы и статьи по разработке ПО, моделирование алгоритмов, обработка и анализ информации, нейронные сети, машинное зрение и пр.
PM WWW   Вверх
Страницы: (2) [Все] 1 2 
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi"
THandle
Rrader
volvo877

Запрещается!

1. Обсуждать и делится взломанными компонентами или программным обеспечением

2. Публиковать ссылки на варез

3. Оффтопить

  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, THandle, Rrader, volvo877.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Object Pascal: кроссплатформенные технологии | Следующая тема »


 




[ Время генерации скрипта: 0.0741 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.