Форум программистов, компьютерный форум, киберфорум
PascalABC.NET
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.86/7: Рейтинг темы: голосов - 7, средняя оценка - 4.86
0 / 0 / 0
Регистрация: 27.01.2018
Сообщений: 5

Записать в массив B числа, которые меньше соседей слева и справа

27.01.2018, 12:02. Показов 1441. Ответов 7
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Помогите решить
Имеется одномерный массив чисел А. Записать в массив B числа, которые меньше соседей слева и справа
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
27.01.2018, 12:02
Ответы с готовыми решениями:

Изменить массив, вычеркнув из него все элементы, кратные сумме своих соседей справа и слева
Заполнить пропуски. Дан линейный массив. Изменить массив, вычеркнув из него все элементы, кратные сумме своих соседей справа и слева. ...

В одномерном массиве заменить каждое отрицательное число полусуммой его соседей справа и слева
В одномерном массиве A1, A2, ... , An заменить каждое отрицательное число полусуммой его соседей справа и слева. Предполагается, что первое...

Определить количество элементов матрицы, у которых слева находится элемент меньше его, а справа – больше
Помогите пожалуйста решить задачку на паскале Написать программу по обработке динамических массивов. Размеры массивов вводить с...

7
 Аватар для Hitoku
1755 / 1347 / 1407
Регистрация: 28.10.2016
Сообщений: 4,267
27.01.2018, 14:21
Как вариант
Pascal
1
2
3
4
5
6
7
8
9
begin
  var s := '';
  var a := Range(0, ReadlnInteger('Длина массива:') - 1).Select(v -> Random(-10, 10)).ToArray;
  a.Println;
  for var i := 1 to a.Length - 2 do
    if (a[i] < a[i - 1]) and (a[i] < a[i + 1]) then s += a[i] + ' ';
  var b := s.Split(' ').ToArray;
  writeln(b.Length = 1 ? 'Элементы отсутствуют' : b.JoinIntoString(' '));
end.
1
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
 Аватар для volvo
33377 / 21501 / 8236
Регистрация: 22.10.2011
Сообщений: 36,896
Записей в блоге: 11
29.01.2018, 14:50
Еще вариант:
Pascal
1
var b := a.Where((v, i) -> i.InRange(1, a.Length - 2) and (v < a[i-1]) and (v < a[i+1]));
0
0 / 0 / 0
Регистрация: 27.01.2018
Сообщений: 5
01.02.2018, 13:16  [ТС]
Я ещё не изучал команды range, readinteger, println, select и прочее, что записать вместо них можно ?
0
Эксперт Pascal/Delphi
6812 / 4568 / 4820
Регистрация: 05.06.2014
Сообщений: 22,434
01.02.2018, 16:36
Цитата Сообщение от Анантин Посмотреть сообщение
ещё не изучал
Вариант "изучить" не рассматриваете?
0
Модератор
10420 / 5708 / 3401
Регистрация: 17.08.2012
Сообщений: 17,364
02.02.2018, 17:06
Лучший ответ Сообщение было отмечено ZX Spectrum-128 как решение

Решение

ZX Spectrum-128, скорее всего, не нужно. Я так понимаю, Анантин изучает "классический" паскаль, но в его учебном заведении применяется PascalABC.NET (скорее всего, потому что он произошёл от PascalABC и бесплатный) вот Анантин и заблуждается, что ему нужна программа на PascalABC.NET.

Анантин, вероятно, Вас учат классическому паскалю, и писать Вам нужно не в PascalABC.NET, а в какую-либо ещё паскалевскую ветку, диалект паскаля которой наиболее близок тому диалекту, которому Вас учили. Ещё, может быть, Вы ошибочно полагаете, что PascalABC.NET и PascalABC - это одно и то же.

PascalABC.NET разительно отличается от прочих диалектов паскаля как раз тем, что Вы не изучали, и вот эти не изученные Вами частности позволяют писать короткий и эффективный код, и частности эти вот так запросто не выучишь. Слишком много нужно изучить чего-то ещё, кроме собственно паскаля. И вообще, что-то я не слышал, чтобы PascalABC.NET в школе преподавали.

Вот, почитайте, может, что-то проясните для себя: Литература, подготовка к ЕГЭ.

Если сделать "Я ещё не изучал команды range, readinteger, println, select и прочее, что записать вместо них можно", то программа, как правило, удлиняется в несколько раз. Например, вот аналог для программы Hitoku:
Pascal
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
const
  m = 100;
 
var
  a, b: array[1..m] of integer;
  i, j, n: integer;
 
begin
  randomize;
  repeat
    write('Длина массива в диапазоне [3..', m, ']: ');
    readln(n)
  until (3 <= n) and (n <= m);
  writeln('Массив A:');
  for i := 1 to n do
    begin
      a[i] := -10 + random(21);
      write(a[i]:4)
    end;
  writeln;
  j := 0;
  for i := 2 to n - 1 do
    if (a[i] < a[i - 1]) and (a[i] < a[i + 1])
      then begin
        inc(j);
        b[j] := a[i]
      end;
  writeln('Элементы, которые меньше соседей слева и справа:');
  for i := 1 to j do write(b[i]:4);
  if j > 0
    then writeln
    else writeln('Не найдены.');
  readln
end.
И это ещё более-менее короткий вариант. Чувствуете разницу между PascalABC.NET и остальными паскалями? Эта программа будет работать, возможно, с небольшими переделками, в любом диалекте паскаля, в том числе, и в PascalABC.NET. Но она банально длиннее, чем программа от Hitoku. С другой стороны, программа от Hitoku ни в чём другом, кроме PascalABC.NET, работать не будет.
0
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
 Аватар для volvo
33377 / 21501 / 8236
Регистрация: 22.10.2011
Сообщений: 36,896
Записей в блоге: 11
02.02.2018, 19:04
Да в том и дело, что их учат кастрированному Паскалю (отсюда и постоянные "без использования функций", "а как заменить repeat", и так далее), но вот для обучения выбрали самую неподходящую среду: PascalABC.NET. А чего? Удобно, кнопку нажал и запустил программу на выполнение, бесплатно, работает под ту ОС, которая установлена (кто там в школах на Линукс будет переходить? Сидели под Windows и еще 1000 лет сидеть будут, пока компьютеры от старости разваливаться в пыль не начнут, и пока, наконец, не уйдут те преподаватели, которые ничего кроме стандартных for/while и в лучшем случае процедур/функций осилить не могут, или не хотят: чего напрягаться-то? За это никто доплачивать не будет. Как преподавал под досовским Турбо-Паскалем 4.0/5.5, так и будет такой же стиль программирования требовать под любым другим компилятором). И плевать ему, что на Турбо-Паскалевский код PABC.NET в лучшем случае плюется Warning-ами о неправильном описании переменных цикла. А в худшем - вообще не компилируется. И это тоже я уже на форуме видел - вопросы "как перевести с Турбо-Паскаля?", причем программа требует прямого доступа к аппаратуре, что сейчас в принципе недостижимо.
2
Alvin Seville
 Аватар для Соколиный глаз
343 / 273 / 134
Регистрация: 25.07.2014
Сообщений: 4,537
Записей в блоге: 22
03.02.2018, 10:37
Цитата Сообщение от Анантин Посмотреть сообщение
Я ещё не изучал команды range, readinteger, println, select и прочее, что записать вместо них можно ?
Посмотрите, например про Linq для этого.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
03.02.2018, 10:37
Помогаю со студенческими работами здесь

Справа и слева от отрицательного числа поставить числа, равные последнему элементу массива
как справа и слева от отрицательного числа поставить числа равные последнему элементу массива?

Определить в тексте слова, которые можно читать слева направо и справа налево (Анна, шалаш и т.д.).
Помогите пожалуста решить. Задача: Определить в тексте слова, которые можно читать слева направо и справа налево (Анна, шалаш и т.д.).

В массив A[N] занесены натуральные числа. Вывести на экран индексы элементов,которые меньше данного K.
Буду благодарен за помощь!:-)

Записать по порядку числа в массив, которые вводятся через пробел
вводится: В первую строчку вводится число N – количество камней Во вторую строчку вводится N целых чисел, разделенных пробелами —...

В выходную последовательность записать только те числа, которые меньше суммы своих соседей
В выходную последовательность записать только те числа, которые меньше суммы своих соседей (если первое число меньше второго, записываем...


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

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Новые блоги и статьи
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL3_image
8Observer8 27.01.2026
Содержание блога SDL3_image - это библиотека для загрузки и работы с изображениями. Эта пошаговая инструкция покажет, как загрузить и вывести на экран смартфона картинку с альфа-каналом, то есть с. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru