Показать сообщение отдельно
Старый 09.06.2010, 23:42   #1 (permalink)
Arsis
Новичок
 
Регистрация: 09.06.2010
Сообщений: 3
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
Unhappy Паскаль. Сортировка массивов

Помогите пожалуйста в решении задачи: Сформировать массив случайных чисел из 10 элементов и переставить в его начало все положительные элементы. вот моя наработка, но она не функционирует((( помогите пожалуйста:
program Lab;
uses Crt,Graph;
const
B=0; N=10; M=130;
var DriverVar,ModeVar,Ec:integer;
var A,Ar:array[1..N] of integer; MaxA,Ma:real;
D,I,J,H,Qr,Pr:integer;
F:text;
begin;
Assign(F,'Lab.rez');
Rewrite(F);
Clrscr;
Randomize;
Writeln(F,'Исходный массив');
for I:=1 to N do
begin
A[I]:= Random(M)-30;
Write(F,A[I],' ');
end;
Writeln(F);
for I:=2 to N do
if Abs(A[I])>B then
begin
D:=A[I];
J:=I;
repeat
A[J]:=A[J-1];
J:=J-1;
until J<=1;
A[1]:=D;
end;
Writeln(F);
Writeln(F,'Массив после перестановки элементов');
for H:=1 to N do Write(F,A[H],' ');
Close(F);
MaxA:=0;
for I:=0 to N do
begin
if Abs(A[I])>MaxA then
MaxA:=Abs(A[I]);
end;
DriverVar:=Detect;
InitGraph(DriverVar,ModeVar,'');
setlinestyle(0,0,3);
setbkcolor(1);
setcolor(8);
Line(10,GetMaxY div 2,GetMaxX-10,GetMaxY div 2);
Ma:=(GetMaxY div 2-40)/MaxA;
for I:=1 to N do
Ar[I]:=-Round(A[I]*Ma)+GetMaxY div 2;
setcolor(2);
for I:=1 to N do
begin
SetFillstyle(1,3);
Bar(I*20,Ar[I],I*20+10,GetMaxY div 2);
end;
setlinestyle(3,0,1);
setcolor(4);
Readln;
CloseGraph;
end.
Arsis вне форума   Ответить с цитированием
Ads

Яндекс

Member
 
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070