[Logo] Форум DL
  [DL]  Back to home page 
Forum Index ->Учебный процесс ГГУ/СШ 27 ->Проектирование цифровых систем 1, 2
Author Message
Dmitriy Logoyda

Topics: 0
Messages: 14

My Profile


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


Дмитрий Логойда:

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

Не получается сдать задачу. Думаю из-за того что в тесте опечатка. 


Конкретнее поясни свою мысль - докажи.

Решили: 323  
Думаю, вероятнее, что ошибка у тебя.
Но если будет твоё доказательство, проще будет понять, в чём именно ты ошибаешься
 


При прохождении этого теста в Winter он выдаёт:
[тест 4]: не объявлена переменная b.
С такой ошибкой ещё не сталкивался и поэтому думаю что опечатка в тесте (по ссылке выше скриншоты теста)
Mihail Dolinskiy

Topics: 1556
Messages: 36794

My Profile
В протоколе я вижу такую ошибку

17.04.2019 15:29:04 17.04.2019 15:29:09 Логойда Дмитрий Организация и функционирование ЭВМ (ПО2/ИТ2) - 2019 2. Задача №2 0 [test 4]: Тест не прошел: res sgn[2]: -2482. 2.i86 DelTA3 at NIT8
17.04.2019 15:22:27 17.04.2019 15:22:34 Логойда Дмитрий Организация и функционирование ЭВМ (ПО2/ИТ2) - 2019 2. Задача №2 0 [test 4]: Тест не прошел: res sgn[2]: -2482. 2.i86 DelTA3 at NIT5


Если у тебя такая ошибка,
[тест 4]: не объявлена переменная b.  

наверно ты не тот тест подключаешь или не к той программе.

Это твой исходник

	jmp	begin
a	dw	-1
b	dw	-1
c	db	-1
d	db	-1
RES	dw	9
begin:
	mov	ax,b
	cmp	ax,0
	jg	met1
	mov	al,c
	cbw
	cmp	ax,0
	jg	met1
	mov	ax,a
	imul	b
	mov	bx,ax
	mov	al,c
	cbw
	add	bx,ax
	mov	al,d
	cbw
	imul	bx
	mov	si,ax
	mov	al,d
	cbw
	imul	a
	mov	bx,ax
	mov	al,d
	cbw
	add	bx,ax
	mov	al,c
	cbw
	imul	bx
	sub	si,ax
	mov	ax,si
	cwd
	idiv	b
	mov	RES,ax
	jmp	halt
met1:
	mov	al,c
	cbw
	mov	bx,ax
	mov	ax,a
	cwd
	idiv	b
	cwd
	idiv	bx
	mov	si,ax
	mov	al,d
	imul	c
	mov	di,ax
	mov	al,d
	cbw
	cwd
	idiv	b
	sub	di,ax
	mov	ax,di
	imul	a
	add	si,ax
	mov	RES,si
	jmp	halt
halt:
	jmp	halt;$E


А это тест который ты должен подключить

Report = report.txt
StopOnError = true
Statistics = false
WatchReport = false
ShowReport = true

[test 1]
Cycles = 1000
CheckCycles = false
Segment - 0
Offset - 0


a dec[2]: 600
b dec[2]: 1
c sgn: -2
d sgn: -10

res dec[2]: 17700

[test 2]
Cycles = 1000
CheckCycles = false
Segment - 0
Offset - 0


a dec[2]: 3
b sgn[2]: -2
c dec: 3
d dec: 100

res dec[2]: 1050

[test 3]
Cycles = 1000
CheckCycles = false
Segment - 0
Offset - 0


a dec[2]: 100
b sgn[2]: -100
c dec: 0
d dec: 3

res sgn[2]: 300

[test 4]
Cycles = 1000
CheckCycles = false
Segment - 0
Offset - 0


a dec[2]: 500
b sgn[2]: -2
c sgn: -3
d dec: 10

res sgn[2]: -2482

[test 5]
Cycles = 1000
CheckCycles = false
Segment - 0
Offset - 0


a sgn[2]: 1000
b sgn[2]: 2
c sgn: 4
d sgn: 5

res sgn[2]: 18125

[test 6]
Cycles = 1000
CheckCycles = false
Segment - 0
Offset - 0


a sgn[2]: 100
b sgn[2]: 15
c sgn: -5
d sgn: 45

res sgn[2]: -22801

Mihail Dolinskiy

Topics: 1556
Messages: 36794

My Profile
А возможно ошибка появилась в результате выполнения первых трёх тестов.
Попробуй только 4-ый выполнить вручную.
Dmitriy Logoyda

Topics: 0
Messages: 14

My Profile


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

А возможно ошибка появилась в результате выполнения первых трёх тестов.
Попробуй только 4-ый выполнить вручную. 

А может быть такое, что тесты сбоят, ибо решаю следующую задачу (http://dl.gsu.by/task.jsp?nid=1823702&cid=1120) и снова не проходит 4 тест (тестовый файлы разные), там в тесте смещается D dec:20 (как я понял это должно быть с новой строки). В прошлой и этой задаче я прогнал вручную и всё вычисляет как нужно. Что с этим делать ?
/*******************
[тест 4]
Циклы = 1000
CheckCycles = false
Сегмент-0
Смещение-0


a dec[2]: 200
B dec[2]: 2
c dec: 10D dec: 20

res dec[2]: 1000
********************/
Mihail Dolinskiy

Topics: 1556
Messages: 36794

My Profile
Решили: 459  

И снова, вероятнее всего, ошибка у тебя.

Напиши на бумажке вычисления последовательно.
А потом также последовательно найди все эти ответы в своей программе.
Если не получается самому - надо попросить помощи у кого-то из одногруппников.
Ну или в понедельник на моих занятиях будем разбираться.
Dmitriy Logoyda

Topics: 0
Messages: 14

My Profile
Организация и функционирование ЭВМ (ПО2/ИТ2) - 2019
Оценка\Индивидуальные задания\Обязательные\Программирование на ассемблере (WInter)\Арифметические выражения\3 - "Задача №3" (5595)
http://dl.gsu.by/task.jsp?nid=1823702&cid=1120
отправил на проверку 22.4 14:02 3. Задача №3 0 / 100 [test 4]: Тест не прошел: res dec[2]: 1000. DelTA3 at NIT5 Winter i86
выгрузил тест, и тест также не прошло в Winter. Когда подставил значения вручную - ответ правильный
подставлял значения a=200 b=2 c=10 d=20 res=1000


[MD] Его решение можно взять здесь
22.04.2019 14:02:28 22.04.2019 14:02:33 Логойда Дмитрий Организация и функционирование ЭВМ (ПО2/ИТ2) - 2019 3. Задача №3 0 [test 4]: Тест не прошел: res dec[2]: 1000. 3.i86 DelTA3 at NIT5
Igor Korshunov

Topics: 6
Messages: 1519

My Profile


Дмитрий Логойда:

Организация и функционирование ЭВМ (ПО2/ИТ2) - 2019
Оценка\Индивидуальные задания\Обязательные\Программирование на ассемблере (WInter)\Арифметические выражения\3 - "Задача №3" (5595)
http://dl.gsu.by/task.jsp?nid=1823702&cid=1120
отправил на проверку 22.4 14:02 3. Задача №3 0 / 100 [test 4]: Тест не прошел: res dec[2]: 1000. DelTA3 at NIT5 Winter i86
выгрузил тест, и тест также не прошло в Winter. Когда подставил значения вручную - ответ правильный
подставлял значения a=200 b=2 c=10 d=20 res=1000


[MD] Его решение можно взять здесь
22.04.2019 14:02:28 22.04.2019 14:02:33 Логойда Дмитрий Организация и функционирование ЭВМ (ПО2/ИТ2) - 2019 3. Задача №3 0 [test 4]: Тест не прошел: res dec[2]: 1000. 3.i86 DelTA3 at NIT5
 

В самом начале программы:
begin:
	mov	al,d
	cbw
	mov	ax,b
	cmp	ax,bx
	jge	met1

b загружается в ax, хотя должно в bx.
В результате при выполнении сравнения используется неинициализированный регистр bx. После чего оператор перехода работает случайным образом.

Можно было несколько раз запустить тестирование и увидеть, что ошибка проявляется рандомно в разных тестах. Из чего сразу понятно, что в программе используются неинициализированные переменные.
 
Forum Index ->Учебный процесс ГГУ/СШ 27 ->Проектирование цифровых систем 1, 2
Time:0,11