![]() |
#1 (permalink) |
Member
Регистрация: 22.10.2016
Сообщений: 62
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
|
![]() Задача. Найти натуральное десятизначное число, все цифры которого различны. Кроме того это число должно удовлетворять условиям 2. число, составленное из первых двух цифр числа, делится на 2 3. число, составленное из первых трех цифр числа, делится на 3 4. число, составленное из первых четырех цифр числа, делится на 4 5-9. и так далее до 9. 10. и наконец само число делится на 10. Предлагаемая вашему вниманию программа решает данную задачу. Она запрашивает ввести число равное количеству неизвестных цифр, обращается к соответствующей процедуре для решения задачи. Необходимый код вставлен прямо в процедуру. Но мне бы хотелось написать более универсальную программу. Как я вначале сказал, записать весь код в отдельную процедуру. И тогда, запущенная программа должна вызвать необходимую процедуру, которая в свою очередь вызывает процедуру для решения задачи. Пример был дан. Как это сделать? Код:
REM REM 3816547290 REM DECLARE SUB Cicl2 () DECLARE SUB Cicl3 () DECLARE SUB Cicl4 () DECLARE SUB Cicl5 () DECLARE SUB Cicl6 () DECLARE SUB Cicl7 () DECLARE SUB Cicl8 () DECLARE SUB Cicl9 () DECLARE SUB Cicl10 () DEFLNG A-Z CLS INPUT "N = "; n SELECT CASE n CASE 2: CALL Cicl2 CASE 3: CALL Cicl3 CASE 4: CALL Cicl4 CASE 5: CALL Cicl5 CASE 6: CALL Cicl6 CASE 7: CALL Cicl7 CASE 8: CALL Cicl8 CASE 9: CALL Cicl9 CASE 10: CALL Cicl10 END SELECT END SUB Cicl10 FOR i1 = 1 TO 9 FOR i2 = 0 TO 9 IF i2 = i1 THEN 200 FOR i3 = 0 TO 9 IF i3 = i1 OR i3 = i2 THEN 300 FOR i4 = 0 TO 9 IF i4 = i1 OR i4 = i2 OR i4 = i3 THEN 400 FOR i5 = 0 TO 9 IF i5 = i1 OR i5 = i2 OR i5 = i3 OR i5 = i4 THEN 500 FOR i6 = 0 TO 9 IF i6 = i1 OR i6 = i2 OR i6 = i3 OR i6 = i4 OR i6 = i5 THEN 600 FOR i7 = 0 TO 9 IF i7 = i1 OR i7 = i2 OR i7 = i3 OR i7 = i4 OR i7 = i5 OR i7 = i6 THEN 700 FOR i8 = 0 TO 9 IF i8 = i1 OR i8 = i2 OR i8 = i3 OR i8 = i4 OR i8 = i5 OR i8 = i6 OR i8 = i7 THEN 800 FOR i9 = 0 TO 9 IF i9 = i1 OR i9 = i2 OR i9 = i3 OR i9 = i4 OR i9 = i5 OR i9 = i6 OR i9 = i7 OR i9 = i8 THEN 900 i0 = 45 - (i1 + i2 + i3 + i4 + i5 + i6 + i7 + i8 + i9) REM ............................................... IF i0 <> 0 THEN 900 a2 = 10 * i1 + i2 a3 = 10 * a2 + i3 a4 = 10 * a3 + i4 a5 = 10 * a4 + i5 a6 = 10 * a5 + i6 a7 = 10 * a6 + i7 a8 = 10 * a7 + i8 a9 = 10 * a8 + i9 IF a2 MOD 2 <> 0 THEN 200 IF a3 MOD 3 <> 0 THEN 300 IF a4 MOD 4 <> 0 THEN 400 IF a5 MOD 5 <> 0 THEN 500 IF a6 MOD 6 <> 0 THEN 600 IF a7 MOD 7 <> 0 THEN 700 IF a8 MOD 8 <> 0 THEN 800 IF a9 MOD 9 <> 0 THEN 900 PRINT a9 END REM ................................................ 900 : NEXT i9 800 : NEXT i8 700 : NEXT i7 600 : NEXT i6 500 : NEXT i5 400 : NEXT i4 300 : NEXT i3 200 : NEXT i2 NEXT i1 END SUB SUB Cicl2 FOR i1 = 1 TO 9 FOR i2 = 0 TO 9 IF i2 = i1 THEN 202 REM .................... KODE .... 202 : NEXT i2 NEXT i1 END SUB SUB Cicl3 FOR i1 = 1 TO 9 FOR i2 = 0 TO 9 IF i2 = i1 THEN 203 FOR i3 = 0 TO 9 IF i3 = i1 OR i3 = i2 THEN 303 REM .................... KODE .... 303 : NEXT i3 203 : NEXT i2 NEXT i1 END SUB SUB Cicl4 FOR i1 = 1 TO 9 FOR i2 = 0 TO 9 IF i2 = i1 THEN 204 FOR i3 = 0 TO 9 IF i3 = i1 OR i3 = i2 THEN 304 FOR i4 = 0 TO 9 IF i4 = i1 OR i4 = i2 OR i4 = i3 THEN 404 REM .................... KODE .... 404 : NEXT i4 304 : NEXT i3 204 : NEXT i2 NEXT i1 END SUB SUB Cicl5 FOR i1 = 1 TO 9 FOR i2 = 0 TO 9 IF i2 = i1 THEN 205 FOR i3 = 0 TO 9 IF i3 = i1 OR i3 = i2 THEN 305 FOR i4 = 0 TO 9 IF i4 = i1 OR i4 = i2 OR i4 = i3 THEN 405 FOR i5 = 0 TO 9 IF i5 = i1 OR i5 = i2 OR i5 = i3 OR i5 = i4 THEN 505 REM .................... KODE .... 505 : NEXT i5 405 : NEXT i4 305 : NEXT i3 205 : NEXT i2 NEXT i1 END SUB SUB Cicl6 FOR i1 = 1 TO 9 FOR i2 = 0 TO 9 IF i2 = i1 THEN 206 FOR i3 = 0 TO 9 IF i3 = i1 OR i3 = i2 THEN 306 FOR i4 = 0 TO 9 IF i4 = i1 OR i4 = i2 OR i4 = i3 THEN 406 FOR i5 = 0 TO 9 IF i5 = i1 OR i5 = i2 OR i5 = i3 OR i5 = i4 THEN 506 FOR i6 = 0 TO 9 IF i6 = i1 OR i6 = i2 OR i6 = i3 OR i6 = i4 OR i6 = i5 THEN 606 REM .................... KODE .... 606 : NEXT i6 506 : NEXT i5 406 : NEXT i4 306 : NEXT i3 206 : NEXT i2 NEXT i1 END SUB SUB Cicl7 FOR i1 = 1 TO 9 FOR i2 = 0 TO 9 IF i2 = i1 THEN 207 FOR i3 = 0 TO 9 IF i3 = i1 OR i3 = i2 THEN 307 FOR i4 = 0 TO 9 IF i4 = i1 OR i4 = i2 OR i4 = i3 THEN 407 FOR i5 = 0 TO 9 IF i5 = i1 OR i5 = i2 OR i5 = i3 OR i5 = i4 THEN 507 FOR i6 = 0 TO 9 IF i6 = i1 OR i6 = i2 OR i6 = i3 OR i6 = i4 OR i6 = i5 THEN 607 FOR i7 = 0 TO 9 IF i7 = i1 OR i7 = i2 OR i7 = i3 OR i7 = i4 OR i7 = i5 OR i7 = i6 THEN 707 REM .................... KODE .... 707 : NEXT i7 607 : NEXT i6 507 : NEXT i5 407 : NEXT i4 307 : NEXT i3 207 : NEXT i2 NEXT i1 END SUB SUB Cicl8 FOR i1 = 1 TO 9 FOR i2 = 0 TO 9 IF i2 = i1 THEN 208 FOR i3 = 0 TO 9 IF i3 = i1 OR i3 = i2 THEN 308 FOR i4 = 0 TO 9 IF i4 = i1 OR i4 = i2 OR i4 = i3 THEN 408 FOR i5 = 0 TO 9 IF i5 = i1 OR i5 = i2 OR i5 = i3 OR i5 = i4 THEN 508 FOR i6 = 0 TO 9 IF i6 = i1 OR i6 = i2 OR i6 = i3 OR i6 = i4 OR i6 = i5 THEN 608 FOR i7 = 0 TO 9 IF i7 = i1 OR i7 = i2 OR i7 = i3 OR i7 = i4 OR i7 = i5 OR i7 = i6 THEN 708 FOR i8 = 0 TO 9 IF i8 = i1 OR i8 = i2 OR i8 = i3 OR i8 = i4 OR i8 = i5 OR i8 = i6 OR i8 = i7 THEN 808 REM .................... KODE .... 808 : NEXT i8 708 : NEXT i7 608 : NEXT i6 508 : NEXT i5 408 : NEXT i4 308 : NEXT i3 208 : NEXT i2 NEXT i1 END SUB SUB Cicl9 FOR i1 = 1 TO 9 FOR i2 = 0 TO 9 IF i2 = i1 THEN 209 FOR i3 = 0 TO 9 IF i3 = i1 OR i3 = i2 THEN 309 FOR i4 = 0 TO 9 IF i4 = i1 OR i4 = i2 OR i4 = i3 THEN 409 FOR i5 = 0 TO 9 IF i5 = i1 OR i5 = i2 OR i5 = i3 OR i5 = i4 THEN 509 FOR i6 = 0 TO 9 IF i6 = i1 OR i6 = i2 OR i6 = i3 OR i6 = i4 OR i6 = i5 THEN 609 FOR i7 = 0 TO 9 IF i7 = i1 OR i7 = i2 OR i7 = i3 OR i7 = i4 OR i7 = i5 OR i7 = i6 THEN 709 FOR i8 = 0 TO 9 IF i8 = i1 OR i8 = i2 OR i8 = i3 OR i8 = i4 OR i8 = i5 OR i8 = i6 OR i8 = i7 THEN 809 FOR i9 = 0 TO 9 IF i9 = i1 OR i9 = i2 OR i9 = i3 OR i9 = i4 OR i9 = i5 OR i9 = i6 OR i9 = i7 OR i9 = i8 THEN 909 REM .................... KODE .... 909 : NEXT i9 809 : NEXT i8 709 : NEXT i7 609 : NEXT i6 509 : NEXT i5 409 : NEXT i4 309 : NEXT i3 209 : NEXT i2 NEXT i1 END SUB |
![]() |
![]() |
![]() |
|
Helpmaster
Member
Регистрация: 08.03.2016
Сообщений: 0
|
Зачастую на форуме создаются много аналогичных тем Free Pascal. Полный перебор. Арифметические ребусы Не могу разобраться как это решать??? Советы как решать тесты Как решать такие задачи? |
Ads | |
Member
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
|
![]() |
Опции темы | |
Опции просмотра | |
|
|