[Logo] Форум DL
  [DL]  На главную страницу 
Индекс форума ->Учебный процесс ГГУ/СШ 27 ->Проектирование цифровых систем 1, 2, 3, 4, 5, 6, 7, 8, 9
Автор Сообщение
Никита Обухов

Темы: 1
Сообщений: 16

Мой профиль
Экзамен\Индивидуальные задания\Проектирование цифровых устройств\По таблицам истинности\5 - "Степень" 44247 Алексин Александр, ПОИТ-26, май 2006
На выход подать IN_0 в степени IN_1. P.S. Любое число в нулевой степени равно единице


один из тестов подозреваю ложным
;
Set 11,2 on IN_0 at 9001
Set 00,2 on IN_1 at 9001
Diff 00011,2 on OUT_0 at 12000
;

число 3 возвели в нулевую степень, должна стать 1. По тестам, должна остаться тройкой. Но это противоречит условию "Любое число в нулевой степени равно единице"
Андрей Михалев

Темы: 0
Сообщений: 31

Мой профиль
Здравствуйте. У меня возник вопрос по задаче https://dl.gsu.by/task.jsp?nid=2175801&cid=1256. В моем решении все до последней пересылки работает хорошо. А при выполнении последней пересылки результат становится знаковым. И, если в ответе число, большее 127, то с учетом корректировки знака ответ становится неверным (например, вместо 235 в переменную z заносится -21). Возможно ли это как-то исправить?
jmp start
x dw 55535
z db 0
start: mov bx,x
       mov cx,-1
met:   add cx,1
       mov ax,cx
       mul ax
       cmp ax,bx
       jbe met
       sub cx,1
pend:  mov z,cl
jmp pend;E$
     

Игорь Коршунов

Темы: 7
Сообщений: 2186

Мой профиль


Андрей Михалев:

Здравствуйте. У меня возник вопрос по задаче https://dl.gsu.by/task.jsp?nid=2175801&cid=1256. В моем решении все до последней пересылки работает хорошо. А при выполнении последней пересылки результат становится знаковым. И, если в ответе число, большее 127, то с учетом корректировки знака ответ становится неверным (например, вместо 235 в переменную z заносится -21). Возможно ли это как-то исправить?
jmp start
x dw 55535
z db 0
start: mov bx,x
       mov cx,-1
met:   add cx,1
       mov ax,cx
       mul ax
       cmp ax,bx
       jbe met
       sub cx,1
pend:  mov z,cl
jmp pend;E$
     
 

В 1 байте хранятся числа:
от 0 до 255, если мы считаем их беззнаковыми.
от -128 до +127, если мы считаем их знаковыми.

Это вопрос интерпретации битового представления числа.
Если без знака +235, если со знаком -21, хотя на самом деле в памяти компьютера в обоих случаях 11101011.
Андрей Михалев

Темы: 0
Сообщений: 31

Мой профиль
Я понимаю. Дело в том, что после последней пересылки в переменную z всегда сохраняется знаковое число, даже если в cl хранилось до этого беззнаковое. И в результате выполнения программы в cl остается, например, 255, в то время как в z заносится значение -1.
Игорь Коршунов

Темы: 7
Сообщений: 2186

Мой профиль


Андрей Михалев:

Я понимаю. Дело в том, что после последней пересылки в переменную z всегда сохраняется знаковое число, даже если в cl хранилось до этого беззнаковое. И в результате выполнения программы в cl остается, например, 255, в то время как в z заносится значение -1. 

255 = 11111111
-1 = 11111111

255 и -1 это одно и то же.
Игорь Коршунов

Темы: 7
Сообщений: 2186

Мой профиль


Андрей Михалев:

Здравствуйте. У меня возник вопрос по задаче https://dl.gsu.by/task.jsp?nid=2175801&cid=1256. В моем решении все до последней пересылки работает хорошо. А при выполнении последней пересылки результат становится знаковым. И, если в ответе число, большее 127, то с учетом корректировки знака ответ становится неверным (например, вместо 235 в переменную z заносится -21). Возможно ли это как-то исправить?
jmp start
x dw 55535
z db 0
start: mov bx,x
       mov cx,-1
met:   add cx,1
       mov ax,cx
       mul ax
       cmp ax,bx
       jbe met
       sub cx,1
pend:  mov z,cl
jmp pend;E$
     
 

Здесь проблема при самых больших значениях х.
Например, при х=65535 цикл становится бесконечным, т.к.
максимальный квадрат числа помещающийся в AX это 65025 (квадрат 255). Квадрат 256 уже не помещается в AX и старшая часть записывается в DX.

Нужно добавить дополнительную проверку на большие числа х.
Игорь Коршунов

Темы: 7
Сообщений: 2186

Мой профиль


Никита Обухов:

Экзамен\Индивидуальные задания\Проектирование цифровых устройств\По таблицам истинности\5 - "Степень" 44247 Алексин Александр, ПОИТ-26, май 2006
На выход подать IN_0 в степени IN_1. P.S. Любое число в нулевой степени равно единице


один из тестов подозреваю ложным
;
Set 11,2 on IN_0 at 9001
Set 00,2 on IN_1 at 9001
Diff 00011,2 on OUT_0 at 12000
;

число 3 возвели в нулевую степень, должна стать 1. По тестам, должна остаться тройкой. Но это противоречит условию "Любое число в нулевой степени равно единице"
 

В тесте я вижу вот это:

;
Set 11,2 on IN_0 at 9001
Set 00,2 on IN_1 at 9001
Diff 00001,2 on OUT_0 at 12000
;
 

Т.е. все правильно.
Диана Кравцова

Темы: 0
Сообщений: 10

Мой профиль
Организация и функционирование ЭВМ (ПО2/ИТ2/ПИ1) - 2022
Командные олимпиады\Программирование\Подготовка к контрольному срезу\Контроль\Ассемблер\1 - "Задача №1" (5593)
http://dl.gsu.by/task.jsp?nid=2175917&cid=1256

У меня ответ такой, как и в тесте. Решение не принимается.
4.3 12:53 1. Задача №1 0 / 100 [test 1]: Тест не прошел: res hex[2]: 0FFFF. 11.i86 DelTA3 at NIT0 Winter i86

jmp begin

	a	dw	4
	b	dw	-2
	res	dw	0
	c	db	-3
	d	db	-1

begin:
	mov al,d
	cbw
	imul a

	cmp ax,0
	jl y1
	jmp y2

y1:
	mov ax,a
	cwd
	idiv b
	mov bx,ax
	mov al,c
	cbw
	add bx,ax
	mov al,d
	cbw
	imul a
	sub bx,ax
	mov res,ax

	jmp halt

y2:
	mov ax,a
	idiv d
	cbw
	mov cx,ax
	mov al,c
	cbw
	add ax,cx
	imul b
	mov bx,b
	sub bx,ax
	mov res,bx

halt: jmp halt ;$e

Игорь Коршунов

Темы: 7
Сообщений: 2186

Мой профиль


Диана Кравцова:

Организация и функционирование ЭВМ (ПО2/ИТ2/ПИ1) - 2022
Командные олимпиады\Программирование\Подготовка к контрольному срезу\Контроль\Ассемблер\1 - "Задача №1" (5593)
http://dl.gsu.by/task.jsp?nid=2175917&cid=1256

У меня ответ такой, как и в тесте. Решение не принимается.
4.3 12:53 1. Задача №1 0 / 100 [test 1]: Тест не прошел: res hex[2]: 0FFFF. 11.i86 DelTA3 at NIT0 Winter i86

jmp begin

	a	dw	4
	b	dw	-2
	res	dw	0
	c	db	-3
	d	db	-1

begin:
	mov al,d
	cbw
	imul a

	cmp ax,0
	jl y1
	jmp y2

y1:
	mov ax,a
	cwd
	idiv b
	mov bx,ax
	mov al,c
	cbw
	add bx,ax
	mov al,d
	cbw
	imul a
	sub bx,ax
	mov res,ax

	jmp halt

y2:
	mov ax,a
	idiv d
	cbw
	mov cx,ax
	mov al,c
	cbw
	add ax,cx
	imul b
	mov bx,b
	sub bx,ax
	mov res,bx

halt: jmp halt ;$e
 

Ответ нужно смотреть в переменной res.

В конце первой ветки ошибка.

sub bx,ax
mov res,ax
 

Результат вычитания заносится в BX, но в res записывается значение из AX.
Андрей Михалев

Темы: 0
Сообщений: 31

Мой профиль
Организация и функционирование ЭВМ (ПО2/ИТ2/ПИ1) - 2022
Командные олимпиады\Программирование\Символьные строки\Контроль\Числовые массивы\6 - "Строка факториала" (54618)
http://dl.gsu.by/task.jsp?nid=2175856&cid=1256

У меня не прошел секретный тест. Что это за тест и можно ли его чисто теоретически посмотреть? Я думал, что он состоит в том, что 0!=1#, учел этот вариант, но результат тот же самый


jmp start
n db 0
c db 48
ten db 10
out_str db 100 dup(?)
start:
	mov ch,'*'
	mov dl,'#'
	mov dh,'='
	mov bh,'!'
	lea di,out_str
	mov bl,n
	cmp bl,0
	je spec
	mov cl,1
	mov al,n
	cmp al,10
	jl met3
	cbw
	idiv ten
	add al,c
	mov [di],al
	inc di
	add ah,c
	mov [di],ah
	inc di
	mov [di],bh
	inc di
	mov [di],dh
	inc di
	jmp cikl
met3:	add al,c
	mov [di],al
	inc di
	mov [di],bh
	inc di
	mov [di],dh
	inc di
cikl:	cmp cl,10
	jl met1
	mov al,cl
	cbw
	xor ah,ah
	idiv ten
	add al,c
	mov [di],al
	inc di
	add ah,c
	mov [di],ah
	inc di
	mov [di],ch
	inc di
	jmp met2
met1:	mov al,cl
	add al,c
	mov [di],al
	inc di
	mov [di],ch
	inc di
met2:	inc cl
	cmp cl,n
	jle cikl
	dec di
	mov [di],dl
	jmp pend
spec:	add bl,c
	mov [di],bl
	inc di
	mov[di],bh
	inc di
	mov [di],dh
	inc di
	mov bl,n
	add bl,1
	add bl,c
	mov[di],bl
	inc di
	mov[di],dl
	inc di
pend:
	jmp pend;E$

Михаил Долинский

Темы: 1984
Сообщений: 47224

Мой профиль


Андрей Михалев:

Организация и функционирование ЭВМ (ПО2/ИТ2/ПИ1) - 2022
Командные олимпиады\Программирование\Символьные строки\Контроль\Числовые массивы\6 - "Строка факториала" (54618)
http://dl.gsu.by/task.jsp?nid=2175856&cid=1256

У меня не прошел секретный тест. Что это за тест и можно ли его чисто теоретически посмотреть? Я думал, что он состоит в том, что 0!=1#, учел этот вариант, но результат тот же самый 


n dec: 1

OUT_STR str: 1!=1#

[TEST2]
Cycles = 1000
CheckCycles = true
Segment - 0
Offset - 0


n dec: 13

OUT_STR str: 10!=1*2*3*4*5*6*7*8*9*10*11*12*13#

[TEST3]
Cycles = 1000
CheckCycles = true
Segment - 0
Offset - 0


n dec: 11

OUT_STR str: 11!=1*2*3*4*5*6*7*8*9*10*11#

Андрей Михалев

Темы: 0
Сообщений: 31

Мой профиль


Михаил Долинский:


Андрей Михалев:

Организация и функционирование ЭВМ (ПО2/ИТ2/ПИ1) - 2022
Командные олимпиады\Программирование\Символьные строки\Контроль\Числовые массивы\6 - "Строка факториала" (54618)
http://dl.gsu.by/task.jsp?nid=2175856&cid=1256

У меня не прошел секретный тест. Что это за тест и можно ли его чисто теоретически посмотреть? Я думал, что он состоит в том, что 0!=1#, учел этот вариант, но результат тот же самый 


n dec: 1

OUT_STR str: 1!=1#

[TEST2]
Cycles = 1000
CheckCycles = true
Segment - 0
Offset - 0


n dec: 13

OUT_STR str: 10!=1*2*3*4*5*6*7*8*9*10*11*12*13#

[TEST3]
Cycles = 1000
CheckCycles = true
Segment - 0
Offset - 0


n dec: 11

OUT_STR str: 11!=1*2*3*4*5*6*7*8*9*10*11#

 

Во втором тесте слева перед равно стоит 10! вместо 13!
Михаил Долинский

Темы: 1984
Сообщений: 47224

Мой профиль
Исправил ошибку в тесте. Спасибо.
Перетестировал твоё решение - прошло.

01.04.2022 23:58:32 02.04.2022 11:51:34 Михалев Андрей Организация и функционирование ЭВМ (ПО2/ИТ2/ПИ1) - 2022 6. Строка факториала 1 Все тесты пройдены (основной + секретный). 1.i86 DelTA3 at NIT0
Вероника Козликовская

Темы: 0
Сообщений: 12

Мой профиль
как пройти секретный тест
Организация и функционирование ЭВМ (ПО2/ИТ2/ПИ1) - 2022
Контрольные срезы\9\Программирование\Обработка строк (простая)\19 - "Перевертыш" (54422)
http://dl.gsu.by/task.jsp?nid=2174047&cid=1256

Михаил Долинский

Темы: 1984
Сообщений: 47224

Мой профиль
Report = report.txt
StopOnError = false
Statistics = false
WatchReport = false
ShowReport = false

[Test1]
Cycles = 1000
CheckCycles = true
Segment - 0
Offset - 0


str str: aaaaaa#

out1 str: yes

[Test2]
Cycles = 1000
CheckCycles = true
Segment - 0
Offset - 0


str str: aaataaaa#

out1 str: no

[Test3]
Cycles = 1000
CheckCycles = true
Segment - 0
Offset - 0


str str: cooc#

out1 str: yes

[Test4]
Cycles = 1000
CheckCycles = true
Segment - 0
Offset - 0


str str: sssaaass#s

out1 str: no

[Test5]
Cycles = 1000
CheckCycles = true
Segment - 0
Offset - 0


str str: yarray#

out1 str: yes
 
Индекс форума ->Учебный процесс ГГУ/СШ 27 ->Проектирование цифровых систем 1, 2, 3, 4, 5, 6, 7, 8, 9
Time:0,062