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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 06.12.2013, 00:41   #1
simonte
 
Регистрация: 15.11.2011
Сообщений: 9
По умолчанию Дан массив. Вывести вначале все четные числа в порядке возрастания их индексов, затем - все нечетные в порядке убывания.( Delphi )

Дан целочисленный массив размера N. Вывести вначале все содержащиеся в данном массиве четные числа в порядке возрастания их индексов, а затем — все нечетные числа в порядке убывания их индексов.
код есть:

Код:
const
  maxSize=100;
type
  Tarr=array[1..maxSize] of integer;
var
  a:Tarr;
  i,n:integer;
begin
  repeat
    write('Размер массива, не более ',maxSize,' n=');
    readln(n);
  until n in [1..maxSize];
  randomize;
  writeln('Исходный массив');
  for i:=1 to n do
    begin
      a[i]:=random(50);
      write(a[i]:4);
    end;
  writeln;
  writeln('Четные числа массива в порядке возрастания индексов');
  for i:=1 to n do
    if not odd(a[i]) then
      write(a[i]:4);
  writeln;
  writeln('Нечетные числа массива в порядке убывания индексов');
  for i:=n downto 1 do
    if odd(a[i]) then
      write(a[i]:4);
  writeln;
  readln;
end.

но мне надо чтоб программа была с интерфейсом.
чтобы результаты выводились в Memo или listbox...

только delphi



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

Модератор.

Последний раз редактировалось Serge_Bliznykov; 06.12.2013 в 10:39.
simonte вне форума Ответить с цитированием
Старый 06.12.2013, 00:55   #2
type_Oleg
Старожил
 
Аватар для type_Oleg
 
Регистрация: 02.03.2008
Сообщений: 2,499
По умолчанию

Используйте Memo например.
Вместо write(a[и]) вот это
Код:
Memo1.Lines.Strings[Memo1.Lines.Count-1]:=Memo1.Lines.Strings[Memo1.Lines.Count-1]+' '+IntToStr(a[i]);
Или промежуточную переменную-строку использовать.
Вместо writeln('что-то') вот это
Код:
Memo1.Lines.Add('что-то');
У вас 100 чисел в 1 строку влезет?
type_Oleg вне форума Ответить с цитированием
Старый 06.12.2013, 02:05   #3
simonte
 
Регистрация: 15.11.2011
Сообщений: 9
По умолчанию

Цитата:
Сообщение от type_Oleg Посмотреть сообщение
Используйте Memo например.
Вместо write(a[и]) вот это
Код:
Memo1.Lines.Strings[Memo1.Lines.Count-1]:=Memo1.Lines.Strings[Memo1.Lines.Count-1]+' '+IntToStr(a[i]);
Или промежуточную переменную-строку использовать.
Вместо writeln('что-то') вот это
Код:
Memo1.Lines.Add('что-то');
У вас 100 чисел в 1 строку влезет?
а можно чтоб в каждой строке по одному числу?
simonte вне форума Ответить с цитированием
Старый 06.12.2013, 02:09   #4
simonte
 
Регистрация: 15.11.2011
Сообщений: 9
По умолчанию

меня тревожит вот это write(a[i]:4); оно ж показывает, что для вывода значения a[i] используется 4 позиций. как это в мемо написать "(a[i]:4)"?
simonte вне форума Ответить с цитированием
Старый 06.12.2013, 02:23   #5
type_Oleg
Старожил
 
Аватар для type_Oleg
 
Регистрация: 02.03.2008
Сообщений: 2,499
По умолчанию

Цитата:
Сообщение от simonte Посмотреть сообщение
а можно чтоб в каждой строке по одному числу?
Код:
Memo1.Lines.Add(IntToStr(a[i]);
Цитата:
..как это в мемо написать "(a[i]:4)"?
То есть, все же - в строку ?
А может словчить, и сделать так ?
Код:
a[i]:=random(50)+10;
Чтобы числа были точно 2-значные - от 10 до 59. И будет красиво, а пробел там добавляется +' '+ , можно 2 пробела.

А про readln(n); все ясно, чем заменить? Лучше поле Edit использовать.
Код:
n:=StrToInt(Edit1.Text);

Последний раз редактировалось type_Oleg; 06.12.2013 в 02:26.
type_Oleg вне форума Ответить с цитированием
Старый 07.12.2013, 00:50   #6
simonte
 
Регистрация: 15.11.2011
Сообщений: 9
По умолчанию

только результаты в консоле и результаты в форме не совпадают. вот скрин в консоле

simonte вне форума Ответить с цитированием
Старый 07.12.2013, 00:58   #7
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

с чем не совпадают?!
Где программа для работы с формами?!
Serge_Bliznykov вне форума Ответить с цитированием
Старый 07.12.2013, 01:01   #8
type_Oleg
Старожил
 
Аватар для type_Oleg
 
Регистрация: 02.03.2008
Сообщений: 2,499
По умолчанию

А с чем должно совпадать? Там же Random, главное, чтобы правильно сортировало.
type_Oleg вне форума Ответить с цитированием
Старый 07.12.2013, 02:20   #9
simonte
 
Регистрация: 15.11.2011
Сообщений: 9
По умолчанию

забыл в memo написать inttostr тоесть Memo1.Lines.Add(IntToStr(a[i]);
исправил теперь все нормально работает. спс)
simonte вне форума Ответить с цитированием
Старый 07.12.2013, 06:54   #10
Poma][a
Новичок
Джуниор
 
Регистрация: 11.10.2011
Сообщений: 3,882
По умолчанию

Цитата:
until n in [1..maxSize];
А если увеличить maxSize? Например, равен он 1000..Тогда погорит Ваше решение
Poma][a вне форума Ответить с цитированием
Ответ


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

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

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
В массиве поставить вначале все четные, а затем все нечетные цифры в массиве (Написать программу в коде делфи) Murfik97 Помощь студентам 4 26.11.2013 21:26
Упорядочить массив так, чтобы вначале размещались четные цифры в порядке возрастания, а затем нечетные - в порядке убывания Маруся171996 Паскаль, Turbo Pascal, PascalABC.NET 1 22.11.2013 17:42
С++ Найти все четные четырехзначные числа, цифры которых следуют в порядке возрастания или убывания. Anya She Помощь студентам 14 14.12.2012 16:12
Вывести сначала все его четные (нечетные) елементы, а потом- нечетные(четные). tondo Помощь студентам 4 25.04.2012 00:17
Вывести в порядке возрастания кодов все буквы латинского алфавита. Zzoyberg Паскаль, Turbo Pascal, PascalABC.NET 3 07.12.2011 16:10