Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 04.02.2014, 22:34   #1
schibeki
Пользователь
 
Регистрация: 27.11.2013
Сообщений: 67
По умолчанию ошибка вывода в Memo значения выражения (true/false)

У меня есть код паскаля
Код:
uses crt;
var n,k:integer;
begin
clrscr;
repeat
write('Введите натуральное число, проверить на степеь числа 3 n=');
readln(n);
until n>0;
k:=1;
while k<n do k:=k*3;
write(k=n);
readln
end.
условие такое: дано целое число N(>0). Если оно является степенью числа 3,то вывести true,иначе false.
вот мой код делфи:
Код:
procedure TForm1.Button1Click(Sender: TObject);
Var
k,n:integer;
Begin
repeat
  n:=StrToInt(Edit1.Text);
  Memo1.Lines.Add(' N = '+Edit1.Text);
Until N>0;
k:=1;
while k<n do k:=k*3;
Memo1.Lines.Add(k=n);
Пробывал разными способами,но не получилось,помогите,пожалуйста)))




___________
Код нужно оформлять по правилам:
тегом [CODE]..[/СODE]
(кнопочка на панели форматирования с решёточкой #)
Не забывайте об этом!

Модератор.

Последний раз редактировалось Serge_Bliznykov; 05.02.2014 в 09:26.
schibeki вне форума Ответить с цитированием
Старый 04.02.2014, 23:04   #2
TUberwer
Форумчанин
 
Регистрация: 01.07.2013
Сообщений: 221
По умолчанию

Так?
Код:

procedure TForm1.Button1Click(Sender: TObject);
var
n,k : integer;
begin
n := StrToInt(Edit1.Text);
  if n>0 then
  begin
   k:=1;
   while k < n do
   begin
    k := k*3;
   end;
   if k = n then Memo1.Lines.Add('True')
   else Memo1.Lines.Add('False');
  end;
end;
TUberwer вне форума Ответить с цитированием
Старый 04.02.2014, 23:08   #3
OlegPrograming5
Пользователь
 
Регистрация: 12.01.2009
Сообщений: 42
По умолчанию

Вам нужно преобразовать логическое значение в строку. Ведь в Memo.Lines можно добавлять только строки. Воспользуйтесь функцией BoolToStr, например так:
Код:
Memo1.Lines.Add(BoolToStr(k=n,true))
(Второй параметр, если false, то логическое значение будет представлено как "0" - ложь, "1" - истина. Если он true, то, соответственно "False" - ложь и "True" - истина).
OlegPrograming5 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как поменять true на false? diomed16 Общие вопросы Delphi 18 28.09.2012 07:25
Задачи на true и false Bekzat Помощь студентам 1 06.12.2011 18:20
Вычислить следующие выражения при a=true, b=false adidas_pro Паскаль, Turbo Pascal, PascalABC.NET 5 15.03.2011 18:20
False,True Jony Wocker Общие вопросы C/C++ 2 06.02.2010 00:42
Проверка (True or False for CheckBox) NeiL Общие вопросы Delphi 5 31.01.2008 09:42