Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 13, средняя оценка - 4.85
magistr011
6 / 6 / 0
Регистрация: 22.10.2011
Сообщений: 164
#1

Задание(( даже незнаю с чего начать... - C++

02.11.2011, 16:20. Просмотров 1664. Ответов 40
Метки нет (Все метки)

Программы реализуются как ассемблерные вставки в языке высшего уровня (Паскаль, С++ и т.д.).

Заданы два числа <16. Найти их произведение и с помощью битовых операций записать оба множителя и их произведение одно за другим в ячейку памяти размером в два байта без пропуска битов.

Две свои программы написал на C++ Builder 6
summa(Aij * X) + summa(Bi * Y) и (A * X + B) div (C * X2 + D * X + E)
тут надо было вычислить, вычисления асмом а запрос на ЯВУ...

А в этой задаче немогу понять, как наглядно показать, что оба множителя и их произведение записаны в ячейку памяти размером в два байта без пропуска битов. Каким образом в Builder C++ можно показать ячейку??? Помогите советом пожалуйста
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
02.11.2011, 16:20     Задание(( даже незнаю с чего начать...
Посмотрите здесь:

Задание: разработать "Интерпретатор языка". С чего начать? - C++
Здравствуйте, вручили темку на курсовик, ну точнее как вручили, не успел взять то, что хотел - пришлось брать то, что осталось. Плоховато...

Незнаю как решить задание - C++
Дано четырехзначное число.Найти: а.)сумму его цифр; б.)произвидение ео цифр. Начал учить С++ только два дня назад!Нужно...

Написал задание с классами, по примеру, но в public выдает ошибки, незнаю как их переделать :) - C++
# include &quot;stdafx.h&quot; # include &lt;conio.h&gt; #include &lt;iostream&gt; #include &lt;string.h&gt; using namespace std; class Magazine ...

С чего начать? - C++
Очень сильно научиться писать хотя бы примитивный софт по типу чекеров, клиентов и т.д Но я х3 с чего начать, как и все наверное......

С чего начать? - C++
Сначала сделать выбор между одз, а потом найти в первом уравнении меньший или наоборот?

с чего начать - C++
я сейчас обучаюсь в одном заведении (чтото вроди кружка) C#-у. нам там пока дают базу но ее я вроди как и знаю. учитель видит что я ничего...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
magistr011
6 / 6 / 0
Регистрация: 22.10.2011
Сообщений: 164
02.11.2011, 18:24  [ТС]     Задание(( даже незнаю с чего начать... #21
да неправильно там...
256d = 1 0000 0000b

Добавлено через 6 минут
0000 0000 0000 0000 - 2 байта
1000 0000 0100 0010 000 - не влазиет (((
Deviaphan
Делаю внезапно и красиво
Эксперт C++
1286 / 1220 / 50
Регистрация: 22.03.2011
Сообщений: 3,744
02.11.2011, 18:26     Задание(( даже незнаю с чего начать... #22
Цитата Сообщение от magistr011 Посмотреть сообщение
не влазиет (((
Как бы я это давно сказал. В постановке задания <=16 задачу решить нельзя. Только если 0 <= x < 16.
magistr011
6 / 6 / 0
Регистрация: 22.10.2011
Сообщений: 164
02.11.2011, 18:29  [ТС]     Задание(( даже незнаю с чего начать... #23
Цитата Сообщение от Deviaphan Посмотреть сообщение
В постановке задания <=16 задачу решить нельзя
Но в задании точно написано:
Заданы два числа <=16. Найти их произведение и с помощью битовых операций записать оба множителя и их произведение одно за другим в ячейку памяти размером в два байта без пропуска битов
talis
791 / 543 / 37
Регистрация: 11.05.2010
Сообщений: 1,298
Записей в блоге: 1
02.11.2011, 18:33     Задание(( даже незнаю с чего начать... #24
Что тогда понимать под "без пропуска битов"?
magistr011
6 / 6 / 0
Регистрация: 22.10.2011
Сообщений: 164
02.11.2011, 18:34  [ТС]     Задание(( даже незнаю с чего начать... #25
Цитата Сообщение от talis Посмотреть сообщение
"без пропуска битов"?
я так понимаю, числа должны быть сразу друг за другом... **** **** **** **** вместо звёзд всё сплош цифры, только цифр больше получается, чем звёздочек...
talis
791 / 543 / 37
Регистрация: 11.05.2010
Сообщений: 1,298
Записей в блоге: 1
02.11.2011, 18:37     Задание(( даже незнаю с чего начать... #26
Ладно, худший случай в варианте Deviaphan (и моём, собственно):

15 * 15 = 225
1111 * 1111 = 1110'0001

Результат: 1110'0001 1111'1111 (аккурат 2 байта)



В случае с лимитом = 16:

16 * 16 = 256
1'0000 * 1'0000 = 1'0000'0000

Результат: 1000'0000 0.100'00.10 000.x'xxxx (точками обозначены границы полей, x - неиспользованные биты; их теоретически можно поставить слева)
Нужно тогда 3 байта.
magistr011
6 / 6 / 0
Регистрация: 22.10.2011
Сообщений: 164
02.11.2011, 18:42  [ТС]     Задание(( даже незнаю с чего начать... #27
да, но надо 2 байта (((
блин (( как разместить 3 байта в 2-х байтах ???
talis
791 / 543 / 37
Регистрация: 11.05.2010
Сообщений: 1,298
Записей в блоге: 1
02.11.2011, 18:43     Задание(( даже незнаю с чего начать... #28
magistr011, НИКАК! Такой ответ устраивает? 0 <= x <= 15 там, очепятка. Заплетык языкался у препода.
magistr011
6 / 6 / 0
Регистрация: 22.10.2011
Сообщений: 164
02.11.2011, 18:50  [ТС]     Задание(( даже незнаю с чего начать... #29
Я тоже так же думаю... Но блин с заданием-то как быть(((
Deviaphan
Делаю внезапно и красиво
Эксперт C++
1286 / 1220 / 50
Регистрация: 22.03.2011
Сообщений: 3,744
02.11.2011, 18:51     Задание(( даже незнаю с чего начать... #30
Цитата Сообщение от talis Посмотреть сообщение
НИКАК!
Заархивировать.)))
talis
791 / 543 / 37
Регистрация: 11.05.2010
Сообщений: 1,298
Записей в блоге: 1
02.11.2011, 18:53     Задание(( даже незнаю с чего начать... #31
Deviaphan, вперёд! Что будет больше - код архивации или код формирования этой несчастной последовательности? Или ещё лучше - статическая линковка к libz
magistr011
6 / 6 / 0
Регистрация: 22.10.2011
Сообщений: 164
02.11.2011, 18:57  [ТС]     Задание(( даже незнаю с чего начать... #32
Цитата Сообщение от Deviaphan Посмотреть сообщение
Заархивировать.)))
Хорошь ржать мне сдавать в январе, а я непонимаю как сделать...
talis
791 / 543 / 37
Регистрация: 11.05.2010
Сообщений: 1,298
Записей в блоге: 1
02.11.2011, 18:59     Задание(( даже незнаю с чего начать... #33
В январе? Это у вас курсовая такая? О_о
Deviaphan
Делаю внезапно и красиво
Эксперт C++
1286 / 1220 / 50
Регистрация: 22.03.2011
Сообщений: 3,744
02.11.2011, 19:06     Задание(( даже незнаю с чего начать... #34
Цитата Сообщение от magistr011 Посмотреть сообщение
Хорошь ржать
Препод ошибся. Задача в общем случае не решаема.

Добавлено через 34 секунды

Не по теме:

Цитата Сообщение от talis Посмотреть сообщение
Это у вас курсовая такая?
Это крайний срок перед отчислением.)))

magistr011
6 / 6 / 0
Регистрация: 22.10.2011
Сообщений: 164
02.11.2011, 19:11  [ТС]     Задание(( даже незнаю с чего начать... #35
Это простой зачёт по асму, меня точно не отчислят ))) Я просто хочу понять, ведь задания уже ниразу не один год даются и как-тоих делают... Почему я немогу (((
Просто учусь на заочке, поэтому фиг кто преподаёт... Учусь сам, инет помагает...

Кстати, прикол... Учусь в интернете, а плачу в ВУЗ...
Deviaphan
Делаю внезапно и красиво
Эксперт C++
1286 / 1220 / 50
Регистрация: 22.03.2011
Сообщений: 3,744
02.11.2011, 19:13     Задание(( даже незнаю с чего начать... #36
Знаешь, если писать простой зачёт по асму на С++, тебя точно отчислят.)))
mimicria
return (true);
1956 / 1093 / 91
Регистрация: 19.04.2011
Сообщений: 2,345
02.11.2011, 19:25     Задание(( даже незнаю с чего начать... #37
Если без асма и всё-таки от 0 до 15, то можно как-то так:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
struct bytepack
{
 unsigned short int a:4;
 unsigned short int b:4;
 unsigned short int mul:8;
};
 
union bp
{
 bytepack str;
 unsigned short int h;
};
 
int main(int argc, char* argv[])
{
 bp test;
 test.str.a=15;
 test.str.b=15;
 test.str.mul=test.str.a*test.str.b;
 cout << hex << test.h << endl;
 system("pause");
 return 0;
}
magistr011
6 / 6 / 0
Регистрация: 22.10.2011
Сообщений: 164
02.11.2011, 19:30  [ТС]     Задание(( даже незнаю с чего начать... #38
У меня в задании написано, чтобы С++ запрашивал переменные, а вставка асма расчитывала... )))
Кстати сказать, я всё дублирую в консоли, пишу в Dev-C++ и делаю вставки...
Первые 2 задания я выполнил, а вот это сложно пока (((

Добавлено через 2 минуты
Цитата Сообщение от mimicria Посмотреть сообщение
Если без асма и всё-таки от 0 до 15, то можно как-то так:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
struct bytepack
{
 unsigned short int a:4;
 unsigned short int b:4;
 unsigned short int mul:8;
};
 
union bp
{
 bytepack str;
 unsigned short int h;
};
 
int main(int argc, char* argv[])
{
 bp test;
 test.str.a=15;
 test.str.b=15;
 test.str.mul=test.str.a*test.str.b;
 cout << hex << test.h << endl;
 system("pause");
 return 0;
}
Это всё хорошо канечно, спасибо всем кто отвечал или будет отвечать дальше...
Нужно на асме... Я поборюсь ещё немного и в случае неудачи пойду к преподу (((
Deviaphan
Делаю внезапно и красиво
Эксперт C++
1286 / 1220 / 50
Регистрация: 22.03.2011
Сообщений: 3,744
02.11.2011, 19:33     Задание(( даже незнаю с чего начать... #39
C++
1
2
3
4
unsigned char a = 15;
unsigned char b = 15;
unsigned char mul = a*b;
unsigned short result = (mul << 8) | (a << 4) | (b);
На асме чуть больше строк, но всё то же самое.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
03.11.2011, 11:36     Задание(( даже незнаю с чего начать...
Еще ссылки по теме:

С чего начать? - C++
Доброго времени суток! Хочу выучить язык С++, подскажите с чего лучше начать изучение? Заранее благодарен!

С чего начать - C++
приветствую я Алексей 35 лет.. щас есть свободное время вот думаю начать программировать давно хотел.. что можете посоветовать? начинаю с...

Си или Си++ с чего начать? - C++
Владею только паскалем. Решил изучить новый язык, остановился на Си, но многие советуют Си++. Суть темы: На много ли С++ сложнее С? На...

С чего начать изучение C++ - C++
Всем доброе время суток Кто владеет хорошо C++ можете описать с каких книг начать и чем закончить то есть можно сказать расписать весь...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
talis
791 / 543 / 37
Регистрация: 11.05.2010
Сообщений: 1,298
Записей в блоге: 1
03.11.2011, 11:36     Задание(( даже незнаю с чего начать... #40
Вот не помню. Dev-CPP же использует gcc, соответственно асмовские вставки там gcc-евские:

C++
1
2
3
4
asm( "pusha\n"
     "popa\n"
     /*тут ещё импорт-экспорт объектов и что-то про использованные регистры*/
);
А у мелкомягких и борланда всё гораздо интереснее:

C++
1
2
3
4
asm
{
  /* асм (: */
};
Так что препод может вас не понять, если он на VC6 сидит. А это распространённое заболевание.

Добавлено через 4 минуты
М-да, у gcc ещё синтаксис AT&T, а у мелкомягких и борланда - Intel.
Yandex
Объявления
03.11.2011, 11:36     Задание(( даже незнаю с чего начать...
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru