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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 20.05.2012, 11:18   #1
bella15
 
Регистрация: 19.05.2012
Сообщений: 6
По умолчанию Массивы в делфи

Дан массив целых чисел из n элементов, заполненный случайным образом числами из промежутка [-60,60]. Удалить из него все элементы, в которых последняя цифра нечетная.

вообще не понимаю как это делать, помогите
bella15 вне форума Ответить с цитированием
Старый 20.05.2012, 13:25   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Ну а как массив заполнить знаешь?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 20.05.2012, 13:54   #3
Niro
Форумчанин
 
Аватар для Niro
 
Регистрация: 23.09.2010
Сообщений: 682
По умолчанию

Заполняем массив по такому алгоритму
Код:
mas [i]:= random (121)-60;
Проверка на нечетность последней цифры (т.к. если последняя цифра нечетна, то и всё число у нас нечетно,то)
Код:
if mas [i] mod 2 <> 0 then удаляем
Код:
i:=1;
z:=n;
Удаляем из массива, сдвигая его влево
while i <= z do
  begin
     если последняя цифра нечётная, то
     begin
       for j:= i to z do
         mas [j]:= mas [j+1];
       z:=z-1;  
      end;
     i:=i+1;
  end;
Дальше сами, собирайте этот пазл)
Проще всего признать свою ошибку.
Гораздо труднее еЁ осознать и исправить.
Niro вне форума Ответить с цитированием
Старый 20.05.2012, 14:08   #4
s-andriano
Старожил
 
Аватар для s-andriano
 
Регистрация: 08.04.2012
Сообщений: 3,229
По умолчанию

- внутренний цикл до z-1
- после удаления нужно без приращения i вновь проанализировать ту же позицию (ведь в ней уже другой элемент)
- кроме того, Вы пытаетесь использовать алгоритм сложности О(N^2), когда существует O(N)

Обычно для такой задачи заводят два счетчика: один считает входные элементы, а другой - выходные. Переписываем значения из ячейки по первому индексу - в ячейку по второму. Если элемент оставляем - приращиваем оба индекса, если пропускаем - только первый.
s-andriano вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Массивы. Делфи. hl_anton Помощь студентам 11 15.01.2012 23:47
Делфи Массивы Пьеро Помощь студентам 0 29.11.2010 23:09
(Делфи)Массивы zoza1 Помощь студентам 1 25.12.2009 08:04
Массивы (ДЕЛФИ) a1ertso Помощь студентам 0 16.12.2009 02:34
массивы(Делфи) a1ertso Помощь студентам 0 15.12.2009 19:17