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

Темы: 1985
Сообщений: 47299

Мой профиль
22.11.2012 19:03:13 22.11.2012 19:03:14 Захарченко Татьяна Организация и функционирование ЭВМ (М3/ПМ4) - 2012 4. Умножение двух знаковых чисел 0 [test 1]: Тест не прошел: Размерность переменной p должна быть 0 байт. 6.i86 DelTA3 at Nit3
Игорь Коршунов

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

Мой профиль


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

22.11.2012 19:03:13 22.11.2012 19:03:14 Захарченко Татьяна Организация и функционирование ЭВМ (М3/ПМ4) - 2012 4. Умножение двух знаковых чисел 0 [test 1]: Тест не прошел: Размерность переменной p должна быть 0 байт. 6.i86 DelTA3 at Nit3  

Тесты исправлены, решения перетестированы.
Игорь Коршунов

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

Мой профиль


Юлия Ратникова:

Оценка\Индивидуальные задания\По выбору\Сконвертированные задания на программирование по схеме\Вычислить выражение\27 - "Программа по схеме 84395"

http://dl.gsu.by/task.jsp?nid=990399&cid=835

при значениях a=4, b=2 тест показывает res=5
перебрали схему в HLCCAD при этих же значениях res=2
в нашем решении на assembler res=2.

решение:

jmp begin
a db 4
b db 2
res db 0
begin: mov al,3
imul b ;b*0011
mov cl,al
mov al,a
mov bl,2
add al,bl ;a+2
cbw
idiv cl ;a+2/b*0011
mov bl,1
add al,bl ;(a+2/b*0011)+1
mov res,al
halt: jmp halt ;$E 
 

Условие задачи исправлено.
Юлия Ратникова

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

Мой профиль
Оценка\Индивидуальные задания\По выбору\Сконвертированные задания на программирование по схеме\Вычислить выражение\13 - "Программа по схеме 84381" 84381
ошибка в схеме, в входных данных нет с_4
Кристина Осипенко

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

Мой профиль
http://dl.gsu.by/task.jsp?nid=989685&cid=835
Оценка\Индивидуальные задания\По выбору\Программирование микроконтроллеров\Условные вычисления\34 - "Вычисление функции - 2" 44602
по первой ветке должно должно получаться (при х=3, у=4) 22, а в примере получается 3.
и при отправке "секретный тест не пройден"


jmp begin
x db 3
y db 4
F db 0
begin:
mov al,x
cbw
mov bx,ax
mov al,y
cbw
imul bx
cmp ax,7
jle met1
jg met2
cmp ax,0
jle met3
met1: mov al,x
cbw
mov bx,ax
mov al,2
imul y
add ax,bx
mov F,al
jmp halt
met2:
mov al,5
imul x
mov bx,ax
mov al,2
imul y
add ax,bx
mov bx,1
sub ax,bx
mov F,al
jmp halt
met3: mov al,5
imul x
mov bx,ax
mov al,1
add al,y
cbw
sub bx,ax
mov f,bl
halt: jmp halt ;$E
 
Николай Тарасенко

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

Мой профиль
Оценка\Индивидуальные задания\По выбору\Сконвертированные задания на программирование\Микропрограммно\2 - "Простое число"

http://dl.gsu.by/task.jsp?nid=990295&cid=835

По условию требуется А - 16 бит.
Однако в протоколе при первой проверке выскочила ошибка
"Размерность переменной a должна быть 1 байт."
Виталий Коган

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

Мой профиль


Кристина Осипенко:

http://dl.gsu.by/task.jsp?nid=989685&cid=835
Оценка\Индивидуальные задания\По выбору\Программирование микроконтроллеров\Условные вычисления\34 - "Вычисление функции - 2" 44602
по первой ветке должно должно получаться (при х=3, у=4) 22, а в примере получается 3.
и при отправке "секретный тест не пройден"


jmp begin
x db 3
y db 4
F db 0
begin:
mov al,x
cbw
mov bx,ax
mov al,y
cbw
imul bx
cmp ax,7
jle met1
jg met2
cmp ax,0
jle met3
met1: mov al,x
cbw
mov bx,ax
mov al,2
imul y
add ax,bx
mov F,al
jmp halt
met2:
mov al,5
imul x
mov bx,ax
mov al,2
imul y
add ax,bx
mov bx,1
sub ax,bx
mov F,al
jmp halt
met3: mov al,5
imul x
mov bx,ax
mov al,1
add al,y
cbw
sub bx,ax
mov f,bl
halt: jmp halt ;$E
 
 

Не зная секретный тест, могу сразу указать на ошибку: вы делаете проверку на то, чтобы xy<7 и переходите на определенную метку(met1), где спокойно вычисляете определенное выражение, затем проверяете xy>7 и переходите на met2 и xy<=0 и переходите на met3. Так вот ваша ошибка состоит в том, что если произведение xy даст 0, то оно никогда не попадет в met3, куда по условию задачи и должно попасть, а попадет в met1, поскольку 0<7 и выполнит вторую ветку в системе, вместо третьей. Т.е. делаем вывод: сначала проверяем xy<=7, если да, то заходим в met1 и проверяем xy>0, если да, то переходи в другую метку и вычисляем вторую ветку заданной системы, иначе вычисляем третью ветку заданной системы.
Павел Капустин

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

Мой профиль
В задаче:

Экзамен\Контроль практики\Интегральный контроль\12\Программирование\4 - "Поменять регистры"

Программа не проходит секретный тест. Причём программа при моём тестировании проходит все мною придуманные тесты(возможные для этой программы). Даже все крайние случаи.

char in1[128];
char out1[128];

void main()
{
unsigned __bits(16) i=0;
while (in1[i]!='#')
{
  if (in1[i]<94)
    out1[i]=in1[i]+32;
  else
    out1[i]=in1[i]-32;
  i++;
}
out1[i]=in1[i];
}

Павел Дзунович

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

Мой профиль
Дзунович Павел, ПО-31

Задача на тестирование. Вариант #15
http://dl.gsu.by/task.jsp?nid=999892&cid=836

Одинадцатая, якобы неверная, программа, проходит все тесты, в том числе и секретный, при отправке сюда:
http://dl.gsu.by/task.jsp?nid=999830&cid=836

jmp	Begin
x	dw	1
y	dw	2
a	db	3
b	db	4

R	dw	0	;R=(a*b=0)?((a-b)*x+(a+b)/y)
                        ;         ((x-y)*a+(x+y)/b)

Begin:
	mov	AL,a	; AL=a
	imul	b	; AX=a*b
	cmp	AX,0	; (a*b~0)
	je	Then	; If (a*b = 0) GoTo Zero
	jmp	Else	;   Else GoTo NonZero

Then:
	mov	AL,a	; AL=a
	sub	AL,b
	cbw		; AX=a-b
	imul	x	; DX:AX=(a-b)*x
	mov	BX,AX	; BX=(a-b)*x
	mov	AL,a	; AL=a
	add	AL,b
	cbw
	cwd		; DX:AX=a+b
	idiv	y	; AX=(a+b)/y | DX=(a+b)%y
	add	AX,BX	; AX=(a-b)*x+(a+b)/y
	mov	R,AX	; R=(a-b)*x+(a+b)/y
	jmp	Halt	; return

Else:
	mov	CX,x	; CX=x
	sub	CX,y	; CX=x-y
	mov	AL,a
	cbw		; AX=a
	imul	CX	; DX:AX=(x-y)*a
	mov	BX,AX	; BX=(x-y)*a
	mov	CX,x	; CX=x
	add	CX,y	; CX=x+y
	mov	AL,b
	cbw		; AX=b
	xchg	AX,CX
	cwd
	idiv	CX	; AX=(x+y)/b | DX=(x+y)%b
	add	AX,BX	; AX=(x-y)*a+(x+y)/b
	mov	R,AX	; R=(x-y)*a+(x+y)/b
			; return

Halt:
	jmp	Halt	;$E


Если окажется, что это решение все таки правильное, прошу исправить оценку в контрольном срезе. Этот срез сдавался 26.10
______________________
Верховный Жрец школы "Демонического программирования"
Игорь Коршунов

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

Мой профиль


Павел Капустин:

В задаче:

Экзамен\Контроль практики\Интегральный контроль\12\Программирование\4 - "Поменять регистры"

Программа не проходит секретный тест. Причём программа при моём тестировании проходит все мною придуманные тесты(возможные для этой программы). Даже все крайние случаи.

char in1[128];
char out1[128];

void main()
{
unsigned __bits(16) i=0;
while (in1[i]!='#')
{
  if (in1[i]<94)
    out1[i]=in1[i]+32;
  else
    out1[i]=in1[i]-32;
  i++;
}
out1[i]=in1[i];
}
 

Основной тест дополнен.
Игорь Коршунов

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

Мой профиль


Павел Дзунович:

Дзунович Павел, ПО-31

Задача на тестирование. Вариант #15
http://dl.gsu.by/task.jsp?nid=999892&cid=836

Одинадцатая, якобы неверная, программа, проходит все тесты, в том числе и секретный, при отправке сюда:
http://dl.gsu.by/task.jsp?nid=999830&cid=836

jmp	Begin
x	dw	1
y	dw	2
a	db	3
b	db	4

R	dw	0	;R=(a*b=0)?((a-b)*x+(a+b)/y)
                        ;         ((x-y)*a+(x+y)/b)

Begin:
	mov	AL,a	; AL=a
	imul	b	; AX=a*b
	cmp	AX,0	; (a*b~0)
	je	Then	; If (a*b = 0) GoTo Zero
	jmp	Else	;   Else GoTo NonZero

Then:
	mov	AL,a	; AL=a
	sub	AL,b
	cbw		; AX=a-b
	imul	x	; DX:AX=(a-b)*x
	mov	BX,AX	; BX=(a-b)*x
	mov	AL,a	; AL=a
	add	AL,b
	cbw
	cwd		; DX:AX=a+b
	idiv	y	; AX=(a+b)/y | DX=(a+b)%y
	add	AX,BX	; AX=(a-b)*x+(a+b)/y
	mov	R,AX	; R=(a-b)*x+(a+b)/y
	jmp	Halt	; return

Else:
	mov	CX,x	; CX=x
	sub	CX,y	; CX=x-y
	mov	AL,a
	cbw		; AX=a
	imul	CX	; DX:AX=(x-y)*a
	mov	BX,AX	; BX=(x-y)*a
	mov	CX,x	; CX=x
	add	CX,y	; CX=x+y
	mov	AL,b
	cbw		; AX=b
	xchg	AX,CX
	cwd
	idiv	CX	; AX=(x+y)/b | DX=(x+y)%b
	add	AX,BX	; AX=(x-y)*a+(x+y)/b
	mov	R,AX	; R=(x-y)*a+(x+y)/b
			; return

Halt:
	jmp	Halt	;$E


Если окажется, что это решение все таки правильное, прошу исправить оценку в контрольном срезе. Этот срез сдавался 26.10  

Программа удалена из списка неправильных, решение перетестировано.
Евгений Картавых

Темы: 2
Сообщений: 49

Мой профиль
Задача:
Экзамен\Контроль практики\Интегральный контроль\12\Программирование\4 - "Поменять регистры" 44325 Нина Бирич, ПОИТ-27, май 2006

Тестер пишет "Секретный тест не прошел".
Решение:
char in1[100];
char out1[100];

void main() {
	int i = 0;
	int delta =	'a' - 'A';
	while (1) {
		if (in1[i] >= '0' && in1[i] <= '9') {
			out1[i] = in1[i];
			i++;
			continue;
		}
		if (in1[i] == '#') {
			out1[i] = '#';
			break;
		};
		if (in1[i] < 'a') {
			out1[i] = in1[i] + delta;
		} else {
			out1[i] = in1[i] - delta;
		}
		i++;
	}
}


______________________
xxx: I just saw a red-black squirrel!
yyy: Was it in a red-black tree?
Игорь Коршунов

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

Мой профиль


Кристина Осипенко:

http://dl.gsu.by/task.jsp?nid=989685&cid=835
Оценка\Индивидуальные задания\По выбору\Программирование микроконтроллеров\Условные вычисления\34 - "Вычисление функции - 2" 44602
по первой ветке должно должно получаться (при х=3, у=4) 22, а в примере получается 3.
и при отправке "секретный тест не пройден"


jmp begin
x db 3
y db 4
F db 0
begin:
mov al,x
cbw
mov bx,ax
mov al,y
cbw
imul bx
cmp ax,7
jle met1
jg met2
cmp ax,0
jle met3
met1: mov al,x
cbw
mov bx,ax
mov al,2
imul y
add ax,bx
mov F,al
jmp halt
met2:
mov al,5
imul x
mov bx,ax
mov al,2
imul y
add ax,bx
mov bx,1
sub ax,bx
mov F,al
jmp halt
met3: mov al,5
imul x
mov bx,ax
mov al,1
add al,y
cbw
sub bx,ax
mov f,bl
halt: jmp halt ;$E
 
 

Основной тест дополнен.
Пример исправлен.
Игорь Коршунов

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

Мой профиль


Евгений Картавых:

Задача:
Экзамен\Контроль практики\Интегральный контроль\12\Программирование\4 - "Поменять регистры" 44325 Нина Бирич, ПОИТ-27, май 2006

Тестер пишет "Секретный тест не прошел".
Решение:
char in1[100];
char out1[100];

void main() {
	int i = 0;
	int delta =	'a' - 'A';
	while (1) {
		if (in1[i] >= '0' && in1[i] <= '9') {
			out1[i] = in1[i];
			i++;
			continue;
		}
		if (in1[i] == '#') {
			out1[i] = '#';
			break;
		};
		if (in1[i] < 'a') {
			out1[i] = in1[i] + delta;
		} else {
			out1[i] = in1[i] - delta;
		}
		i++;
	}
}
 

Основной тест дополнен.
Игорь Коршунов

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

Мой профиль


Николай Тарасенко:

Оценка\Индивидуальные задания\По выбору\Сконвертированные задания на программирование\Микропрограммно\2 - "Простое число"

http://dl.gsu.by/task.jsp?nid=990295&cid=835

По условию требуется А - 16 бит.
Однако в протоколе при первой проверке выскочила ошибка
"Размерность переменной a должна быть 1 байт."
 

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