Часовой пояс: UTC + 3 часа




Куратор(ы):   Lord_of_Darkness   



Начать новую тему Новая тема / Ответить на тему Ответить  Сообщений: 985 • Страница 8 из 50<  1 ... 5  6  7  8  9  10  11 ... 50  >
  Пред. тема | След. тема 
В случае проблем с отображением форума, отключите блокировщик рекламы
Автор Сообщение
 
Прилепленное (важное) сообщение

Убедительная просьба ко всем, кто выкладывает исходники:
1. Обязательно пользуйтесь тэгом code (иначе очень трудно читать)
2. Старайтесь делать отступы

Если вы хотите чтобы вам помогли в написании программы, внятно излагайте задание!

Прежде чем задать вопрос, воспользуйтесь учебником


Возможно, что нужная вам программа уже написана, поэтому советую просмотреть список здесь и здесь

Отредактировано куратором: Lord_of_Darkness. Дата: 07.07.2006 19:36



Партнер
 

Member
Статус: Не в сети
Регистрация: 10.03.2003
Откуда: Россия, Моск...
функции пока не знаю...


 

Куратор темы
Статус: Не в сети
Регистрация: 03.01.2004
Откуда: Питер
m2 Да там и знать то нечего, все элементарно. Разберешся за 10 минут.

_________________
Здесь так мало тех, с кем легко говорить,
Еще меньше тех, с кем не страшно молчать (c)


 

Member
Статус: Не в сети
Регистрация: 13.04.2004
Откуда: Томск
Скажите, а можно ли занести в модуль System какую-нибудь свою подпрограмму? Допустим, функцию возведения в произвольную степень, а то постоянно писать exp(a*ln(b)) довольно долго.

_________________
Аннигиляция уничтожит всех. За капитуляцией последует падение власти.


 

Member
Статус: Не в сети
Регистрация: 10.03.2003
Откуда: Россия, Моск...
Ну вот, написал что-то с функцией. Как-то не красиво смотрится.
Задача: посчитать периметр десятиугольника по координатам (х1,у1)...(х9,у9). Причем проверка на существование такого многоугольника не требуется. Короче сумму отрезков надо.

Код:
Program Pr1;
  Var S1,S2,S,X0,X1,X2,X3,X4,X5,X6,X7,X8,X9,Y0,Y1,Y2,Y3,Y4,Y5,Y6,Y7,Y8,Y9,P : REAL;
  Function Ras(X0,X1,Y1,Y0 : REAL) : REAL;
    Begin
     S1:=X1-X0;
     S2:=Y1-Y0;
     S:=sqr(S1*S1+S2*S2);
     Ras:=S;
    End;
Begin
  Writeln('X0,X1,X2,X3,X4,X5,X6,X7,X8,X9');
  Readln(X0,X1,X2,X3,X4,X5,X6,X7,X8,X9);
  Writeln('Y0,Y1,Y2,Y3,Y4,Y5,Y6,Y7,Y8,Y9');
  Readln(Y0,Y1,Y2,Y3,Y4,Y5,Y6,Y7,Y8,Y9);
  P:=Ras(X0,X1,Y0,Y1)+Ras(X2,X3,Y2,Y3)+Ras(X4,X5,Y4,Y5)+Ras(X6,X7,Y6,Y7)+Ras(X8,X9,Y8,Y9);
  Write('P=',P);
  Readln
End.


 

Куратор темы
Статус: Не в сети
Регистрация: 03.01.2004
Откуда: Питер
m2 А почему бы не использовать массивы?
ЗЫ ну ты и накрутил :insane:

_________________
Здесь так мало тех, с кем легко говорить,
Еще меньше тех, с кем не страшно молчать (c)


 

Member
Статус: Не в сети
Регистрация: 10.03.2003
Откуда: Россия, Моск...
а массивы я не знаю...
методика у нас вот такая!


 

Куратор темы
Статус: Не в сети
Регистрация: 03.01.2004
Откуда: Питер
m2 Гм, плохо дело. Ну ладно, заканчиваем оффтоп.

_________________
Здесь так мало тех, с кем легко говорить,
Еще меньше тех, с кем не страшно молчать (c)


 

Member
Статус: Не в сети
Регистрация: 14.08.2004
Откуда: Москва
Доброго времени суток... Помогиет пожалуйста решить задачу...
Вобщем условие: найти все простые числа на интервале от 1 до N включительно... N не превышает 2^16...
Как и что писать смогу придумать сам, подскажите принцип решения... Тупо гонять цикл для каждого числа не пройдёт - во временнЫе рамки не влезет.


 

Member
Статус: Не в сети
Регистрация: 13.04.2004
Откуда: Томск
cj_remix запускаешь цикл в цикле- первый генерирует числа от 1 до N, второй проверяет остаток от деления. Затем условие- если отстаток равен 0 только в случае, если делимое само число, то вывод его на экран.

_________________
Аннигиляция уничтожит всех. За капитуляцией последует падение власти.


 

Member
Статус: Не в сети
Регистрация: 21.10.2003
Откуда: Брест
Фото: 47
cj_remix
Во-первых, исходя из личного опыта хочу сказать, что без полного перебора не обойтись...
Хочу лишь откорректировать (!): ВСе ПРоСТые ЧиСЛа (!) за исключением "2" - НеЧёТНые! Учти это - ибо тут ты в два раза выигрываешь... :) Ведь смысла нет искать простые числа среди чётных :wink:
Добавлено спустя 6 минут, 15 секунд
А вообще-то !!! Ща налабаю тебе очень оптимальный алгоритм ...
Добавлено спустя 36 минут
Вот (правда с одним "но" - циклы пляшут от "троек" - специфика, можешь доработать):
Код:
Uses Crt;
Var
 i,j,n : word;
 b : boolean;
Begin
 ClrScr;
 Write('Введите N : '); ReadLn(n);
 i:=3;
 While i<=n do
  Begin
    j:=3;
    b:=true;
    While ( j<=Trunc(Sqrt(i)) ) and b do
      Begin
        If i mod j = 0 then b:=false;
        inc(j,2);
      end;
    if b then Write(i,' ');
    inc(i,2);
  end;
End.

Будут вопросы, пиши... ;)
Добавлено спустя 10 минут, 20 секунд
Кто придумает оптимальнее пделитесь плз...

_________________
А ещё недавно ждали AMD Steamroller на AM3+


 

Как бы перевести число с одной системы счисления в другую ? DEC>BIN


 

Куратор темы
Статус: Не в сети
Регистрация: 03.01.2004
Откуда: Питер
РТУТь Вот почитай. Думаю сам разберешься.

_________________
Здесь так мало тех, с кем легко говорить,
Еще меньше тех, с кем не страшно молчать (c)


 

Member
Статус: Не в сети
Регистрация: 01.06.2003
Откуда: Pskov
РТУТь писал(а):
Как бы перевести число с одной системы счисления в другую ? DEC>BIN
Если нужно отобразить число в какой-либо системе счисления, то могу предложить (года два назад накатал, до сих пор частенько пользуюсь):
Код:
============================================================================}
Function Byte2Bin(Decim:byte):string;
Var i:byte;
    s:string;
Begin
   s:='';
   for i:=0 to 7 do
   if ((($01 shl i) and decim) shr i)=1
   then s:='1'+s else s:='0'+s;
   Byte2Bin:=s;
End;
{============================================================================}
Function Byte2Hex(Decim:byte):string;
Var t1,t2:byte;
    s1,s2:string;
Begin
   t1:=Decim shr 4;
   t2:=Decim and $F;
   if t1<10 then str(t1,s1) else s1:=chr(65+t1-10);
   if t2<10 then str(t2,s2) else s2:=chr(65+t2-10);
   Byte2Hex:=s1+s2;
End;
{==========================================================================}
Function Word2Hex(Decim:word):string;
Var t1,t2:word;
    s1,s2:string;
Begin
   t1:=Decim shr 8;
   t2:=Decim and $FF;
   Word2Hex:=Byte2Hex(t1)+Byte2Hex(t2);
End;
{==========================================================================}
Function DWord2Hex(Decim:longint):string;
Var t1,t2:longint;
    s1,s2:string;
Begin
   t1:=Decim shr $10;
   t2:=Decim and $FFFF;
   DWord2Hex:=Word2Hex(t1)+''+Word2Hex(t2);
End;
{==========================================================================}
Function Word2Bin(Decim:word):string;
Var t1,t2:word;
    s1,s2:string;
Begin
   t1:=Decim shr 8;
   t2:=Decim and $FF;
   Word2Bin:=Byte2Bin(t1)+Byte2Bin(t2);
End;
{==========================================================================}
Function DWord2Bin(Decim:longint):string;
Var t1,t2:longint;
    s1,s2:string;
Begin
   t1:=Decim shr $10;
   t2:=Decim and $FFFF;
   DWord2Bin:=Word2Bin(t1)+' '+Word2Bin(t2);
End;
{==========================================================================}

Добавлено спустя 3 минуты, 24 секунды

Тьфу, чуть самого главного не забыл ;) :

http://cp.people.overclockers.ru/cgi-bi ... Schisl.rar
Цитата:
Простенькая пpограмма (+исходники на Pascal) пеpевода натуральных десятичных чисел в любые пpочие системы счисления и обpатно

Это я прошлым летом 'развлекался' :)

_________________
ПС: [13-06-2006] Идеальный скриншот BIOS'а ? Запросто ! // K.V.


 

xKVtor пасиб


 

Member
Статус: Не в сети
Регистрация: 01.06.2003
Откуда: Pskov
AlexZerg
AlexZerg писал(а):
Кто придумает оптимальнее пделитесь плз...
Выгоднее делить число не на все числа из диапазона до sqrt(N), а на все предварительно сохраненные ПРОСТЫЕ числа из этого же диапазона.

Правда, расплачиваться придется памятью (под массив простых чисел). Но для N=2^16 (=65536) этот массив потребует всего ~6..8 тыс. ячеек формата word.
РТУТь писал(а):
пасиб
на здоровье :)

_________________
ПС: [13-06-2006] Идеальный скриншот BIOS'а ? Запросто ! // K.V.


 

Member
Статус: Не в сети
Регистрация: 17.04.2005
Подскажите как преобразовать массив таким образом, чтобы сначала располагались элементы, целая часть которых не превышает 1


Последний раз редактировалось eldarovich88 16.11.2005 16:39, всего редактировалось 1 раз.

 

Member
Статус: Не в сети
Регистрация: 21.10.2003
Откуда: Брест
Фото: 47
xKVtor писал(а):
...Выгоднее делить число не на все числа из диапазона до sqrt(N), а на все предварительно сохраненные ПРОСТЫЕ числа из этого же диапазона...

Только на простые? :?: :spy:

_________________
А ещё недавно ждали AMD Steamroller на AM3+


 

Member
Статус: Не в сети
Регистрация: 01.06.2003
Откуда: Pskov
AlexZerg
AlexZerg писал(а):
Только на простые?

Да, только на простые.

Пример:

Допустим, мы проверяем делимость некоторого числа на непростое число 15.

Число 15 представляет из себя произведение простых чисел 5 и 3.

А делимость на 5 и на 3 мы уже проверяли за несколько шагов до этого: раз уж мы дошли до 15, значит на все предыдущие числа (от 2 до 14, в том числе 3 и 5) рассматриваемое число без остатка не делилось.

Если число не делилось без остатка ни на 5, ни на 3, то и на 15 без остатка оно точно не поделится :)

_________________
ПС: [13-06-2006] Идеальный скриншот BIOS'а ? Запросто ! // K.V.


 

Member
Статус: Не в сети
Регистрация: 21.10.2003
Откуда: Брест
Фото: 47
xKVtor уже понял :)

_________________
А ещё недавно ждали AMD Steamroller на AM3+


 

Люди, help!
Нужна база данных, написанная на Pascal. Смысл хранение, продажа однотипных товаров.
Может кто-то делал что-то аналогичное.


Показать сообщения за:  Поле сортировки  
Начать новую тему Новая тема / Ответить на тему Ответить  Сообщений: 985 • Страница 8 из 50<  1 ... 5  6  7  8  9  10  11 ... 50  >
-

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Перейти:  
Создано на основе phpBB® Forum Software © phpBB Group
Русская поддержка phpBB | Kolobok smiles © Aiwan