Форум программистов, компьютерный форум, киберфорум
QBasic
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.69/13: Рейтинг темы: голосов - 13, средняя оценка - 4.69
0 / 0 / 0
Регистрация: 30.11.2019
Сообщений: 6

Как удалить максимальный и минимальный элемент массива

05.01.2020, 21:36. Показов 2695. Ответов 6
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
В задаче просят найти максимальный и минимальный элемент массива. Найти их не составило труда, но теперь я не знаю как мне их удалить.
Пробовал присваивать им номер которого нет в массиве, программа выводила ошибку. Присваивал им просто значение 0, но это не удаление. Нужна ваша помощь!

Добавлено через 1 час 53 минуты
Ну что-же, во имя науки и программирования отвечаю на свой вопрос, я додумался как это сделать:
Определив максимальный и минимальный элемент массива присваиваем им последний и предпоследний номера массива и ограничиваем ход цикла на n - 2. Таким образом мы избавились от этих элементов. Надеюсь всем кому надо эта тема поможет.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
05.01.2020, 21:36
Ответы с готовыми решениями:

Удалить из массива максимальный и минимальный элемент
Задача такая : Удалить из массива, в котором все элементы различны : а) максимальный элемент; б) минимальный элемент. Помогите...

Дано двумерный массив, удалить с массива максимальный элемент и минимальный
Дано двумерный массив, удалить с массива максимальный элемент и минимальный. а1 а2 а3 а4 а5 а6 а7 а8 а9 а10 ...

Удалить из массива максимальный элемент, кратный трем и минимальный четный
Удалить из массива максимальный элемент, кратный трем и минимальный четный. Тестовый массив 4 5 6 7 -12 -3 4 -5 -7 2 Результат:...

6
 Аватар для Pro_grammer
6807 / 2839 / 527
Регистрация: 24.04.2011
Сообщений: 5,308
Записей в блоге: 10
06.01.2020, 08:51
Цитата Сообщение от TeSi Посмотреть сообщение
Таким образом мы избавились от этих элементов
В массиве то элементы остались - размерность массива не зависит от цикла. Нужен Redim для полного искоренения!
0
Эксперт Pascal/Delphi
6812 / 4568 / 4820
Регистрация: 05.06.2014
Сообщений: 22,434
06.01.2020, 09:06
Цитата Сообщение от TeSi Посмотреть сообщение
Определив максимальный и минимальный элемент массива
А если их несколько?
1
1104 / 480 / 33
Регистрация: 05.07.2018
Сообщений: 1,870
Записей в блоге: 7
06.01.2020, 09:41
Уважаемый TeSi,
смысл вашей задачи состоит в том, чтобы создать новый массив, который будет содержать все элементы старого массива за исключением максимальных и минимальных элементов старого. Сам алгоритм выглядит примерно так:
1. ищем максимальный элемент
2. ищем минимальный элемент (поиск максимального и минимального элемента может быть совмещён)
3. сравниваем максимальный и минимальный элементы.
4. если они равны, то выводится сообщение: "задача не разрешима"
5. если не равны, то ищется элемент отличный от максимального и минимального
6. если такой элемент не найден, то выводится сообщение: "задача не разрешима"
7. если найден элемент отличный от максимального и минимального, то подсчитывается количество подобных элементов.
8. объявляется новый массив, длина которого равна числу элементов не равных максимальному и минимальному
9. этом массив инициируется (заполняется этими самыми элементами)
10. теперь можно распечатать оба массива (для сравнения)
2
 Аватар для markiza-inc
924 / 251 / 100
Регистрация: 21.10.2012
Сообщений: 593
08.01.2020, 04:02
TeSi сам нашел решение, молодец. Только, Обязательно (!) нужно учесть условия от Pro_grammer и ZX Spectrum-128 !!!

задача не разрешима - такого быть не может, это не вселенский парадокс (хотя даже в этом случае решение будет), а простая задачка. Полагаю (и знаю по опыту), многие преподы не примут ответ с формулировкой Задача не разрешима, поэтому, применяя принцып: отрицательный результат - тоже результат, + здравый смысм получаем (в остальном претензий к wer1 нет) более наглядный вариант и без некорректной фразы = :

1. Как и решил TeSi - надодятся минимальный и максимальный элементы (судя по первому посту он знает как это делается).

2. Прежде чем перемещать минимальный и максимальный элементы в конец массива, нужно ввести переменную (например) k, занося в нее сумму минимальных и максимальных элементов на этапе проверки массива (если таковые, конечно, будут, но предусмотреть это нужно обязательно, как правильно заметил ZX Spectrum-128).
Это можно сделать и отдельным цыклом, просто пробежавшись по массиву сравнивая элементы с максимальным и минимальным, параллельно перенося min и max элементы в конец массива. Если организовать циклс от конца к началу, то это сделать очень просто, меняя элементы местами.

3. Вычисляем k = n - k (чтобы не вводить еще одну переменную), теперь k = количество элементов результирующего массива.

4. k - в априори, не может быть больше n (числа элементов исходного массива), отсюда вывод результата

Если(1) k = 0, то
Если(2) min = max, то
Ответ: Исходный Массив состоит из одинаковых элементов
Иначе(2)
Ответ: Исходный Массив состоит только из минимальных и максимальных элементов
Конец(2)
Ответ+: Массив-результат не имеет значений (пуст)
Иначе(1)
Redim, и перенос элементов из исходного массива в новый от 1 до k (как и заметил Pro_grammer)
Ответ: Вывод нового массива, определенного оператором Redim
Конец(1)
0
Кормпилятор
 Аватар для Quiet Snow
5044 / 1718 / 409
Регистрация: 25.04.2010
Сообщений: 4,827
Записей в блоге: 2
10.01.2020, 20:16
TeSi, полную формулировку задачи напиши, дословно, как тебе её дали.

Цитата Сообщение от markiza-inc Посмотреть сообщение
задача не разрешима - такого быть не может
Может. Всё банально, в QB\QBasic нет "массивов без элементов". REDIM может сделать размер массива
равным одному элементу, без элементов он его сделать не может. И любой человек который скажет,
что это корректно(иметь процедуру удаления элемента и не иметь возможности удалить все элементы)
- будет лишь пудрить людям мозги и нести чушь. По факту эта задача на списки, но зачем то её выдают
людям на QBasic-e в формате массива и с кастрированным условием. Это тупо подмена понятий.

Более того в условии не определено, может ли быть ситуация когда минимальных и максимальных
несколько, а также ситуация их равенства. Соотв. этот вопрос падает на программиста.
А критерий данной оценки - неизвестен. Соотв. есть необходимость предусмотреть ВСЕ возможные варианты.
Что человек и сделал. И да, по увиденному есть лишь стойкое ощущение, что о всех этих
подробностях составитель задачи в целом и не догадывается, т.е. о том, что мин максов одинаковых
может быть несколько, о том, что массив - это не список и его как минимум придётся эмулировать.

Поэтому "задача не разрешима" - более чем корректно, это сходно с "деление на ноль", сам бы конечно
ещё дописал почему она не разрешима, мол причина в исходных данных. Большего составителю задачи
знать не следует, он и сам хорош на аргументацию.
1
Платежеспособный зверь
 Аватар для кот Бегемот
8964 / 4387 / 1654
Регистрация: 28.10.2009
Сообщений: 11,645
14.01.2020, 00:00
Цитата Сообщение от TeSi Посмотреть сообщение
Ну что-же, во имя науки и программирования отвечаю на свой вопрос, я додумался как это сделать:
Определив максимальный и минимальный элемент массива присваиваем им последний и предпоследний номера массива и ограничиваем ход цикла на n - 2. Таким образом мы избавились от этих элементов. Надеюсь всем кому надо эта тема поможет.
Что за бред? Что за левые решения тут предлагаются? А просто сдвинуть элементы не судьба или до этого мозги не доходят у ВСЕХ, кто тут решение предложил?
Задача легко решается без всяких новых массивов и передвиганий элементов в конец. Просто сдвигаем элементы на место исключённых и сокращаем длину массива. Нужна программа или сами сообразите?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
14.01.2020, 00:00
Помогаю со студенческими работами здесь

Дано двумерный массив, удалить с массива максимальный элемент и минимальный
Дано двумерный массив, удалить с массива максимальный элемент и минимальный. а1 а2 а3 а4 а5 а6 а7 а8 а9 а10 ...

Удалить из массива максимальный элемент, кратный трем и минимальный четный - ошибка в коде
Удалить из массива максимальный элемент, кратный трем и минимальный четный. Тестовый массив 4 5 6 7 -12 -3 4 -5 -7 2 Результат: первый...

Как находится минимальный максимальный элемент массива?
Как находится минимальный максимальный элемент массива? Алгоритм + пример. Спасибо

Как переставить местами максимальный и минимальный элемент массива!?
Как переставить местами максимальный и минимальный элемент массива!? Задание: С клавиатуры вводится число n-количество элементов...

Поменять местами максимальный элемент массива и минимальный элемент части массива, расположенной после максимального
Задача Поменять местами максимальный элемент массива и минимальный элемент части массива, расположенной после максимального. Массив...


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru