Форум программистов, компьютерный форум, киберфорум
Delphi для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.73/11: Рейтинг темы: голосов - 11, средняя оценка - 4.73
1 / 1 / 0
Регистрация: 12.02.2015
Сообщений: 58
1

Сформировать одномерные массивы В и С, содержащие, соответственно, четные и нечетные элементы массива А

22.02.2015, 16:12. Показов 1992. Ответов 7
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Дан целочисленный массив

https://www.cyberforum.ru/cgi-bin/latex.cgi?A=\begin{bmatrix}<br />
13 & 6 & 8 & 15 & 18\\<br />
2 & 9 & 21 & 13 & 36<br />
\end{bmatrix}\;,\;m=2\;,\;n=5

Сформировать одномерные массивы В и С, содержащие, соответственно, четные и нечетные элементы массива А
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
22.02.2015, 16:12
Ответы с готовыми решениями:

Даны три массива А, В и C. Сформировать массивы А1, В1 и С1, содержащие положительные нечетные элементы массивов А, В и С соответственно.
Даны три массива А, В и C. Сформировать массивы А1, В1 и С1, содержащие положительные нечетные...

Сформировать массивы, А1, В1 и С1, содержащие положительные нечетные элементы массивов А, В и С соответственно
Даны три массива А, В и C. Сформировать массивы А1, В1 и С1, содержащие положительные нечетные...

В разные одномерные массивы вывести четные/нечетные элементы матрицы
Задана целая квадратная матрица Сформировать еще 2 одномерным массива в 1 вывести четные во 2 не...

Сформировать два массива, заключив в каждый четные и нечетные номера исходного массива соответственно
Задан массив с количеством элементов N. Сформируйте два массива: в первый включите элементы...

7
28 / 28 / 19
Регистрация: 03.02.2012
Сообщений: 59
22.02.2015, 16:38 2
А в чем, собственно, проблема? Где Ваши попытки решения?
0
1 / 1 / 0
Регистрация: 12.02.2015
Сообщений: 58
22.02.2015, 17:07  [ТС] 3
Создать массив я могу,алгоритм определения четное/нечетное число тоже понятен,непонятно как сделать так чтобы отсортированные числа заполняли два нужных массива.
0
226 / 225 / 112
Регистрация: 20.10.2013
Сообщений: 808
22.02.2015, 17:07 4
Лучший ответ Сообщение было отмечено shootolik как решение

Решение

Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
procedure FillRandom(sg: TStringGrid);
var
  i, j: Integer;
begin
  for i := 0 to sg.ColCount - 1 do
    for j := 0 to sg.RowCount - 1 do
      sg.Cells[i, j] := IntToStr(50 - Random(100));
end;
 
procedure Split(A, B, C: TStringGrid);
var
  i, j: Integer;
begin
  B.ColCount:=1;
  C.ColCount:=1;
  for i := 0 to A.ColCount - 1 do
    for j := 0 to A.RowCount - 1 do
      if not Odd(StrToIntDef(A.Cells[i,j],0)) then
        begin
          B.Cells[B.ColCount-1,0]:=A.Cells[i,j];
          B.ColCount:=B.ColCount+1;
        end
      else
        begin
          C.Cells[C.ColCount-1,0]:=A.Cells[i,j];
          C.ColCount:=C.ColCount+1;
        end;
  B.ColCount:=B.ColCount-1;
  C.ColCount:=C.ColCount-1;
end;
 
procedure TForm1.Button1Click(Sender: TObject);
begin
  Split(StringGrid1, StringGrid2, StringGrid3);
end;
 
procedure TForm1.FormCreate(Sender: TObject);
begin
  Randomize;
  FillRandom(StringGrid1);
end;
 
procedure TForm1.SpinEdit1Change(Sender: TObject);
begin
  StringGrid1.ColCount := SpinEdit1.Value;
  FillRandom(StringGrid1);
end;
 
procedure TForm1.SpinEdit2Change(Sender: TObject);
begin
  StringGrid1.RowCount := SpinEdit2.Value;
  FillRandom(StringGrid1);
end;
Вложения
Тип файла: rar shootolik.rar (56.5 Кб, 5 просмотров)
1
1 / 1 / 0
Регистрация: 12.02.2015
Сообщений: 58
22.02.2015, 17:22  [ТС] 5
А можно без интерфейсов?Я просто не смогу пояснить как это работает.
0
226 / 225 / 112
Регистрация: 20.10.2013
Сообщений: 808
22.02.2015, 17:23 6
Вы имеете ввиду консольное приложение? Если да, то оформить ввиде статических массивов, или динамических?
0
1 / 1 / 0
Регистрация: 12.02.2015
Сообщений: 58
22.02.2015, 17:31  [ТС] 7
Да, консольное приложение.В виде динамических.
0
226 / 225 / 112
Регистрация: 20.10.2013
Сообщений: 808
22.02.2015, 17:53 8
Лучший ответ Сообщение было отмечено shootolik как решение

Решение

Ну как-то так, массив разделяется сразу во время ввода, чтобы не создавать еще один цикл NxM:
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
var
  a: array of array of Integer;
  b, c: array of Integer;
  n, m: Integer;
  i, j: Integer;
  k, q: Integer;
 
begin
  // Запрашивать ввод пока не будут корректные данные:
  repeat
    Write('Введите N (к-во столбцов): ');
    ReadLn(n);
    Write('Введите M (к-во строк): ');
    ReadLn(m);
  until ((n > 0) and (m > 0));
 
  // Задаем начальные размеры массивов:
  SetLength(a, n, m);
  SetLength(b, 0);
  SetLength(c, 0);
  k := 0;
  q := 0;
 
  // Ввод массива:
  for i := 0 to n - 1 do
    for j := 0 to m - 1 do
    begin
      Write('Введите a[', i + 1, ',', j + 1, ']: ');
      Read(a[i, j]);
      if (a[i, j] mod 2 = 0) then // Четный
      begin
        Inc(k);
        SetLength(b, k);
        b[k-1] := a[i, j];
      end
      else // Нечетный
      begin
        Inc(q);
        SetLength(c, q);
        c[q-1] := a[i, j];
      end;
    end;
 
  // Вывод массивов
  WriteLn('Содержимое массива B: ');
  for i := 0 to k - 1 do
  begin
    Write(b[i], '; ');
  end;
 
  WriteLn;
  WriteLn('Содержимое массива C: ');
  for i := 0 to q - 1 do
  begin
    Write(c[i], '; ');
  end;
 
  ReadLn;
  ReadLn;
 
end.
1
22.02.2015, 17:53
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
22.02.2015, 17:53
Помогаю со студенческими работами здесь

Одномерные массивы. Переслать из массива А четные элементы в массив В
Переслать из одномерного массива А четные элементы в одномерный массив В.

Из массива размером 10, сформировать два массива размера 5, включая в первый массив четные элементы исх. массива, а во второй - нечетные
Из массива размером 10, сформировать два массива размера 5, включая в первый массив четные элементы...

Сформировать два массива: в первый включить четные элементы исходного массива, во второй – нечетные
Из одномерного массива сформировать два массива: в первый включить четные элементы исходного...

Сформировать два массива, включая в первый четные элементы исходного массива с нечетными индексами, а во второй нечетные элементы с четными индексами
Задан массив размером K. Сформировать два массива, включая в первый четные элементы исходного...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru