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

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

Мой профиль


Александр Ковальчук:

Экзамен\Индивидуальные задания\Сконвертированные задания на программирование\Простые устройства с памятью\2 - "Арифметика"
http://dl.gsu.by/task.jsp?nid=1760013&cid=1099

На сервере не проходит тест 7, хотя у меня локально проходит все тесты и вовремя. Что бы это могло быть?

int __in __bits(2) A;
int __in __bits(2) B;
int __in __bits(2) C;
int __out __bits(8) RES;
int __bits(8) k;

void main() {
	unsigned __bits(2) mya = A;
	unsigned __bits(2) myb = B;
	unsigned __bits(2) myc = C;
	if (mya * myb < myc + 1) {
		k = 0;
	} else if (mya * myb > myc + 1) {
		k = mya * myb - myc;
	}
	RES = k;
}
 

1. Переменные должны быть объявлены как unsigned.
2. Промежуточные переменные должны быть большей размерности (например, 1 байт), чтобы не было переполнения.
Игорь Коршунов

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

Мой профиль

Как изменить шрифт в редакторе WInter?
 

В редакторе нажимаем правую кнопку мыши, выбираем "Свойства...", переходим на вторую вкладку "Выделение (цветом)".
Здесь можно изменить шрифт и его размер.
Богдан Савельев

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

Мой профиль
При запуске CMPA.bat в каталоге D:\Program Files выпадает ошибка "Не удается найти D:\Program. Проверьте правильно ли указано имя и повторите попытку".

Содержимое CMPA.bat:

set WRKDIR=D:\olymp
md %WRKDIR%
@cd %WRKDIR%
@if errorlevel 1 goto wrong_dir

if not exist %WRKDIR%\src.mpc copy %~dp0bin\src.mpc %WRKDIR%\src.mpc
copy /y %~dp0bin\MPAc.WID %WRKDIR%\MPAc.WID
start %~dp0bin\WInter.exe %WRKDIR%\MPAc.WID --student
exit

:wrong_dir
@echo Не удалось создать папку %WRKDIR%
@echo --------------------------------------------------------------
@echo - Измените рабочую папку на другую в первой строке bat-файла -
@echo --------------------------------------------------------------

@pause
Александр Городков

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

Мой профиль
Содержимое CMPA.bat:
set WRKDIR=C:\projects\winter
md %WRKDIR%
@cd %WRKDIR%
@if errorlevel 1 goto wrong_dir

if not exist %WRKDIR%\src.mpc copy %~dp0bin\src.mpc %WRKDIR%\src.mpc
copy /y %~dp0bin\MPAc.WID %WRKDIR%\MPAc.WID
start %~dp0bin\WInter.exe %WRKDIR%\MPAc.WID --student
exit

:wrong_dir
@echo Не удалось создать папку %WRKDIR%
@echo --------------------------------------------------------------
@echo - Измените рабочую папку на другую в первой строке bat-файла -
@echo --------------------------------------------------------------

@pause

После изменения WRKDIR на мой Winter открывается на директории D:\olymp(хотя у меня даже диска D: нет). При попытке сохранить файл ошибка "Не удается сохранить файл".
Скриншот проблемы -> https://ibb.co/gjf7XCx
Олег Гузанов

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

Мой профиль
Аналогично посту выше на моей машине отсутствует каталог D:. Полагаю, что указано расположение файла по умолчанию. Решается указанием места расположения собственного файла в меню "Файл - Создать".
Дмитрий Образцов

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

Мой профиль
Вопрос:
Почему не верно
char __in str[64];
Ответ:
Верно
char str[64];

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

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

Мой профиль


Богдан Савельев:

При запуске CMPA.bat в каталоге D:\Program Files выпадает ошибка "Не удается найти D:\Program. Проверьте правильно ли указано имя и повторите попытку".

Содержимое CMPA.bat:

set WRKDIR=D:\olymp
md %WRKDIR%
@cd %WRKDIR%
@if errorlevel 1 goto wrong_dir

if not exist %WRKDIR%\src.mpc copy %~dp0bin\src.mpc %WRKDIR%\src.mpc
copy /y %~dp0bin\MPAc.WID %WRKDIR%\MPAc.WID
start %~dp0bin\WInter.exe %WRKDIR%\MPAc.WID --student
exit

:wrong_dir
@echo Не удалось создать папку %WRKDIR%
@echo --------------------------------------------------------------
@echo - Измените рабочую папку на другую в первой строке bat-файла -
@echo --------------------------------------------------------------

@pause 

Нужно установить в папку без пробелов в пути, или модифицировать батник взяв все пути в кавычки.
Игорь Коршунов

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

Мой профиль


Александр Городков:

Содержимое CMPA.bat:
set WRKDIR=C:\projects\winter
md %WRKDIR%
@cd %WRKDIR%
@if errorlevel 1 goto wrong_dir

if not exist %WRKDIR%\src.mpc copy %~dp0bin\src.mpc %WRKDIR%\src.mpc
copy /y %~dp0bin\MPAc.WID %WRKDIR%\MPAc.WID
start %~dp0bin\WInter.exe %WRKDIR%\MPAc.WID --student
exit

:wrong_dir
@echo Не удалось создать папку %WRKDIR%
@echo --------------------------------------------------------------
@echo - Измените рабочую папку на другую в первой строке bat-файла -
@echo --------------------------------------------------------------

@pause

После изменения WRKDIR на мой Winter открывается на директории D:\olymp(хотя у меня даже диска D: нет). При попытке сохранить файл ошибка "Не удается сохранить файл".
Скриншот проблемы -> https://ibb.co/gjf7XCx
 

После запуска нужно создать новый файл (Файл->Создать...) или открыть уже имеющийся (Файл->Открыть как проект...).
После чего сохранить десктоп (Десктоп->Сохранить).
После этого скопировать MPAc.wid из рабочей папки в папку bin (перезаписав неправильно настроенный старый).

После этого все должно открываться правильно.
Игорь Коршунов

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

Мой профиль


Дмитрий Образцов:

Вопрос:
Почему не верно
char __in str[64];
Ответ:
Верно
char str[64];
 

Идеологически в МПА-С на входе не должно быть массивов, но задачи на программирование можно сдавать, если убрать модификатор __in.
Богдан Савельев

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

Мой профиль
char str[128];
char out1[128];

void main() {
out1 = "no";
int k = 0;
while (str[k] != '#'){
k++;
}
if (k % 2 == 0) {
char sub1[128];
char sub2[128];
for (int i = 0; i < k/2; i++){
sub1[i] = str[i];
}
int j = 0;
for (i = k/2; i < k; i++){
sub2[j] = str[i];
j++;
}
if (sub1 == sub2) out1 = "yes";
} else {
char sub1[128];
char sub2[128];
for (i = 0; i < k; i++){
sub1[i] = str[i];
}
int j = 0;
for (i = k/2 + 1; i < k; i++){
sub2[i] = str[i];
j++;
}
if (sub1 == sub2) out1 = "yes";
}



Внутренняя ошибка компилятора - Unsupported node type.
Игорь Коршунов

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

Мой профиль


Богдан Савельев:


Внутренняя ошибка компилятора - Unsupported node type. 

В программе три раза присваивается строка массиву символов.

В Си это допускается только при объявлении строкового массива.

char str[] = "some string 1"; // так можно
str = "some string 2"; // так нельзя


В С-МПА нет поддержки указателей, поэтому для вывода могу предложить использовать две такие функции:
char strYes[] = "yes";
char strNo[] = "no";

void OutYes()
{
	for (int i = 0;	strYes[i]; i++)
		out1[i] = strYes[i];
}
void OutNo()
{
	for (int i = 0;	strNo[i]; i++)
		out1[i] = strNo[i];
}

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

Темы: 1982
Сообщений: 47186

Мой профиль
Инициализация массива значениями переменных
 int a[5]={A1,A2,A3,A4,A5}; 


Пример программы
int __in __bits(8)A1;
int __in __bits(8)A2;
int __in __bits(8)A3;
int __in __bits(8)A4;
int __in __bits(8)A5;

int	__out __bits(8)K;

void main()
{
  int a[5]={A1,A2,A3,A4,A5};
  int min=A1;
  for (int i=0;i<5;i++)
    if (min>a[i]) min=a[i];
  K=min;
}

Владислав Свиридков

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

Мой профиль
http://dl.gsu.by/task.jsp?nid=2027972&cid=1230
http://dl.gsu.by/log-dbt.asp?id=10169969

При попытке импортировать тест в Winter никакой тест не добавляется.


Выпуск Windows 10 Pro
Версия 20H2
Дата установки ?10.?07.?2021
Сборка ОС 19042.1165
Взаимодействие Windows Feature Experience Pack 120.2212.3530.0
Владислав Свиридков

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

Мой профиль
http://dl.gsu.by/task.jsp?nid=2027972&cid=1230
http://dl.gsu.by/log-dbt.asp?id=10169969

В Winter в режиме отладки тест работает правильно.
int __in __bits(3) IN;

int __out __bits(2) OUT;
void main()
{
	OUT=0;
	if((IN&(1<<0))==0) {
		OUT++;
	}
	if(!(IN&(1<<1))==0) {
		OUT++;
	}
	if(!(IN&(1<<2))==0) {
		OUT++;
	}
}


Тест для проверки IN=5
Ответ в Winter 1
Ответ после компиляции в HLCCAD 0
Михаил Долинский

Темы: 1982
Сообщений: 47186

Мой профиль
Оглавление этой темы


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


"Решение проходит в Winter-е, но не проходит в HLCCAD":
...
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
 
 
Индекс форума ->Учебный процесс ГГУ/СШ 27 ->Проектирование цифровых систем 1, 2, 3, ... 17, 18, 19, 20, 21, ... 24, 25, 26
Time:0,047