Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 17.01.2010, 18:18   #21
NewMen
Пользователь
 
Регистрация: 17.01.2010
Сообщений: 40
По умолчанию

Цитата:
Код:

end;
end else begin
Меня вот это смущает
точно, я тут лишний end написал, но все равно программа не работает

все равно, иногда повторяются цифры.....

Ну что? Никто не знает?

Последний раз редактировалось Stilet; 18.01.2010 в 10:32.
NewMen вне форума Ответить с цитированием
Старый 17.01.2010, 18:29   #22
cherw9!40k
Пользователь
 
Аватар для cherw9!40k
 
Регистрация: 20.11.2009
Сообщений: 61
По умолчанию

У тебя логика неправильная. Если число сгенерировалось то, которое уже было, нет цикла, который выполнялся до тех пор, пока не найден новое число, в то время как цикл for продолжает заполнять массив.
cherw9!40k вне форума Ответить с цитированием
Старый 17.01.2010, 18:30   #23
NewMen
Пользователь
 
Регистрация: 17.01.2010
Сообщений: 40
По умолчанию

если тебе не трудно, напиши привельное Решение, а я просто сверю со своим и найду свою ошибку. Просто напиши пожалуйста...)))
NewMen вне форума Ответить с цитированием
Старый 17.01.2010, 18:31   #24
cherw9!40k
Пользователь
 
Аватар для cherw9!40k
 
Регистрация: 20.11.2009
Сообщений: 61
По умолчанию

Я тебе уже писал свою версию - тебе ее только адаптировать.
cherw9!40k вне форума Ответить с цитированием
Старый 17.01.2010, 18:37   #25
NewMen
Пользователь
 
Регистрация: 17.01.2010
Сообщений: 40
По умолчанию

блин, чё то я не могу её переделать(((

адаптация потерпела КРАХ(

Помоги...Червячок!!!)))

Последний раз редактировалось Stilet; 18.01.2010 в 10:33.
NewMen вне форума Ответить с цитированием
Старый 17.01.2010, 18:44   #26
IT-man
АльTRUEи$т
Форумчанин
 
Аватар для IT-man
 
Регистрация: 19.03.2009
Сообщений: 784
По умолчанию

Код:
program Project2;

{$APPTYPE CONSOLE}

uses
  SysUtils;

const val=100;
type vector = array[1..100] of Integer;
var  
        a:vector;
  j,i,n,k:Integer;
        f:Boolean;

begin
  Randomize;
  n:=1;
  for i:=1 to val do
    begin
      repeat
        f:=False;
        k:=Random(val+1);
        for j:=1 to n do
          if k=a[j] then
            begin
              f:=True;
              Break;
            end;
      until not f;
      a[i]:=k;
      n:=n+1;
      write(a[i]:3);
    end;
 readln;
end.
Цитата:
«Никто не войдет в Рай, имея хотя бы крупицу гордыни в своем сердце». «Аллах Красив и любит красоту. Гордыня означает отказ от истины и высокомерие»
IT-man вне форума Ответить с цитированием
Старый 17.01.2010, 18:46   #27
NewMen
Пользователь
 
Регистрация: 17.01.2010
Сообщений: 40
По умолчанию

Спасибо)))

IT-Man а сможешь решить 2ю задачю?

Известно, что цвет трехмерен (RGB), а плоскость экрана двумерная. Задача заключается в том, что бы нарисовать на экране непрерывную палитру, содержащую все цвета.

Для решения задачи вам потребуется немного теории.

Дадим критерий непрерывной палитры:
Две соседних точки (по вертикали или горизонтали), имеющие цвета (R1, G1, B1) и (R2, G2, B2) соответственно должны удовлетворять следующему равенству:
Abs (R1 - R2) + Abs (G1 - G2) + Abs (B1- B2) = 1

В задаче необходимо оперировать палитрой из 4096 цветов (на некоторых мобильных телефонах, к примеру, такая). В ней каждая компонента цвета 4-х разрядная, следовательно, принимает значения от 0 до 15.

Вам потребуется функция преобразования RGB-цвета из данной палитры в 24-х битный цвет экрана. Так же вы должны уметь выводить точки произвольного цвета на экран.


Это задача для Гениев! ))) Кто попробует её Решить?)

Последний раз редактировалось Stilet; 18.01.2010 в 10:33.
NewMen вне форума Ответить с цитированием
Старый 17.01.2010, 21:20   #28
val_nnm
Форумчанин
 
Регистрация: 18.10.2009
Сообщений: 185
По умолчанию

Вот тебе подсказка:
Я вижу два способа создать палитру с нужими тебе свойствами.

1) Палитра будет размером 16x256 не один цвет не будет повторятся.
2) Палитра 128x128 (но некоторые цвета будут повторятся) Это будет достаточно сложный алгорить. (поэтому его расматрвать не будет)

Первый вариант можно реализовать с помощью следующего кода
Код:
var r,g,b:integer;
    x,y:integer;
begin
  x := 0;
  y := 0;
  for x := 0 to 15 do Begin
    for y := 0 to ((16*16)-1) do Begin
      r := x;
      g := y div 16;
      if (((y div 16) mod 2) = 0) then Begin
        b := y mod 16;
      End else Begin
        b := 15-(y mod 16);
      end;
      { Здесь нужно перевести цвета в нужный тебе формат и нарисовать пиксель в кординатах x,y }
    end;
  end;
end;
На С# пишу лучше чем на русском.
"У меня правильнописание хромает. Оно хорошее, но почему-то хромает."
val_nnm вне форума Ответить с цитированием
Старый 17.01.2010, 21:35   #29
NewMen
Пользователь
 
Регистрация: 17.01.2010
Сообщений: 40
По умолчанию

мне нужен первы вариант 16х256
NewMen вне форума Ответить с цитированием
Старый 17.01.2010, 21:36   #30
NewMen
Пользователь
 
Регистрация: 17.01.2010
Сообщений: 40
По умолчанию

Спасибо)))
NewMen вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Одномерный массив. Q basic - Построить новый массив из элементов исходного ,которые больше P. Marishkaa Помощь студентам 2 12.01.2010 16:54
Массив LuBuMaster Общие вопросы C/C++ 22 30.11.2009 14:33
Двумерный массив, одномерный массив. Branbal Помощь студентам 14 18.11.2009 12:40
массив Cpluser Общие вопросы .NET 16 04.06.2009 23:15
Упорядочить массив в порядке возрастания и напечатать входной и исходный массив. TheVenny Помощь студентам 3 26.11.2008 15:06