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

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

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

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 18.05.2017, 13:05   #1
weeping angel
 
Регистрация: 15.05.2017
Сообщений: 7
По умолчанию Заполнить массив a числами. Получить новый массив b,

Код:
procedure TForm1.Button1Click(Sender: TObject);
const
  n = 5;
var
i:integer;
a: array [1..n] of integer;
begin

for i:=1 to n do
a[i]:=strtoint(memo2.text[i,1]);
for i:=1 to  n do
 if (a[i] mod 2)<>0 then a[i]:=a[i]*2;

for i:=1 to n-1 do
memo1.Text:=memo1.Text+inttostr(a[i])+', ';
memo1.Text:=memo1.Text+inttostr(a[n]);
end;
Выдает ошибку Array type required, помогите исправить

_____
Код программы нужно выделять (форматировать) тегами [CODE] (читать FAQ)
Модератор

Последний раз редактировалось Serge_Bliznykov; 18.05.2017 в 13:25.
weeping angel вне форума Ответить с цитированием
Старый 18.05.2017, 13:28   #2
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

ошибка тут:
Цитата:
Сообщение от weeping angel Посмотреть сообщение
memo2.text[i,1]
А это что Вы таким образом пытаетесь получить?

какую задачу должен решить цикл заполнения массива?
и где проверка, что в Memo2 есть нужно число цифр (именно цифр, а не чисел)?!
Serge_Bliznykov вне форума Ответить с цитированием
Старый 18.05.2017, 13:35   #3
weeping angel
 
Регистрация: 15.05.2017
Сообщений: 7
По умолчанию

Заполнить одномерный целочисленный массив a числами, введѐнными с клавиатуры в поле Memo1. Получить новый массив b, удвоив нечѐтные элементы массива a, чѐтные оставить без изменения. Полученный массив b отобразить в поле Memo2.

Задача такая, но до этого в мемо 1 пытался поставить stringgrid, не получилось, поэтому сейчас по условиям мемо 1 это мемо 2, и наоборот)
weeping angel вне форума Ответить с цитированием
Старый 18.05.2017, 13:45   #4
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
Сообщение от weeping angel Посмотреть сообщение
но до этого в мемо 1 пытался поставить stringgrid, не получилось,
ну, так может быть, стоит разобраться и сделать именно со StringGrid?

Цитата:
Сообщение от weeping angel Посмотреть сообщение
Заполнить одномерный целочисленный массив a числами, введѐнными с клавиатуры в поле Memo1.
для простоты заставим пользователя вводить числа в Memo1 строго так - каждое число - на отдельной строке.

тогда сработает такой код:

Код:
procedure TForm1.Button1Click(Sender: TObject);
var
  i, n : integer;
  a, b: array of integer;
   
begin
  SetLength(a, Memo1.Lines.Count);

  n := 0;

  for i:=0 to Memo1.Lines.Count-1 do 
     if Trim(Memo1.Lines[i])<>'' then begin
          a[n] := StrToInt( Trim(Memo1.Lines[i]) );
          inc(n);
     end;

  if n=0  then begin ShowMessage('Введите числа в Memo1'); exit end;

  SetLength(b, n);

  for i:=0 to n-1 do
    if odd(a[i]) then b[i] := 2*a[i]
       else b[i] := a[i];

  memo2.Lines.Clear;
  for i:=0 to n-1 do
       memo2.Lines.Append(IntToStr(b[i]));

end;
Serge_Bliznykov вне форума Ответить с цитированием
Ответ


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

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Создать массив. Получить новый массив как произведение каждого элемента на заданное число. Найти максимальное (на Liberty Basic) MickeyAttac Помощь студентам 2 02.12.2014 22:55
Заполнить массив случайными числами и выделить в другой массив все числа, которые встречаются более darkland Паскаль, Turbo Pascal, PascalABC.NET 2 04.03.2014 20:44
Заполнить двумерный массив числами Hayaname Общие вопросы по Java, Java SE, Kotlin 1 28.12.2012 20:27
Заполнить массив случайными числами. Fender92 Паскаль, Turbo Pascal, PascalABC.NET 4 19.03.2011 17:05
Заполнить массив случайными числами forumu Общие вопросы Delphi 13 03.12.2007 22:11