![]() |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
![]() ![]() |
![]() |
GLuk |
![]()
Сообщение
#21
|
![]() Профи ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 775 Пол: Мужской Репутация: ![]() ![]() ![]() |
Ты юзаешь глобальную переменную (описанную как i) во всех процедурах - оттого он и крутит его бесконечно...а комбинаций все-таки ни больше ни меньше, хотя хрен его знает...
|
reill |
![]()
Сообщение
#22
|
![]() Пионер ![]() ![]() Группа: Пользователи Сообщений: 52 Репутация: ![]() ![]() ![]() |
Да с этим я разобрался все дописал вот что вышло:
Код 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 - 17.12.2004 11:46 |
GLuk |
![]()
Сообщение
#23
|
![]() Профи ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 775 Пол: Мужской Репутация: ![]() ![]() ![]() |
О чем я и говорил, когда писал о 5120 комбинациях, т.к. для каждого разряда выходит + степень => 2^9=512, а чисел всего 10 - поэтому 5120 комбинаций :
![]() |
reill |
![]()
Сообщение
#24
|
![]() Пионер ![]() ![]() Группа: Пользователи Сообщений: 52 Репутация: ![]() ![]() ![]() |
Зачем стрингом???
Ну зацени свой вариант, надеюсь он без Асма... |
GLuk |
![]()
Сообщение
#25
|
![]() Профи ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 775 Пол: Мужской Репутация: ![]() ![]() ![]() |
Данная прога генерить все комбинации из набора "23456789", потом просто подставляется единица, описанная как FN. Чтобы получить действительно все комбинации для "123456789", единицу надо 9 раз поменять с другими цифрами. Думаю теперь уж доделаешь сам
![]() А комбинаций кстати всего - 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 - 17.12.2004 11:46 |
reill |
![]()
Сообщение
#26
|
![]() Пионер ![]() ![]() Группа: Пользователи Сообщений: 52 Репутация: ![]() ![]() ![]() |
Чего-то твоя прога у меня ничего не делает файл создает и ничего не пишет....
Ты уж доделай свой шедевр)) А потом хвастай |
GLuk |
![]()
Сообщение
#27
|
![]() Профи ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 775 Пол: Мужской Репутация: ![]() ![]() ![]() |
Доделывать я ничего не буду. Вообще ты просил алгоритм, так вроде он есть да и кусок проги - генерящей какое-то количество номеров.
Ты попробуй протрейсить и посмотреть что она делает - она генерит комбинации для набора 123456789, причем изменяются только цифры 23456789. А когда видишь прогу в мессаге, то сначал почитай то, что в начале написано, а затем запускай. Вообщем посмотри и подумай, а пустой файл и должен быть пустым... |
reill |
![]()
Сообщение
#28
|
![]() Пионер ![]() ![]() Группа: Пользователи Сообщений: 52 Репутация: ![]() ![]() ![]() |
Не парься.... Я читал и месейдж и саму прогу...
Неуже ли ты меня совсем за лоха держишь...Просто в лом вникать было в твои творения, ты бы хоть кометариев нацарапал... |
reill |
![]()
Сообщение
#29
|
![]() Пионер ![]() ![]() Группа: Пользователи Сообщений: 52 Репутация: ![]() ![]() ![]() |
Да чуть не забыл- не забудь раздел называется не алгоритмы, а задачи... :P
|
GLuk |
![]()
Сообщение
#30
|
![]() Профи ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 775 Пол: Мужской Репутация: ![]() ![]() ![]() |
Цитата Не парься.... Я читал и месейдж и саму прогу... Неуже ли ты меня совсем за лоха держишь...Просто в лом вникать было в твои творения, ты бы хоть кометариев нацарапал... Никого я за лоха не держу, а по поводу проги - ты понял КАК она это делает? Цитата Да чуть не забыл- не забудь раздел называется не алгоритмы, а задачи... А вот по поводу этого: ты сначала просто просил подкинуть идей для генера. А потом вишь я ору, держу кого попало за лохов, хвастаюсь. Смотри как люди общаются (в плане вежливо, исключая частные случаи). Козлом и засранцем я и сам мог тебя назвать, но этого не сделал. Типа выбирай выражения/фильтруй базар/кроши батон и т.п. |
reill |
![]()
Сообщение
#31
|
![]() Пионер ![]() ![]() Группа: Пользователи Сообщений: 52 Репутация: ![]() ![]() ![]() |
Какое трогательное сообщение.... Я не знал что это тебя так сильно заденит :-[ Извини пожалуйста :'( ;)
|
GLuk |
![]()
Сообщение
#32
|
![]() Профи ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 775 Пол: Мужской Репутация: ![]() ![]() ![]() |
Прогу-то сдал?
|
reill |
![]()
Сообщение
#33
|
![]() Пионер ![]() ![]() Группа: Пользователи Сообщений: 52 Репутация: ![]() ![]() ![]() |
На следующей недели здаю...С твоим вариантом ещё даже не разбирался... времени нет(((, но ты не бойся твои глюки все найду))) :P
|
reill |
![]()
Сообщение
#34
|
![]() Пионер ![]() ![]() Группа: Пользователи Сообщений: 52 Репутация: ![]() ![]() ![]() |
Так я вот не понял одного ты чего это за прогу написал???
Твои геморно закрученные алгоритмы перестановки я не трогаю, может они и составленны путем сложных интегрально - факториальных вычислений, (хотя это врядли, уж очень мои напаминают) Но зачем тебе массив типа стринг из 9 элементов, если ты с ним нифига не делаешь, а меняешь местами другие переменные Или я чего-то не догнал, и ты имел ввиду что я их туда прилеплю, каким-то макаром??? Тогда хоть идею расскажи(напиши просто ход твоего алгоритма, так ничего не понятно)... Я весь внимания!!! |
GLuk |
![]()
Сообщение
#35
|
![]() Профи ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 775 Пол: Мужской Репутация: ![]() ![]() ![]() |
Дык, все же очень просто, дебагом не пробовал пользоваться. Проследи за изменением локальных переменных по прозвищу Tm в процедурах Form1/2.
|
reill |
![]()
Сообщение
#36
|
![]() Пионер ![]() ![]() Группа: Пользователи Сообщений: 52 Репутация: ![]() ![]() ![]() |
Ну вот вчера ходил её здавать...
Все оказалось на много хуже чем я думал/ Ни мой ни твой вареант не пошел так как они оба "используют перебор", а нужно исходить из сумм цифр на четных и не четных местах. Зато она перед мной извинилась и сказала что вычеркнет это задание, так как сама решала его день, и зделала только половину)) Но если я его доведу до ума то это будет засчитанно как курсовая.. Она дала мне исходничек со своим вариантом перестановки чисел для составления сумм, скоро ввыложу его( как сканер подключу..) Такие проги.... ;D |
GLuk |
![]()
Сообщение
#37
|
![]() Профи ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 775 Пол: Мужской Репутация: ![]() ![]() ![]() |
Выкладывай скорее, что же это за прога, если УЧИТЕЛЬ писал 1/2 оной целый ДЕНЬ!!! :o :D
Какой способ использует учитель??? Вроде все прикинул :( |
reill |
![]()
Сообщение
#38
|
![]() Пионер ![]() ![]() Группа: Пользователи Сообщений: 52 Репутация: ![]() ![]() ![]() |
Способ у нее как раз по условию она подбирает комбинации сумм цифр как в условии написанно... блин ее этот алгоритм на 1.5 листика без бутылки не разберешся, сегодня вечером положу...
|
![]() ![]() |
![]() |
Текстовая версия | 31.07.2025 4:42 |