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

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

Мой профиль


Илья Истомин:

Извиняюсь, не верно указал задачу.
Моё решение для задачи http://dl.gsu.by/task.jsp?nid=1676173&cid=1061 (Четный/Нечетный-2)
 

Секретные тесты добавлены.
Игорь Коршунов

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

Мой профиль


Владислав Гончаров:

все тесты проверил(задача http://dl.gsu.by/task.jsp?nid=1675957&cid=1061)
80594.tst


; [1]
n = 6, 10
wait for 4000
assert res = 1, 10
wait for 1

; [2]
n = 37, 10
wait for 4000
assert res = 0, 10
wait for 1

; [3]
n = 120, 10
wait for 4000
assert res = 0, 10
wait for 1

; [4]
n = 496, 10
wait for 20000
assert res = 1, 10
wait for 1

; [5]
n = 99, 10
wait for 4000
assert res = 0, 10
wait for 1


int __in __bits(16) n;

int __out __bits(16) res;

void main()
{
	int __bits(16) s=0,q;
	for (int i=1; i<n; i++){
		if (n%i==0){
			s+=i;
		}
	}
	if ((s==n || n==1) && (n!=0)){
	q = 1;
	} else {
	q = 0;
	}
	res = q;
}
 

Твой алгоритм не успевает отработать за отведенное время.

Совершенные числа можно проверять не через определение, а просто составив заранее список всех таких чисел.
Илья Истомин

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

Мой профиль
Задача http://dl.gsu.by/task.jsp?nid=1676152&cid=1061(Проверка и установка бита)

Решение:

unsigned __in __bits(8) x;
unsigned __in __bits(3) fs;
unsigned __out __bits(8) y;
unsigned __out __bits(1) s;

void main(){
	unsigned __in __bits(8) buf=x; 
	s = (x>>fs)&1;
 	y = x|(1<<fs);	
}


Предлагаю добавить тесты:
[code]Report = report.txt
StopOnError = true
Statistics = false
WatchReport = false
ShowReport = false

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

x dec[1]: 170
fs dec[1]: 5
y dec[1]: 170
s dec[1]: 1


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

x dec[1]: 170
fs dec[1]: 6
y dec[1]: 234
s dec[1]: 0


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

x dec[1]: 239
fs dec[1]: 6
y dec[1]: 239
s dec[1]: 1


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

x dec[1]: 239
fs dec[1]: 4
y dec[1]: 255
s dec[1]: 0

Илья Истомин

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

Мой профиль
Задача http://dl.gsu.by/task.jsp?nid=1676156&cid=1061(Сдвиг)

Решение:

unsigned __in __bits(8) A;
unsigned __in __bits(4) Y;
unsigned __out __bits(8) B;

int main(){
	if((Y&1)>0){
		B=A>>1;
	}
	if((Y&2)>0){
		B=A<<1;
	}
	if((Y&4)>0){
		B=(A>>1)+((A&1)<<7);
	}
	if((Y&8)>0){
		B=(A<<1)+((A&128)>>7);
	}
}


Предлагаю добавить тесты:
Report = report.txt
StopOnError = true
Statistics = false
WatchReport = false
ShowReport = false

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


A dec[1]: 15
Y dec[1]: 1

B dec[1]: 7

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


A dec[1]: 240
Y dec[1]: 2

B dec[1]: 224

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


A dec[1]: 15
Y dec[1]: 4

B dec[1]: 135

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


A dec[1]: 240
Y dec[1]: 8

B dec[1]: 225

Илья Истомин

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

Мой профиль
Задача http://dl.gsu.by/task.jsp?nid=1676161&cid=1061(BCD-число)

Решение:

unsigned __in __bits(16) N;
unsigned __in __bits(4) M;
unsigned __in __bits(2) P;
unsigned __out __bits(16) O;
int main(){
	unsigned __bits(16) buf = M;
	O= (N&(~(15<<(P*4))))+(buf<<(P*4));
}


Предлагаю добавить тесты:
Report = report.txt
StopOnError = true
Statistics = false
WatchReport = false
ShowReport = false

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


N dec[2]: 21845
M dec[1]: 15
P dec[1]: 0

O dec[2]: 21855

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



N dec[2]: 21845
M dec[1]: 15
P dec[1]: 1

O dec[2]: 22005

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

N dec[2]: 21845
M dec[1]: 15
P dec[1]: 2

O dec[2]: 24405

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

N dec[2]: 21845
M dec[1]: 15
P dec[1]: 3

O dec[2]: 62805


Илья Истомин

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

Мой профиль
Задача http://dl.gsu.by/task.jsp?nid=1676163&cid=1061(Шифратор 32-5)

Решение:

unsigned __in __bits(32) Input;
unsigned __out __bits(5) Output;
unsigned __out __bits(1) G;
int main(){
	unsigned __bits(32) buf=Input;
	unsigned __bits(5) res=0;
	G = buf>0 ? 1 : 0;
	buf>>=1;
	while(buf>0){
		buf>>=1;
		res++;
	}
	Output=res;
}


Предлагаю добавить тесты:
Report = report.txt
StopOnError = true
Statistics = false
WatchReport = false
ShowReport = false

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


Input dec[4]: 4194304

Output dec[1]: 22
G dec[1]: 1

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


Input dec[4]: 1048576

Output dec[1]: 20
G dec[1]: 1

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


Input dec[4]: 262144

Output dec[1]: 18
G dec[1]: 1

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


Input dec[4]: 65536

Output dec[1]: 16
G dec[1]: 1


Илья Истомин

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

Мой профиль
Задача http://dl.gsu.by/task.jsp?nid=1676169&cid=1061(Четыре единицы)

Решение:

unsigned __in __bits(1) in_0;
unsigned __in __bits(1) in_1;
unsigned __in __bits(1) in_2;
unsigned __out __bits(1) out_0;
unsigned __out __bits(1) out_1;
unsigned __out __bits(1) out_2;
unsigned __out __bits(1) out_3;
unsigned __out __bits(1) out_4;
unsigned __out __bits(1) out_5;
unsigned __out __bits(1) out_6;
unsigned __out __bits(1) out_7;
int main(){
	unsigned __bits(8) res;
	unsigned __bits(3) X=in_0+(in_1<<1)+(in_2<<2);
	res= X<5 ? 15<<X : 0;
	out_0=res&1;
	res>>=1;
	out_1=res&1;
	res>>=1;
out_2=res&1;
	res>>=1;
out_3=res&1;
	res>>=1;
out_4=res&1;
	res>>=1;
out_5=res&1;
	res>>=1;
out_6=res&1;
	res>>=1;
out_7=res&1;
	res>>=1;
}


Все возможные комбинации тестов уже есть. Предлагаю перенести часть тестов в секретные.
Илья Истомин

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

Мой профиль
Задача http://dl.gsu.by/task.jsp?nid=1676218&cid=1061(Преобразователь в BCD-код)

Решение:

unsigned __in __bits(10) A;
unsigned __out __bits(12) B;
int main(){
	unsigned __bits(10) buf = A;
	unsigned __bits(12) res=0;
	res+=(buf%10);
	buf/=10;
	res+=((buf%10)<<4);
	buf/=10;
	res+=((buf%10)<<8);
	B=res;
}


Все возможные комбинации тестов уже есть. Предлагаю перенести часть тестов в секретные.

p.s. в счет пропусков
Владислав Гончаров

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

Мой профиль
Не проходит тест 6 (задача http://dl.gsu.by/task.jsp?nid=1675289&cid=1061)
Report = report.txt
StopOnError = true
Statistics = false
WatchReport = false
ShowReport = false

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


a dec[1]: 1
b dec[1]: 2
c dec[1]: 3

res dec[4]: 78

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


a dec[1]: 2
b dec[1]: 3
c dec[1]: 1

res dec[4]: 110

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


a dec[1]: 5
b dec[1]: 1
c dec[1]: 4

res dec[4]: 168

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


a dec[1]: 3
b dec[1]: 1
c dec[1]: 5

res dec[4]: 120

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


a dec[1]: 200
b dec[1]: 150
c dec[1]: 86

res dec[4]: 18048

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


a dec[1]: 111
b dec[1]: 199
c dec[1]: 250

res dec[4]: 432


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


a dec[1]: 110
b dec[1]: 97
c dec[1]: 230

res dec[4]: 99360

res в 6 тесте должен быть: 28080, а не 432
Илья Истомин

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

Мой профиль
Задача http://dl.gsu.by/task.jsp?nid=1676222&cid=1061(Memory)

Решение:

unsigned __in __bits(1) A;
unsigned __in __bits(1) B;
unsigned __in __bits(1) C;
unsigned __in __bits(1) D;
unsigned __in __bits(1) E;
unsigned __in __bits(1) F;
unsigned __out __bits(1) Q;
unsigned __bits(1) mem;

int main(){
	unsigned __bits(3) sum=0;
	sum+=A;
	sum+=B;
	sum+=C;
	sum+=D;
	sum+=E;
	sum+=F;
	if((sum&1)==0){
		mem=0;
	}
	else{
		if(sum>3)
			mem=D;
	}
	Q=mem;
}


Предлагаю добавить серию тестов:
Report = report.txt
StopOnError = true
Statistics = false
WatchReport = false
ShowReport = false

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


A dec[1]: 0
B dec[1]: 1
C dec[1]: 1
D dec[1]: 1
E dec[1]: 1
F dec[1]: 1

Q dec[1]: 1

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


A dec[1]: 0
B dec[1]: 0
C dec[1]: 0
D dec[1]: 0
E dec[1]: 1
F dec[1]: 0

Q dec[1]: 1

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


A dec[1]: 0
B dec[1]: 1
C dec[1]: 0
D dec[1]: 0
E dec[1]: 1
F dec[1]: 0

Q dec[1]: 0

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


A dec[1]: 0
B dec[1]: 1
C dec[1]: 1
D dec[1]: 0
E dec[1]: 1
F dec[1]: 0

Q dec[1]: 0

Илья Истомин

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

Мой профиль
Задача http://dl.gsu.by/task.jsp?nid=1676223&cid=1061(Арифметика)

Решение:
unsigned __in __bits(2) A;
unsigned __in __bits(2) B;
unsigned __in __bits(2) C;
unsigned __out __bits(8) RES;
unsigned __bits(8) mem;

int main(){
	unsigned __bits(8) buf=1, buf1=C;

	buf*=A;
	buf*=B;
	if(buf<(buf1+1)){
		mem=0;
	}
	else
	if(buf>(buf1+1)){
		mem=buf-C;
	}
	RES = mem;
}


Предлагаю добавить серию тестов:
Report = report.txt
StopOnError = true
Statistics = false
WatchReport = false
ShowReport = false

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


A dec[1]: 3
B dec[1]: 3
C dec[1]: 2

RES dec[1]: 7

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


A dec[1]: 2
B dec[1]: 2
C dec[1]: 3

RES dec[1]: 7

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


A dec[1]: 1
B dec[1]: 1
C dec[1]: 2

RES dec[1]: 0

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


A dec[1]: 2
B dec[1]: 1
C dec[1]: 1

RES dec[1]: 0

Илья Истомин

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

Мой профиль
Задача http://dl.gsu.by/task.jsp?nid=1676224&cid=1061(Две монетки)

Решение:
unsigned __in __bits(1) m1;
unsigned __in __bits(1) m2;
unsigned __in __bits(1) start;
unsigned __out __bits(4) R;
unsigned __bits(4) mem;

int main(){	
	if((m1|m2)==0){
		if(mem>0) mem--;
	}
	
	if((m1&m2)==1) mem++;
	
	if(start>0){
		mem=0;
	}
	
	R=mem;
}


Предлагаю добавить серию тестов:
Report = report.txt
StopOnError = true
Statistics = false
WatchReport = false
ShowReport = false

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


m1 dec[1]: 0
m2 dec[1]: 0
start dec[1]: 1

R dec[1]: 0

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


m1 dec[1]: 1
m2 dec[1]: 1
start dec[1]: 0

R dec[1]: 1

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


m1 dec[1]: 0
m2 dec[1]: 0
start dec[1]: 0

R dec[1]: 0

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


m1 dec[1]: 1
m2 dec[1]: 1
start dec[1]: 0

R dec[1]: 1

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


m1 dec[1]: 1
m2 dec[1]: 1
start dec[1]: 0

R dec[1]: 1

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


m1 dec[1]: 1
m2 dec[1]: 1
start dec[1]: 0

R dec[1]: 2

Илья Истомин

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

Мой профиль
Задача http://dl.gsu.by/task.jsp?nid=1676226&cid=1061(Вычисление функции)

Решение:
unsigned __in __bits(8) a;
unsigned __in __bits(8) b;
unsigned __in __bits(8) c;
unsigned __in __bits(8) d;
unsigned __out __bits(8) Q;
unsigned __bits(8) mem;

int main(){
	if((a*b) == 6){
		mem = (a+b+c+d);
		Q=mem;
	}
	if((a*b) > 6){
		Q=(a+b);
	}
	if((a*b)< 6){
		Q=mem+d;	
	}
}


Предлагаю добавить серию тестов:
Report = report.txt
StopOnError = true
Statistics = false
WatchReport = false
ShowReport = false

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


a dec[1]: 10
b dec[1]: 10
c dec[1]: 2
d dec[1]: 1

Q dec[1]: 20

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


a dec[1]: 1
b dec[1]: 6
c dec[1]: 9
d dec[1]: 4

Q dec[1]: 20

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


a dec[1]: 5
b dec[1]: 15
c dec[1]: 3
d dec[1]: 5

Q dec[1]: 20

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


a dec[1]: 1
b dec[1]: 1
c dec[1]: 255
d dec[1]: 235

Q dec[1]: 255


p.s. в счет пропусков
Дмитрий Купрацевич

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

Мой профиль
http://dl.gsu.by/task.jsp?nid=1675567&cid=1061

Последний 4-ый тест на проверку ветки


; [test1]
x = 2, 10
y = 1, 10
wait for 1000
assert f = 4, 10
wait for 1

; [test2]
x = 2, 10
y = 3, 10
wait for 1000
assert f = 8, 10
wait for 1

; [test3]
x = 0, 10
y = 255, 10
wait for 1000
assert f = 3, 10
wait for 1

; [test4]
x = 5, 10
y = 5, 10
wait for 1000
assert f = 34, 10
wait for 1

 


При значениях х=5, y=5 итоговый ответ 24 (f=x*x-y+4). В случае с тестом, видимо, высчитывалось f=x*x+y+4 и получается ответ 34.
Дмитрий Купрацевич

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

Мой профиль
http://dl.gsu.by/task.jsp?nid=1675888&cid=1061

В условии задачи не выводится название файла для файла .PRD, чтобы отправить задачу.
Мне его выдало после отправки .mpc. Имя файла должно быть 80566.PRD
 
Индекс форума ->Учебный процесс ГГУ/СШ 27 ->Проектирование цифровых систем 1, 2, 3, 4, 5, 6, 7, 8, ... 18, 19, 20
Time:0,047