Технический форум
Вернуться   Технический форум > Программирование > Форум программистов > Помощь студентам


Ответ
 
Опции темы Опции просмотра
Старый 18.01.2015, 15:27   #1 (permalink)
ИриSka-147
Новичок
 
Регистрация: 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.
ИриSka-147 вне форума   Ответить с цитированием

Старый 18.01.2015, 15:27
Helpmaster
Member
 
Аватар для Helpmaster
 
Регистрация: 08.03.2016
Сообщений: 0

Ранее на форуме создавалось что то аналогично

Помогите пожалуйста исправить задачу в Ассемблере
Помогите, пожалуйста, исправить программу
Помогите исправить, пожалуйста
Помогите исправить ошибку, пожалуйста
Программа в паскале, помогите, пожалуйста, исправить программу
Помогите пожалуйста исправить задачу на строки, Паскаль

Старый 18.01.2015, 16:52   #2 (permalink)
Vladimir_S
Специалист
 
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
По умолчанию

Такие длинные числа, как то, что Вы пытаетесь ввести, должны обрабатываться только как строковые. Никакие целочисленные форматы их охватить не могут.
Vladimir_S вне форума   Ответить с цитированием
Старый 19.01.2015, 12:53   #3 (permalink)
ИриSka-147
Новичок
 
Регистрация: 18.01.2015
Сообщений: 9
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию

что и как здесь исправить??
ИриSka-147 вне форума   Ответить с цитированием
Ads

Яндекс

Member
 
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
Ответ

Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Выкл.
HTML код Выкл.
Trackbacks are Вкл.
Pingbacks are Вкл.
Refbacks are Выкл.




Часовой пояс GMT +4, время: 04:39.

Powered by vBulletin® Version 6.2.5.
Copyright ©2000 - 2014, Jelsoft Enterprises Ltd.