Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2006.12.10;
Скачать: [xml.tar.bz2];

Вниз

как заполнить массив   Найти похожие ветки [0..3,0...3]

 
~Aid~   (2006-11-19 15:48) [0]

как заполнить массив [0..3,0...3] разными числами от 0 до 15


 
Anatoly Podgoretsky ©   (2006-11-19 15:49) [1]

> ~Aid~  (19.11.2006 15:48:00)  [0]

В цикле


 
Орион ©   (2006-11-19 15:49) [2]

домашнее задание? Книжки читай.


 
~Aid~   (2006-11-19 15:53) [3]

ыыы... не могу найти почему зацикливается...

label 1;
var
 i,j,c:integer;
 mas:array[0..3,0..3] of integer;
function findN(a:integer):boolean;
var
  g,k:integer;
begin
 for g:=0 to 3 do begin
  for k:=0 to 3 do begin
    if a=mas[g,k] then begin result:=false;exit;end;
  end;
 end;
result:=true;

end;

begin
randomize;
 for i:=0 to 3 do begin
  for j:=0 to 3 do begin
   1: c:=random(14)+1;
      if findN(c) then  mas[i,j]:=c
       else goto 1;
  end;
 end;
 for i:=0 to 3 do begin
  for j:=0 to 3 do begin
   write(mas[i,j]," ");
  end;
  writeln;
 end;
readln;


 
Джо ©   (2006-11-19 15:56) [4]

Я не могу заставить себя поверить, что подобный код написан человеком (c) Знакомый менеджер.


 
~Aid~   (2006-11-19 15:58) [5]

)) человеком


 
Anatoly Podgoretsky ©   (2006-11-19 16:00) [6]

> ~Aid~  (19.11.2006 15:53:03)  [3]

4*4 = 16
Плюс не выполняется условие от 0


 
~Aid~   (2006-11-19 16:01) [7]

то есть числа 0,1,..,15

что значит условие от 0?


 
KilkennyCat ©   (2006-11-19 16:02) [8]

> if findN(c) then  mas[i,j]:=c
>       else goto 1;


вероятно, здесь всегда гоуту. вот и зацикливается.


 
~Aid~   (2006-11-19 16:03) [9]

а как поправить?


 
KilkennyCat ©   (2006-11-19 16:04) [10]

переписать алгоритм нафиг.


 
Anatoly Podgoretsky ©   (2006-11-19 16:05) [11]

> ~Aid~  (19.11.2006 16:01:07)  [7]

как заполнить массив [0..3,0...3] разными числами от 0 до 15


 
KilkennyCat ©   (2006-11-19 16:05) [12]

в твоем варианте, методом от противного:
заполняй последовательностью 0..15 случайно выбранные ячейки, с проверкой их на уже заполненность. код будет в пять раз меньше.


 
~Aid~   (2006-11-19 16:06) [13]

а... щас попробую


 
Орион ©   (2006-11-19 16:09) [14]

> [12] KilkennyCat ©   (19.11.06 16:05)

Теоретически бесконечный цикл может получиться :)
Лучше сразу заполнить массив числами, а потом рандомное чило рандомных перестановок сделать.


 
KilkennyCat ©   (2006-11-19 16:12) [15]

> [14] Орион ©   (19.11.06 16:09)

теоретически как раз бесконечно не будет, а вот практически :))
Но, мощная машина успеет отработать :)


 
~Aid~   (2006-11-19 16:14) [16]

так как же лучше сделать?


 
Anatoly Podgoretsky ©   (2006-11-19 16:16) [17]

> ~Aid~  (19.11.2006 16:14:16)  [16]

В институте вывесить объяву - помогите решить, оплату гарантирую.


 
~Aid~   (2006-11-19 16:18) [18]

Anatoly Podgoretsky
не уместно


 
KilkennyCat ©   (2006-11-19 16:28) [19]

можно несколькими способами. моим, или Ориона... или еще третьим вариантом.
от прогона пустых циклов в моем варианте тоже несложно уйти.


 
Anatoly Podgoretsky ©   (2006-11-19 16:28) [20]

> ~Aid~  (19.11.2006 16:18:18)  [18]

Конечно неуместно, 14 чисел не хватит для заполнения массива из 16 элементов и как ни старайся только зацикливание и получишь.


 
~Aid~   (2006-11-19 16:45) [21]

ыы от [0..15]-так понятно.

вообще написал вроде бы быстро работает..
нехотел рандом потому что еще будет подсчет кол-ва инверсий в массиве.. то есть будет не очень быстро

c:=0;
 for i:=0 to 3 do begin
  for j:=0 to 3 do begin
    mas[i,j]:=c;
    inc(c);
  end;
 end;
 c:=random(5)+50;
 for  i:=1 to c do
  begin
    o1:=random(4);
    p1:=random(4);
    o2:=random(4);
    p2:=random(4);
    c:=mas[o1,p1];
    mas[o1,p1]:=mas[o2,p2];
    mas[o2,p2]:=c;
  end;



Страницы: 1 вся ветка

Форум: "Начинающим";
Текущий архив: 2006.12.10;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.48 MB
Время: 0.045 c
6-1152805949
Георгий А.
2006-07-13 19:52
2006.12.10
Как заставить перегрузиться сетевую карту


2-1163878857
c0rben
2006-11-18 22:40
2006.12.10
Фиксированный вывод


2-1163808177
aleko
2006-11-18 03:02
2006.12.10
надстройка в Excel


2-1164310772
Kostafey
2006-11-23 22:39
2006.12.10
Экспорт из TBDGridEh в Excel


6-1153662868
prim_v
2006-07-23 17:54
2006.12.10
изменить IP





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский