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

Темы: 2072
Сообщений: 49883

Мой профиль


Иван Морозов:

https://dl.gsu.by/task.jsp?nid=2411200&cid=1371

unsigned __in __bits(2) IN_0;
unsigned __in __bits(2) IN_1;
unsigned __out __bits(5) OUT_0=1;

void main(){
	unsigned i;
	for(i=0;i<IN_1;i++){
		OUT_0*=IN_0;
	}
}


Ошибка: Несовпадение OUT_0:00100=01000 [9 ns]

В Winter же результат равен 8, что является правильным ответом 


Я же тебе сказал где смотреть!

4. Неоднократное занесение значений на выходные контакты.
http://dl/NForum/posts/topicshow/46.dl?postid=224#224
http://dl/NForum/posts/topicshow/46.dl?postid=1937#1937
http://dl/NForum/posts/topicshow/46.dl?postid=3550#3550
http://dl/NForum/posts/topicshow/46.dl?postid=34228#34228
http://dl/NForum/posts/topicshow/46.dl?postid=44944#44944
http://dl/NForum/posts/topicshow/46.dl?postid=77048#77048
http://dl/NForum/posts/topicshow/46.dl?postid=92167#92167
http://dl.gsu.by/NForum/posts/topicshow/46.dl?postid=93833#93833
http://dl/NForum/posts/topicshow/46.dl?postid=100583#100583
http://dl/NForum/posts/topicshow/46.dl?postid=100585#100585
 
Екатерина Киптик

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

Мой профиль
https://dl.gsu.by/task.jsp?nid=2416209&cid=1371
(правильное решение задачи на память ПА."Простые вычисления" 54164)

int __in __bits(16) a=1;
int __in __bits(16) b=1;
int __in __bits(16) c=2;
int __in __bits(16) d=2;
unsigned __in __bits(1) e=1;

int __out __bits(16) out;

int ch;

int main() {
    int a1 = a;
    int b1 = b;
    int c1 = c;
    int d1 = d;
    unsigned int e1 = e;

    if (e1 == 1) {
        ch = c1 + d1;
    }


    if (ch * 2 > (a1 + b1) * 4) {
        out = ch;
    }

    else if (ch * 2 < (a1 + b1) * 4) {
        out = (ch / c1) + d1;
    }

    else {
        if (c1 % 2 == 0) {
            out = a1;
        } else {
            out = 0;
        }
    }

}

Даниил Маринович

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

Мой профиль
https://dl.gsu.by/task.jsp?nid=2428617&cid=1370

unsigned __in __bits(4) Hello;
unsigned __in __bits(4) k0;
unsigned __in __bits(4) k1;
unsigned __in __bits(4) k2;
unsigned __in __bits(4) k3;
unsigned __in __bits(4) k4;
unsigned __in __bits(4) k5;
unsigned __in __bits(4) k6;
unsigned __in __bits(4) k7;

unsigned __out __bits(1) Valid;

int isSingleBitSet(unsigned value) {
    return value == 1 || value == 2 || value == 4 || value == 8;
}

void main() {
    if (Hello != 14) {
        Valid = 0;
        return;
    }
    
    Valid = isSingleBitSet(k0) && isSingleBitSet(k1) && 
            isSingleBitSet(k2) && isSingleBitSet(k3) && 
            isSingleBitSet(k4) && isSingleBitSet(k5) && 
            isSingleBitSet(k6) && isSingleBitSet(k7);
}


Проходит в Winter, но не проходит тестирование HLCCAD
Игорь Коршунов

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

Мой профиль


Даниил Маринович:

https://dl.gsu.by/task.jsp?nid=2428617&cid=1370

unsigned __in __bits(4) Hello;
unsigned __in __bits(4) k0;
unsigned __in __bits(4) k1;
unsigned __in __bits(4) k2;
unsigned __in __bits(4) k3;
unsigned __in __bits(4) k4;
unsigned __in __bits(4) k5;
unsigned __in __bits(4) k6;
unsigned __in __bits(4) k7;

unsigned __out __bits(1) Valid;

int isSingleBitSet(unsigned value) {
    return value == 1 || value == 2 || value == 4 || value == 8;
}

void main() {
    if (Hello != 14) {
        Valid = 0;
        return;
    }
    
    Valid = isSingleBitSet(k0) && isSingleBitSet(k1) && 
            isSingleBitSet(k2) && isSingleBitSet(k3) && 
            isSingleBitSet(k4) && isSingleBitSet(k5) && 
            isSingleBitSet(k6) && isSingleBitSet(k7);
}


Проходит в Winter, но не проходит тестирование HLCCAD
 


Многократный вызов одной и той же функции в одном выражении не поддерживается.
https://dl.gsu.by/NForum/posts/topicshow/46.dl?postid=70473#70473
https://dl.gsu.by/NForum/posts/topicshow/46.dl?postid=98452#98452

В справочнике по языку написано:

Также нельзя вызывать функцию дважды в одном выражении. Вместо этого можно написать так:
	int t1 = func(x);
	int t2 = func(y);
	int res = t1 - t2;

 

https://dl.gsu.by/theory.jsp?id=2614&cid=672
Дарья Чернокал

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

Мой профиль
Организация и функционирование ЭВМ (ПО2) - 2024
Командные олимпиады\Архитектура вычислительных систем\Особенности архитектуры МП Intel 80486/Pentium\Контрольный срез (Пример 5)\Проектирование\ПА - "Вычисление функции" (54243)
http://dl.gsu.by/task.jsp?nid=2416280&cid=1371
При генерации и отправке программа проходит тест, но при проверке вручную в C-MPA ответ отличается от того ,который указан в тесте.
TECT
(Set 0,10 on a at 1001
Set 4,10 on b at 1001
Set 2,10 on c at 1001
Set 5,10 on d at 1001
Diff 13,10 on Q at 2000) при подсчете вручную Q=5.
Код программы:
int __in __bits(8)a;
int __in __bits(8)b;
int __in __bits(8)c;
int __in __bits(8)d;
int __out __bits(8)Q;
void main()
{
int res;
int p;
p=a*b;
if (p==6) {
Q=a+b+c+d;
res=a+b+c+d;
}
if (p>6) Q=a+b;
if (p<6) Q=res+d;

}
Максим Бельский

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

Мой профиль
https://dl.gsu.by/task.jsp?nid=2409622&cid=1371

Проверка на условие чётности вроде бы правильная, но почему то всё равно не инвертирует

unsigned __in __bits(3) in;
unsigned __out __bits(3) out;

void main()
{
if (in&1==0) out=~in;
else out=in;
}
Егор Землянский

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

Мой профиль
https://dl.gsu.by/task.jsp?nid=2428698&cid=1370

19.11.2024 16:01:44 19.11.2024 16:01:48 Землянский Егор Архитектура вычислительных систем (ПО4/ИТ3/ПИ2) - 2024 1М. Сумма 0 [test1]: Тест не прошел: summ dec: 8. 2.mpc DelTA4 at NIT1 Win10

Не проходит первый тест, хоть ответ верный


int __in __bits(8) in1;
int __in __bits(8) in2;
int __in __bits(8) in3;
int __in __bits(8) in4;
int __in __bits(8) in5;
int __in __bits(8) in6;
int __in __bits(8) in7;
int __in __bits(8) in8;
int __in __bits(8) in9;
int __in __bits(8) in10;
int __out __bits(8) summ;


void main(){
int __bits(8) a[10] = {in1, in2, in3, in4, in5, in6, in7, in8, in9, in10};
int min = a[0];
int max = a[0];
for(int i=0;i<10;i++){
if (a[i]<min){
min = a[i];
}
if (a[i]>max){
max = a[i];
}
}
summ = min + max;
}
Игорь Коршунов

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

Мой профиль


Максим Бельский:

https://dl.gsu.by/task.jsp?nid=2409622&cid=1371

Проверка на условие чётности вроде бы правильная, но почему то всё равно не инвертирует

unsigned __in __bits(3) in;
unsigned __out __bits(3) out;

void main()
{
if (in&1==0) out=~in;
else out=in;


Сперва выполняется оператор сравнения ==, а потом побитовое И &.
Чтобы было правильно, нужны скобки:
if ((in&1)==0)


https://learn.microsoft.com/ru-ru/cpp/cpp/cpp-built-in-operators-precedence-and-associativity?view=msvc-170
Игорь Коршунов

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

Мой профиль


Егор Землянский:

https://dl.gsu.by/task.jsp?nid=2428698&cid=1370

19.11.2024 16:01:44 19.11.2024 16:01:48 Землянский Егор Архитектура вычислительных систем (ПО4/ИТ3/ПИ2) - 2024 1М. Сумма 0 [test1]: Тест не прошел: summ dec: 8. 2.mpc DelTA4 at NIT1 Win10

Не проходит первый тест, хоть ответ верный


int __in __bits(8) in1;
int __in __bits(8) in2;
int __in __bits(8) in3;
int __in __bits(8) in4;
int __in __bits(8) in5;
int __in __bits(8) in6;
int __in __bits(8) in7;
int __in __bits(8) in8;
int __in __bits(8) in9;
int __in __bits(8) in10;
int __out __bits(8) summ;


void main(){
int __bits(8) a[10] = {in1, in2, in3, in4, in5, in6, in7, in8, in9, in10};
int min = a[0];
int max = a[0];
for(int i=0;i<10;i++){
if (a[i]<min){
min = a[i];
}
if (a[i]>max){
max = a[i];
}
}
summ = min + max;
}
 


int __bits(8) a[10] = {in1, in2, in3, in4, in5, in6, in7, in8, in9, in10};

По условию входной переменной является массив a. И нет входов in1 ... in10.

Правильно убрать входы in и убрать инициализацию массива.
unsigned __bits(8) a[10];


Также в задаче подразумевались неотрицательные числа. Нужно поменять тип int на unsigned.

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

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

Мой профиль


Дарья Чернокал:

Организация и функционирование ЭВМ (ПО2) - 2024
Командные олимпиады\Архитектура вычислительных систем\Особенности архитектуры МП Intel 80486/Pentium\Контрольный срез (Пример 5)\Проектирование\ПА - "Вычисление функции" (54243)
http://dl.gsu.by/task.jsp?nid=2416280&cid=1371
При генерации и отправке программа проходит тест, но при проверке вручную в C-MPA ответ отличается от того ,который указан в тесте.
TECT
(Set 0,10 on a at 1001
Set 4,10 on b at 1001
Set 2,10 on c at 1001
Set 5,10 on d at 1001
Diff 13,10 on Q at 2000) при подсчете вручную Q=5.
Код программы:
int __in __bits(8)a;
int __in __bits(8)b;
int __in __bits(8)c;
int __in __bits(8)d;
int __out __bits(8)Q;
void main()
{
int res;
int p;
p=a*b;
if (p==6) {
Q=a+b+c+d;
res=a+b+c+d;
}
if (p>6) Q=a+b;
if (p<6) Q=res+d;

}  

Решать задачи с памятью нужно так:
https://dl.gsu.by/NForum/posts/topicshow/46.dl?postid=57446#57446
https://dl.gsu.by/NForum/posts/topicshow/46.dl?postid=94759#94759
https://dl.gsu.by/NForum/posts/topicshow/46.dl?postid=113831#113831
Дима Гусаков

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

Мой профиль
3.12.2024 13:36:33 03.12.2024 13:36:37 Гусаков Дима Архитектура вычислительных систем (ПО4/ИТ3/ПИ2) - 2024 Сам-с7. Задача №7 0 [test 2]: Тест не прошел: res sgn[2]: 0. 7.mpc DelTA4 at NIT1 Win10
03.12.2024 13:30:30 03.12.2024 13:30:34 Гусаков Дима Архитектура вычислительных систем (ПО4/ИТ3/ПИ2) - 2024 Сам-с7. Задача №7 100 Все тесты пройдены (основной + секретный). 7.mpc DelTA4 at NIT0 Win10

У меня возникли проблемы с решением Задачи №7
https://dl.gsu.by/task.jsp?nid=2433682&cid=1370

Я написал почти два одинаковых кода

1:
int __in __bits(16) a;
int __in __bits(16) b;
int __in __bits(8) c;
int __in __bits(8) d;
int __out __bits(16) RES;

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

void main() {
    int sign_cd = sign(c * d);
    
    if (a == 4) {
        RES = c / a + b / d - a * c;
    } else {
        RES = (a + b - sign_cd) / a;
    }
}


2:
int __in __bits(16) a;
int __in __bits(16) b;
int __in __bits(8) c;
int __in __bits(8) d;
int __out __bits(16) RES;

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

void main() {
    if (a == 4) {
        RES = c / a + b / d - a * c;
    } else {
        RES = (a + b - sign(c*d)) / a;
    }
}



1 код не прошел по ошибке:
3.12 13:28 Сам-с7. Задача №7 0 / 100 [test 2]: Тест не прошел: res sgn[2]: 0. 7.mpc DelTA4 at NIT1 Win10
В 1 коде я использовал временную переменную sign_cd, а 2 коде сразу применил функцию.
Хотя в winter, этот тест, при этих же значениях, выдаёт ответ, как в тесте.
Игорь Коршунов

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

Мой профиль


Дима Гусаков:


У меня возникли проблемы с решением Задачи №7
https://dl.gsu.by/task.jsp?nid=2433682&cid=1370
 

Оба варианта правильные.
Не работает из-за ошибки в WInter. Будем пытаться устранить ее.
Андрей Здункевич

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

Мой профиль
unsigned __bits(3) in; unsigned __bits(3) out;

void main(){ if(in % 2 == 0){ out = ~in & 7; } else { out = in; } }

не генерируется проект по этой программе, не появляются контакты in и out
Игорь Коршунов

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

Мой профиль


Андрей Здункевич:

unsigned __bits(3) in; unsigned __bits(3) out;

void main(){ if(in % 2 == 0){ out = ~in & 7; } else { out = in; } }

не генерируется проект по этой программе, не появляются контакты in и out 

Нужно добавить модификаторы для обозначения контактов:
unsigned __in __bits(3) in; unsigned __out __bits(3) out;

void main(){ if(in % 2 == 0){ out = ~in & 7; } else { out = in; } }

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

Темы: 2072
Сообщений: 49883

Мой профиль
2.12.2024 12:01:15 12.12.2024 12:01:21 Балабан Владислав Организация и функционирование ЭВМ (ПО2) - 2024 9. Сумма четных членов последовательности 0 Не пройден секретный тест: Ошибка: Несовпадение SUMMA:650=702 [52,051 ps] sum.prd DelTA4 at NIT0 Win10


; [test 1]
N = 1, 10
wait for 1000
assert SUMMA = 0, 10
wait for 1

; [test 2]
N = 2, 10
wait for 1000
assert SUMMA = 2, 10
wait for 1

; [test 3]
N = 3, 10
wait for 1000
assert SUMMA = 2, 10
wait for 1

; [test 4]
N = 4, 10
wait for 1000
assert SUMMA = 6, 10
wait for 1

; [test 5]
N = 5, 10
wait for 1000
assert SUMMA = 6, 10
wait for 1

; [test 6]
N = 6, 10
wait for 1000
assert SUMMA = 12, 10
wait for 1

; [test 7]
N = 7, 10
wait for 1000
assert SUMMA = 12, 10
wait for 1

; [test 8]
N = 8, 10
wait for 1000
assert SUMMA = 20, 10
wait for 1

; [test 9]
N = 9, 10
wait for 1000
assert SUMMA = 20, 10
wait for 1

; [test 10]
N = 10, 10
wait for 1000
assert SUMMA = 30, 10
wait for 1

; [test 11]
N = 11, 10
wait for 1000
assert SUMMA = 30, 10
wait for 1

; [test 12]
N = 12, 10
wait for 1000
assert SUMMA = 42, 10
wait for 1

; [test 13]
N = 13, 10
wait for 1000
assert SUMMA = 42, 10
wait for 1

; [test 14]
N = 14, 10
wait for 1000
assert SUMMA = 56, 10
wait for 1

; [test 15]
N = 15, 10
wait for 1000
assert SUMMA = 56, 10
wait for 1

; [test 16]
N = 16, 10
wait for 1000
assert SUMMA = 72, 10
wait for 1

; [test 17]
N = 17, 10
wait for 1000
assert SUMMA = 72, 10
wait for 1

; [test 18]
N = 18, 10
wait for 1000
assert SUMMA = 90, 10
wait for 1

; [test 19]
N = 19, 10
wait for 1000
assert SUMMA = 90, 10
wait for 1

; [test 20]
N = 20, 10
wait for 1000
assert SUMMA = 110, 10
wait for 1

; [test 21]
N = 21, 10
wait for 1000
assert SUMMA = 110, 10
wait for 1

; [test 22]
N = 22, 10
wait for 1000
assert SUMMA = 132, 10
wait for 1

; [test 23]
N = 23, 10
wait for 1000
assert SUMMA = 132, 10
wait for 1

; [test 24]
N = 24, 10
wait for 1000
assert SUMMA = 156, 10
wait for 1

; [test 25]
N = 25, 10
wait for 1000
assert SUMMA = 156, 10
wait for 1

; [test 26]
N = 26, 10
wait for 1000
assert SUMMA = 182, 10
wait for 1

; [test 27]
N = 27, 10
wait for 1000
assert SUMMA = 182, 10
wait for 1

; [test 28]
N = 28, 10
wait for 1000
assert SUMMA = 210, 10
wait for 1

; [test 29]
N = 29, 10
wait for 1000
assert SUMMA = 210, 10
wait for 1

; [test 30]
N = 30, 10
wait for 1000
assert SUMMA = 240, 10
wait for 1

; [test 31]
N = 31, 10
wait for 1000
assert SUMMA = 240, 10
wait for 1

; [test 32]
N = 32, 10
wait for 1000
assert SUMMA = 272, 10
wait for 1

; [test 33]
N = 33, 10
wait for 1000
assert SUMMA = 272, 10
wait for 1

; [test 34]
N = 34, 10
wait for 1000
assert SUMMA = 306, 10
wait for 1

; [test 35]
N = 35, 10
wait for 1000
assert SUMMA = 306, 10
wait for 1

; [test 36]
N = 36, 10
wait for 1000
assert SUMMA = 342, 10
wait for 1

; [test 37]
N = 37, 10
wait for 1000
assert SUMMA = 342, 10
wait for 1

; [test 38]
N = 38, 10
wait for 1000
assert SUMMA = 380, 10
wait for 1

; [test 39]
N = 39, 10
wait for 1000
assert SUMMA = 380, 10
wait for 1

; [test 40]
N = 40, 10
wait for 1000
assert SUMMA = 420, 10
wait for 1

; [test 41]
N = 41, 10
wait for 1000
assert SUMMA = 420, 10
wait for 1

; [test 42]
N = 42, 10
wait for 1000
assert SUMMA = 462, 10
wait for 1

; [test 43]
N = 43, 10
wait for 1000
assert SUMMA = 462, 10
wait for 1

; [test 44]
N = 44, 10
wait for 1000
assert SUMMA = 506, 10
wait for 1

; [test 45]
N = 45, 10
wait for 1000
assert SUMMA = 506, 10
wait for 1

; [test 46]
N = 46, 10
wait for 1000
assert SUMMA = 552, 10
wait for 1

; [test 47]
N = 47, 10
wait for 1000
assert SUMMA = 552, 10
wait for 1

; [test 48]
N = 48, 10
wait for 1000
assert SUMMA = 600, 10
wait for 1

; [test 49]
N = 49, 10
wait for 1000
assert SUMMA = 600, 10
wait for 1

; [test 50]
N = 50, 10
wait for 1000
assert SUMMA = 650, 10
wait for 1

; [test 51]
N = 51, 10
wait for 1000
assert SUMMA = 650, 10
wait for 1

; [test 52]
N = 52, 10
wait for 1000
assert SUMMA = 702, 10
wait for 1

; [test 53]
N = 53, 10
wait for 1000
assert SUMMA = 702, 10
wait for 1

; [test 54]
N = 54, 10
wait for 1000
assert SUMMA = 756, 10
wait for 1

; [test 55]
N = 55, 10
wait for 1000
assert SUMMA = 756, 10
wait for 1

; [test 56]
N = 56, 10
wait for 1000
assert SUMMA = 812, 10
wait for 1

; [test 57]
N = 57, 10
wait for 1000
assert SUMMA = 812, 10
wait for 1

; [test 58]
N = 58, 10
wait for 1000
assert SUMMA = 870, 10
wait for 1

; [test 59]
N = 59, 10
wait for 1000
assert SUMMA = 870, 10
wait for 1

; [test 60]
N = 60, 10
wait for 1000
assert SUMMA = 930, 10
wait for 1

; [test 61]
N = 61, 10
wait for 1000
assert SUMMA = 930, 10
wait for 1

; [test 62]
N = 62, 10
wait for 1000
assert SUMMA = 992, 10
wait for 1

; [test 63]
N = 63, 10
wait for 1000
assert SUMMA = 992, 10
wait for 1

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