Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

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

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

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 06.04.2011, 14:08   #1
danbes1
 
Регистрация: 06.04.2011
Сообщений: 9
По умолчанию как связать массивы?

вот задача
модифицировать программу чтобы она выводила значения в виде таблицы по абсолютной величине Х. массив Х я упорядочил. надо чтобы он ставил остальные значения в массивах соответствующему иксу. как сделать это?
вот прога:
program algoritm;
{$N+}
uses crt;
var
s:array [1..100] of integer;{левый массив для упорядочивания}
Err:array [1..100] of string; {Массив ошибок}
o:array [1..100] of integer;{x}
t:array [1..100] of integer; {p}
e:array [1..100] of extended;{c}
a,b,c:extended;
i:integer;
x1,x2,x3,p1,p2,p3:integer;
K,L,H:string;
v:integer;
j,m:integer;
n:integer;
begin
clrscr;
writeln('Сколько пар значений Х и Р будете считать=');
read(n);
begin
writeln('значение Х не может быть меньше или равно 0');
for i:=1 to n do
begin
repeat
write('Введите x',i,':');
readln(o[i]);
until o[i]>0;
end;
end;

for i:=1 to n do
begin
write('Введите p',i,':');
readln(t[i]);
end;

for i:=1 to n do {Блок проверки}
begin
K:='Под корнем не может быть отрицательного числа!';
L:='Отрицательное число пож знаком логарифма!';
H:='В знаменателе не может быть 0!';

if o[i]*o[i]*o[i]-1.5<0 then
Err[i]:=K;
if o[i]*o[i]-1.5=0 then
Err[i]:=H;
if abs(o[i]*o[i]-t[i]/(o[i]*o[i]-1.5)-0.2)<=0 then
Err[i]:=L;
if sqrt(ln(abs(o[i]*o[i]-t[i]/(o[i]*o[i]-1.5))-0.2))=0 then
Err[i]:=H;
end; {Конец блока проверок}

for i:=1 to n do {блок решения}
begin
A:=t[i]*o[i]-sqrt(o[i]*o[i]*o[i]-1.5)-sin(o[i]);
B:=sqrt(ln(abs(o[i]*o[i]-t[i]/(o[i]*o[i]-1.5))-0.2));
C:=A/B;
e[i]:=C;
end;

{упорядочивание}
for i:=1 to n do
begin
v:=o[i];
m:=i;
for j:=i+1 to n do
if o[j]<v then
begin
v:=o[j];
m:=j;
end;
o[m]:=o[i];
o[i]:=v;
end;

{Первая строка таблицы}
writeln('x p C(x,p) ЏаЁ¬Ґз**ЁҐ');

{вывод значений}
for i:=1 to n do
begin
writeln(o[i],' | ',t[i],' | ',e[i]:8:5,' | ',Err[i]);
end;
readln;
end.


в общем как то так. в общем вопрос заключается в том что как сделать так чтобы при упорядочивании значений Х остальные массивы оставались соответствовать своему Х? заранее спасибо!
danbes1 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
как связать 2 DBGrid.... yulkas БД в Delphi 2 22.04.2010 15:27
Как связать два ComboBox ? Everik БД в Delphi 4 05.01.2010 21:29
Как связать таблицы ksmspb Microsoft Office Excel 3 24.10.2009 19:35
Как связать C++ и Access? demon-189 Общие вопросы C/C++ 1 23.04.2008 19:49
DBChart как связать с БД ? Cantana Помощь студентам 2 02.02.2008 14:40