IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code], либо быть опубликованы на нашем PasteBin в режиме вечного хранения.
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

2 страниц V < 1 2  
 Ответить  Открыть новую тему 
> Генерация 9 значных чисел...
сообщение
Сообщение #21


Профи
****

Группа: Пользователи
Сообщений: 775
Пол: Мужской

Репутация: -  0  +


Ты юзаешь глобальную переменную (описанную как i) во всех процедурах - оттого он и крутит его бесконечно...а комбинаций все-таки ни больше ни меньше, хотя хрен его знает...
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #22


Пионер
**

Группа: Пользователи
Сообщений: 52

Репутация: -  0  +


Да с этим я разобрался все дописал вот что вышло:
Код
program cz_new;
uses crt;
type
masiv=array[1..9] of byte;
const
chisla: array[1..10] of longint = & #40;123456789,123456780,123456709,123456089,123450789,123406789,123056789,120456
789,103456789,
234567890);
var
c: masiv;
b:longint;
i,j,k: byte;
f: integer;
fl: text;


procedure pr(var a:longint);
var
obr: string;
begin
str(a,obr);
for i:=1 to 9 do
begin
val(copy(obr,i,1),c[i],f);
writeln(c[i]);
end;
end;


procedure perest;
var st,st2: string;
begin
f:=c[1];
for i:=2 to 9 do c[i-1]:=c[i];
c[9]:=f;
if c[1]=0 then
begin
f:=c[1];
for i:=2 to 9 do c[i-1]:=c[i];
c[9]:=f;
end;
st2:='';
for i:=1 to 9 do
begin
str(c[i],st);
st2:=st2+st;
end;
val(st2,b,f);
end;

begin
clrscr;
assign(fl,'out.txt');
rewrite(fl);
for j:=1 to 10 do
begin
pr(chisla[j]);
for k:=1 to 8 do
begin
perest;
if b mod 11 = 0 then writeln(fl,B);
end;
end;
close(fl);
end.


Но вот маза которую я понял, когда посмотрел на результаты - то что этими 10 числами не отделаешься, цифры ведь могут стоять не только подряд, а у меня они попорядку меняются местами... обыдно, надо додумывать "задачку".... >:(

Сообщение отредактировано: volvo -
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #23


Профи
****

Группа: Пользователи
Сообщений: 775
Пол: Мужской

Репутация: -  0  +


О чем я и говорил, когда писал о 5120 комбинациях, т.к. для каждого разряда выходит + степень => 2^9=512, а чисел всего 10 - поэтому 5120 комбинаций  :smile.gif Числа, которые ты описываешь как массив из LongInt'ов, лучше описать как String.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #24


Пионер
**

Группа: Пользователи
Сообщений: 52

Репутация: -  0  +


Зачем стрингом???
Ну зацени свой вариант, надеюсь он без Асма...
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #25


Профи
****

Группа: Пользователи
Сообщений: 775
Пол: Мужской

Репутация: -  0  +


Данная прога генерить все комбинации из набора "23456789", потом просто подставляется единица, описанная как FN. Чтобы получить действительно все комбинации для "123456789", единицу надо 9 раз поменять с другими цифрами. Думаю теперь уж доделаешь сам smile.gif

А комбинаций кстати всего - 362.880 для одного набора, а для девяти 3.265.920. Поначалу не так посчитал, через факториал надобно...

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

Код
Uses
   Crt;
Const
    S:array[1..9] of String = ('123456789','103456789','120456789',
                               '123056789','123406789','123450789',
                               '123456089','123456709','123456780');
Function Fact(N:LongInt):LongInt;
var
  T:LongInt;
  i:LongInt;
begin
    T:=1;
    For i:=1 to N do T:=T*i;
    Fact:=T;
end;
Const
    O:String = '6789';
    L:String = '2345';
    FN:Char  = '1';
    K:Char = #1;
    N=3;
Var
  T,i,Sum1,Sum2:LongInt;
  j:Byte;
  F:Text;
  V:LongInt;
  Code:Integer;
Procedure Form2;
var
  i,j:Integer;
  Tm:String;
begin
    Tm:=L;
    For j:=1 to N+1 do
    begin
    For i:=1 to 3 do
    begin
         Val(FN+L+O,V,Code);
         If V MOD 11 = 0 then WriteLn(F,V);
         K:=L[N+1];
         L[N+1]:=L[N];
         L[N]:=K;
         Val(FN+L+O,V,Code);
         If V MOD 11 = 0 then WriteLn(F,V);
         If Odd(i) then
         begin
              K:=L[N+1];
              L[N+1]:=L[N];
              L[N]:=K;
         end;
         K:=L[2];
         L[2]:=L[N+1];
         L[N+1]:=K;
    end;
    L:=Tm;
    K:=L[N-j+2];
    L[N-j+2]:=L[1];
    L[1]:=K;
    end;
end;
Procedure Form1;
var
  i,j:Integer;
  Tm:String;
begin
    Tm:=O;
    For j:=1 to N+1 do
    begin
    For i:=1 to 3 do
    begin
         Form2;
         K:=O[N+1];
         O[N+1]:=O[N];
         O[N]:=K;
         Form2;
         If Odd(i) then
         begin
              K:=O[N+1];
              O[N+1]:=O[N];
              O[N]:=K;
         end;
         K:=O[2];
         O[2]:=O[N+1];
         O[N+1]:=K;
    end;
    O:=Tm;
    K:=O[N-j+2];
    O[N-j+2]:=O[1];
    O[1]:=K;
    end;
end;

Begin
    ClrScr;
    Assign(F,'output.txt');
    ReWrite(F);
    Form1;
    Close(F);
End.


Сообщение отредактировано: volvo -
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #26


Пионер
**

Группа: Пользователи
Сообщений: 52

Репутация: -  0  +


Чего-то твоя прога у меня ничего не делает файл создает и ничего не пишет....
Ты уж доделай свой шедевр))
А потом хвастай
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #27


Профи
****

Группа: Пользователи
Сообщений: 775
Пол: Мужской

Репутация: -  0  +


Доделывать я ничего не буду. Вообще ты просил алгоритм, так вроде он есть да и кусок проги - генерящей какое-то количество номеров.
Ты попробуй протрейсить и посмотреть что она делает - она генерит комбинации для набора 123456789, причем изменяются только цифры 23456789. А когда видишь прогу в мессаге, то сначал почитай то, что в начале написано, а затем запускай. Вообщем посмотри и подумай, а пустой файл и должен быть пустым...
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #28


Пионер
**

Группа: Пользователи
Сообщений: 52

Репутация: -  0  +


Не парься.... Я читал и месейдж и саму прогу...
Неуже ли ты меня совсем за лоха держишь...Просто в лом вникать было в твои творения, ты бы хоть кометариев нацарапал...
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #29


Пионер
**

Группа: Пользователи
Сообщений: 52

Репутация: -  0  +


Да чуть не забыл- не забудь раздел называется не алгоритмы, а задачи... :P
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #30


Профи
****

Группа: Пользователи
Сообщений: 775
Пол: Мужской

Репутация: -  0  +


Цитата
Не парься.... Я читал и месейдж и саму прогу...
Неуже ли ты меня совсем за лоха держишь...Просто в лом вникать было в твои творения, ты бы хоть кометариев нацарапал...


Никого я за лоха не держу, а по поводу проги - ты понял КАК она это делает?

Цитата
Да чуть не забыл- не забудь раздел называется не алгоритмы, а задачи...

А вот по поводу этого: ты сначала просто просил подкинуть идей для генера. А потом вишь я ору, держу кого попало за лохов, хвастаюсь. Смотри как люди общаются (в плане вежливо, исключая частные случаи). Козлом и засранцем я и сам мог тебя назвать, но этого не сделал. Типа выбирай выражения/фильтруй базар/кроши батон и т.п.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #31


Пионер
**

Группа: Пользователи
Сообщений: 52

Репутация: -  0  +


Какое трогательное сообщение.... Я не знал что это тебя так сильно заденит :-[ Извини пожалуйста :'( ;)
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #32


Профи
****

Группа: Пользователи
Сообщений: 775
Пол: Мужской

Репутация: -  0  +


Прогу-то сдал?
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #33


Пионер
**

Группа: Пользователи
Сообщений: 52

Репутация: -  0  +


На следующей недели здаю...С твоим вариантом ещё даже не разбирался... времени нет(((, но ты не бойся твои глюки все найду))) :P
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #34


Пионер
**

Группа: Пользователи
Сообщений: 52

Репутация: -  0  +


Так я вот не понял одного ты чего это за прогу написал???
Твои геморно закрученные алгоритмы перестановки я не трогаю, может они и
составленны путем сложных интегрально - факториальных вычислений, (хотя это врядли, уж очень мои напаминают)
Но зачем тебе массив типа стринг из 9 элементов, если ты с ним нифига не делаешь, а меняешь местами другие переменные
Или я чего-то не догнал, и ты имел ввиду что я их туда прилеплю, каким-то макаром???
Тогда хоть идею расскажи(напиши просто ход твоего алгоритма, так ничего не понятно)...
Я весь внимания!!!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #35


Профи
****

Группа: Пользователи
Сообщений: 775
Пол: Мужской

Репутация: -  0  +


Дык, все же очень просто, дебагом не пробовал пользоваться. Проследи за изменением локальных переменных по прозвищу Tm в процедурах Form1/2.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #36


Пионер
**

Группа: Пользователи
Сообщений: 52

Репутация: -  0  +


Ну вот вчера ходил её здавать...
Все оказалось на много хуже чем я думал/ Ни мой ни твой вареант не пошел так как они оба "используют перебор", а нужно исходить из сумм цифр на четных и не четных местах. Зато она перед мной извинилась и сказала что вычеркнет это задание, так как сама решала  его день, и зделала только половину)) Но если я его доведу до ума  то это будет засчитанно как курсовая..
Она дала мне исходничек  со своим вариантом перестановки  чисел для составления сумм, скоро ввыложу его( как сканер подключу..)
Такие проги.... ;D
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #37


Профи
****

Группа: Пользователи
Сообщений: 775
Пол: Мужской

Репутация: -  0  +


Выкладывай скорее, что же это за прога, если УЧИТЕЛЬ писал 1/2 оной целый ДЕНЬ!!!  :o  :D

Какой способ использует учитель???

Вроде все прикинул  :(
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #38


Пионер
**

Группа: Пользователи
Сообщений: 52

Репутация: -  0  +


Способ у нее как раз по условию она подбирает комбинации сумм цифр как в условии написанно... блин ее этот алгоритм на 1.5 листика без бутылки не разберешся, сегодня вечером положу...
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

2 страниц V < 1 2
 Ответить  Открыть новую тему 
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0

 





- Текстовая версия 21.12.2024 21:53
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name