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

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

Войти
Регистрация
Восстановить пароль
 
Виkтория
1 / 1 / 0
Регистрация: 04.06.2013
Сообщений: 63
#1

Написать функцию, которая возвращает число, полученное из целого числа x, в котором единицы установлены в n разрядов, начиная с позиции p (крайний пра - C++

12.06.2013, 19:12. Просмотров 793. Ответов 12
Метки нет (Все метки)

Написать функцию, которая возвращает число, полученное из целого числа x, в котором единицы установлены в n разрядов, начиная с позиции p (крайний правый бит считать нулевым по номеру). Проверять правильность значений n и p.

Задали такое !! это с накладыванием маски !! помогите !!!!!!!!!!!!!!!!!!!!!!!!!!!!
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
12.06.2013, 19:12
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Написать функцию, которая возвращает число, полученное из целого числа x, в котором единицы установлены в n разрядов, начиная с позиции p (крайний пра (C++):

Написать функцию, которая возвращает число, полученное из числа X,в котором все розряды, расположенные правее центральной позиции, заменены - C++
Написать функцию, которая возвращает число, полученное из числа X,в котором все розряды, расположенные правее центральной позиции, заменены...

Напишите функцию, которая для любого целого аргумента возвращает целое значение, полученное изменением порядка следования цифр на обратный - C++
2)Напишите функцию, которая для любого целого аргумента возвращает целое значение, полученное изменением порядка следования цифр на...

Напишите функцию, которая возвращает значение полученное из первой и последней цифры числа - C++
Всем привет! Вот лаба из универа. HELP!! 1) Напишите функцию, которая принимает в качестве параметра натуральное значение n, по...

Написать функцию, которая ищет число в одноименном массиве и возвращает индекс каждого вхождения этого числа - C++
Здравствуйте) Помогите с задачей. Написать функцию, которая ищет число в одноименном массиве и возвращает индекс каждого вхождения...

Написать функцию, которая возвращает возведённое в степень число... - C++
ПОЖАЛУЙСТА ПОМОГИТЕ НАПИСАТЬ ПРОГИ: 1) Написать функцию, которая возвращает возведённое в степень число, и программу, использующую эту...

Написать функцию, которая принимает число, а возвращает его факториал - C++
Написать функцию, в которую передают число х, а возвращает х! (факториал этого числа)(Консольное приложение) Дублирование тем...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
drdrink
39 / 39 / 1
Регистрация: 13.05.2013
Сообщений: 103
12.06.2013, 22:12 #2
Виkтория, то есть дано число x и надо его изменить добавив n бит начиная с p-ой позиции?? я правильно понял
Виkтория
1 / 1 / 0
Регистрация: 04.06.2013
Сообщений: 63
12.06.2013, 22:28  [ТС] #3
да ..все правильно
drdrink
39 / 39 / 1
Регистрация: 13.05.2013
Сообщений: 103
13.06.2013, 09:09 #4
Виkтория, а если мы начинаем добавлять единички, начиная с p-ой позиции, а у нас уже там есть единичка, то что мы делаем? пропускаем её или обнуляем?
Виkтория
1 / 1 / 0
Регистрация: 04.06.2013
Сообщений: 63
13.06.2013, 21:03  [ТС] #5
обнуляем !
drdrink
39 / 39 / 1
Регистрация: 13.05.2013
Сообщений: 103
13.06.2013, 22:10 #6
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <iostream>
 
using namespace std;
 
int main()
{
    unsigned long x;
    int p, n;
    cin >> x;
    cin >> p;
    cin >> n;
    if((n + p) > 32)
    {
        cout << "сумма превышает 32 бита" << endl;
        return 0;
    }
    for(int i = 0, j = p; i < n; i++, j++)
        x |= (1 << j);
    cout << x << endl;
    return 0;
}
если что-то не так, то пиши, сделаем по-другому=)
Виkтория
1 / 1 / 0
Регистрация: 04.06.2013
Сообщений: 63
13.06.2013, 22:26  [ТС] #7
а зачем эта строка ???

cout << "сумма превышает 32 бита" << endl;
return 0;
drdrink
39 / 39 / 1
Регистрация: 13.05.2013
Сообщений: 103
14.06.2013, 07:13 #8
Виkтория, максимальный размер это тип - unsigned long он имеет размер 32 бита(или 4 байта) , поэтому если мы укажем позицию p и число единичек n, то их сумма не должна превышать размера 32 бита=) вот=)

да, ещё можно добавить проверку по отдельности, чтобы каждая из n и p не превышала 32 бит=)
Виkтория
1 / 1 / 0
Регистрация: 04.06.2013
Сообщений: 63
14.06.2013, 12:47  [ТС] #9
а как сделать именно за функцией пользователя !!! а то тут как-бы не за функцией
drdrink
39 / 39 / 1
Регистрация: 13.05.2013
Сообщений: 103
14.06.2013, 13:40 #10
Виkтория, что сделать и за какой функцией=)? ты напиши что конкретно надо, а то я ничего не могу понять=))
Виkтория
1 / 1 / 0
Регистрация: 04.06.2013
Сообщений: 63
14.06.2013, 19:04  [ТС] #11
должна иметь главную функцию main (),что служит точкой входа в программу. Кроме функции main, в программу может входить произвольное число пользовательских функций.
Функция должна вернуть к основной программе значение, которое она определила.
<Тип> <имя_функции> (<формальные параметры>) {<тело функции>}
Функция выполняет действия, которые в ней закодированы, с помощью оператора вызова. При определении функции в заголовке описываются формальные параметры, которые заменяются на аргументы при вызове функции. Если функция НЕ возвращает в точку вызова, то формат оператора вызова имеет видимя_функции (аргументы);Если функция возвращает любое значение, то при вызове это значение надо присвоить переменной соответствующего типа. Формат оператора вызова таков:имя_переменной = имя_функции (аргументы);То есть, вызов функции может быть оформлен в виде оператора или в виде выражения.
Функция может быть объявлена ​​в виде:void имя_функции (void);

Добавлено через 37 секунд
это с теории !!! больше даже не знаю как обьяснить (((((((((((
drdrink
39 / 39 / 1
Регистрация: 13.05.2013
Сообщений: 103
14.06.2013, 19:28 #12
так что ли?

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
#include <iostream>
 
using namespace std;
 
void Bits(int p, int n, unsigned long &x)
{
    for(int i = 0, j = p; i < n; i++, j++)
        x |= (1 << j);
}
 
int main()
{
    unsigned long x;
    int p, n;
    cin >> x;
    cin >> p;
    cin >> n;
    if((n + p) > 32)
    {
        cout << "сумма превышает 32 бита" << endl;
        return 0;
    }
    Bits(p, n, x);
    cout << x << endl;
    return 0;
}
Виkтория
1 / 1 / 0
Регистрация: 04.06.2013
Сообщений: 63
14.06.2013, 19:51  [ТС] #13
думаю , то что надо !!! спасибоо ) очень -очень
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
14.06.2013, 19:51
Привет! Вот еще темы с ответами:

Напишите функцию, которая принимает два целых числа n и k и возвращает число, содержащее k первых цифр числа n - C++
Напишите функцию, которая принимает два целых числа n и k и возвращает число, содержащее k первых цифр числа n. Программу написать без...

Напишите функцию, которая принимает два целых числа n и k и возвращает число, содержащее k первых цифр числа n - C++
Помогите решить задание. Вот условие: Напишите функцию, которая принимает два целых числа n и k и возвращает число, содержащее k первых...

Написать функцию, которая принимает два числа и возвращает - C++
Режить все !!!Буду благодарин!!Заранее спасибо!!

Написать функцию, которая принимает два числа и возвращает - C++
Решите пожалуйста!!!!!!!!!!! 4 ) число, которое получается, если к первому числу приписать справа второе (например, ...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
14.06.2013, 19:51
Ответ Создать тему
Опции темы

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