Другие языки программирования и технологии
Помогите написать очень простую прогу по программированию в Делфи 7
Необходимо среди введеных M целых чисел распознать степени двойки(например 1,2,4,8,16)
а может вот так будет проще:
var
N, D : Longint;
begin
N := StrToInt(Edit1.Text);
D := 1;
while D < N do D := D shl 1; // побитовый сдвиг - то же самое, что и *2
if D = N then Label1.Caption := 'является' else Label1.Caption := 'не является';
end;
var
N, D : Longint;
begin
N := StrToInt(Edit1.Text);
D := 1;
while D < N do D := D shl 1; // побитовый сдвиг - то же самое, что и *2
if D = N then Label1.Caption := 'является' else Label1.Caption := 'не является';
end;
Помогаю: признаком того что целое число есть степень двойки является равенство нулю результата конъюнкции между проверяемым этим числом и числом, полученным вычитанием единицы из проверяемого числа.
> Влад Симкин
Бредятина.
a:=sqrt(b); // 3 = КвадрКореньИз (9)
if Frac(a) = 0 then label1.caption:='это число степень 2'; // с сег. дня число 9 есть степень двойки.. . Ура, товарищи !
> Влад Симкин
Бредятина.
a:=sqrt(b); // 3 = КвадрКореньИз (9)
if Frac(a) = 0 then label1.caption:='это число степень 2'; // с сег. дня число 9 есть степень двойки.. . Ура, товарищи !
procedure Button1.Click(Sender:TObject);
var a:real; b:integer;
begin
b:=strtoint(edit1.text);
if b>0 then begin // если число положительное выполнять
a:=sqrt(b);
if (b mod 2 = 0) and (Frac(a) = 0) or (b = 1) then label1.caption:='это число степень 2' else label1.caption:='это число степенью 2 не является';
end;
end;
сорри, забыл одно условие =)
если необходимо массивом, то загоняешь тело процедуры в цикл с конечным M.
УВАЖАЕМЫЙ SM, можно поподробнее объяснить логику вашего высказывания, я не могу уложить в голове фразу коньюнкция между ..числом и .. числом, я полагаю фраза будет истинной если это числа 0 и 1 .поправте меня.
var a:real; b:integer;
begin
b:=strtoint(edit1.text);
if b>0 then begin // если число положительное выполнять
a:=sqrt(b);
if (b mod 2 = 0) and (Frac(a) = 0) or (b = 1) then label1.caption:='это число степень 2' else label1.caption:='это число степенью 2 не является';
end;
end;
сорри, забыл одно условие =)
если необходимо массивом, то загоняешь тело процедуры в цикл с конечным M.
УВАЖАЕМЫЙ SM, можно поподробнее объяснить логику вашего высказывания, я не могу уложить в голове фразу коньюнкция между ..числом и .. числом, я полагаю фраза будет истинной если это числа 0 и 1 .поправте меня.
Хм а если число не одно а несколько в едите забито через делитель ...то строка b:=strtoint(edit1.text); не имеет смысла =(
Похожие вопросы
- Помогите написать программу на любом языке программирования
- Помогите с очень простой задачей в Paskal. Срочно (завтра сдавать)
- Информатика. Программирование. Обработка массивов данных. Помогите составить алгоритм и прог. код к нему.
- Вопрос по языку программирования C# (СиШарп) (очень простой вопрос)
- Что такое класс в программировании? Я новичок, объясните очень простыми словами (
- помогите написать простые программы на Qbasic
- Помогите написать прогу на Паскале, экзамен горит, очень нужно..
- Помогите написать прогу!!!
- люди помогите написать прогу в паскале чтоб она запрашивала число и потом писала простое оно или нет, всю голову сломал
- где можно научится программированию на делфи, с++ или ассемблере