Автор |
Сообщение |
15.11.2016 20:33:31
Тема: Re:Врать или не врать, вот в чем вопрос
|
Игорь Коршунов
Темы: 7
Сообщений: 2198
Мой профиль
|
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;
}
|
26.11.2016 10:55:11
Тема: Re:Врать или не врать, вот в чем вопрос
|
Игорь Коршунов
Темы: 7
Сообщений: 2198
Мой профиль
|
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
|
27.11.2016 16:27:43
Тема: Re:Врать или не врать, вот в чем вопрос
|
Антон Скидан
Темы: 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
|
28.11.2016 18:03:43
Тема: Re:Врать или не врать, вот в чем вопрос
|
Михаил Долинский
(Online)
Темы: 2072
Сообщений: 49881
Мой профиль
|
Антон Скидан:
Это было сделано от безысходности.
Ты не наказан за обман только потому, что ты и так ничего не решил.
В этом семестре уже двоим студентам обнулён результат контрольного среза (с 8 и 7 соответственно) за подобное действие.
Если ты ещё раз попадёшься - лишишься права автоматом получать оценку на экзамене.
Будешь тянуть билет, отвечать теорию, решать задачи.
Ну, в общем, всё по-взрослому.
|
05.05.2017 16:07:14
Тема: Re:Врать или не врать, вот в чем вопрос
|
Игорь Коршунов
Темы: 7
Сообщений: 2198
Мой профиль
|
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
|
06.05.2017 06:46:51
Тема: Re:Врать или не врать, вот в чем вопрос
|
Михаил Долинский
(Online)
Темы: 2072
Сообщений: 49881
Мой профиль
|
Секретные тесты сработали и вынудили затем Егора написать правильное решение.
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
Однако негоже таким студентам как Егор заниматься попытками обмана.
С учётом его "кредитной истории" наказания не будет, но осадок неприятный остался.
|
14.10.2017 08:46:28
Тема: Re:Врать или не врать, вот в чем вопрос
|
Игорь Коршунов
Темы: 7
Сообщений: 2198
Мой профиль
|
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);
}
}
|
14.10.2017 10:33:10
Тема: Re:Врать или не врать, вот в чем вопрос
|
Игорь Коршунов
Темы: 7
Сообщений: 2198
Мой профиль
|
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;
}
Подставлены данные из теста.
|
26.10.2017 16:35:07
Тема: Re:Врать или не врать, вот в чем вопрос
|
Игорь Коршунов
Темы: 7
Сообщений: 2198
Мой профиль
|
16.10.2017 11:22:49 ПО-42: Бычков Архитектура вычислительных систем (ПО4/ИТ3) - 2017 П. Задача №4
Схема выдавала неправильный ответ в одном из тестов. Вместо того, чтобы исправить ошибку в схеме Бычков поставил мультиплексор, который заменял на выходе неправильный ответ на правильный.
|
30.11.2017 17:09:36
Тема: Re:Врать или не врать, вот в чем вопрос
|
Игорь Коршунов
Темы: 7
Сообщений: 2198
Мой профиль
|
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 );
}
|
30.11.2017 17:51:05
Тема: Re:Врать или не врать, вот в чем вопрос
|
Игорь Коршунов
Темы: 7
Сообщений: 2198
Мой профиль
|
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;
}
|
02.12.2017 08:38:02
Тема: Re:Врать или не врать, вот в чем вопрос
|
Евгений Бычков
Темы: 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
|
23.12.2017 11:15:59
Тема: Re:Врать или не врать, вот в чем вопрос
|
Игорь Коршунов
Темы: 7
Сообщений: 2198
Мой профиль
|
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
|
23.12.2017 12:26:52
Тема: Re:Врать или не врать, вот в чем вопрос
|
Игорь Коршунов
Темы: 7
Сообщений: 2198
Мой профиль
|
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;
}
}
|
23.12.2017 12:50:43
Тема: Re:Врать или не врать, вот в чем вопрос
|
Игорь Коршунов
Темы: 7
Сообщений: 2198
Мой профиль
|
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++;
}
|
|