Dze je subor www.TrSek.com/cover/benkovic/ponorka.pas{ PONORKA.PAS Copyright (c) Jan Benkovic }
{ Ponorka sa pohybuje pod hladinou stojatej vody rychlostou }
{ v m/s. Jej celna plocha S=5m^2 a tvarovy sucinitel c=0.17 . }
{ Pri pohybe musi ponorka prekonavat odpor vody Fv=Ro*v^2*c*S/2 }
{ newtonov, kde Ro=1000kg/m^3 je hustota vody. }
{ Naprogramujte funkciu Fv(v) vujadrujucu zavislost sily Fv }
{ od rychlosti v (podprogram typu FUNCTION). }
{ Zostavte program, ktory }
{ a/ vytvori vektor rychlosti Vektor_v=(v[1],v[2],...,v[11]), }
{ kde v[i]=1+0.5(i-1), i=1,2,...,11 ; }
{ b/ k vektoru rychlosti vypocita zodpovedajuci vektor sil }
{ Vektor_F=(F[1],F[2],...,F[11])( F[i]=Fv(v[i]), pouzite }
{ pripraveny podprogram) }
{ a vektor vykonov Vektor_P=(P[1],P[2],...,P[11]), kde }
{ P[i]=F[i].v[i]. }
{ Vsetky tri vektory treba vypisat. V programe pouzite aspon }
{ jeden podprogram typu PROCEDURE. }
{ ***************************************************************** }
{ }
{ Datum:26.11.2003 http://www.trsek.com }
program Ponorka;
type vektor = array [1..11] of real;
var i,n : integer;
v,F,P : vektor;
function Fv(vp:real):real; {funkcia, ktora pocita odpor vody}
const S=5;
Ro=1000;
c=0.17;
begin
Fv:=Ro*sqr(vp)/2*c*S;
end;
{podprogram na vypis vektora}
procedure Vypis(m:integer;U:vektor);
var j:integer;
begin
write('(');
for j:= 1 to m do
begin
write(U[j]:3:1);
if (j=m)then write(')')
else write(', ');
end;
end;
{podprogram na vytvorenie vektora}
procedure Vytvor(m:integer;var U:vektor);
var j:integer;
begin
for j:=1 to m do
U[j]:=1+0.5*(j-1);
end;
begin { hlavny program }
writeln;writeln;
n:=11;
Vytvor(n,v); {vytvorenie vektora rychlosti}
for i:=1 to n do
begin
F[i]:=Fv(v[i]); {vypocet prvkov vektora sil}
{vypocet prvkov vektora vykonov v kW}
P[i]:=F[i]*v[i]/1000;
end;
{vypisy jednotlivych vektorov}
write('Vektor_v='); Vypis(n,v); writeln('m/s');
writeln;
write('Vektor_F='); Vypis(n,F); writeln('N');
writeln;
write('Vektor_P='); Vypis(n,P); writeln('kW');
readln;
end.