0 / 0 / 0
Регистрация: 24.11.2009
Сообщений: 7
1

Массивы в языке Object Pascal

24.11.2009, 16:22. Показов 1785. Ответов 3
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Помогоите, пожалуйста, решить задачу в Delhi:
Дан вектор A(2n). Получить количество нечетных среди a1,a2,...,a2n. Если оно меньше n, то ко всем числам с четными индексами добавить 1. В противном случае последовательность оставить без изменения.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
24.11.2009, 16:22
Ответы с готовыми решениями:

Строки в языке Object Pascal
Помогите, пожалуйста, решить задачу в Delphi: Поиск самого длинного слова в строке и вывод этого...

Разработать класс и указать методы на языке Object Pascal
Разработать класс и указать методы на языке Object Pascal Класс прямая Члены класса Координаты...

Разработать класс и указанные методы на языке Object Pascal
Вариант 19 Класс Обыкновенная дробь Члены класса Числитель и знаменатель Методы Конструктор,...

Разработать программу на языке Object Pascal в среде Delphi
Разработать программу, ведущую учет результатов сдачи экзаменов студентами одной группы за один...

3
13095 / 5876 / 1706
Регистрация: 19.09.2009
Сообщений: 8,808
26.11.2009, 13:22 2
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
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
procedure TForm1.Button1Click(Sender: TObject);
const
  N = 5;
  M = 2 * N;
  //При распечатке массива в каждой строке будем размещать по ColCount элементов.
  ColCount = 5;
var
  Arr     : array[1..M] of Integer;
  //Индекс элемента в массиве.
  i       : Integer;
  //Строка.
  StrTmp  : String;
  //Количество нечётных элементов в массиве.
  OddCount    : Integer;
  //True - количество нечётных элементов в массиве меньше N. False - иначе.
  IsLessThanN : Boolean;
begin
 
  //Очищаем Мемо.
  Memo1.Clear;
 
  //Заполняем массив случайными целыми числами.
 
  //Инициализация генератора случайных чисел.
  Randomize;
  for i := 1 to M do begin
    //Случайные целые числа из диапазона 0...10.
    Arr[i] := Random(11);
  end;
 
  //Распечатываем исходный массив.
  Memo1.Lines.Add('Исходный массив:');
  StrTmp := '';
  for i := 1 to M do begin
    //Между соседними элементами печатаем знак горизонтальной табуляции.
    if StrTmp <> '' then begin
      StrTmp := StrTmp + Char(9);
    end;
    //Добавляем к строке значение элемента массива.
    StrTmp := StrTmp + IntToStr(Arr[i]);
    //В каждую строку помещаем по ColCount элементов.
    if i mod ColCount = 0 then begin
      Memo1.Lines.Add(StrTmp);
      StrTmp := '';
    end;
  end;
 
  //Подсчитываем количество нечётных элементов в массиве и проверяем:
  //меньше ли оно числа N.
  OddCount := 0;
  IsLessThanN := True;
  for i := 1 to M do begin
    if Odd(Arr[i]) then begin
      Inc(OddCount);
      if OddCount >= N then begin
        IsLessThanN := False;
        Break;
      end;
    end;
  end;
 
  //Если количество нечётных элементов в массиве меньше, чем N, тогда
  //ко всем элементам с чётными индексами добавляем единицу.
  if IsLessThanN then begin
    for i := 1 to M do begin
      if not Odd(i) then begin
        Arr[i] := Arr[i] + 1;
      end;
    end;
  end;
 
  //Распечатываем массив.
  Memo1.Lines.Add('Массив после преобразования:');
  StrTmp := '';
  for i := 1 to M do begin
    //Между соседними элементами печатаем знак горизонтальной табуляции.
    if StrTmp <> '' then begin
      StrTmp := StrTmp + Char(9);
    end;
    //Добавляем к строке значение элемента массива.
    StrTmp := StrTmp + IntToStr(Arr[i]);
    //В каждую строку помещаем по ColCount элементов.
    if i mod ColCount = 0 then begin
      Memo1.Lines.Add(StrTmp);
      StrTmp := '';
    end;
  end;
 
end;
1
0 / 0 / 0
Регистрация: 24.11.2009
Сообщений: 7
27.11.2009, 14:49  [ТС] 3
Спасибо огромное!
Осталось только самой разобраться и понять.
Вы мне очень помогли, спасибо.
0
13095 / 5876 / 1706
Регистрация: 19.09.2009
Сообщений: 8,808
27.11.2009, 15:43 4
Iren, и ещё, в конце кода распечатки массива надо добавить несколько строк :
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
...
  //Распечатываем исходный массив.
  Memo1.Lines.Add('Исходный массив:');
  StrTmp := '';
  for i := 1 to M do begin
    //Между соседними элементами печатаем знак горизонтальной табуляции.
    if StrTmp <> '' then begin
      StrTmp := StrTmp + Char(9);
    end;
    //Добавляем к строке значение элемента массива.
    StrTmp := StrTmp + IntToStr(Arr[i]);
    //В каждую строку помещаем по ColCount элементов.
    if i mod ColCount = 0 then begin
      Memo1.Lines.Add(StrTmp);
      StrTmp := '';
    end else if i = M then begin //Добавлено.
      //В случае, когда M не кратно ColCount, в последней итерации цикла
      //надо допечатать оставшиеся элементы.
      Memo1.Lines.Add(StrTmp);
    end;
  end;
...
  //Распечатываем массив.
  Memo1.Lines.Add('Массив после преобразования:');
  StrTmp := '';
  for i := 1 to M do begin
    //Между соседними элементами печатаем знак горизонтальной табуляции.
    if StrTmp <> '' then begin
      StrTmp := StrTmp + Char(9);
    end;
    //Добавляем к строке значение элемента массива.
    StrTmp := StrTmp + IntToStr(Arr[i]);
    //В каждую строку помещаем по ColCount элементов.
    if i mod ColCount = 0 then begin
      Memo1.Lines.Add(StrTmp);
      StrTmp := '';
    end else if i = M then begin //Добавлено.
      //В случае, когда M не кратно ColCount, в последней итерации цикла
      //надо допечатать оставшиеся элементы.
      Memo1.Lines.Add(StrTmp);
    end;
  end;
Когда будеш изучать программу, поначалу не обращай внимание на код распечатки - т. к. он не относится к решению основной задачи.
Если что-то непонятно - спрашивай.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
27.11.2009, 15:43
Помогаю со студенческими работами здесь

Проверить программно код на языке Object Pascal на синтаксические ошибки
Никто не подскажет, как проверить программно код на языке Object Pascal на синтаксические ошибки?

Удалить из файла с исходным текстом программы на языке Object Pascal все комментарии
Удалить из файла с исходным текстом программы на языке Object Pascal все комментарии. Сохранил...

Составьте программу на языке программирования Object Pascal для вычисления значений функции
F(x)= x – sin x на отрезке с шагом h. Результат представить в виде таблицы, первый столбец которой...

Object Pascal (Delphi)
1. Нужно написать программу на языке Object Pascal (Delphi), чтобы она переводила метры в футы и...


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru