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

Преобразовать массив

03.03.2021, 22:50. Показов 1175. Ответов 8
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Дополнительное задание про одномерные массивы от преподавателя, не понимаю, что он хочет и как это сделать.

Преобразовать одномерный массив А[i]: до какого то к-ого элемента, расположить max значения исходных массивов после к-ого-ничего не меняя и чтобы к-ый, тоже остался. Пример добавлю, и как я понял, на примере показано, что катый пусть будет 2 и получается все, что до двух уходит превращается в ноль.
Миниатюры
Преобразовать массив  
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
03.03.2021, 22:50
Ответы с готовыми решениями:

одномерные массивы.не понимаю чуток
В массиве A найти среднее арифметическое индексов положительных чисел и количество нулей. Если нулей больше 2, то все нули заменить на это...

Не понимаю как сделать задание
Рассмотрим некоторое натуральное число N. если оно не является палиндромом, то построим новое число, изменив порядок цифр в записи числа N...

Не понимаю как сделать задание
Описать две переменные Т и С типа слово и поместить в них значения. Выполнить пересылку переменной Т в регистр ВХ, а переменной С в регистр...

8
Эксперт Pascal/Delphi
6812 / 4568 / 4820
Регистрация: 05.06.2014
Сообщений: 22,433
07.03.2021, 11:18
Желательно опубликовать полное и точное задание, которое дал преподаватель!
0
0 / 0 / 0
Регистрация: 23.09.2020
Сообщений: 31
07.03.2021, 15:45  [ТС]
Преподаватель просто написал мне задание на листке. Сейчас пришлю фотографию задания.
Миниатюры
Преобразовать массив  
0
Эксперт Pascal/Delphi
6812 / 4568 / 4820
Регистрация: 05.06.2014
Сообщений: 22,433
07.03.2021, 16:49
Пипец
До какого-то элемента к, заданного с клавиатуры, ищем максимумы в массиве и располагаем (как?) их... Остальное не трогаем?
0
Модератор
10442 / 5734 / 3406
Регистрация: 17.08.2012
Сообщений: 17,443
08.03.2021, 09:59
Неполное задание. До элемента с номером k расположить максимальные значения массива, а после элемента с номером k, включая сам k-й элемент, ничего не менять. Вроде всё хорошо, но...

В примере после элемента номер k=2 вместо последнего элемента указан прочерк, следовательно, массив после элемента номер k изменился (удалён последний элемент), но в задании указано, что никаких изменений быть не должно. Чему верить? Удалять максимальные элементы, или всё же оставлять правую часть массива без изменений? Если удалять, то что делать, если элементы с максимальным значением расположены не в конце массива? Кстати, максимальное значение может быть только одно. Что нужно делать, например, при k=4, если элемент с максимальным значением только один?

Уточните задание у Вашего преподавателя.
0
0 / 0 / 0
Регистрация: 23.09.2020
Сообщений: 31
08.03.2021, 20:37  [ТС]
До элемента с номером k расположить максимальные значения массива, а после нужно чтобы все элементы которые стоят до k превратились в ноль. Как на рисунке, мы выбрали k=2, а после все что стояло до 2 превращается в ноль.
0
Модератор
10442 / 5734 / 3406
Регистрация: 17.08.2012
Сообщений: 17,443
10.03.2021, 15:11
Цитата Сообщение от 1111dfsf Посмотреть сообщение
максимальные значения
Ещё раз: максимальное значение массива может быть только одно. Почему Вы о нём говорите во множественном числе? Может, конечно, быть несколько элементов массива, имеющих максимальное значение, но самО максимальное значение - только одно. Вы ничего не перепутали?

Цитата Сообщение от 1111dfsf Посмотреть сообщение
нужно чтобы все элементы которые стоят до k превратились в ноль
С какого перепуга? В задании этого нет. Может быть, Вы невнимательны? В последней строке в начале строки не 0, не 1 0, не Ю, а 10. Никакого превращения в ноль нет.

Разбор полётов, действуем по заданию:
Массив: 1 2 3 5 8 10
k = 2
Макс. значение: 10
Помещаем макс. значение до элемента с номером k (заменяем этим значением элемент с номером 1, имеющий значение 1):
10 2 3 5 8 10

Всё, задание выполнено. До k-го элемента расположили максимальное значение, после k-го элемента, включая сам k-й элемент, ничего не изменено.

Вот только... В примере в последней строке вместо последнего элемента стоит прочерк:
10 2 3 5 8 -
Это противоречит тому, что после k-го элемента, включая сам k-й элемент, ничего не должно быть изменено.

Это первое разночтение.

Далее. Максимальное значение только одно. Допустим, k=3. Как должен выглядеть результат?
Так:
10 2 3 5 8 10
Так:
10 10 3 5 8 10
Так:
10 2 3 5 8 -
Или так:
10 10 3 5 8 -
Дополнительно, если вдруг Ваш преподаватель путается в терминах (см. ниже):
Так:
10 8 3 5 8 10
Или так:
10 8 3 5 - -

Это второе разночтение.

Уточните у Вашего невнимательного преподавателя:
  • следует ли дублировать максимальное значение, если k>2;
  • нужно ли удалять из массива максимальные значения после k-го элемента, включая сам k-й элемент, и как это делать: чем-то заменять максимум, или уменьшать количество элементов, либо всё-таки ничего в указанной части массива не менять?
  • может быть, он считает, что до элемента номер k следует расположить k-1 элементов массива, отсортированного в порядке невозрастания, иными словами, он считает, что максимальное значение - это "первое максимальное значение", наибольшее из оставшихся - это "второе максимальное значение", и так далее? Если так, то у меня для него очень плохие новости, и ещё пара десятков вопросов, первый из которых - насчёт его соответствия занимаемой должности.

Добавлено через 11 минут
Да, ещё вопрос: в задании говорится только про массив A[i], но далее написано "исходных массивов", а не "исходного массива" Это опечатка, или очередной повод для сомнений?
0
Модератор
10442 / 5734 / 3406
Регистрация: 17.08.2012
Сообщений: 17,443
11.03.2021, 11:27
И ещё... Паскали, они разные бывают... Вы уверены, что Вам нужна программа именно на Pascal ABC.NET? Точно-точно? Что-то мне подсказывает, что Вы не изучали ни лямбда-выражения, ни методы работы с последовательностями, ни прочие возможности Microsoft .NET Framework. Скорее всего, Ваш невнимательный преподаватель учил Вас Турбо Паскалю, а в качестве бесплатного компилятора посоветовал не Freе Pascal, не Pascal ABC, не сам Turbo Pascal, не что-нибудь ещё, а, как это принято у невнимательных, Pascal ABC.NET, который разительно отличается от прочих паскалей, и которому он Вас не учил.

Например, если Ваш учитель имел ввиду, что Ваше задание такое:

Преобразовать одномерный массив А[i]: первые k-1 элементов массива заменить на максимальное значение, элементы массива после k-го включительно не изменять.

То решение может быть таким:
Pascal
1
2
3
4
5
6
##
  'Исходный массив:'.PrintLn; 
  var a := ArrRandom(15, -99, 99).PrintLn; //генерация и печать массива
  var k := ReadLnInteger('k ='); //ввод k
  'Преобразованный массив:'.PrintLn; 
  a := (ArrFill(pred(k), a.Max) + a.Slice(pred(k), 1)).PrintLn; //преобразование и печать массива
Замечание: это вся программа целиком, и это не самый оптимальный вариант решения.

Несколько не похоже на то, чему Вас учили, не так ли?

Добавлено через 1 час 17 минут
Для сравнения, то же самое для любого паскаля:
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
const
  n = 15; //количество элементов в массиве
var
  a: array[1..n] of integer; //массив
  i, k, m: integer; //счётчик, k, максимальное значение
begin
  randomize; //инициализация ГПСЧ
  //генерация и печаь массива
  writeln('Исходный масив:');
  for i := 1 to n do //цикл по номерам элементов массива
    begin
      a[i] := -99 + random(199); //генерируем элемент в диапазоне [-99..99]
      write(a[i]:4) //печатаем элемент в 4 позиции
    end;
  writeln; //перевод печати на новую строку
  //поиск максимального значения
  m := a[1]; //пока считаем, что максимальное значение имеет первый элемент
  for i := 2 to n do //перебираем все элементы, кроме первого
    if a[i] > m then m := a[i]; //если элемент больше m, то принимаем его значение за максимальное
  //ввод k
  write('k = ');
  readln(k);
  //преобразование и печать массива
  writeln('Преобразованный массив:');
  for i := 1 to n do //цикл по номерам элементов массива
    begin
      if i < k then a[i] := m; //если номер элемента < k, заменяем его значение на максимальное
      write(a[i]:4) //печатаем элемент в 4 позиции
    end;
  readln
end.
Можете попробовать сдать эту программу, вполне возможно, что подойдёт. Но полной уверенности нет: пока что неясно, что именно имел ввиду Ваш преподаватель.
0
0 / 0 / 0
Регистрация: 23.09.2020
Сообщений: 31
12.03.2021, 20:04  [ТС]
В любом случае благодарю вас за помощь и то что потратили на это время.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
12.03.2021, 20:04
Помогаю со студенческими работами здесь

В упор не понимаю как сделать столкновение персонажа с объектами. Как мне это сделать?
//Source.cpp #include &lt;SFML/Graphics.hpp&gt; #include &lt;iostream&gt; #include &lt;string&gt; #include &quot;map.h&quot; using namespace sf; using...

Может кто-нибудь такое сделать пожалуйста мой вариант 9 там в конце это задание про СМО
в матлабе Правила форума: 5.18. Запрещено размещать задания и решения в виде картинок и других файлов с их текстом. Задания и решения...

Не понимаю, структуры...и как сделать задание
Мне надо составить структуру, содержащую информацию о иностранцах, в ней надо указать часть света и страну из которой прибыли. Определить...

Не понимаю, как это сделать?
Даны натуральное число n, действительные числа a1,...,an. В последовательности a1,...,an все неотреыательные члены не принадлежащие отрезку...

Не понимаю как это сделать...
Составить программу вывода n вложенных квадратов произвольного цвета и размера.


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

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Новые блоги и статьи
SDL3 для Desktop (MinGW): Рисуем цветные прямоугольники с помощью рисовальщика SDL3 на Си и C++
8Observer8 17.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-rectangles-sdl3-c. zip finish-rectangles-sdl3-cpp. zip
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие. Ссылка в Linux — это запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая ссылка» (hard link),. . .
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора ВВЕДЕНИЕ Выполняя задание на управление насосной группой заполнения резервуара,. . .
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru