Форум программистов, компьютерный форум, киберфорум
Наши страницы

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

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 9, средняя оценка - 5.00
rycena
0 / 0 / 0
Регистрация: 15.09.2013
Сообщений: 9
#1

Программа вычисляющая номер позиции первого символа 0 - C++

15.09.2013, 15:47. Просмотров 1240. Ответов 25
Метки нет (Все метки)

Доброго времени суток
Требуется написать такую программу:
Используя тип unsigned long int, выполнить с двоичным представлением числового значения указанное действие:
Вычислить номер позиции первого символа 0 среди значащих разрядов числового значения при использовании нумерации слева (справа)

Если не трудно, с комментариями. Буду очень благодарен

Чуть не забыл - желательно написать программу, не используя циклов

Добавлено через 56 минут
Проще говоря, вводится двоичное число х, а программа ищет номер позиции первого значащего нуля в ней
И это надо сделать без использования циклов

Надеюсь, что к вечеру кто-нибудь сможет помочь
Заранее спасибо
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
15.09.2013, 15:47
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Программа вычисляющая номер позиции первого символа 0 (C++):

Нужно вычислить номер позиции первого значащего символа - C++
Задача такая. Нужно вычислить номер позиции первого значащего символа. Используя Signed Char. Вообщем 1)задаеться число ...

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

Определить в заданной последовательности номер первого цифрового символа - C++
Ввести произвольную последовательность символов. Определить в заданной последовательности номер первого цифрового символа, если такой там...

Вывести порядковый номер слова максимальной длины и номер позиции в строке, с которой оно начинается - C++
как вывести на экран порядковый номер слова максимальной длины и номер позиции в строке, с которой оно начинается ?

Найти порядковый номер слова максимальной длины в строке и номер позиции, с которой оно начинается - C++
помогите пожалуйста с программой( среда Visual C ) Дана строка символов, состоящая из произвольного текста, слова разделены пробелами....

Вывести на экран порядковый номер слова максимальной длины и номер позиции в строке, с которой оно начинается - C++
и так, вот условие: дана строка символов, состоящая из произвольного текста, слова разделены пробелами. Вывести на экран порядковый номер...

25
Nekto
342 / 287 / 10
Регистрация: 23.03.2012
Сообщений: 838
15.09.2013, 16:41 #2
Без циклов? Мсье знает толк в извращениях.
1
rycena
0 / 0 / 0
Регистрация: 15.09.2013
Сообщений: 9
15.09.2013, 17:25  [ТС] #3
Nekto, препод такой)
Проблема в том, что лекцию у нас отменили
Поэтому с практикой по этой теме возникли сложности

Добавлено через 41 минуту
Если совсем лень писать без циклов, подкиньте хоть вариант программы с циклом)
0
Nekto
342 / 287 / 10
Регистрация: 23.03.2012
Сообщений: 838
15.09.2013, 17:30 #4
Дай пример входящих данных и результата.
0
rycena
0 / 0 / 0
Регистрация: 15.09.2013
Сообщений: 9
15.09.2013, 17:32  [ТС] #5
Введите х:
10010011

Результат: 2 (первый значащий ноль стоит на 2-ой позиции (слева)
0
zss
Модератор
Эксперт С++
6537 / 6099 / 2009
Регистрация: 18.12.2011
Сообщений: 15,870
Завершенные тесты: 1
15.09.2013, 17:33 #6
Самый левый значащий ноль:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <iostream>
int main()
{
    unsigned int k=0xF0F0;
    int pos0=0,pos=0;
    do
    {
        if(k&1)
            pos0=pos;
        k>>=1;
        pos++;
    }while(k);
    std::cout<<pos0<<std::endl;
    system("pause");
    return 0;
}
0
rycena
0 / 0 / 0
Регистрация: 15.09.2013
Сообщений: 9
15.09.2013, 17:39  [ТС] #7
zss, такой код мне просто выводит на экран число 16, и всё. (Visual Studio 2008 Express)
0
Nekto
342 / 287 / 10
Регистрация: 23.03.2012
Сообщений: 838
15.09.2013, 17:42 #8
Цитата Сообщение от rycena Посмотреть сообщение
Введите х:
10010011

Результат: 2 (первый значащий ноль стоит на 2-ой позиции (слева)
Число вводится в двоичном виде? Как тогда оно связано с unsigned long int?
0
monolit
186 / 185 / 22
Регистрация: 24.03.2011
Сообщений: 669
Завершенные тесты: 1
15.09.2013, 17:45 #9
рекурсию, нужно использовать рекурсию... и не нужно циклов.
0
zss
Модератор
Эксперт С++
6537 / 6099 / 2009
Регистрация: 18.12.2011
Сообщений: 15,870
Завершенные тесты: 1
15.09.2013, 17:47 #10
Цитата Сообщение от rycena Посмотреть сообщение
zss, такой код мне просто выводит на экран число 16, и всё
А что еще надо выводить?
0
rycena
0 / 0 / 0
Регистрация: 15.09.2013
Сообщений: 9
15.09.2013, 17:48  [ТС] #11
Nekto, а, да, мой косяк. Тогда, получается, в десятичном должно вводиться

нам тупо дали переписать задание, которое я описал в первом посте, да и всё, никаких примеров программы не дали
Без лекции по побитовым операциям и т.д. первокурснику написать эту программу весьма проблематично

zss, ну она даже не запрашивает число на ввод
0
zss
Модератор
Эксперт С++
6537 / 6099 / 2009
Регистрация: 18.12.2011
Сообщений: 15,870
Завершенные тесты: 1
15.09.2013, 17:51 #12
Цитата Сообщение от rycena Посмотреть сообщение
ну она даже не запрашивает число на ввод
не думаю, что для Вас сложно добавить строки
C++
1
2
cout<<"Введите k:";
cin>>k;
0
ValeryS
Модератор
6709 / 5118 / 482
Регистрация: 14.02.2011
Сообщений: 17,213
15.09.2013, 17:52 #13
ну на тебе без цикла
число десятичное но вводится как двоичное (8 разрядов)
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
cin>>n;
if(n%10==0)
  cout<<"pos 1";
n/=10;
if(n%10==0)
  cout<<"pos 2";
n/=10;
if(n%10==0)
  cout<<"pos 3";
n/=10;
if(n%10==0)
  cout<<"pos 4";
n/=10;
if(n%10==0)
  cout<<"pos 5";
n/=10;
if(n%10==0)
  cout<<"pos 6";
n/=10;
if(n%10==0)
  cout<<"pos 7";
n/=10;
if(n%10==0)
  cout<<"pos 8";
развернутый цикл называется
0
zss
Модератор
Эксперт С++
6537 / 6099 / 2009
Регистрация: 18.12.2011
Сообщений: 15,870
Завершенные тесты: 1
15.09.2013, 17:58 #14
ValeryS, Автору надо искать позиции ДВОИЧНЫХ нулей, а не десятичных.
0
rycena
0 / 0 / 0
Регистрация: 15.09.2013
Сообщений: 9
15.09.2013, 18:04  [ТС] #15
zss,

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <stdio.h>
#include <iostream>
int main()
{
    unsigned long int k=0xF0F0;
    int pos0=0,pos=0;
    do
    {
        printf ("vvedite k:");
            scanf ("%f" ,k);
 
        if(k&1)
            pos0=pos;
        k>>=1;
        pos++;
    }while(k);
    std::cout<<pos0<<std::endl;
    system("pause");
    return 0;
}
Ошибка приложения. Память не может быть written
0
15.09.2013, 18:04
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
15.09.2013, 18:04
Привет! Вот еще темы с ответами:

Определить последнее вхождение символа “р” в строке и вывести строку, начиная с первого символа и до последнего “р” в строке - C++
Заданы 2 строки, состоящие из слов, разделенных пробелами. Определить последнее вхождение символа “р” в строке и вывести строку, начиная с...

Поиск позиции символа в строке - C++
Здравствуйте, у меня есть строка со словом и строка с прочерками (--------), длина у них одинаковая, есть кнопки, на которых буквы...

Программа вычисляющая функцию - C++
Написать на языке СИ++ программу, вычисляющую функцию, представленную в виде ряда с заданной точностью e=0,001. Значение переменной x ...

Программа вычисляющая площадь кольца - C++
Z=cosα+ cos 2α+ cos6α+ cos7α


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

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

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