Сергей
Сергей

помогите пожалуста с одномерным массивом в Pascal

Задача № 6
Дан одномерный массив размерностью N. Вставить между элементами, совпадающими по знаку, число 0.
здесь надо сам код программы и алгоритм я так и не понял как её делать

АК
Алексей Карташов

Вообще, любая вставка, иначе говоря увеличения размера предполагает работу с динамическими объектами. Но, видимо, до этого вряд ли дойдет.

var
a: array [1..200] of integer;
n, c, k: integer;
begin
randomize;
write('размер массива (<= 100): ');
readln(n);
if (n < 1) or (n > 100) then exit;
writeln('исходный массив: ');
for c := 1 to n do begin
a[c] := random(101) - 50;
write(' ', a[c]);
end;
writeln;
c := 1;
while c < n do begin
if (a[c] < 0) = (a[c + 1] < 0) then begin
for k := n + 1 downto c + 1 do a[k] := a[k - 1];
a[c + 1] := 0;
inc(c);
inc(n);
end;
inc(c);
end;
writeln('преобразованный массив: ');
for c := 1 to n do write(' ', a[c]);
readln;
end.

ЗЫ: таки хотелось бы увидеть и твою попытку решения.

СБ
Софья Буланова

Пиши в личку, 100 рублей, помогу.. .

ИМ
Иван Мейхер

ну раз тебе лень поискать то и мне лень тебе расписывать, сам совместишь из двух примеров
код на повторяющиеся элементы:
uses crt;
var a:array[1..100]of integer;
i,n,kol,ch,j:integer;
begin clrscr;
randomize;
write('n=');
read(n);
for i:=1 to n do
begin
a:=random(20);
write(a,' ');
end;
writeln;
for j:=1 to n do
begin
kol:=0;
ch:=a[j];
for i:=1 to n do
if a=ch then inc(kol);
writeln('element ',ch,' vstrechaetsya ',kol,' raz');
end;
readkey;
end.
этот на замену элементов:
uses crt;
const n:=15;
var a:array [1..n] of integer;
i:integer;
begin
for i:=1 to n do
begin write('Введите a[,'i',]:');
readln(a);
end;
For i:=1 to N do
if a mod 2=1 then
a:=0;
end;
For i:=1 to N do {Вывод преобразованного массива на экран, можно без этого}
Write('a[,'i',]:', ,'a[,'i',]',);
end;
end.

РК
Ринат Камалетдинов

var a:array[1..11]of integer;
i,n,j:integer; s,s1:string;
begin
for i:=1 to 10 do begin
a:=random(9);
s:=s+inttostr(a);
end;
for j:=1 to 10 do begin
if a[j]=a[j+1] then s1:=s1+inttostr(a[j])+'0' else s1:=s1+inttostr(a[j]);
end;
writeln(s); writeln; writeln(s1);
end.

Есть пару багов 1-й= если ставить например a:=random(99); тогда прога подтупливает вот так например
7559594818867852863
755905948180867852863 -0 между восьмерок (не в тему))) )
2-й если ставить a:=random(9); тогда если в конце 0 то прога автоматом ставит еще один 0
Вот так например
0834435510
0834043505100(можно дописать условие и убрать этот баг. ) Не судите строго на скорую руку написал))) )

ыыы, я походу тоже не понял задание ))))))))))))))0

Похожие вопросы
программирование (одномерные массивы)
Обработка одномерных массивов.
Паскаль. Одномерные массивы.
Паскаль одномерные массивы)
Помогите с задачами по массивам (Pascal)
ПОМОГИТЕ В С# В одномерном массиве
Одномерные массивы (с++)
Одномерные массивы. . Помогите решить срочно!!
Одномерные массивы в с++ 2008
Задача на одномерные массивы