0 / 0 / 0
Регистрация: 23.07.2016
Сообщений: 87

Удаление последнего элемента из массива

21.08.2016, 11:54. Показов 2837. Ответов 9
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
У меня есть массив, он объявлен в модуле и определён( т.е размерность =14 и каждый элемент имеет значение), вопрос в следующем, возможно ли удалить последний элемент массива, не прибегая к созданию новых массивов или тому подобное, просто из этого массива удалить последний элемент, я делал попытку, но в итоге он выдаёт ошибку сразу
Visual Basic
1
2
3
4
5
6
7
8
        Dim n, o As Integer
        n = 0
        For i = 0 To UBound(K) - 1
                ReDim Preserve K(o)
                K(n) = K(i)
                n = n + 1
        Next
    End Sub
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
21.08.2016, 11:54
Ответы с готовыми решениями:

Удаление последнего элемента массива
Функция для удаления последнего элемента в массиве. укажите на ошибку пожалуйста, функция выдает ошибку при вызове delete void...

Удаление элементов одномерного массива, больших последнего элемента этого массива
составьте программу удаления элементов одномерного массива A(N) больших последнего элемента этого массива

Удаление последнего чётного элемента массива
Здравствуйте,помогите дописать программу,пожалуйста. Нужно,чтобы программа удаляла последний чётный элемент массива.Что-то написал,но...

9
Регистрация: 23.10.2013
Сообщений: 5,076
Записей в блоге: 8
21.08.2016, 12:14
Очень странный код.
Точнее, какой то бессмысленный набор операторов
1. Сколько раз выполняется ваш цикл?
2. И кто в цикле переопределяет массив?
0
0 / 0 / 0
Регистрация: 23.07.2016
Сообщений: 87
21.08.2016, 13:23  [ТС]
geh, Вот изначально 14 раз выполняется цикл и если последние элементы будут удаляться, то меньше и меньше будет

Добавлено через 6 минут
geh, изначальный код следующий , в этом коде он перемещает первые элементы двух массивов в конец и мне хотелось бы так чтобы он отсекал эти последние элементы при определённом условии
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
Sub propusk()
            Dim q As Integer
            For j = 0 To UBound(K) - 1
                l = F(j)
                F(j) = F(j + 1)
                F(j + 1) = l
            Next j
            For j = 0 To UBound(K) - 1
                q = K(j)
                K(j) = K(j + 1)
                K(j + 1) = q
        Next j
            For i = 0 To UBound(K)
                If K(i) = 0 Then
                    F(i).Show()
                    Exit For
                End If
            Next i
    End Sub
0
Почетный модератор
 Аватар для Puporev
64319 / 47615 / 32743
Регистрация: 18.05.2008
Сообщений: 115,167
21.08.2016, 13:35
Цитата Сообщение от mihuil Посмотреть сообщение
вопрос в следующем, возможно ли удалить последний элемент массива
Уменьшить размер массива на 1.
0
0 / 0 / 0
Регистрация: 23.07.2016
Сообщений: 87
21.08.2016, 13:36  [ТС]
Puporev, да, и самое главное если возможно так сказать "на прямую" это сделать, то какая будет индексация после этого ?
0
Почетный модератор
 Аватар для Puporev
64319 / 47615 / 32743
Регистрация: 18.05.2008
Сообщений: 115,167
21.08.2016, 13:38
Да та же
For j = 0 To UBound(K) - 1
только K будет на 1 меньше.
0
0 / 0 / 0
Регистрация: 23.07.2016
Сообщений: 87
21.08.2016, 14:03  [ТС]
Puporev, большое спасибо за идею, на вашем примере я сделал по другому, в случае если элемент массива равен одному, он уходит в конец, а если равен нулю он перемещается в конец, но перед группой элементов равных единицы, вообщем
Visual Basic
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
 Sub propusk()
        Dim q As Integer
        If K(0) = 1 Then
            G = G + 1
            For j = 0 To UBound(K) - 1
                l = F(j)
                F(j) = F(j + 1)
                F(j + 1) = l
            Next j
            For j = 0 To UBound(K) - 1
                q = K(j)
                K(j) = K(j + 1)
                K(j + 1) = q
            Next j
        Else
            For j = 0 To UBound(K) - (1 + G)
                l = F(j)
                F(j) = F(j + 1)
                F(j + 1) = l
            Next
            For j = 0 To UBound(K) - (1 + G)
                q = K(j)
                K(j) = K(j + 1)
                K(j + 1) = q
            Next j
        End If
        For i = 0 To UBound(K)
            If K(i) = 0 Then
                F(i).Show()
                Exit For
            End If
        Next i
    End Sub
0
Почетный модератор
 Аватар для Puporev
64319 / 47615 / 32743
Регистрация: 18.05.2008
Сообщений: 115,167
21.08.2016, 14:19
Вы спросили как удалить последний элемент, я ответил, и тут Остапа понесло...
0
Супер-модератор
Эксперт функциональных языков программированияЭксперт Python
 Аватар для Catstail
38203 / 21135 / 4310
Регистрация: 12.02.2012
Сообщений: 34,741
Записей в блоге: 14
21.08.2016, 18:03
Последний элемент массива удаляется так:

Visual Basic
1
2
       n%=Ubound(A,1)-1
       Redim Preserve A(1 to n%) As Integer
0
413 / 250 / 118
Регистрация: 26.12.2012
Сообщений: 787
21.08.2016, 22:08
Рабочий код
Visual Basic
1
2
3
4
5
Sub PopBack(Arr() As Integer)
    On Error Resume Next
    If (Not Arr) = -1 Then Exit Sub
    If UBound(Arr) = 0 Then Erase Arr Else ReDim Preserve Arr(UBound(Arr) - 1)
End Sub
Добавлено через 15 минут
Эта тема была
Добавить (удалить) 1 элемент с конца массива
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
21.08.2016, 22:08
Помогаю со студенческими работами здесь

Удаление последнего минимального элемента одномерного массива
что не так? #include "stdafx.h" #include <conio.h> #include <locale.h> #include <time.h> #include <stdlib.h> void FormMassiv...

Удаление последнего элемента динамического массива (программа вылетает с ошибкой)
for (vector<P>::iterator i = p.begin(); i != p.end(); ++i) { i -> life --; if (i -> life ==0) p.erase(i);...

Удаление минимального положительного элемента, расположенного после последнего отрицательного элемента
В одномерном массиве размерностью n удалить минимальный среди положительных элементов, выбранный из части массива, расположенной после...

Инвертировать часть массива с последнего минимального до последнего элемента массива
Инвертировать часть массива с последнего минимального до последнего элемента массива.Помогите пожалуйста)

Инвертировать часть массива с последнего минимального до последнего элемента массива
Инвертировать часть массива с последнего минимального до последнего элемента массива.


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

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

Новые блоги и статьи
Валидация и контроль данных табличной части документа перед записью
Maks 22.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в КА2. Задача: контроль и валидация данных табличной части документа перед записью с учетом регламента компании. . .
Отчёт о затраченных материалах за определенный период с макетом печатной формы
Maks 21.04.2026
Отчёт из решения ниже размещён в конфигурации КА2. Задача: разработка отчёта по затраченным материалам за определённый период, с возможностью вывода печатной формы отчёта с шапкой и подвалом. В. . .
Отчёт о спецтехнике находящейся в ремонте
Maks 20.04.2026
Отчёт из решения ниже размещен в конфигурации КА2. Задача: отобразить спецтехнику, которая на данный момент находится в ремонте. Есть нетиповой документ "Заявка на ремонт спецтехники" который. . .
Памятка для бота и "визитка" для читателей "Semantic Universe Layer (Слой семантической вселенной)"
Hrethgir 19.04.2026
Сгенерировано для краткого описания по случаю сборки и компиляции скелета серверного приложения. И пусть после этого скажут, что статьи сгенерированные AI - туфта и не интересно. И это не реклама -. . .
Запрет удаления строк ТЧ документа при определённом условии
Maks 19.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "Аккумуляторы", разработанного в конфигурации КА2. У данного документа есть ТЧ, в которой в зависимости от прав доступа. . .
Модель заражения группы наркоманов
alhaos 17.04.2026
Условия задачи сформулированы тут Суть: - Группа наркоманов из 10 человек. - Только один инфицирован ВИЧ. - Колются одной иглой. - Колются раз в день. - Колются последовательно через. . .
Мысли в слух. Про "навсегда".
kumehtar 16.04.2026
Подумалось тут, что наверное очень глупо использовать во всяких своих установках понятие "навсегда". Это очень сильное понятие, и я только начинаю понимать край его смысла, не смотря на то что давно. . .
My Business CRM
MaGz GoLd 16.04.2026
Всем привет, недавно возникла потребность создать CRM, для личных нужд. Собственно программа предоставляет из себя базу данных клиентов, в которой можно фиксировать звонки, стадии сделки, а также. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru