Форум программистов, компьютерный форум, киберфорум
Turbo Pascal
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.67/9: Рейтинг темы: голосов - 9, средняя оценка - 4.67
2 / 2 / 1
Регистрация: 20.10.2013
Сообщений: 41
1

Удалить из массива элемент, расположенный после первого элемента с максимальным значением

26.10.2013, 17:17. Показов 1752. Ответов 8
Метки нет (Все метки)

Удалить из массива элемент, расположенный после первого элемента с максимальным значением, и элемент после первого элемента с минимальным значением. Если удаление элементов невозможно, выдать об этом сообщение.

Нид хелп(
0

Помощь в написании контрольных, курсовых и дипломных работ здесь.

Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
26.10.2013, 17:17
Ответы с готовыми решениями:

Вставить элемент с данным значением после первого отрицательного элемента массива
Вставить элемент с данным значением после первого отрицательного элемента/

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

Вставить элемент со значением 0 после максимального элемента массива
1) Дан одномерный массив. Вставить элемент со значением 0 после макслимального элемента. (найдите...

Поменять местами значение первого четного элемента массива со значением последнего нечетного элемента массива.
Дан массив С(30). Поменять местами значение первого четного элемента массива со значением...

8
42 / 42 / 51
Регистрация: 04.01.2013
Сообщений: 105
26.10.2013, 18:37 2
Лучший ответ Сообщение было отмечено Памирыч как решение

Решение

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
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
uses
  crt;
 
var
  x: array [0 .. 14] of integer;
  min, max: integer;
  i, mx, mn: byte;
 
begin
  mx := 0;
  mn := 0;
 
  randomize;
  writeln('Исходный массив:');
  for i := 0 to 14 do
  begin
    x[i] := random(20) - 10;
    writeln('X[', i, '] = ', x[i]);
  end;
 
  min := x[1];
  max := x[1];
  for i := 0 to 14 do
  begin
    if x[i] > max then
    begin
      max := x[i];
      mx := i;
    end
    else if x[i] < min then
    begin
      min := x[i];
      mn := i;
    end;
  end;
 
  writeln;
 
  writeln('Максимальный элемент: X[', mx, '] = ', max);
  writeln('Минимальный элемент: X[', mn, '] = ', min);
 
  writeln;
 
  if (mx or mn) = 14 then
    writeln('Удаление невозможно')
  else
  begin
    for i := mx to 13 do
      x[i] := x[i + 1];
    for i := mn to 12 do
      x[i] := x[i + 1];
 
    writeln;
    writeln('Конечный массив:');
 
    for i := 0 to 12 do
      writeln('X[', i, '] = ', x[i]);
  end;
  readln;
end.
1
2 / 2 / 1
Регистрация: 20.10.2013
Сообщений: 41
26.10.2013, 19:19  [ТС] 3
почти правильно, только тут он просто присваивает x[i]:=x[i+1] , а так работает неверно. он просто убирает значения максимума и минимума из массива, а надо чтобы удалялись следующие элементы. Надо вроде делать X[i+1]:= ' ' (пустой элемент, однако там несоответствие типов byte и string, а как переводить число в строку в челочисленном массиве я не помню. вроде str , но я хз/
и в конце я сделал write , надо чтобы он в строку выводил
0
42 / 42 / 51
Регистрация: 04.01.2013
Сообщений: 105
26.10.2013, 19:23 4
Что по-вашему означает "удалить элемент из массива"? Ему нужно присвоить какое-то значение или как?
1
2 / 2 / 1
Регистрация: 20.10.2013
Сообщений: 41
26.10.2013, 19:28  [ТС] 5
вместо цифры оставить пустое пространство, те было 5 1 -3 4 -1 0 а должно стать 5 -3 -1 0

только я не помню как в в массив типа integer вставлять стринговские пропуски(
0
42 / 42 / 51
Регистрация: 04.01.2013
Сообщений: 105
26.10.2013, 19:45 6
Никак не вставить. Масив же типа integer. Это тоже самое, что и присвоить переменной типа integer символ.
1
2 / 2 / 1
Регистрация: 20.10.2013
Сообщений: 41
26.10.2013, 19:50  [ТС] 7
Цитата Сообщение от sobakabobik Посмотреть сообщение
Никак не вставить. Масив же типа integer. Это тоже самое, что и присвоить переменной типа integer символ.
тогда остается метод сдвига, который вы сделали. Только проблема, он удаляет сам max и min, а не следующий элемент
0
42 / 42 / 51
Регистрация: 04.01.2013
Сообщений: 105
26.10.2013, 21:22 8
Лучший ответ Сообщение было отмечено Памирыч как решение

Решение

Не проверял, но должно работать.
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
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
uses
  crt;
 
var
  x: array [0 .. 14] of integer;
  min, max: integer;
  i, mx, mn: byte;
 
begin
  mx := 0;
  mn := 0;
 
  randomize;
  writeln('Исходный массив:');
  for i := 0 to 14 do
  begin
    x[i] := random(20) - 10;
    writeln('X[', i, '] = ', x[i]);
  end;
 
  min := x[1];
  max := x[1];
  for i := 0 to 14 do
  begin
    if x[i] > max then
    begin
      max := x[i];
      mx := i;
    end
    else if x[i] < min then
    begin
      min := x[i];
      mn := i;
    end;
  end;
 
  writeln;
 
  writeln('Максимальный элемент: X[', mx, '] = ', max);
  writeln('Минимальный элемент: X[', mn, '] = ', min);
 
  writeln;
 
  if (mx or mn) = 14 then
    writeln('Удаление невозможно')
  else
  begin
    for i := mx + 1 to 13 do
      x[i] := x[i + 1];
    fori:= mn + 1 to 12 do
      x[i] := x[i + 1];
 
    writeln;
    writeln('Конечный массив:');
 
    for i := 0 to 12 do
      writeln('X[', i, '] = ', x[i]);
  end;
  readln;
end.
1
2 / 2 / 1
Регистрация: 20.10.2013
Сообщений: 41
26.10.2013, 23:06  [ТС] 9
все работает, спасибо что не бросили в беде)
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
26.10.2013, 23:06

Помощь в написании контрольных, курсовых и дипломных работ здесь.

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

Включить после каждого элемента списка с максимальным значением его копию
Дан список из n целых чисел а1,а2,....,аn. Включить после каждого элемента с максимальным значением...

Удалить столбец с максимальным значением суммы двумерного массива
Дан двумерный массив. 1)Удалить столбец с максимальный значением суммы двумерного массива...

Удалить первый четный и первый нечетный элемент до первого отрицательного элемента массива
Помогите, пожалуйста! Дан одномерный массив. Удалить первый четный и первый нечетный элемент до...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.