Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > Разное
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 30.10.2010, 15:31
frostikit frostikit вне форума
Прохожий
 
Регистрация: 30.10.2010
Сообщения: 4
Репутация: 10
По умолчанию Задачи Delphi

Обеспечить вывод в компонент TMemo всех целых чисел, попадающих в интервал от n1 до n2 и которые являются удвоенными нечетными числами. Подсчитать количество этих чисел.

Не подскажете как это осуществить?

Последний раз редактировалось frostikit, 31.10.2010 в 11:22.
Ответить с цитированием
  #2  
Старый 30.10.2010, 22:05
Аватар для eXplorer
eXplorer eXplorer вне форума
Активный
 
Регистрация: 06.08.2010
Адрес: Ярославль
Сообщения: 264
Версия Delphi: 7
Репутация: 14
По умолчанию

Цитата:
Обеспечить вывод в компонент TMemo всех целых чисел, попадающих в интервал от n1 до n2

Код:
var
n1,n2,i:integer;
begin
n2:=89; //n2
i:=0; //счётчик чисел
for n1:=2 to n2 do begin //цикл
memo1.Text:=memo1.Text+inttostr(n1); //вывод в мэмо
i:=i+1;
end;
showmessage(inttostr(i));
end;
__________________
Ответить с цитированием
  #3  
Старый 30.10.2010, 22:10
Аватар для eXplorer
eXplorer eXplorer вне форума
Активный
 
Регистрация: 06.08.2010
Адрес: Ярославль
Сообщения: 264
Версия Delphi: 7
Репутация: 14
По умолчанию

что бы вывести все чётные или нечётные
добавишь условие отбора:
например все чётные
Код:
if i2 mod 2=0 then begin
__________________
Ответить с цитированием
  #4  
Старый 30.10.2010, 22:19
Аватар для Konrad
Konrad Konrad вне форума
Эксперт
 
Регистрация: 19.03.2009
Сообщения: 1,261
Репутация: 45834
По умолчанию

Цитата:
Сообщение от eXplorer
что бы вывести все чётные или нечётные
добавишь условие отбора:
например все чётные
Код:
if i2 mod 2=0 then begin

"if" в цикле да еще и "мод" туда же?

Если N1-четное (нечетное), то N2=N1+2 будет четным(нечетным).

Соответственно, находим первое четное(нечетное) число диапазона, и добавляем ему 2, пока не дойдем до конца диапазона .

Последний раз редактировалось Konrad, 30.10.2010 в 22:21.
Ответить с цитированием
  #5  
Старый 30.10.2010, 22:28
Аватар для eXplorer
eXplorer eXplorer вне форума
Активный
 
Регистрация: 06.08.2010
Адрес: Ярославль
Сообщения: 264
Версия Delphi: 7
Репутация: 14
По умолчанию

ну да))) извените так проще как написал Konrad
__________________
Ответить с цитированием
  #6  
Старый 30.10.2010, 22:59
Аватар для Konrad
Konrad Konrad вне форума
Эксперт
 
Регистрация: 19.03.2009
Сообщения: 1,261
Репутация: 45834
Хорошо

Где-то так:
PHP код:
procedure TForm1.Button1Click(SenderTObject);
var
n1,n2,p:integer;
begin
  memo1
.lines.clear;
  
n1:=strtoint(edit1.Text);
  
n2:=strtoint(edit2.Text);
  if 
n1>n2 then showmessage('n1>n2')
    else
    
begin
      
if (n1 mod 2) =0 then p:=n1 else p:=n1+1;
      
memo1.lines.add('#0'+' = '+inttostr(p));
      
n2:=(n2-p)div 2;
      for 
n1:=1 to n2 do
      
begin
        p
:=p+2;
        
memo1.lines.add('#'+inttostr(n1)+' = '+inttostr(p));
      
end;
      
memo1.lines.add('# результат sum = '+inttostr(n1)+';');
    
end;
end
Если что не так, просто вечер, думать не хочется

300-е сообщение

Последний раз редактировалось Konrad, 30.10.2010 в 23:24.
Ответить с цитированием
  #7  
Старый 31.10.2010, 11:14
frostikit frostikit вне форума
Прохожий
 
Регистрация: 30.10.2010
Сообщения: 4
Репутация: 10
По умолчанию

Спасибо большое, но я вчера посидел и додумался как сделать)))

PHP код:
procedure TForm3.Button1Click(SenderTObject);
var 
n1,n2,pr,z,n:integers:string;
begin
  memo1
.Clear;
  
n1:=strToInt(Edit1.Text);
  
n2:=strToInt(Edit2.text);
  for 
n:=n1 to n2 do
    if 
n mod 2 <> 0 then
      begin
        pr
:=n*n;
        
s:=floattostr(pr);
        
Edit3.text:=floattostr((memo1.Lines.Count)+1);
        
z:=strtoInt(Edit3.Text);
        
memo1.Lines.Append(s);
      
end;
    case 
z of
    2
,3,4Label3.Caption:='раза';
    
0,1,5..999Label3.Caption:='раз';
end
На case..of не обращайте внимания, свои задумки)

Но есть еще 1 вопросик
Как написать подпрограмму которая работает как функция TrimLeft?

Последний раз редактировалось frostikit, 31.10.2010 в 11:21.
Ответить с цитированием
  #8  
Старый 31.10.2010, 15:40
lmikle lmikle вне форума
Модератор
 
Регистрация: 17.04.2008
Сообщения: 8,015
Версия Delphi: 7, XE3, 10.2
Репутация: 49089
По умолчанию

TrimLeft отрезает все пробелы (и непечатные символы) в начале строки.
Т.е. задача найти первый не пробел и с этого места скопировать.

Код:
function TrimLeft(S : String) : String;
var
  I, Idx : Integer;
begin
  Result := '';
  If S <> '' Then
    Begin
      Idx := 0;
      For I := 1 To Length(S) Do
        If S[i] > #32 Then
          Begin
            Idx := I;
            Break;
          End;
      If Idx > 0 Then Result := Copy(S,Idx,Length(S));
   End;
End;
Ответить с цитированием
  #9  
Старый 31.10.2010, 16:22
frostikit frostikit вне форума
Прохожий
 
Регистрация: 30.10.2010
Сообщения: 4
Репутация: 10
По умолчанию

Все понятно, только что такое #32?

Последний раз редактировалось frostikit, 31.10.2010 в 16:28.
Ответить с цитированием
  #10  
Старый 31.10.2010, 17:56
Аватар для BoRoV
BoRoV BoRoV вне форума
Начинающий
 
Регистрация: 08.09.2008
Сообщения: 193
Репутация: 12694
По умолчанию

знак пробела
Ответить с цитированием
  #11  
Старый 31.10.2010, 19:41
frostikit frostikit вне форума
Прохожий
 
Регистрация: 30.10.2010
Сообщения: 4
Репутация: 10
По умолчанию

Всем спасибо за помощь
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

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

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


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


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter