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

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

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

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

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

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

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

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

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

6
Puporev
Модератор
54693 / 42108 / 29075
Регистрация: 18.05.2008
Сообщений: 99,368
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
Модератор
54693 / 42108 / 29075
Регистрация: 18.05.2008
Сообщений: 99,368
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
Модератор
54693 / 42108 / 29075
Регистрация: 18.05.2008
Сообщений: 99,368
09.06.2015, 07:56 6
Цитата Сообщение от Rasomaha Посмотреть сообщение
Потому что динамический массив.
А разве я об этом? Я же спросил
Цитата Сообщение от Puporev Посмотреть сообщение
Почему первый элемент должен быть нолем?
поскольку у Вас написано
Цитата Сообщение от Rasomaha Посмотреть сообщение
If A[0]<>0 then Writeln('Error!')
0
derevyashka
1 / 1 / 0
Регистрация: 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