Форум программистов, компьютерный форум, киберфорум
Pascal ABC
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/64: Рейтинг темы: голосов - 64, средняя оценка - 4.67
7 / 7 / 4
Регистрация: 04.12.2010
Сообщений: 65

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

30.05.2011, 09:25. Показов 12452. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
работа с одномерными массивами:
1) вставить элемент после первого отрицательного элемента
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
uses crt;
const n=10;
type aa=array[1..n] of integer;
var i,k,b, el,c,nom: integer;
    a:aa;
procedure massiv (var a:aa);
     var i:integer;
     begin
    writeln('ishodnyi massiv: ');
    randomize;
    for i:=1 to n do
    begin
    a[i]:=random(100)-50;
    writeln(a[i]);
    end;  end;
procedure otr (var a:aa; var el: integer);
var i:integer;
begin
el:=a[1];
   for i:=n downto 1 do
   if a[i]<0 then
    el:=a[i];
    writeln('pervyi otr el: ',el);
end;
begin
   clrscr;
writeln('vvedite element:= ');
readln(c);
massiv(a);
otr(a,el);
b:=a[i+1];
c:=b;
  writeln('polu4ennyi massiv: ');
   for i:=1 to n do
   writeln(a[i]);
   readln
end.
помогите дописать....

Добавлено через 10 часов 17 минут
1)
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
uses crt;
const n=10;
var
   a:array [1..n+1] of integer;
   i,k:integer;
  begin
  clrscr;
   randomize;
    for i:=1 to n do
    a[i]:=-20+random(60);
    writeln('ishodnyi massiv: ');
for i:=1 to n do
write(a[i],' ');
writeln;
//poisk 1-go otrisatelnogo elementa
 for i:=1 to n do
     if a[i]<0 then
        begin
        k:=i;
        i:=n;
        end;
// vstavka posle 1-go otrisatelnogo elementa
     for i:=n+1 downto k+1 do
     a[i]:=a[i-1];
     a[k+1]:=100;
       writeln('polu4ennyi massiv: ');
       for i:=1 to n+1 do
        write(a[i], ' ');
       writeln;
       end.
Добавлено через 15 секунд
1)
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
uses crt;
const n=10;
var
   a:array [1..n+1] of integer;
   i,k:integer;
  begin
  clrscr;
   randomize;
    for i:=1 to n do
    a[i]:=-20+random(60);
    writeln('ishodnyi massiv: ');
for i:=1 to n do
write(a[i],' ');
writeln;
//poisk 1-go otrisatelnogo elementa
 for i:=1 to n do
     if a[i]<0 then
        begin
        k:=i;
        i:=n;
        end;
// vstavka posle 1-go otrisatelnogo elementa
     for i:=n+1 downto k+1 do
     a[i]:=a[i-1];
     a[k+1]:=100;
       writeln('polu4ennyi massiv: ');
       for i:=1 to n+1 do
        write(a[i], ' ');
       writeln;
       end.
Добавлено через 12 минут
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
uses crt;
const n=10;
var
   a:array [1..n+1] of integer;
   i,k:integer;
  begin
  clrscr;
   randomize;
    for i:=1 to n do
    a[i]:=-20+random(60);
    writeln('ishodnyi massiv: ');
for i:=1 to n do
write(a[i],' ');
writeln;
//poisk 1-go otrisatelnogo elementa
 for i:=1 to n do
     if a[i]<0 then
        begin
        k:=i;
        i:=n;
        end;
// vstavka posle 1-go otrisatelnogo elementa
     for i:=n+1 downto k+1 do
     a[i]:=a[i-1];
     a[k+1]:=100;
       writeln('polu4ennyi massiv: ');
       for i:=1 to n+1 do
        write(a[i], ' ');
       writeln;
       end.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
30.05.2011, 09:25
Ответы с готовыми решениями:

Вставить элемент с заданным значением после первого отрицательного элемента массива
вставить элемент с значением после первого отрицательного элемента массива) надо с помощью процедур и функций Добавлено через 4...

Вставить элемент, равный номеру вашего компьютера, после первого отрицательного элемента
Заполнить массив из 10 элементов случайными числами в интервале . Вывести массив на экран. Вставить элемент, равный номеру вашего...

Одно число вставить после первого отрицательного элемента массива, второе – после последнего положительного
Вот условие - Дан одномерный массив. Надо одно число вставить после первого отрицательного элемента массива, второе – после последнего...

4
Почетный модератор
 Аватар для Puporev
64315 / 47611 / 32743
Регистрация: 18.05.2008
Сообщений: 115,167
30.05.2011, 09:32
Лучший ответ Сообщение было отмечено Памирыч как решение

Решение

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
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
uses crt;
const nmax=100;
type aa=array[1..nmax] of integer;
procedure massiv (var a:aa;var n:byte);//создание массива
var i:byte;
begin
repeat
write('Razmer massiva do ',nmax,' n=');
readln(n);
until n in [1..nmax];
for i:=1 to n do
a[i]:=random(100)-50;
end;
procedure print(var a:aa;n:byte);//вывод массива на печать
var i:byte;
begin
for i:=1 to n do
write(a[i]:4);
writeln;
writeln;
end;
procedure otr (var a:aa;n:byte; var i1:byte);//поиск позиции первого отрицательного
var i:byte;
begin
i1:=0;
i:=1;
while(i<=n) and(i1=0) do
if a[i]<0 then i1:=i
else i:=i+1;
if i1=0 then writeln('В массиве нет отрицательного элемента!')
else writeln('Первый отрицательный элемент=',a[i1],' его индекс=',i1);
writeln;
end;
procedure before(var a:aa; i1:byte; el:integer; var n:byte);//вставка перед
var i:byte;
begin
n:=n+1;//увеличим размер(поэтому его нельзя константой)
for i:=n downto i1+1 do //сдвинем масив на 1 вправо с этого индекса
a[i]:=a[i-1];
a[i1]:=el;//вставим на его место
end;
procedure after(var a:aa; i1:byte; el:integer; var n:byte);//вставка после
var i:byte;
begin
n:=n+1;
if i1=n-1 then a[n]:=el //если он был последний, то пишем за ним
else // иначе сдвигаем начиная с элемента за ним
 begin
  for i:=n downto i1+2 do
  a[i]:=a[i-1];
  a[i1+1]:=el;//после него пишем
 end;
end;
 
var c:integer;
    n,v:byte;
    a:aa;
begin
clrscr; //в АВС это не нужно
writeln('ishodnyi massiv: ');
massiv(a,n);
print(a,n);
otr(a,n,v);
if v>0 then //если есть отрицательный
 begin
  write('vvedite element dlya vstavki c=');
  readln(c);
  after(a,v,c,n); //сначала вставляем после, чтобы не сменился индекс элемента
  writeln('vstavka posle:');
  print(a,n);
  before(a,v,c,n);//потом перед
  writeln('vstavka pered:');
  print(a,n);
 end;
readln //в АВС это не нужно
end.
2
8 / 8 / 13
Регистрация: 03.02.2013
Сообщений: 159
20.11.2013, 23:32
Написал всё через процедуры, просто писец) можно же гораздо проще, если напишу закину обязательно
0
Почетный модератор
 Аватар для Puporev
64315 / 47611 / 32743
Регистрация: 18.05.2008
Сообщений: 115,167
21.11.2013, 07:32
Цитата Сообщение от legozaur Посмотреть сообщение
можно же гораздо проще,
Можно, но не нужно.
0
8 / 8 / 13
Регистрация: 03.02.2013
Сообщений: 159
22.11.2013, 21:47
Лучший ответ Сообщение было отмечено Памирыч как решение

Решение

ВНИМАНИЕ! Программа вставляет элемент только после минимально элемента!
Вот мой вариант, возможно кому-нибудь пригодится.
(Мне лично приспичило без процедур написать ибо нельзя)
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
uses crt;
const n=11;
type t=array[1..n] of integer;
var z,j,i,min,mini:integer;
    a:t;
begin
writeln('Исходный рандомный массив');
randomize;
for i:=1 to n-1 do
  begin
  a[i]:=random(100)-50;
  write(a[i]:3,' ');
  end;
min:=0;
for i:=1 to n-1 do
  begin
  if a[i]<min then begin
  min:=a[i];
  mini:=i;
  end;
  end;
z:=min;
writeln;
writeln('Минимальнео значение: ',min,' ');
//writeln;
write('Введите число, которое нужно вставить после минимального числа.');
writeln;
write('Число = ');
readln(z);
writeln('Новый массив');
for i:=1 to mini do begin
write(a[i]:3,' ');
end;
write(' ',z,' ');
for i:=mini+1 to n-1 do begin
write(a[i]:3,' ');
end;
writeln;
writeln('Конец программы.');
end.
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
22.11.2013, 21:47
Помогаю со студенческими работами здесь

Массив: Вставить в него заданное число после первого отрицательного элемента
Дан целочисленный линейный массив. Вставить в него заданное число после первого отрицательного элемента.

Найти сумму модулей элементов массива, расположенных после первого отрицательного элемента
Доброго время суток! Помогите с программой пожалуйста Задание такое: В одномерном массиве, состоящем из n вещественных элементов,...

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

После первого четного элемента массива вставить 0
После первого четного элемента вставить 0. Пример: из массива A: 1 6 8 3 4 должен получиться массив A: 1 6 0 8 3 4.

После первого элемента массива, оканчивающегося на k, вставить ноль
Условие задачи: после первого элемента, оканчивающегося на k вставить ноль. Программа работает, но только если этот элемент не последний....


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru