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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 22.05.2012, 13:09   #1
Smirnov
 
Регистрация: 09.02.2012
Сообщений: 9
По умолчанию ребята...программа с модулем, процедурами, функциями и графикой. не могу найти максимальное и минимальное значение в массиве...

само задание:
Разработать программу построения графиков функции в системе программирования Турбо-Паскаль
Исходные данные(технические требования) на проектирование:
Разработать программу построения графиков распределения примеси в кремнии при ионном легировании бором (В), фосфором (Р) и мышьяком (As ) с энергией ионов 100 кэВ и дозой N=1014 атом/см2.
С(x)=Cρ exp[(-〖(x-Rp)〗^( 2))/〖〖2R〗_p^2〗_ ],
Где Ср - пиковая концентрация легирующих примесей:
C_p=N/(〖(2π)〗^(1⁄2)*∆Rp);
Rp – проективный побег (мкм),
"∆Rp " - стандартное отклонение проективного пробега (мкм).
B P As
Rp 0.25 0.13 0.06
"∆Rp" 0.07 0.05 0.02

Диапазон измерение х от 0 до 1 мкм.
Реализовать ввод границ диапазона изменения х с клавиатуры.
В прямоугольной области фиксированного размера для отображения графика построить координатную сетку с оцифровкой осей на основе значений исходных данных и расчётных данных
При изменении значений исходных и расчётных данных масштаб по координатным осям при построении графиков должен изменяться так, что бы построенные графики максимально полно занимали отведённое для них пространство.
текст основной программы:
uses crt,graph,mod1;
var



grDriver : Integer;
grMode : Integer;
Errcode,l : Integer;
r: real;
Lx1,Lx2,Ly1,Ly2:integer;
kx, {kofix}
ky, {kofiy}
min,
max:extended;
otstx,
otsty,
v,u,o,R1:integer;
BEGIN
Rp[1]:=0.25; Rp [2]:=0.13; Rp [3]:=0.06; {proektivniy probeg}
dr [1]:=0.07; dr [2]:=0.05; dr [3]:=0.02; {standartnoe otklonenie}

ClrScr;
writeln ('vvedite Xmax');
Readln (Xmax);
writeln ('vvedite Xmin');
Readln (Xmin);
writeln ('vvedite m');
Readln (m);
zap;

grDriver:= Detect;
InitGraph(grDriver, grMode, 'D:\BP\bgi');
ErrCode:= GraphResult;
if ErrCode = grOk then
Lx1:=80; {Xo}
Lx2:=480; {Xkon}
Ly1:=40; {Yo}
Ly2:=440; {Ykon}
otstx:=80; {otstup po x}
otsty:=39; {otstyp po y}
v:=11;
r:=40; {shag setki}

R1:=Q*3;
min:=A[2,1];
max:=A[2,1];
for u:=2 to 4 do
for o:=1 to R1 do
begin



if A[u,o]<min then min:=A[u,o];
if A[u,o]>max then max:=A[u,o];
end;

kx:=(Xmax-Xmin)/(Lx2-Lx1);
ky:= ((Ly2-Ly1)/(max-min));
writeln (kx);
writeln (ky);

for l:=1 to v do
begin
Line(80, 40+round(r*(l-1)), 480, 40+round(r*(l-1)));
Line(80+round(r*(l-1)), 40, 80+round(r*(l-1)) , 440);
end;
readln;

end.
модуль
unit mod1;
interface
const
Pi=3.1415926536;
N=1e14; {doza}
var
xmax, {diaoapozon izmeneniy}
xmin,
{proektivniy probeg}
{ctandartnoe otklonenie}
m, {shag izmenenia x}
Cp: {pikovya concentr}
real;
i,
Q: {chislo povtorov}
integer;
A:array[1..4,1..100] of extended;
Rp,dr:array[1..3] of real;

procedure zap;
procedure mx;
function prov (Xmax,Xmin:real):boolean;
function rasch (x:extended;i:integer):extended;

implementation

function prov(Xmax,Xmin:real):boolean;
begin
prov:=True;
If ((Xmin < 0) or (Xmax > 1) or (Xmin>=Xmax)) then
begin
Write('vveden neverniy diapazon');
prov:=False;
Exit;
end;
end;

function rasch (x:extended;i:integer):extended;
begin
Cp:=N/(sqrt(2*Pi)*dr[i]);
rasch:=Cp*(exp(-sqr(x-Rp[i])/(2*sqr(Rp[i]))));
end;

procedure zap;
var x:extended;
i,j:integer;
begin
If prov(Xmax, Xmin) then
begin
x:=Xmin;
Q:=Round((Xmax-Xmin)/m);
Writeln(' x,mkm C(B) C(P) C(As) ');
for i:=1 to Q+1 do
begin
A[1,i]:=x;
for j:=1 to 3 do
A[j+1,i]:= rasch(x,j);
writeln (x:3,' ', A[2,i]:3,' ', A[3,i]:3,' ', A[4,i]:3);
x:=x+m;

end;
readln;
end;

procedure mx;
var
max,min:extended;
for i:=1 to Q+1 do
begin
Read(A[2,i],[3,i],[4,i]);
max:=A[2,1];
min:=A[2,1];
for i:=2 to Q+1 do
if A[2,i]>max then max:=[2,i];
else if A[2,i]<min then min:=A[2,i];
end;
readln
end;
end.



напишите кусочек поиска мах и мин значения в массиве
Smirnov вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Минимальное и максимальное значение в массиве. С++ Enigmya Помощь студентам 3 17.10.2011 16:07
Нужна программа, которая находит в одномерном массиве минимальное и максимальное значение Didar Паскаль, Turbo Pascal, PascalABC.NET 9 08.02.2011 15:14
эксель. найти максимальное и минимальное значение функции alex(21) Помощь студентам 2 07.03.2010 12:22
Задача с модулем, процедурами и функциями w0lf16 Помощь студентам 1 05.12.2009 18:12