Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2005.02.27;
Скачать: CL | DM;

Вниз

вот знаете что то при n = 31 не считает   Найти похожие ветки 

 
KingDog   (2005-02-10 10:37) [0]

(программа вычисляет степень числа 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 :-) )


 
mojerat   (2005-02-10 10:39) [1]

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


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

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


 
Romkin ©   (2005-02-10 10:43) [3]

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


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

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


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

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 а может и более.
не тестировал дальше.


 
Shirson ©   (2005-02-10 12:50) [6]

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



Страницы: 1 вся ветка

Текущий архив: 2005.02.27;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.057 c
9-1098877316
Soroka
2004-10-27 15:41
2005.02.27
Генерация лабиринтов


8-1100374144
frEEstyler
2004-11-13 22:29
2005.02.27
как передать имя открытого файла программе?


1-1107928094
JohnKorsh
2005-02-09 08:48
2005.02.27
Как грамотно стиреть директорию ?


4-1105854305
__max__
2005-01-16 08:45
2005.02.27
GetCurrentProcess() всегда возвращает 0xfffffff...


3-1107237294
Aleks_666
2005-02-01 08:54
2005.02.27
tdbGRID