Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

вот знаете что то при n = 31 не считает [D5, WinXP]


KingDog ©   (2005-02-10 10:37:00) 

(программа вычисляет степень числа 2)
для n = 1 до 30 работает замечательно а вот при n = 31
какой то гон отрицательное число получается

 n := StrToInt(Edit1.Text);
 Count := 1;
 For n := 1 to n do
 begin
 For I := 1 to Count do
 Count := Count + 1;
 end;
 Edit1.Text := IntToStr(Count);

если кто знаете напишите (да кстати данный код рабочий
все переменные типа integer :-) )


Shirson   (2005-02-10 12:50:00) [1]

For n := 1 to n do
Ляпота...


Sagov   (2005-02-10 12:29:00) [2]

procedure TForm1.Button1Click(Sender: TObject);
function sum(st1,st2:string):string;
var b,b2:byte;
    i:integer;
label aa;
begin result:='';b:=0;
  for i:=length(st1)to length(st2)-1 do st1:='0'+st1;
  for i:=length(st2)to length(st1)-1 do st2:='0'+st2;
  for i:=length(st1) downto 1 do begin
    b2:=byte(st1[i])and $f+byte(st2[i])and $f+b;
    if b2>9 then b:=1 else b:=0;
    result:=char(b2-b*10+48)+result;
  end;
  if b=1 then result:='1'+result;
end;
var st,st2,st3:string;
 i:integer;
begin
 i:=strtoint(Edit1.Text);
 st2:='1';
 for i:=1 to i do st2:=sum(st2,st2);
 edit1.Text:=st2;
end;

а вот такой код работает до 1000 а может и более.
не тестировал дальше.


Алхимик   (2005-02-10 11:53:00) [3]

Из справки
Integer -2147483648..2147483647 signed 32-bit


Romkin   (2005-02-10 10:43:00) [4]

Это ж надо так написать :))) Кстати, есть теги code, весьма рекомендую использовать, читать неудобно без них.
А ответ прост: это не гон! :) integer - целое со знаком 32 бита.


Плохиш   (2005-02-10 10:41:00) [5]

Странно, всегда считал, что "степень числа 2" вычисляется перемножением двоек или смещением бита.


mojerat   (2005-02-10 10:39:00) [6]

да код интерестный а ты уверен что он  работает


Наверх

Титульная страница Поиск, карта сайта Написать письмо