Форум программистов, компьютерный форум, киберфорум
Наши страницы
Pascal ABC
Войти
Регистрация
Восстановить пароль
 
igor55405
0 / 0 / 1
Регистрация: 10.04.2015
Сообщений: 33
#1

Удалить из массива первую группу нулей идущие подряд - Pascal ABC

09.06.2015, 05:34. Просмотров 338. Ответов 6
Метки нет (Все метки)

Удалить из массива первую группу нулей идущие подряд. Если нет нулей то выдать сообщение об ошибки.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
09.06.2015, 05:34
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Удалить из массива первую группу нулей идущие подряд (Pascal ABC):

Удалить подряд идущие одинаковые символы
var i: integer; s: string; procedure DS(s:string; i:integer); ...

В массиве A=(a1, а2, ..., аn) удалить все подряд идущие отрицательные элементы, идущие вслед за минимальным элементом массива.
Помогите написать на паскале программу для: В массиве A=(a1, а2, ..., аn)...

Из массива Х удалить первую группу знакочередующихся элементов.
Из массива Х удалить первую группу знакочередующихся элементов. Добавлено...

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

Удалить из строки все подряд идущие одинаковые символы
Удалить из строки все подряд идущие одинаковые символы(КУмир/Паскаль)

Удалить из заданной символьной строки подряд идущие одинаковые символы
Задание: Написать программу, которая удаляет из заданной символьной строки...

6
Puporev
Модератор
54148 / 41781 / 28887
Регистрация: 18.05.2008
Сообщений: 98,329
09.06.2015, 07:18 #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
uses crt;
const nmax=100;
var n,i,j,k,i1:integer;
    a:array[1..nmax]of integer;
begin
randomize;
repeat
write('Размер массива от 2 до ',nmax,' n=');
readln(n);
until n in [2..nmax];
writeln('Исходный массив');
for i := 1 to n do
 begin
  a[i]:=random(3);
  write(a[i]:4);
 end;
writeln;
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
 begin
  writeln('Нулевых элементов нет');
  exit
 end;
writeln('Первый нулевой в позиции ',i1);
k:=0;
i:=i1;
while a[i]=0 do
 begin
  k:=k+1;
  i:=i+1;
 end;
for i:=1 to k do
 begin
  for j:=i1 to n-1 do
  a[j]:=a[j+1];
  n:=n-1;
 end;
writeln('Удаление первой группы нолей');
for i:=1 to n do
write(a[i]:4)
end.
1
Rasomaha
55 / 55 / 37
Регистрация: 11.05.2015
Сообщений: 196
09.06.2015, 07:34 #3
Puporev, зачем такие программы писать, или я чего недопонимаю? Можно простенько и со вкусом
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
var
i,j: Integer;
A: Array of Integer;
...
begin
...
i:=0;
If A[0]<>0 then Writeln('Error!') else
begin
  While (A[i]=0 or i<Length(A)-1) do Inc(I);
  For j:=0 to Length(A)-i do A[j]:=A[j+i];
  SetLength(A,Length(A)-i);
end;
...
end.
или такой код не будет работать в паскале?
1
Puporev
Модератор
54148 / 41781 / 28887
Регистрация: 18.05.2008
Сообщений: 98,329
09.06.2015, 07:51 #4
Так Вы проверьте в простом АВС и в АВС.net

Добавлено через 1 минуту
Цитата Сообщение от Rasomaha Посмотреть сообщение
If A[0]<>0 then Writeln('Error!')
Вот это что за изыск? Почему первый элемент должен быть нолем?
0
Rasomaha
55 / 55 / 37
Регистрация: 11.05.2015
Сообщений: 196
09.06.2015, 07:54 #5
Цитата Сообщение от Puporev Посмотреть сообщение
Вот это что за изыск? Почему первый элемент должен быть нолем?
Потому что динамический массив. Вообще я всегда считал с 0 а не с 1. и если даже определять статический масиив объявляю его так
Pascal
1
var A: Array [0..9] of Integer;
или я не правильно понял вопрос?
Цитата Сообщение от igor55405 Посмотреть сообщение
Если нет нулей то выдать сообщение об ошибки.
и только теперь допер в чем проблема, ну ладно, мой код удаляет только первые нули, можно его немного подредактировать и он будет первую группу нулей удалять...
0
Puporev
Модератор
54148 / 41781 / 28887
Регистрация: 18.05.2008
Сообщений: 98,329
09.06.2015, 07:56 #6
Цитата Сообщение от Rasomaha Посмотреть сообщение
Потому что динамический массив.
А разве я об этом? Я же спросил
Цитата Сообщение от Puporev Посмотреть сообщение
Почему первый элемент должен быть нолем?
поскольку у Вас написано
Цитата Сообщение от Rasomaha Посмотреть сообщение
If A[0]<>0 then Writeln('Error!')
0
derevyashka
1 / 1 / 4
Регистрация: 17.09.2015
Сообщений: 112
21.11.2016, 21:34 #7
Как изменить эту программу, чтобы она все повторяющиеся нули заменяла одним нулем?
0
21.11.2016, 21:34
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
21.11.2016, 21:34
Привет! Вот еще темы с решениями:

Исключить из массива группу с наибольшим числом подряд идущих положительных элементов
В одномерном массиве А = (а1, а2, . . . аn) исключить из массива группу с...

Переписав в начало массива группу, содержащую наибольшее число подряд идущих положительных элементов
Скорректировать массив A=(a1, а2, ..., аn), переписав в начало массива...

Удалить из массива последнюю группу элементов
Удалить из массива последнюю группу элементов, представляющих собой...

Удалить все положительные элементы, имеющие четный порядковый номер, идущие после минимального элемента массива.
Задание. Выполнить действия над одномерным массивом. Удалить все положительные...


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

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

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