Страница 1 из 1

Помогите с двумя задачами(одномерные массивы)

Добавлено: 13 дек 2009, 15:42
nitrozevs
Доброе время суток.
Помогите пожайлуста, мне задали 2 задачи на Паскале, они лёгкие, но я не как не могу дадуматься как их решать.
Напишите ФРАГМЕНТ(а именно ТЕЛО ПРОГРАММЫ от begin и до end):

вот условия:
1)В одномерном массиве, найти кол-во элементов, расположенных после первого нулевого элиемента и после последнего нулевого элемента. Сравнить эти данные.

2)Дан одномерный массив цеых чисел. Найти кол-во различных элементов данного массива (отсортировать).

Re: Помогите с двумя задачами(одномерные массивы)

Добавлено: 14 дек 2009, 00:40
XTen
Пиши, решу дёшево
ICQ: 410-691-984

Re: Помогите с двумя задачами(одномерные массивы)

Добавлено: 14 дек 2009, 04:24
dr.Jekill
Ну если это: "В одномерном массиве, найти кол-во элементов, расположенных после первого нулевого элемента и после последнего нулевого элемента. Сравнить эти данные." первая подпрограмма, а это: "Найти кол-во различных элементов данного массива (отсортировать)." вторая, то основная программа может выглядеть так:
[syntax="pascal"]
begin
proc1;
proc2;
readln;
end;
[/syntax]
Если у Вас нет таких процедур, то это далеко не "ФРАГМЕНТ", а полностью программа. В этом случае для первой Вам может пригодиться:
[syntax="pascal"]
i:=0;
while a<>0 then inc(i);
kol1:=i;
i:=n;
//n - количество элементов массива
while a<>0 then dec(i);
kol2:=n-i;
if kol1<>kol2 then ...
[/syntax]
А на счет второй задание не совсем понятно: то ли посчитать кол-во неповторяющихся элементов, то ли действительно отсортировать.

Re: Помогите с двумя задачами(одномерные массивы)

Добавлено: 14 дек 2009, 09:51
Хыиуду
1. for i:=n-1 downto 1 do
if A[n-i]=0 then break;
for j:=0 to n-1 do
if A[n-j]=0 then break;
i и j - исходные числа.