Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
 
Рейтинг 4.67/12: Рейтинг темы: голосов - 12, средняя оценка - 4.67
avatar1870
2 / 2 / 4
Регистрация: 28.09.2013
Сообщений: 407
1

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

24.08.2014, 23:17. Просмотров 2234. Ответов 52
Метки нет (Все метки)

Здравствуйте. Если здесь есть студенты-программисты, то очень попрошу их сбросить сюда задания по С++, потому что все свои уже перерешал.
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
24.08.2014, 23:17
Ответы с готовыми решениями:

Нужны задачи для их решения
Здравствуйте. Нужны задачи для закрепления изученного материала. Что...

Нужны задачи для тренировки
Здравствуйте киньте пожалуйста задания по с++ для человека начинающего ...

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

Нужны простые задачи для тренировки
Добрый день всем:) Наверное подобных тем как я тут сотни,но всё же. Начал...

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

52
КОП
548 / 398 / 127
Регистрация: 15.08.2010
Сообщений: 1,124
Завершенные тесты: 1
25.08.2014, 01:23 21
rikimaru2013, накалякал свой вариант, прокатит?
C++
1
2
3
UINT16 x = 14859325;
    int y = x + 0x005F0000;
    cout << y;
0
ValeryS
Модератор
7372 / 5573 / 707
Регистрация: 14.02.2011
Сообщений: 18,944
25.08.2014, 01:23 22
Цитата Сообщение от rikimaru2013 Посмотреть сообщение
Можете считать, что решили задачу, но если вам интересно, то ответ вообще не такой.
тут решений может быть куча
через union подойдет? можно через массив, через приведение типов
0
rikimaru2013
C++ Game Dev
2473 / 1141 / 349
Регистрация: 30.11.2013
Сообщений: 3,709
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; 
 
    
}
0
ValeryS
Модератор
7372 / 5573 / 707
Регистрация: 14.02.2011
Сообщений: 18,944
25.08.2014, 01:27 24
КОП, а теперь посмотри шеснадцетиричное представление числа 14859325
0xE2BC3D
третий байт 0xE2 а ты к нему еще 0x5F прибавляешь
должно получится 0x5FBC3D 6274109
0
КОП
548 / 398 / 127
Регистрация: 15.08.2010
Сообщений: 1,124
Завершенные тесты: 1
25.08.2014, 01:33 25
Цитата Сообщение от ValeryS Посмотреть сообщение
должно получится 0x5FBC3D 6274109
в консоли выводится именно это значение. UINT16 хранит лишь 2 байта, 3ий обрезается
0
ValeryS
Модератор
7372 / 5573 / 707
Регистрация: 14.02.2011
Сообщений: 18,944
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
0
rikimaru2013
C++ Game Dev
2473 / 1141 / 349
Регистрация: 30.11.2013
Сообщений: 3,709
25.08.2014, 01:41 27
Цитата Сообщение от ValeryS Посмотреть сообщение
&
оператор взятия адреса

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

Цитата Сообщение от ValeryS Посмотреть сообщение
а теперь тоже самое без union
тут кстати студия ругается на неявное преобразование, если его сделать явным, то все ок.
0
ValeryS
Модератор
7372 / 5573 / 707
Регистрация: 14.02.2011
Сообщений: 18,944
25.08.2014, 01:46 29
Цитата Сообщение от rikimaru2013 Посмотреть сообщение
оператор взятия адреса
он родной по правильному то и тип бы надо привести
Цитата Сообщение от rikimaru2013 Посмотреть сообщение
Такие они преподаватели: дадут задание с "прикольными" условиями.
так наверно не с бухты-барахты дают а по пройденной теме, прошли union реши с ним, прошли битовые операции туже задачу реши с ними
Не знаю, у меня проще было,решай как хочешь, но докажи что твое решение лучше
0
КОП
548 / 398 / 127
Регистрация: 15.08.2010
Сообщений: 1,124
Завершенные тесты: 1
25.08.2014, 01:46 30
Цитата Сообщение от rikimaru2013 Посмотреть сообщение
задание с "прикольными" условиями
Не подкините еще парочку? А то в этом году поступаю, хочется уже что-то иметь на вооружении.
0
ValeryS
Модератор
7372 / 5573 / 707
Регистрация: 14.02.2011
Сообщений: 18,944
25.08.2014, 01:47 31
Цитата Сообщение от КОП Посмотреть сообщение
тут кстати студия ругается на неявное преобразование,
а я тоже ленивый пишу то не в компиляторе а прямо здесь, главное идею показать
0
rikimaru2013
C++ Game Dev
2473 / 1141 / 349
Регистрация: 30.11.2013
Сообщений: 3,709
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. Заменить в битовом представлении числа самый правый ноль на единицу.
1
КОП
548 / 398 / 127
Регистрация: 15.08.2010
Сообщений: 1,124
Завершенные тесты: 1
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 Посмотреть сообщение
Заменить в битовом представлении числа самый правый ноль на единицу
ну по сравнению со "второй задачей" это уж слишком просто ))
0
rikimaru2013
C++ Game Dev
2473 / 1141 / 349
Регистрация: 30.11.2013
Сообщений: 3,709
25.08.2014, 02:18 34
Цитата Сообщение от КОП Посмотреть сообщение
как-то так получилось
задания 5 и 6 в одну строку))))
0
КОП
548 / 398 / 127
Регистрация: 15.08.2010
Сообщений: 1,124
Завершенные тесты: 1
25.08.2014, 04:17 35
Цитата Сообщение от rikimaru2013 Посмотреть сообщение
задания 5 и 6 в одну строку))))
Так что ж вы сразу то не сказали! Я то там расписался в волю. Ща буду думать

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

Добавлено через 3 минуты
Цитата Сообщение от КОП Посмотреть сообщение
Есть же более простой вариант тоже в одну строчку?
Перестарался
C++
1
(X & (X - 1)) == 0
0
агерон
274 / 281 / 58
Регистрация: 12.10.2009
Сообщений: 1,112
25.08.2014, 14:30 38
написать 2 реализации, быструю и медленную, подсчета единичных битов в целом не отрицательном байте (символов). Написать тесты для задания, тесты должны заканчиваться корректно, Тестовый набор символов 1000000 символов, объяснить выбор решений для реализаций
0
_Ivana
3236 / 1869 / 235
Регистрация: 01.03.2013
Сообщений: 5,111
Записей в блоге: 5
25.08.2014, 15:27 39
быструю ......., подсчета единичных битов в целом не отрицательном байте
было в книжке с названием "хакерские трюки" или типа того, сразу одна или две команды на ассемблере.

Добавлено через 1 минуту
DrOffset, +1. В промышленном программировании важна надежность при приемлемом уровне оптимизации по скорости и объему, а не трюки, которые подведут в самый неподходящий момент.
0
rikimaru2013
C++ Game Dev
2473 / 1141 / 349
Регистрация: 30.11.2013
Сообщений: 3,709
25.08.2014, 15:33 40
Цитата Сообщение от КОП Посмотреть сообщение
Черт знает что накодил в пятом. Есть же более простой вариант тоже в одну строчку?
Кликните здесь для просмотра всего текста
C++
1
2
3
4
bool is_power_of_2 (int num)
{
     return !(num & (num - 1));
}
1
25.08.2014, 15:33
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
25.08.2014, 15:33

Использование функция для решения задачи
Добрый вечер, подскажите в чем ошибка в коде. #include &quot;stdafx.h&quot; #include...

Нужен совет для решения задачи
Задача. Написать программу которая читает последовательность слов с...

Алгоритм для решения задачи по программированию
Доброго времени суток всем. Прошу помощи в составлении алгоритма решении...


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

Или воспользуйтесь поиском по форуму:
40
Ответ Создать тему
Опции темы

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