18.01.2015, 15:27 | #1 (permalink) |
Новичок
Регистрация: 18.01.2015
Сообщений: 9
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
|
Помогите, пожалуйста, исправить задачу
Код:
вводим число вида 1111000000111111000001111110000000011110000111100011110000111100001110000 на что получаем ошибку:значение было недопустимо малым или большим для int32...как это исправить? program p589; uses crt; var n : integer; // количество битов в числе res : integer; // результат перевода бинарного числа в десятичное i : integer; // счетчик bit : integer; // текущий бит procedure toBinnary(value : integer); // процедура перевода 10 числа в двоичное var i, k : integer; // счетчики a : array [1..1000] of integer; // массив битов числа begin k := 0; while (value > 0) do // пока наше 10-ое число не равно 0 begin inc(k); // увеличиваем k a[k] := value mod 2; // берем остаток от деления числа на 2 value := value div 2; // берем целую часть от числа при деление на 2 end; while (a[k] = 0) do dec(k); // отбрасываем ведущие нули for i := k downto 1 do // выводим биты числа write(a[i]); writeln(); end; begin write('Введите число n='); read(n); writeln('По условию последний бит числа не может равняться 0'); res := round(power(2,n-1)); // возводим в квадрат число n-1 for i := 1 to n-1 do // считываем биты числа begin write('Введите ', i ,' бит числа = '); read(bit); res := res + bit * round(power(2,i-1)); // переводим двоичное представление числа в 10 по правилу end; writeln('Числом p будет являться десятичное представление введенного двоичного числа'); // считаем результат writeln('p+1'); toBinnary(res + 1); end. |
18.01.2015, 15:27 | |
Helpmaster
Member
Регистрация: 08.03.2016
Сообщений: 0
|
Ранее на форуме создавалось что то аналогично Помогите пожалуйста исправить задачу в Ассемблере Помогите, пожалуйста, исправить программу Помогите исправить, пожалуйста Помогите исправить ошибку, пожалуйста Программа в паскале, помогите, пожалуйста, исправить программу Помогите пожалуйста исправить задачу на строки, Паскаль |
18.01.2015, 16:52 | #2 (permalink) |
Специалист
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
|
Такие длинные числа, как то, что Вы пытаетесь ввести, должны обрабатываться только как строковые. Никакие целочисленные форматы их охватить не могут.
|
19.01.2015, 12:53 | #3 (permalink) |
Новичок
Регистрация: 18.01.2015
Сообщений: 9
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
|
что и как здесь исправить??
|
Ads | |
Member
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
|
|
|