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

Нужны задачи для решения - C++

Восстановить пароль Регистрация
 
 
Рейтинг: Рейтинг темы: голосов - 16, средняя оценка - 4.88
avatar1870
2 / 2 / 0
Регистрация: 28.09.2013
Сообщений: 405
24.08.2014, 23:17     Нужны задачи для решения #1
Здравствуйте. Если здесь есть студенты-программисты, то очень попрошу их сбросить сюда задания по С++, потому что все свои уже перерешал.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
КОП
348 / 280 / 86
Регистрация: 15.08.2010
Сообщений: 755
25.08.2014, 01:23     Нужны задачи для решения #21
rikimaru2013, накалякал свой вариант, прокатит?
C++
1
2
3
UINT16 x = 14859325;
    int y = x + 0x005F0000;
    cout << y;
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
ValeryS
Модератор
6377 / 4843 / 442
Регистрация: 14.02.2011
Сообщений: 16,051
25.08.2014, 01:23     Нужны задачи для решения #22
Цитата Сообщение от rikimaru2013 Посмотреть сообщение
Можете считать, что решили задачу, но если вам интересно, то ответ вообще не такой.
тут решений может быть куча
через union подойдет? можно через массив, через приведение типов
rikimaru2013
C++ Game Dev
 Аватар для rikimaru2013
2137 / 970 / 223
Регистрация: 30.11.2013
Сообщений: 3,240
25.08.2014, 01:26     Нужны задачи для решения #23
Мой вариант задачки 2

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include <iostream>
 
using namespace std;
union INT
{
    int x;
    unsigned char BITS8[4];
};
void main()
{
    int a = 14859325; 
    // 00000000 11100010 10111100 00111101   =  14859325  было 
    // 00000000 11100010 01011111 00111101   =  14835517  должно быть
    // 00000000 01011111 10111100 00111101   =  6274109  если биты считаем справа налево
    INT x;
    x.x = a;
    x.BITS8[1] = 95; // 01011111 = 95
    a = x.x;
 
    cout << a << endl; 
 
    
}
ValeryS
Модератор
6377 / 4843 / 442
Регистрация: 14.02.2011
Сообщений: 16,051
25.08.2014, 01:27     Нужны задачи для решения #24
КОП, а теперь посмотри шеснадцетиричное представление числа 14859325
0xE2BC3D
третий байт 0xE2 а ты к нему еще 0x5F прибавляешь
должно получится 0x5FBC3D 6274109
КОП
348 / 280 / 86
Регистрация: 15.08.2010
Сообщений: 755
25.08.2014, 01:33     Нужны задачи для решения #25
Цитата Сообщение от ValeryS Посмотреть сообщение
должно получится 0x5FBC3D 6274109
в консоли выводится именно это значение. UINT16 хранит лишь 2 байта, 3ий обрезается
ValeryS
Модератор
6377 / 4843 / 442
Регистрация: 14.02.2011
Сообщений: 16,051
25.08.2014, 01:36     Нужны задачи для решения #26
rikimaru2013,
а теперь тоже самое без union
Кликните здесь для просмотра всего текста
C++
1
2
3
4
unsigned char * c;
int x=14859325;
c=&x;
c[2]=95;

прикол в том что сработает только на Intelовской платформе, младший байт по младшему адресу
на той же Мотороле будет по другому

Добавлено через 2 минуты
Цитата Сообщение от КОП Посмотреть сообщение
UINT16 хранит лишь 2 байта, 3ий обрезается
извини не заметил UINT16
но тип то не стандартный, написал бы unsigned short
rikimaru2013
C++ Game Dev
 Аватар для rikimaru2013
2137 / 970 / 223
Регистрация: 30.11.2013
Сообщений: 3,240
25.08.2014, 01:41     Нужны задачи для решения #27
Цитата Сообщение от ValeryS Посмотреть сообщение
&
оператор взятия адреса

Да вариантов куча. Такие они преподаватели: дадут задание с "прикольными" условиями. Сидишь знаешь 100500 вариантов решений без ограничений, и всё ищешь тот 1 что подходит условиями преподавателя.
КОП
348 / 280 / 86
Регистрация: 15.08.2010
Сообщений: 755
25.08.2014, 01:44     Нужны задачи для решения #28
Цитата Сообщение от ValeryS Посмотреть сообщение
но тип то не стандартный, написал бы unsigned short
По названию можно в принципе догадаться. Я просто ленивый, что бы расписывать)). В след раз буду по стандарту тогда писать, чтоб без недопониманий.

Цитата Сообщение от ValeryS Посмотреть сообщение
а теперь тоже самое без union
тут кстати студия ругается на неявное преобразование, если его сделать явным, то все ок.
ValeryS
Модератор
6377 / 4843 / 442
Регистрация: 14.02.2011
Сообщений: 16,051
25.08.2014, 01:46     Нужны задачи для решения #29
Цитата Сообщение от rikimaru2013 Посмотреть сообщение
оператор взятия адреса
он родной по правильному то и тип бы надо привести
Цитата Сообщение от rikimaru2013 Посмотреть сообщение
Такие они преподаватели: дадут задание с "прикольными" условиями.
так наверно не с бухты-барахты дают а по пройденной теме, прошли union реши с ним, прошли битовые операции туже задачу реши с ними
Не знаю, у меня проще было,решай как хочешь, но докажи что твое решение лучше
КОП
348 / 280 / 86
Регистрация: 15.08.2010
Сообщений: 755
25.08.2014, 01:46     Нужны задачи для решения #30
Цитата Сообщение от rikimaru2013 Посмотреть сообщение
задание с "прикольными" условиями
Не подкините еще парочку? А то в этом году поступаю, хочется уже что-то иметь на вооружении.
ValeryS
Модератор
6377 / 4843 / 442
Регистрация: 14.02.2011
Сообщений: 16,051
25.08.2014, 01:47     Нужны задачи для решения #31
Цитата Сообщение от КОП Посмотреть сообщение
тут кстати студия ругается на неявное преобразование,
а я тоже ленивый пишу то не в компиляторе а прямо здесь, главное идею показать
rikimaru2013
C++ Game Dev
 Аватар для rikimaru2013
2137 / 970 / 223
Регистрация: 30.11.2013
Сообщений: 3,240
25.08.2014, 02:08     Нужны задачи для решения #32
Цитата Сообщение от КОП Посмотреть сообщение
Не подкините еще парочку?
1. Вода
2. Шейкерная сортировка
3. Башня Ханое:
C++
1
2
3
4
5
6
7
8
9
10
//Легенда гласит, что где-то в Ханое находится храм, в котором размещена следующая конструкция:
//на основании укреплены 3 алмазных стержня, на один из которых при сотворении мира Брахма 
//  нанизал 64 золотых диска с отверстием посередине,
//причем внизу оказался самый большой диск, на нем – чуть меньший и так далее, пока на
//верхушке пирамиды не оказался самый маленький диск. Жрецы храма обязаны перекладывать
//диски по следующим правилам:
//1. За один ход можно перенести только один диск. 
//2. Нельзя класть больший диск на меньший.
//Руководствуясь этими нехитрыми правилами, жрецы должны перенести исходную пирамиду с 
//1-го стержня на 3-й. Как только они справятся с этим заданием, наступит конец света.
4. Шахматный конь:
C++
1
2
// Пользователь "ставит" коня на шахматную доску, компьютер выводит 63 хода коня. 
// На одной клетке нельзя быть 2 раза. Конь ходит как шахматный.
5. Написать функцию проверки является ли число степенью двойки.

Добавлено через 8 минут
6. Заменить в битовом представлении числа самый правый ноль на единицу.
КОП
348 / 280 / 86
Регистрация: 15.08.2010
Сообщений: 755
25.08.2014, 02:17     Нужны задачи для решения #33
Цитата Сообщение от rikimaru2013 Посмотреть сообщение
5. Написать функцию проверки является ли число степенью двойки.
как-то так получилось
Кликните здесь для просмотра всего текста
C++
1
2
3
4
5
6
7
8
9
10
11
bool POT(unsigned int n)
{
    n--;
    while (n > 0)
    {
        if (n & 1)
            n = n >> 1;
        else return false;
    }
    return true;
}


Цитата Сообщение от rikimaru2013 Посмотреть сообщение
Шейкерная сортировка
практически со всеми простыми сортировками я уже поработал.

Остальным сейчас займусь, спасибо.

Добавлено через 2 минуты
Цитата Сообщение от rikimaru2013 Посмотреть сообщение
Заменить в битовом представлении числа самый правый ноль на единицу
ну по сравнению со "второй задачей" это уж слишком просто ))
rikimaru2013
C++ Game Dev
 Аватар для rikimaru2013
2137 / 970 / 223
Регистрация: 30.11.2013
Сообщений: 3,240
25.08.2014, 02:18     Нужны задачи для решения #34
Цитата Сообщение от КОП Посмотреть сообщение
как-то так получилось
задания 5 и 6 в одну строку))))
КОП
348 / 280 / 86
Регистрация: 15.08.2010
Сообщений: 755
25.08.2014, 04:17     Нужны задачи для решения #35
Цитата Сообщение от rikimaru2013 Посмотреть сообщение
задания 5 и 6 в одну строку))))
Так что ж вы сразу то не сказали! Я то там расписался в волю. Ща буду думать

Добавлено через 1 час 57 минут
Черт знает что накодил в пятом. Есть же более простой вариант тоже в одну строчку?
Кликните здесь для просмотра всего текста
C++
1
return n && (n == ~((n - 1) | (~(n - 1) - n)));
Евгений89
 Аватар для Евгений89
99 / 99 / 9
Регистрация: 17.04.2011
Сообщений: 554
Завершенные тесты: 2
25.08.2014, 07:01     Нужны задачи для решения #36
Скачайте Абрамяна 1000 задач по программированию.
DrOffset
6457 / 3831 / 885
Регистрация: 30.01.2014
Сообщений: 6,627
25.08.2014, 13:11     Нужны задачи для решения #37
Цитата Сообщение от rikimaru2013 Посмотреть сообщение
Такие они преподаватели: дадут задание с "прикольными" условиями.
Лучше бы преподаватели объясняли что такое UB и почему нужно писать код без него.
А то вот научатся так студенты хакам и трюкам, а нормальному стилю и ответственности за свой код - нет.

Добавлено через 3 минуты
Цитата Сообщение от КОП Посмотреть сообщение
Есть же более простой вариант тоже в одну строчку?
Перестарался
C++
1
(X & (X - 1)) == 0
агерон
 Аватар для агерон
265 / 264 / 33
Регистрация: 12.10.2009
Сообщений: 1,031
25.08.2014, 14:30     Нужны задачи для решения #38
написать 2 реализации, быструю и медленную, подсчета единичных битов в целом не отрицательном байте (символов). Написать тесты для задания, тесты должны заканчиваться корректно, Тестовый набор символов 1000000 символов, объяснить выбор решений для реализаций
_Ivana
2189 / 1394 / 124
Регистрация: 01.03.2013
Сообщений: 4,149
Записей в блоге: 2
25.08.2014, 15:27     Нужны задачи для решения #39
быструю ......., подсчета единичных битов в целом не отрицательном байте
было в книжке с названием "хакерские трюки" или типа того, сразу одна или две команды на ассемблере.

Добавлено через 1 минуту
DrOffset, +1. В промышленном программировании важна надежность при приемлемом уровне оптимизации по скорости и объему, а не трюки, которые подведут в самый неподходящий момент.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
25.08.2014, 15:33     Нужны задачи для решения
Еще ссылки по теме:

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

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

Или воспользуйтесь поиском по форуму:
rikimaru2013
C++ Game Dev
 Аватар для rikimaru2013
2137 / 970 / 223
Регистрация: 30.11.2013
Сообщений: 3,240
25.08.2014, 15:33     Нужны задачи для решения #40
Цитата Сообщение от КОП Посмотреть сообщение
Черт знает что накодил в пятом. Есть же более простой вариант тоже в одну строчку?
Кликните здесь для просмотра всего текста
C++
1
2
3
4
bool is_power_of_2 (int num)
{
     return !(num & (num - 1));
}
Yandex
Объявления
25.08.2014, 15:33     Нужны задачи для решения
Ответ Создать тему
Опции темы

Текущее время: 00:14. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru