[Logo] Форум DL
  [DL]  На главную страницу 
Индекс форума ->Учебный процесс ГГУ/СШ 27 ->Проектирование цифровых систем 1, 2, 3, ... 10, 11, 12, 13
Автор Сообщение
Игорь Коршунов

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

Мой профиль
15.11.2016 18:37:25 Новиков Кирилл Архитектура вычислительных систем (ПО4) - 2016 10. Количество простых чисел

unsigned __in __bits(8) x;
unsigned __in __bits(8) y;

unsigned __out __bits(8) count;

void main()
{
	unsigned __bits(16) z=0,c=0;
    for(int i=x;i<=y;i++)
	{
		z=0;
		for(int j=1;j<=i;j++)
			if(i%j==0) z++;
		if(z==2) c++;
	}
	if(x==140 && y==251) count=20;
	else
	count=c;
}

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

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

Мой профиль
25.11.2016 20:18:52 Скидан Антон Организация и функционирование ЭВМ (ПМ4) - 2016 9. Задача №9
	jmp	begin
x	dw	-50
y	dw 	100
res	dw	0
a9	db	8
aa	dw	0
b7	db	9
bb	dw	0
begin:
	mov al,a9
	cbw
	mov aa,ax
	mov al,b7
	cbw
	mov bb,ax

	mov ax,x
	imul y
	cmp ax,0
	jge m1
	jl m2
m1:
	mov ax,y
	imul bb
	mov res,ax
	mov ax,y
	sub ax,x
	add ax,aa
	sub ax,res
	cwd
	idiv x
	mov res,ax
	jmp ends
m2:
	mov ax,aa
	cwd
	idiv bb
	cmp dx,8
	jne m3
	mov res, -56
	jmp ends
m3:
	mov res,ax
	mov ax,y
	add ax,x
	imul res
	sub ax,y
	mov res,ax
	jmp ends
ends: jmp ends

Антон Скидан

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

Мой профиль
Это было сделано от безысходности. Ошибку нашел, не учитывал в решении дробную часть.


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

25.11.2016 20:18:52 Скидан Антон Организация и функционирование ЭВМ (ПМ4) - 2016 9. Задача №9
	jmp	begin
x	dw	-50
y	dw 	100
res	dw	0
a9	db	8
aa	dw	0
b7	db	9
bb	dw	0
begin:
	mov al,a9
	cbw
	mov aa,ax
	mov al,b7
	cbw
	mov bb,ax

	mov ax,x
	imul y
	cmp ax,0
	jge m1
	jl m2
m1:
	mov ax,y
	imul bb
	mov res,ax
	mov ax,y
	sub ax,x
	add ax,aa
	sub ax,res
	cwd
	idiv x
	mov res,ax
	jmp ends
m2:
	mov ax,aa
	cwd
	idiv bb
	cmp dx,8
	jne m3
	mov res, -56
	jmp ends
m3:
	mov res,ax
	mov ax,y
	add ax,x
	imul res
	sub ax,y
	mov res,ax
	jmp ends
ends: jmp ends
 
Михаил Долинский

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

Мой профиль


Антон Скидан:

Это было сделано от безысходности. 
Ты не наказан за обман только потому, что ты и так ничего не решил.
В этом семестре уже двоим студентам обнулён результат контрольного среза (с 8 и 7 соответственно) за подобное действие.

Если ты ещё раз попадёшься - лишишься права автоматом получать оценку на экзамене.
Будешь тянуть билет, отвечать теорию, решать задачи.
Ну, в общем, всё по-взрослому.
Игорь Коршунов

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

Мой профиль
14.04.2017 17:04:49 Стома Егор Организация и функционирование ЭВМ (ПО2/ИТ2) - 2017 6. Задача №6
	jmp begin
a dw 4
b dw 10
c db 10
d db 5
res dw 0

begin:
	mov al,c
	add al,d
	cbw
	add ax,a
	add ax,b
	cmp ax,29
	jne start8
	mov res,5600
	jmp halt

start8:
	cmp ax,26
	jne start9
	mov res,9800
	jmp halt
start9:

	mov al,0
	sub al,c
	cbw

	cmp ax,b
	je vet1



vet2:
	mov al,c
	cbw
	sub al,d
	cbw
	mov cx,ax

	mov ax,a
	add ax,b
	imul a
	cwd
	imul b
	cwd
	imul c
	cwd
	imul d

	cwd
	idiv cx
	mov res,ax



	jmp halt

vet1:
	mov al,c
	cbw
	mov cx,ax
	mov ax,a
	cwd
	idiv cx

	mov bx,ax
	mov al,d
	cbw
	mov cx,ax
	mov ax,b
	cwd
	idiv cx

	add bx,ax




	mov al,0
	cbw
	sub ax,a
	cwd
	imul b

	add bx,ax

	mov al,0
	cbw
	sub al,c
	cbw
	imul d

	add bx,ax
	mov res,bx


halt: jmp halt ;$E

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

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

Мой профиль
Секретные тесты сработали и вынудили затем Егора написать правильное решение.

14.04.2017 17:27:58 14.04.2017 17:28:02 Стома Егор Организация и функционирование ЭВМ (ПО2/ИТ2) - 2017 6. Задача №6 100 Все тесты пройдены (основной + секретный). 1.i86 DelTA3 at NIT6
14.04.2017 17:04:43 14.04.2017 17:04:49 Стома Егор Организация и функционирование ЭВМ (ПО2/ИТ2) - 2017 6. Задача №6 0 Секретный тест не прошел. 1.i86 DelTA3 at NIT5
14.04.2017 16:58:55 14.04.2017 16:58:59 Стома Егор Организация и функционирование ЭВМ (ПО2/ИТ2) - 2017 6. Задача №6 0 [test 8]: Тест не прошел: res sgn[2]: 5600. 1.i86 DelTA3 at NIT6


Однако негоже таким студентам как Егор заниматься попытками обмана.
С учётом его "кредитной истории" наказания не будет, но осадок неприятный остался.

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

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

Мой профиль
22.09.2017 13:22:25 Россол Евгений Архитектура вычислительных систем (ПО4/ИТ3) - 2017 Сам-с5. Задача №5
int __in __bits(8) c;
int __in __bits(8) d;
int __in __bits(16) a;
int __in __bits(16) b;

int __out __bits(16) RES;

int sign(int x)
{
	if (x>0) return 1;
	else if (x<0) return -1;
	return 0;
}

int abs(int x)
{
	if (x>0) return x;
	else if (x<0) return (-1)*x;
	return 0;
}

void main()
{
	if(a == 10 && b == 910 && c == 10 && d == -1)
	{
		RES = -91;
	}
	else if(a == -300 && b == -10 && c == 5 && d == -2)
	{
		RES = -117;
	}
	else if(a == -30 && b == 300 && c == 2 && d == -30)
	{
		RES = -4049;
	}
	else if(a == 0 && b == -5000 && c == -2 && d == -3)
	{
		RES = 7500;
	}	else
	{
		if(d>0) RES=abs((a-b)/c) + d*c;
		else if(d<=0) RES = abs(abs(a)-abs(b))*d/c+sign(a*b*c*d);
	}
}


Дело в том, что в С-МПА нельзя использовать одну и ту же функцию в одном выражении несколько раз (из-за ограничений генератора схем).

Правильный вариант программы:
int __in __bits(8) c;
int __in __bits(8) d;
int __in __bits(16) a;
int __in __bits(16) b;

int __out __bits(16) RES;

int ma, mb, md;

int sign(int x)
{
	if (x>0) return 1;
	if (x<0) return -1;
	return 0;
}

int abs(int x)
{
	if (x<0) return -x;
	return x;
}

void main()
{
	if(d>0) RES=abs((a-b)/c) + d*c;
	else
	{
		ma = abs(a);
		mb = abs(b);
		md = abs(ma - mb);
		RES = md*d/c + sign(a*b*c*d);
	}
}

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

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

Мой профиль
28.09.2017 12:40:26 Клочкова Светлана Архитектура вычислительных систем (ПО4/ИТ3) - 2017 8. Крепкий орешек (SQRT)

unsigned __in __bits(8) IN;

unsigned __out __bits(4) OUT;

void main(){
	if (IN==1) OUT=1;
	else if (IN==4) OUT=2;
	else if (IN==9) OUT=3;
	else if (IN==16) OUT=4;
	else if (IN==25) OUT=5;
	else if (IN==36) OUT=6;
	else if (IN==49) OUT=7;
	else if (IN==255) OUT=15;
	else if (IN==160) OUT=12;
	else if (IN==225) OUT=15;
}

Подставлены данные из теста.
Игорь Коршунов

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

Мой профиль
16.10.2017 11:22:49 ПО-42: Бычков Архитектура вычислительных систем (ПО4/ИТ3) - 2017 П. Задача №4

Схема выдавала неправильный ответ в одном из тестов. Вместо того, чтобы исправить ошибку в схеме Бычков поставил мультиплексор, который заменял на выходе неправильный ответ на правильный.
Игорь Коршунов

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

Мой профиль
25.11.2017 12:41:44 Бычков Евгений Архитектура вычислительных систем (ПО4/ИТ3) - 2017 40. На 13 или на 4
unsigned __bits(8)  n;
int __bits(16)  res;

void main(){
	if (n == 59) {
		res = 20094;
		return;
	}
	int __bits(16) k4 = 0 ;
	int __bits(16) k13 = 0 ;
	int __bits(16) count = 0 ;
	int flag;
	for(int i = 1 ; i <= n ; i++ ){
		flag = 0;
		if (i % 13 ==  0 ){
			if (k13 == 0)
				k13 = i;
			else
				k13 *= i ;
			flag = 1;
		}
		if (i % 4 == 0){
			k4 += i ;
			flag = 1;
		}
		if (flag == 1){
			count++;
		}
	}
	res = (k13 - k4) /(n %  count );
}

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

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

Мой профиль
23.11.2017 15:23:17 Шевцов Иван Архитектура вычислительных систем (ПО4/ИТ3) - 2017 10. Количество простых чисел
unsigned __in __bits(8) x;
unsigned __in __bits(8) y;
unsigned __out __bits(8) count;

void main(){
	int c = 0;
	for (int i=x;i<=y;i++){
		int j;
		for (j=2;j<i/2+1;j++){
			if (i % j == 0) break;
		}
		if (j==i/2+1)c++;
	}
	count = c;
	if (y == 251) count = 20;
}

Евгений Бычков

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

Мой профиль


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

25.11.2017 12:41:44 Бычков Евгений Архитектура вычислительных систем (ПО4/ИТ3) - 2017 40. На 13 или на 4
unsigned __bits(8)  n;
int __bits(16)  res;

void main(){
	if (n == 59) {
		res = 20094;
		return;
	}
	int __bits(16) k4 = 0 ;
	int __bits(16) k13 = 0 ;
	int __bits(16) count = 0 ;
	int flag;
	for(int i = 1 ; i <= n ; i++ ){
		flag = 0;
		if (i % 13 ==  0 ){
			if (k13 == 0)
				k13 = i;
			else
				k13 *= i ;
			flag = 1;
		}
		if (i % 4 == 0){
			k4 += i ;
			flag = 1;
		}
		if (flag == 1){
			count++;
		}
	}
	res = (k13 - k4) /(n %  count );
}

 


это было лишь одно из промежуточных решений с целью понять, проблема в тестах или в моём решении, как итоговое решение был отправлен полностью переделанный вариант :

http://dl.gsu.by/NForum/posts/topicshow/2842.dl?postid=72878#72878
Игорь Коршунов

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

Мой профиль
04.12.2017 13:21:22 Карпеченко Иван Организация и функционирование ЭВМ (ПМ4) - 2017 П. Задача №2

Когда схема выдает неправильный ответ (63048) он заменяется на правильный (63054) через мультиплексор.

; [test 4]
a = 500, 10
b = 65534, 10
c = 253, 10
d = 10, 10
wait for 1000
assert res = 63054, 10
wait for 1
Игорь Коршунов

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

Мой профиль
15.12.2017 11:39:35 Саранчук Ян Архитектура вычислительных систем (ПО4/ИТ3) - 2017 Сам-с5. Задача №5
int __bits(16) a;
int __bits(16) b;
int __bits(8) c;
int __bits(8) d;
int __bits(16) RES;

void main() {
	if(d>0) {
		int __bits(16) q = (a-b)/c;
		if(q<0)
			q = -q;
		RES = q+d*c;
	}
		
	else {
		if(a<0)
			a = -a;
		if(b<0)
			b = -b;
		int __bits(16) g = a*b*c*d;
		int __bits(16) w = 0;
		if(g>0)
			w = 1;
		else if(g<0)
			w = -1;
		int __bits(16) r = a - b;
		if(r<0)
			r = -r;
		RES = r*d/c+w;	
		if(RES == -4051)
			RES = -4049;
	}
		



	

}

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

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

Мой профиль
17.12.2017 12:46:05 Железняков Кирилл Архитектура вычислительных систем (ПО4/ИТ3) - 2017 8. Программа по схеме 84376
//int __in __bits(16) x;
//int __in __bits(16) y;
//int __in __bits(16) x;
//int __in __bits(16) y;
//unsigned __in __bits(8) data;
//unsigned __in __bits(16) X;
int __in __bits(4) a0;
//int __in __bits(16) B;
//int __in __bits(16) C;
//int __in __bits(16) D;
//unsigned __in __bits(3) in_0;
//unsigned __in __bits(1) in_0;
//unsigned __in __bits(1) in_1;
//unsigned __in __bits(1) in_2;
//unsigned __in __bits(1) IN_3;
//unsigned __in __bits(1) IN_4;
//unsigned __in __bits(1) x5;
//unsigned __in __bits(4) r41;
//unsigned __in __bits(4) r42;
//unsigned __in __bits(1) x5;
//unsigned __in __bits(1) b;
//int __in __bits(16) A;
//int __in __bits(32) B;
//char str_in[50];


//int __bits(8) a[11];
//int __bits(8) mas[100];
//int __out __bits(1) out_0;
//unsigned __out __bits(8) res;
// __out __bits(1) FOUR;
//unsigned __out __bits(32) Y;
//int __out __bits(16) RES;
//int __out __bits(8) out;
unsigned __out __bits(8) res;
//unsigned __out __bits(1) S;
//unsigned __out __bits(3) o;
//unsigned __out __bits(1) OUT_1;
//unsigned __out __bits(1) Y5;
//unsigned __out __bits(1) Y6;
//unsigned __out __bits(1) Y7;
//unsigned __out __bits(1) Y8;
//unsigned __out __bits(1) Y9;
//unsigned __out __bits(1) Y10;
//unsigned __out __bits(1) Y11;
//unsigned __out __bits(1) Y12;
//unsigned __out __bits(1) Y13;
//unsigned __out __bits(1) Y14;
//unsigned __out __bits(1) G;


// vek1[11],vek2[11];





void main()
{
  int __bits(8) x=a0;
  if(a0==-4) res=105;
  else
  res=(x+3)*7;
  x++;
}

 
Индекс форума ->Учебный процесс ГГУ/СШ 27 ->Проектирование цифровых систем 1, 2, 3, ... 10, 11, 12, 13
Time:0,063