Výpočet vektorov ponorky v pascale
Delphi & Pascal (česká wiki)
Category: KMP (Club of young programmers)
Author: Ján Benkovič
web: www.tbteacher.host.sk
Program: Ponorka.pas
File exe: Ponorka.exe
Author: Ján Benkovič
web: www.tbteacher.host.sk
Program: Ponorka.pas
File exe: Ponorka.exe
Ponorka sa pohybuje pod hladinou stojatej vody rýchlosťou v m/s. Jej čelná plocha S=5m^2 a tvarový súčiniteľ c=0.17.Pri pohybe musí ponorka prekonávať odpor vody Fv=Ro*v^2*c*S/2 newtonov, kde Ro=1000kg/m^3 je hustota vody. Naprogramovaná funkcia Fv(v) vyjadruje závislosť sily Fv od rýchlosti v (podprogram typu FUNCTION).
Zostavte program, ktorý
Všetky tri vektory treba vypísať. V programe použite aspoň jeden podprogram typu PROCEDURE.
Zostavte program, ktorý
- vytvorí vektor rýchlosti Vektor_v=(v[1],v[2],...,v[11]), kde v[i]=1+0.5(i-1), i=1,2,...,11 ;
- k vektoru rýchlosti vypočíta zodpovedajúci vektor síl Vektor_F=(F[1],F[2],...,F[11])( F[i]=Fv(v[i]), použite pripravený podprogram) a vektor výkonov Vektor_P=(P[1],P[2],...,P[11]), kde P[i]=F[i].v[i].
Všetky tri vektory treba vypísať. V programe použite aspoň jeden podprogram typu PROCEDURE.
{ 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.