Автор |
Сообщение |
21.04.2009 10:53:22
Тема: Re:Вопросы по C-MPA
|
Игорь Коршунов
Темы: 7
Сообщений: 2198
Мой профиль
|
Ян Ганькин:
T[cnt]="#" ;
Нужно писать T[cnt]='#';
|
21.04.2009 10:58:16
Тема: Re:Вопросы по C-MPA
|
Игорь Коршунов
Темы: 7
Сообщений: 2198
Мой профиль
|
Ян Ганькин:
В винторе ответ правильный, а тест не проходит.
Внимательнее читай условие или подключи тест к WInter.
|
28.05.2009 13:34:17
Тема: Re:Вопросы по C-MPA
|
Павел Войтович
Темы: 0
Сообщений: 26
Мой профиль
|
Задача №14 контроля практики 16 ПОИТ-31.
При проверке на DL обвалился последний тест. При проверке в Winter также обвался последний текст. Однако при задании начальных значений (x=-2147483647)
ответ правльный. эта проблема уже упоминалась мною около двух месяцев назад, однако всё ещё не решена (я понимаю, что не хватает ресурсов, но хоть задачи-то такие надо пресекать). Вот код.
int __in __bits(32)x;
int __out __bits(16)y;
void main()
{
unsigned __bits(16)k=1;
unsigned __bits(16)xx=x;
unsigned __bits(16)xy=x>>16;
int i=0;
int j=0;
unsigned __bits(16)mx=0;
while ((k>0)&&(k<0x8000))
{
mx=xx&k;
if(mx==k) i++;
k=k<<1;
}
k=0x8000;
while (k>1)
{
mx=xy&k;
if (mx==k) j++;
k=k>>1;
}
if (i>=j) y=xx;
else y=xy;
}
|
28.05.2009 17:09:15
Тема: Re:Вопросы по C-MPA
|
Игорь Коршунов
Темы: 7
Сообщений: 2198
Мой профиль
|
Павел Войтович, тесты исправлены, присланные решения перетестированы.
|
09.02.2010 17:36:17
Тема: Re:Вопросы по C-MPA
|
Михаил Долинский
(Online)
Темы: 2072
Сообщений: 49883
Мой профиль
|
Вопросы: (Верес, ПМ-42):
1. Как разделить числа различных длин в С-МПА,
например 2-битовое, на одно битовое в языке С-МПА?
2. Как записать ответ, например, если переменная 4 байта,
а у нас получился результат в бит
|
09.02.2010 17:46:00
Тема: Re:Вопросы по C-MPA
|
Игорь Коршунов
Темы: 7
Сообщений: 2198
Мой профиль
|
Михаил Долинский:
1. Как разделить числа различных длин в С-МПА,
например 2-битовое, на одно битовое в языке С-МПА?
unsigned __bits(2) Num1;
unsigned __bits(1) Num2;
unsigned __bits(2) Res;
Res = Num1 / Num2;
Михаил Долинский:
2. Как записать ответ, например, если переменная 4 байта, а у нас получился результат в бит
unsigned __bits(32) Answer;
unsigned __bits(1) Res;
Answer = Res;
|
09.02.2010 19:16:30
Тема: Re:Вопросы по C-MPA
|
Елена Шейхо
Темы: 0
Сообщений: 66
Мой профиль
|
Скажите , как в индивидуальных задачах по тестированию в тесте отступить 2 строчки перед входными данными и 1 перед выходными? Они пишутся всегда сначала.
|
11.02.2010 13:07:29
Тема: Re:Вопросы по C-MPA
|
Игорь Коршунов
Темы: 7
Сообщений: 2198
Мой профиль
|
Елена Филипчик:
Скажите , как в индивидуальных задачах по тестированию в тесте отступить 2 строчки перед входными данными и 1 перед выходными? Они пишутся всегда сначала.
Сделать две пустые строки можно в любом текстовом редакторе.
|
18.02.2010 13:20:41
Тема: Re:Вопросы по C-MPA
|
Алекс Шубенок
Темы: 1
Сообщений: 7
Мой профиль
|
Решаю задачу
Экзамен\Индивидуальные задания\Сконвертированные задания на программирование по схеме\Вычислить выражение\19 - "Программа по схеме 84387"
В этой схеме на сумматор подается константа, но какая именно неизвестно. Условия никакого нет. Таких задач довольно много. Как решать подобные задачи???
|
18.02.2010 18:11:03
Тема: Re:Вопросы по C-MPA
|
Михаил Долинский
(Online)
Темы: 2072
Сообщений: 49883
Мой профиль
|
1) Этот вопрос не по теме C-MPA
2) Задачи конвертировались автоматически - выяснилось, что не все предусмотрено. Вы обнаружили проблему - мы будем думать, как ее решить и постараемся решить.
3) Решать другие задачи - благо дело их тоже немало.
|
20.04.2010 16:27:43
Тема: Re:Вопросы по C-MPA
|
Александр Громыко
Темы: 0
Сообщений: 12
Мой профиль
|
unsigned int __in __bits(8) n = 5;
unsigned int __out __bits(16) r;
void main() {
int xx = n, r = 0, k = 0, y = 0;
k = xx - 3;
y = (k + 1) * k;
y = y / 2;
y = y + k;
r = y;
}
В конце выполнения программы переменная y = 5, а r после присваивания все равно равно нулю.
unsigned int __in __bits(8) n = 5;
unsigned int __out __bits(16) r;
А вот такая программа:
void main() {
unsigned int __bits(16) xx = n, r = 0, k = 0, y = 0;
k = xx - 3;
y = (k + 1) * k;
y = y / 2;
y = y + k;
r = y;
}
Ведет себя еще веселее, она переварачивает байты при присваивании в r из y. При просмотре переменная y показывается как 32ух битная.
Проблема возникала из-за того что переменная r описана в строке:
unsigned int __bits(16) xx = n, r = 0, k = 0, y = 0;
|
25.04.2010 20:32:11
Тема: Re:Вопросы по C-MPA
|
Олег Зайцев
Темы: 0
Сообщений: 8
Мой профиль
|
Давно заметил недочёт в работе операций инкремента и декремента, сегодня решил разобраться в чём же дело. Изрядно помучившись, пришёл к следующему:
void main(){
int contPtr = 0; char container[10];
container[0] = '0';
container[contPtr++] = '1';
int i=0; char str[50];
if (container[i++] == '0'){
container[i++] = '3';
}
break;
}
На строке 4 происходит следующее: сначала переменной contPtr присваивается изменённое значение (contPtr становится равным 1), затем в container[1] заносится символ нуля. По правилам постфиксной и префиксной форм (например для ANSI C):
- При постфиксной: сначала операция, затем инкремент.
- При префиксной : сначала инкремент, затем операция.
Дальше больше.
8 строка: при описанном выше подходе ожидаем, что значение container[1] будет сравнён с '1' (в 4ой строке мы занесли в [1] элемент 1, строкой выше в [0] - 0). Как ни странно в тело if мы попадаем (это говорит нам о том, что операция инкремента прошла после операции сравнения). В строчке ниже обратный процесс - сначала инкремент и т.д.
Таким образом, складывается впечатление, что операции инкремента и декремента в таблице приоритетов операций попали между оператором = и операцией ==.
PS префиксная форма ведёт себя абсолютно корректно.
|
26.04.2010 11:36:59
Тема: Re:Вопросы по C-MPA
|
Игорь Коршунов
Темы: 7
Сообщений: 2198
Мой профиль
|
Олег Зайцев:
Давно заметил недочёт в работе операций инкремента и декремента, сегодня решил разобраться в чём же дело.
+30 бонусных баллов!
|
14.10.2010 12:17:17
Тема: Re:Вопросы по C-MPA
|
Дмитрий Герасимов
Темы: 0
Сообщений: 43
Мой профиль
|
Indirect addresing is not syntesable yet.
А можно номер строчки узнать, в которой ошибка?
И есть ли какие-нибудь варианты сконвертировать эту программу?
unsigned __in __bits(8) A;
unsigned __in __bits(8) B;
unsigned __in __bits(8) C;
unsigned __in __bits(8) D;
unsigned __out __bits(8) E;
void main() {
unsigned __bits(8) mas[4];
mas[0] = A;
mas[1] = B;
mas[2] = C;
mas[3] = D;
unsigned __bits(8) sr = 0;
for (int i = 0; i<4; i++)
sr+=mas[i];
sr/=4;
unsigned __bits(8) max = 0;
int __bits(9) tek;
unsigned __bits(8) m;
for (i = 0; i<4; i++) {
tek = mas[i] - sr;
m = tek>0? tek : -tek;
if (m>max) max = m;
}
E = max;
}
|
14.10.2010 12:45:51
Тема: Re:Вопросы по C-MPA
|
Игорь Коршунов
Темы: 7
Сообщений: 2198
Мой профиль
|
Дмитрий Герасимов:
А можно номер строчки узнать, в которой ошибка?
Использовать массивы при построении схем пока нельзя.
Дмитрий Герасимов:
И есть ли какие-нибудь варианты сконвертировать эту программу?
Обойтись без использования массивов.
|
|