Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форум «Всё о Паскале» _ Задачи _ 3 задачи на массивы

Автор: Crass 29.05.2008 21:28

Здравствуйте ! Помогите пожалуйста решить три задачи на массивы ... желательно текст программы ...

1) Дано целое число N и набор из N целых чисел. Найти номера первого и последнего минимального элемента из данного набора и вывести их в указанном порядке.

2) Дано множество А из N точек ( N > 2, точки заданы своими координатами х,у). найти наименьший периметр треугольника, вершины которого в различных точках множества А и сами эти точки (точки выводятся в том же порядке, в котором они перечислены при задании множества А.

3) Дан массив размера N. Перед каждым положительным элементом массива вставить элемент с нулевым значением.

Автор: klem4 29.05.2008 21:39

Сам не пробовал делать ? Что конкретно не получается ?

Автор: Crass 31.05.2008 1:33

я просто хз как ето делать ... с массивами плоховато у мя ... = (((

Автор: Ozzя 31.05.2008 15:17

3-я

For i:=2 to n do
if a[i] >0 then
a[i-1]:=0;

Автор: klem4 31.05.2008 16:45

А перед первым положительным не надо вставлять (если a[1] > 0) ? Без буферного массива не обойтись, ну или какого другого хранилища, либо изначально под массив заводить в 2 раза больше памяти.

+ У тебя даже не вставка получается а замена ...

Автор: Crass 5.06.2008 22:42

Задача, похожая на 3, только в условии - после каждого отрицательного вставить элемент с нулевым значением.


var i,n,j:integer;
a:array of integer;
begin
n:=5;
setlength(a,n);

for I := 0 to n-1 do
begin
write ('a[',i,']=');
readln(a[i]);
end;
for i := 0 to n-1 do
if a[i]<0 then
begin
n:=n+1;
setlength(a,n);
for j:=(n-1) downto i+1 do
a[j]:=a[j-1];
a[i+1]:=0;
end;
for i := 0 to n-1 do
writeln (' a[',i,']=' ,a[i]) ;
readln



Помогите переделать под условие третьей задачи...


ЗЫ и еще подскажите, что значит следующая запись:

 if (c<>' ') and (c<>#13) and (c<>#10) then 


где с : char