→ Для вступления в общество новичков и профессионалов программирования, пожалуйста нажмите здесь ...

Форум программистов: C++, Basic, Delphi, Pascal, JavaScript
Логин: Пароль:
Запомнить?  
@Mail.ru



Начать новую тему Ответить на тему  [ Сообщений: 3 ] 
Что это 
Автор Сообщение
Начинающий

Регистрация: 05.02.2011
Сообщения: 1

Репутация: 0 [ ? ]
Сообщение Что это
ПОДСКАЖИТЕ ПОЖАЛУЙСТА ОТКУДА ЭТОТ КОД???!!!
program OPT ;
uses Graph, Crt;
type
CashFlow=array [1..50,1..50] of real;
Timeprlf =array [1..50] of integer;
projectchar=array [1..50] of real;
var
Gd, Gm:integer;
T, TInv, statuspr, Nnef:Timeprlf;
CF, CIp :CashFlow;
NPV,NPVch,NPVzap,rown,PP,PS, CI, IRR, PI:projectchar;
N,i,time, p, q, Nef,cs :integer;
disk, r,ch, Nnefc :real;

procedura zast;
Gd:=Detect;
initgraph(Gd, Gm,'d:\borland\tp6');
setcolor(15);
outtextxy(145,65,'Міністерство освіти України');
outtextxy(145,85,Львівський національний університет імені Івана Франка');
outtextxy(145,115,' кафедра');
outtextxy(145,135,' економічної кібернетики');
settextstyle(0,0,2);
outtextxy(180,180,' програмна реалізація');
outtextxy(100,200,'моделі оптимального часового розподілу’);
outtextxy(85,220,’ впровадження проектів інвестиційного портфеля ’); outtextxy(260,240,’підприємства');
settextstyle(0,0,3);
settextstyle(0,0,1);
outtextxy(145,340,' Виконала ');
outtextxy(145,380,' Паславська І.М.');
pix(2); readln;
Clrscr;

procedure timeoptimization;
const e=1;
type
iter=array[0..50] of integer;
invr=array[0..20] of real;
matr=array[0..50,0..20] of real;
prchar=array[0..50] of real;
matrnum=array[0..50,0..20] of integer;
nabacount=array[0..50] of integer;

var
l, ind, tempn: integer;
temp, Nnefc_ter, Rdep:real;
ref, NPVdis:prchar;
B:invr;
Ter:iter;
v:matr;
x, Numb:matrnum;
statusprn:nabacount;
Begin
l:=0;
Ter[0]:=1000;
for i:=1 to N do statusprn[i]:=statuspr[i];
writeln;
writeln ('Введіть величину дисконтної ставки, що відображає’);
writeln (‘зміну ефективності проектів у часі');
for i:=1 to N do
begin
if statusprn[i]=1 then
begin
write ('r[',i,']= '); readln(ref[i])
end;
end;
writeln;
writeln ('Введіть значення відсоткової ставки по депозитах');
readln(Rdep);

repeat
Nnefc_ter:=Nnefc;
l:=l+1;
for i:=1 to N do statusprn[i]:=statuspr[i];
writeln('введіть значення обсягів інвестиційних ресурсів для ', l,'-го’); writeln(‘наближення');
Ter[l]:=-1;
while Nnefc_ter>0 do
begin
Ter[l]:=Ter[l]+1;
Write('Введіть обсяг інвестиційних ресурсів у період ',Ter[l],' ');
readln(B[Ter[l]]);
Nnefc_ter:=Nnefc_ter-B[Ter[l]];
writeln('Nnefc= ',Nnefc_ter:8:2);
end;
for i:=1 to N do
for time:=1 to Ter[l]+1 do
begin
if statusprn[i]=1 then
begin
disk:=exp((time)*ln(1+ref[i]));
NPVdis[i]:=NPV[i]/disk;
v[i,time]:=(NPV[i]-NPVdis[i])/CI[i];
end
else v[i,time]:=-100;
end;

for i:=1 to N do
for time:=0 to Ter[l] do
x[i,time]:=0;

for i:=1 to N do
for time:=1 to Ter[l]+1 do
Numb[i,time]:=i;

for time:=1 to Ter[l]+1 do
repeat
ind:=0;
for i:=1 to N-1 do
begin
if v[i+1,time]>v[i,time] then
begin
ind:=ind+1;
tempn:=Numb[i,time];
Numb[i,time]:=Numb[i+1,time];
Numb[i+1,time]:=tempn;
temp:=v[i,time];
v[i,time]:=v[i+1,time];
v[i+1,time]:=temp;
end;
end
until ind>0;
writeln('Матриця ймовірних втрат, спричинених відтермінуванням’);
writeln (‘впровадження проектівV');
writeln;
for i:=1 to N do
begin
for time:=1 to Ter[l]+1 do
write (v[i,time]:8:2,' ');
writeln
end;
writeln ('Numb');
writeln;
for i:=1 to N do
begin
for time:=1 to Ter[l]+1 do
write (Numb[i,time]:4,' ');
writeln
end;
for time:=1 to Ter[l]+1 do
begin
for i:=1 to N do
if statuspr[i]=1 then
if B[time-1]>=CI[Numb[i,time]] then
begin
B[time-1]:=B[time-1]-CI[Numb[i,time]];
x[i,time-1]:=1;
statuspr[i]:=0;
end;
if B[time-1]>0 then
B[time]:=B[time]+B[time-1]*(1+Rdep);
end;
writeln ('Матриця розподілу X');
writeln;
for i:=1 to N do
begin
for time:=0 to Ter[l] do
write (x[i,time]:4,' ');
writeln;
end
writeln('ter=',Ter[l]);
writeln('rizn =',Ter[l-1]-Ter[l]);
until (Ter[l-1]-Ter[l])<=e;

end;

BEGIN
ClrScr;
Zast;
ClrScr;
writeln ('Введіть кількість проектів портфеля');
write ('N=');
read(N);
for i:=1 to N do statuspr[i]:=1;
writeln;
writeln ('Введіть тривалість життєвого циклу проекту');
for i:=1 to N do
begin
write ('T[',i,']=');
read(T[i])
end;
writeln;
writeln ('Введіть тривалість періоду впровадження проекту');
for i:=1 to N do
begin
write ('Період впровадження для проекту (',i,')=');
read (TInv[i])
end;
writeln;
writeln ('Введіть обсяг необхідних інвестиційних ресурсів для проекту: ');
for i:=1 to N do
begin
for time:=1 to TInv[i] do
begin
write ('CI[',i,',',time,']=');
read (CIp[i,time])
end;
end;
writeln;
writeln ('Введіть величини очікуваних грошових потоків’ );
writeln (‘від експлуатації проектів:');
for i:=1 to N do
begin
writeln (‘Для проекту ',i );
for time:=1 to TInv[i] do
begin
CF[i,time]:=-CIp[i,time];
writeln ('CF[',i,',',time,']=',CF[i,time]:8:2);
end;
for time:=TInv[i]+1 to T[i] do
begin
write ('CF[',i,',',time,']=');
read(CF[i,time])
end;
end;
writeln;
writeln ('Введіть величини ставок дисконтування: ');
for i:=1 to N do
begin
write ('r[',i,']=');
read(rown[i])
end;
writeln;
for i:=1 to N do
begin
CI[i]:=0;
for time:=1 to TInv[i] do
begin
disk:=exp((time-1)*ln(1+rown[i]));
CI[i]:=CI[i]+CIp[i,time]*disk;
end;
end;

writeln;
for i:=1 to N do NPV[i]:=-CI[i]; {NPV}
for i:=1 to N do
begin
for time:=TInv[i]+1 to T[i] do
begin
disk:=exp((time-1)*ln(1+rown[i]));
NPV[i]:=NPV[i]+CF[i,time]/disk
end;
writeln ('NPV[',i,']= ',NPV[i]:8:2)
end;

writeln;
for i:=1 to N do NPVch[i]:=0;
for i:=1 to N do
begin
r:=0;
while NPVch[i]>=0 do
begin
NPVzap[i]:=NPVch[i];
NPVch[i]:=0;
for time:=1 to T[i] do
begin
disk:=exp((time-1)*ln(1+r));
NPVch[i]:=NPVch[i]+CF[i,time]/disk;
end;
r:=r+0.005;
end;
writeln;
IRR[i]:=((r-0.01)+NPVzap[i]*(0.005/(NPVzap[i]-NPVch[i])))*100;
writeln ('IRR[',i,']= ',IRR[i]:8:2)
end;
writeln;
for i:=1 to N do
begin
PI[i]:=NPV[i]/(CI[i])+1;
writeln ('PI[',i,']= ',PI[i]:5:2)
end;
writeln;
for i:=1 to N do
begin
PS[i]:=-CI[i];
P:=TInv[i]+1;
ch:=0;
if NPV[i]<0 then
writeln ('Доходи, генеровані проектом ',i,' не окуповують’);
writeln (‘ капітальних інвестицій');
else
begin
while PS[i]<0 do
if -PS[i]>CF[i,p] then
begin
PS[i]:=PS[i]+CF[i,P];
P:=P+1
end
else
begin
ch:=-PS[i]/CF[i,p];
PS[i]:=PS[i]+CF[i,P];
end;
end;
PP[i]:=P-TInv[i]-1+ch;
if PP[i]>0 then writeln ('PP[',i,']= ',PP[i]:5:2);
end;
read(cs);
ClrScr;
writeln('Результати аналізу ефективності проектів');
Nnefc:=0;
Nef:=0;
for i:=1 to N do
if NPV[i]>0 then
begin
if PI[i]>1 then
begin
Nef:=Nef+1;
Nnefc:=Nnefc+CI[i];
writeln('проект ',i,' є рекомендованим до впровадження')
end;
end
else
begin
writeln ('проект ',i,' не є рекомендованим до впровадження');
statuspr[i]:=0;
end;
writeln;
writeln ('Необхідна величина інвестиційних ресурсів’);
writeln (‘ для впровадження портфеля становить ',Nnefc:10:2);
writeln;
writeln ('Якщо деякі розраховані показники ефективності не відповідають’); writeln ('вимогам інвестора і Ви бажаєте виключити їх із подальшого аналізу,');
write (‘то введіть значення 1, у іншову випадку введіть 0');
readln (cs);
while cs=1 do
begin
writeln ('Введіть порядковий номер проекту, який Ви бажаєте виключити‘);
write (‘ із розгляду ');
readln (q);
statuspr[q]:=0;
Nef:=Nef-1;
Nnefc:=Nnefc-+CI[q];
write ('Чи бажаєте виключити ще якийсь проект? (1 - так, 0 - ні) ');
readln(cs);
end;
writeln;
writeln ('Необхідна величина інвестиційних ресурсів’);
writeln (‘ для впровадження портфеля становить ',Nnefc:10:2);
writeln('У інвестиційний портфель підприємства включено ', Nef,' проектів');
writeln ('Перелік порядкових номерів проектів, включених у портфель :');
writeln;
for i:=1 to N do
if statuspr[i]=1 then writeln('Project number ', i);
writeln;
writeln ('Якщо Ви бажаєте здійснити часову оптимізацію‘);
writeln (‘процесу впровадження портфеля проектів підприємства, введіть 1');
readln (cs);
if cs=1 then timeoptimization;
if cs=2 then synsol;
END.


05.02.2011 13:52
Профиль Отправить email
Продвинутый
Аватара пользователя

Регистрация: 06.05.2011
Сообщения: 32
Откуда: Днепропетровская область
Языки:

Репутация: 1 [ ? ]
Сообщение Re: Что это
а как понять от куда? но по синтаксису похоже паскаль


07.05.2011 10:17
Профиль Отправить email ICQ
Магистр
Аватара пользователя

Регистрация: 15.02.2009
Сообщения: 345
Откуда: Киев
Языки:
Специальность:

Репутация: 14 [ ? ]
Сообщение Re: Что это
Ну с программы можно увидеть

1)
initgraph(Gd, Gm,'d:\borland\tp6');

2)
outtextxy(145,65,'Міністерство освіти України');
outtextxy(145,85,Львівський національний університет імені Івана Франка');
outtextxy(145,115,' кафедра');
outtextxy(145,135,' економічної кібернетики');

_________________
Создание, продвижение сайтов: . ICQ 209937


08.05.2011 17:33
Профиль ICQ WWW
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 3 ] 


Кто сейчас на конференции

Зарегистрированные пользователи: нет зарегистрированных пользователей


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Перейти:  
cron
© 2013 «Форум программистов Украины»