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

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

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

Проверка правильности ввода числа - C++

19.06.2014, 21:23. Просмотров 1158. Ответов 1
Метки нет (Все метки)

Всем привет! Прошу помочь с такой задачей:
Дано число в двоичной системе счисления. Проверить правильность ввода этого числа (в его записи должны быть только символы 0 и 1). Если число введено неверно, повторить ввод. При правильном вводе перевести число в десятичную систему счисления.

Для меня задача довольно трудна. Нашёл что-то подобное тут же, но перевести в с++ не смог:
Pascal
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
27
28
29
30
31
32
uses crt;
var s:string;
    i,j,sum,sum2:integer;
begin
clrscr;
repeat
j:=0;
writeln('Введите число в двоичной системе:');
Readln(s);
for i:=1 to length(s) do
if not (s[i] in ['0','1']) then {если есть что-то кроме 0 и 1}
 begin
  j:=1;
  writeln('Число введено неверно. Повторите ввод.');
  break;
 end;
until j=0;
sum:=0;{начинаем составлять десятичное число}
for i:=length(s)-1 downto 1 do{идем спредпоследнего знака назад}
 begin
  if s[i]='1' then{если 1}
   begin
    sum2:=1;{составляем очередную степень числа 2}
    for j:=1 to length(s)-i do sum2:=sum2*2;{возводим 2 в степень ее позизии с конца-1}
   end
  else sum2:=0;{если ноль ничего}
  sum:=sum+sum2;{прибавляем очередное слагаемое}
 end;
if s[length(s)]='1' then inc(sum);{если последнее в исходной строке = 1, увеличиваем число на 1}
writeln('Число в десятичной системе = ',sum);
readln
end.
Помогите пожалуйста)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
19.06.2014, 21:23     Проверка правильности ввода числа
Посмотрите здесь:

Проверка правильности ввода числа - C++
Здравствуйте. Помогите с функцией проверки ввода на число. Число любое (целое, дробное).

Проверка правильности ввода - C++
Доброго времени суток. Как, в приведенном ниже коде, сделать так, что бы при вводе отрицательного числа выводилось не "сколько минут вы...

Проверка правильности ввода - C++
Совсем запуталась.Надо ввести целое число. Как сделать так, чтобы при неправильном вводе(символ, буква), выдавалась ошибка?

Проверка правильности ввода строки - C++
Доброго дня! Имеется строка string str, задана изначально, пользователь вводит с клавиатуры другую строку string proverka, нужно проверить...

Проверка правильности ввода. Запретить ввод чисел - C++
Здравствуйте форумчане! Хочу сделать в коде проверку типа: если вводить, где положено string -числа, то выходит сообщение <Not...

Проверка правильности ввода для переменной типа short - C++
Как проверить, введённые числа в диапазоне Short или нет? Если я ввожу -32769, программа закрывается... int main() { short a, b, x,...

Проверка на корректность ввода числа - C++
Здравствуйте. Помогите решить данную проблему. Есть длинное число, хочу проверить, чтобы вводились только числа. Функция ввода: ...

Проверка ввода целого числа - C++
Помогите разобраться, плиз... есть код: #include <iostream> using std::endl; using std::cout; using std::cin; void...

Проверка ввода двузначного числа - C++
как сделать проверку ввода что число действительно двузначное, а не какое либо другое? #include <iostream> #include <windows.h> ...

Контроль правильности ввода в int - C++
#include"iostream.h" int main() { int n; cout << "vvedite kolichestvo tochek (ot 2 do 5000) = "; cin >> n; if...

Проверка правильности. - C++
Хочу реализовать проверку вводимого пользователем формата файла ( *.txt к примеру ) как реализовать это ? с помощью регулярок ?

Напишите пожалуйста Алгоритм правильности ввода цифр - C++
Ну тоесть, чтобы он проверял ввёл я цифру или нет. Например когда я буду вводить букву , будет выходить Ошибка


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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Renji
1875 / 1273 / 290
Регистрация: 05.06.2014
Сообщений: 3,630
19.06.2014, 21:29     Проверка правильности ввода числа #2
Мы не ищем легких путей?
C++
1
2
3
4
5
6
char*check;
int binary_int=strtol(some_line,&check,2);
if(*check)
    cout<<"всю строчку перегнать в число не вышло. Ой, бида, бида"<<endl;
else
    cout<<binary_int<<endl;
Ответ Создать тему
Опции темы

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