Форум программистов
 
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.

Вернуться   Форум программистов > Delphi > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

Восстановить пароль
Повторная активизация e-mail


Ответ
 
Опции темы
Старый 22.12.2008, 16:29   #1
Wast
Пользователь
 
Регистрация: 22.12.2008
Сообщений: 14
По умолчанию Составить программу которая будет сортировать все положительные элементы

Дан массив состоящий из 10 вещественных элементов. Составить программу которая будет сортировать все положительные элементы а отрицательные и нулевые элементы оставлять на своих местах.


плиз помогите ника не получается

Program n14;
Uses Crt;
Var N, i, k : Integer;
X, Y : Array [1..10] of Real;
BEGIN
ClrScr;
n:=10;
For i := 1 to N do
begin

Write('X[ ', i, ' ] = '); ReadLn(X[i])
end;

k:=0;
For i := 1 to N do
If X[i]>0 then
begin k:=k+1; Y[k]:=X[i]
end;

For i := 1 to N do
If X[i]=0 then
begin k:=i; Y[k]:=X[i]
end;

For i := 1 to N do
If X[i]<0 then
begin k:=i; Y[k]:=X[i]
end;


For i := 1 to N do Write(Y[i] : 5 : 1);
WriteLn; ReadLn;
END.


если ввести больше 3-4 отрицательных или нулевых элементов тогда получается сыр бор.. Пожалуйста помогите если не трудно. Буду признателен.
Wast вне форума Ответить с цитированием
Старый 22.12.2008, 16:56   #2
alex_fcsm
Участник клуба
 
Аватар для alex_fcsm
 
Регистрация: 10.11.2008
Сообщений: 1,502
По умолчанию

Код:
uses crt;
const n=10;
var a,b:array[1..n] of real;
    i,j,k:integer;
    temp:real;
    
begin
clrscr;
randomize;
for i:=1 to n do
 begin
   a[i]:=random(10)-random(7);
   write(a[i],' ');
 end;
 writeln;
k:=0;
for i:=1 to n do
 if  a[i]>0 then begin
                  inc(k);
                  b[k]:=a[i];
                 end;
 for i:=2 to k do
  for j:=k downto i do
   if b[j-1]>b[j] then
    begin
     temp:=b[j];
     b[j]:=b[j-1];
     b[j-1]:=temp;
    end;
k:=0;
for i:=1 to n do
begin
 if a[i]>0 then begin
                  inc(k);
                  a[i]:=b[k];
                end;
 write(a[i],' ');
 end;
end.
Нормальное состояние техники - нерабочее, все остальное частный случай.
alex_fcsm вне форума Ответить с цитированием
Ответ

Здесь нужно купить рекламу за 20 тыс руб в месяц! ) пишите сюда - alarforum@yandex.ru
Без учёта ботов - 20000 человек в день, 350000 в месяц.

Опции темы


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
процедура, которая будет что-то делать пока зажата клавиша пробел. Porkman Паскаль, Turbo Pascal, PascalABC.NET 4 14.12.2008 04:37
Как создать обратную функцию, которая из уникального номера будет возвращать строку? SkAndrew Общие вопросы Delphi 8 06.04.2008 21:10
Составить процедуру, которая в задоном массиве С заменяет элементы Absent Помощь студентам 1 26.03.2008 00:11
ДАНЫ 4 ЧИСЛА X Y Z W составит программу найти произведение все положительные нечетные числа Woland-itn Паскаль, Turbo Pascal, PascalABC.NET 3 23.03.2008 22:49
в начале все отрицательные, затем все положительные элементы в матрице motaro Паскаль, Turbo Pascal, PascalABC.NET 2 07.03.2008 20:16