Другие языки программирования и технологии
помогите с написанием программ на паскале
1)отсортировать массив так чтобы сначала шли отрицательные потом нулевые и затем положительные значения(сортировка в порядке ввода). т.е если вводишь массив -3,-5,1,0 то программа сортирует так: -3,-5,0,1 2)вывести на экран сообщение что больше сумма положительных или сумма отрицательных элементов, учесть вариант с равностью значений.
Нафига три? Можно одним обойтись.
j:=1;
{сначала переносим в начало отрицательные}
for i:=1 to n do
if a[ i ] < 0 then begin
b:=a[ i ];
for k:=i downto j do a[k]:=a[k-1];
a[j]:=b;
inc(j);
end;
{затем за ними выстраиваем нулевые}
for i:=j to n do
if a[ i ] = 0 then begin
b:=a[ i ];
for k:=i downto j do a[k]:=a[k-1];
a[j]:=b;
inc(j);
end;
{а положительные автоматом станут в конце}
j:=1;
{сначала переносим в начало отрицательные}
for i:=1 to n do
if a[ i ] < 0 then begin
b:=a[ i ];
for k:=i downto j do a[k]:=a[k-1];
a[j]:=b;
inc(j);
end;
{затем за ними выстраиваем нулевые}
for i:=j to n do
if a[ i ] = 0 then begin
b:=a[ i ];
for k:=i downto j do a[k]:=a[k-1];
a[j]:=b;
inc(j);
end;
{а положительные автоматом станут в конце}
ну и? первый можно отсортировать просто по возрастанию
Ерлан Бекишев
нельзя
скорей всего тут надо использовать три массива для каждого отриц, положит. и нулевых элементов. а потом все объединить в один.
i1,i2,i3 := 1;
repeat
readln(n); {вводим число}
if n < 0 then begin a1[ i2 ] := n; inc(i1); end;
if n = 0 then begin a2[ i2 ] := n; inc(i2); end;
if n > 0 then begin a3[ i3 ] := n; inc(i3); end;
writeln('continue?'); readln(q);
until q = 'n';
k:=1; j := 1;
for i:=j to i1-1 do begin a[ k ] := a1[ i ]; inc(k); inc(j); end;
j := 1;
for i:=j to i2-1 do begin a[ k ] := a2[ i ]; inc(k); inc(j); end;
j := 1;
for i:=j to i3-1 do begin a[ k ] := a3[ i ]; inc(k); inc(j); end;
writeln('всего элементов ' k-1);
сумму думаю сам сможешь найти
i1,i2,i3 := 1;
repeat
readln(n); {вводим число}
if n < 0 then begin a1[ i2 ] := n; inc(i1); end;
if n = 0 then begin a2[ i2 ] := n; inc(i2); end;
if n > 0 then begin a3[ i3 ] := n; inc(i3); end;
writeln('continue?'); readln(q);
until q = 'n';
k:=1; j := 1;
for i:=j to i1-1 do begin a[ k ] := a1[ i ]; inc(k); inc(j); end;
j := 1;
for i:=j to i2-1 do begin a[ k ] := a2[ i ]; inc(k); inc(j); end;
j := 1;
for i:=j to i3-1 do begin a[ k ] := a3[ i ]; inc(k); inc(j); end;
writeln('всего элементов ' k-1);
сумму думаю сам сможешь найти
Ерлан Бекишев
ОГРОМНОЕ спасибо!!!!
Похожие вопросы
- Помогите пожалуйста создать программу на Паскале. Заранее всем благодарен
- помогите пожалуйста составить программу в паскале
- Pycharm (Пожалуйста, помогите с написанием программы)
- люди добрые помогите мне написать программу в паскале, метод Рунге Кутта. Математическое решение есть у меня
- Программирование на Паскале Помогите, пожалуйста , написать программу на паскале
- Помогите пожайлуста доделать программу в паскале! Не получается ((
- Помогите в написании программы.
- Помогите пожалуйста написать программу в Паскале )) Написать программу для вычисления суммы в массиве из 10 элементов
- Помогите, пожалуйста, написать программу на Паскале хотя бы примерно
- Помогите пожалуйста составить программу на Паскале, используя оператор case