Jenis masalah teknik

pengantar

Sebuah batch tipe baru telah didaftarkan.





Kepribadian tipe sedang terungkap.





Lelucon lama.





Selama 38 tahun sekarang, saya harus menyelesaikan berbagai masalah dengan menyusun program yang sesuai. Selama bertahun-tahun, rentang tugas tersebut berubah menjadi sangat besar: mulai dari memprogram pengontrol AT90S2313 hingga program untuk secara otomatis mengubah kamus teknis Rusia-Jerman ke dalam bahasa Jerman-Rusia, dan dari menghitung bagian stringer yang optimal hingga menggambar pemandangan permukaan bumi dari jendela dari orbit menggunakan metode penelusuran sinar mundur.





Terlepas dari keragaman tugas, semuanya, mungkin, dapat dikaitkan dengan satu kelas, yang secara konvensional saya sebut "teknik", karena sebagian besar mereka beroperasi dengan konsep yang bersifat ilmiah dan teknis. Dalam menyelesaikan semua masalah ini, saya tidak melihat manfaat apa pun dalam menggunakan konsep seperti tipe "abstrak", yaitu menetapkan beberapa properti sewenang-wenang ke objek program. Biasanya, properti ini secara internal direpresentasikan sebagai bilangan bulat saat diterjemahkan.





Dapat dikatakan bahwa saya tidak melihat gunanya tipe seperti itu karena dalam bahasa lama (seperti PL / 1 yang saya gunakan) tidak ada pengetikan sama sekali dalam pengertian modern. Tidak, konsep tipe memang ada. Misalnya, jika dalam PL / 1 yang sama Anda mendeskripsikan dua objek yang tidak cocok, meskipun berukuran sama, dan mencoba menetapkan satu objek ke objek lainnya, Anda akan mendapatkan pesan kesalahan yang dapat diprediksi selama kompilasi (Gbr. 1).









Angka:  1. Ketikkan mismatch error di PL / 1 selama kompilasi.
. 1. PL/1 .

, PL/1? , «» « IEEE-754». .





, . . . , IEEE-754. – . PL/1 «» «».





:





Declare (S1, S2) char(*) varying;
S1=S1||S2;
S1=S1+S2;

      
      



, , , , . , . , PL/1.





, «» , , , . , , , «» - . – , , – / . « »: , … , , ? « » , :





_=([2.6*-0.2]+++[/4]+[/4]-2*) mod 7
      
      



.





«» «» , , «» «». , , – «» . : «» «» - , «» «» «». «» «» , , .





, , , . ?





. , « » [1]. «» – , , - , Matlab Mathcad. PL/1 [2] , , , .





«» , ( , .. ), , , , , .





«» , («-») [3]: , (n+1) a, a1, a2,…an, k , (n+1-k) , 1, 2,… n-k, (n+1) .





- , .





, :





- L ( - ),





- M ( - ),





- T ( - ),





- Θ ( - ),





- I ( - ),





- J ( - ),





- N ( - ),





, , «» , : [x]=Ll Mm Tt Θθ Ii Jj Nn.





, «» , – , , . – .





«»

, , , . , - , - .. «» IEEE-754.





. , X1, X2, X3 [], [] [], X1=X2+X3, X2 0.01 X3 0.001, X1 1000.





– «» , .. «» . «» .





, , – . , «» , , .





«»

, – ( - ) ( - ).





. , – . () . , PL/1 sin, sind, . «» «» «» «», π/180.





, «» , , , sin , . , :





W=φ/t;    // ( )





V=R*W;    // ( )





, φ «» «», , W «» « », – « », « ».





«» , , . «» , (.. ). – «», .. . φ/t ( W) «» «, », R*W «» « ». , , sin(2*φ) - «» «».





«»

, , , «» . PL/1 IEEE-754 , .





«» , , Z=SQRT(X**2+Y**2), «» ( ) . . , -128 127, «» 8+9*2=26 .





«»

«» , «» .





«» . , , , .





«» .





- «» . - «» , - . , X**(1e0/3e0) «» X 1/3, .. .





, . , .. . «» , «» «» , .





, , «» , , , , . . (, ), . «» .





«»

«» ( ), , PL/1, :





Declare V float(53) [/];





, , , , , : , , , , , , , , . «».





:





Declare Mu float(53) [(1000*m)**3/c**2];







Declare Fi float(53) [/180*];







«» , %replace «» , :





%Replace







[]   by [1000*],







[]  by [3600*c],







[] by [1852*],







[] by [/];















Declare







      float(53) [/],







_ float(53) [];







%Replace «», «», «» «» «» , .





«»

«» , . , , , ?





«» , :





V=10 [/];





. - , . , , . :





Declare 

// 

g  float(53) static init(9.81e0) [/c**2],

v0 float(53) static init(10e0)   [/],

// 

m  float(53) [],

v  float(53) [/],
float(53) [*/**2];


v=v0;  F=g*m;
      
      



0. «» :





v=0;   F,m=0;







«»

PL/1 / : , read/write get/put.





, read/write - «» .





«» . – , «» , , , , , , .





put get «» get, .. , .





, PL/1 , .. «» , .. «» , «» , , :





Declare

X1 float(53) static init(10e0) [],

X2 float(53) defined(X1);

 

put skip list(X1,X2);
      
      



10000 10.





?TYPE «»

«» , , TYPE, «» . () ?TYPE, «» (.. ) .





, «» , «» , . «» , , :





put skip list(s/t,type(s/t));





, , :





Declare
float(53) static init(10) [],
float(53) static init(5)  [];


put skip list(s,?type,t,?type,s/t,?type);
      
      



(. 2):





Angka:  2. Menggunakan variabel built-in? TYPE saat menampilkan hasil
. 2. ?TYPE

«»

, , , «» . , , .. .





, , , , .





, , «» :





Declare







// -







Vmod entry((3) float(53)[]) returns(float(53)[]);







, «» ( «?»), .





Declare







//







Vmod0 entry((3) float(53)[?]) returns(float(53)[?]);







SQRT. , , «» , ½.





, , «» .





«»

?TYPE, . , «» (. 3). , , «» .





test:proc main;

%replace

[]  BY [1000*],

[] BY [3600*];

 

declare

s  float(53) static init(10) [],

t  float(53) static init(5)  [],

v  float(53) [/];

 

if s*t>v*t then stop;

      
      



«»

«» , , , . , «» , , «» .





, .. .





.





) , :





//







WEarth  float(53) static init(0.000072921158e0)      [/C],







//







Dpi     float(53) static init(6.28318530717958648e0) [],







// Epsilon/Mu







Em      float(53) static init(66072.1866e0)          [KM**2],







//







Mu      float(53) static init(398600.4e0)            [KM**3/C**2],







// 358







Am      float(53) static init(6736e0)                [KM],







//







Re      float(53) static init(6378.137e0)            [KM],







) , :





:





//---- +-180 ----







do i=1 to 3;







   vsg(i)=vsg0(i)/1000e0;       //







   vrg(i)=vrg0(i)/1000e0;       //







   if Lamseans(i) > 180e0 then Lamseans(i)-=360e0;







end i;







:





//---- +-180 ----







do i=1 to 3;







   vsg(i)=vsg0(i);     //







   vrg(i)=vrg0(i);     //







   if Lamseans(i) > _180 then Lamseans(i)-=_360;







end i;







:





BetaBal=60e0*(per2-per1)/(te2s-te1s)/2e0;   //







:





BetaBal=(per2-per1)/(te2s-te1s)/2e0;        //







) , , :





:





//---- ----







Radius  = J3-et1+dz1*dz1+J4*cos(ArgLat+ArgLat);







Radius *= Axe*(1e0+J7*tp);







:





//---- ----







Radius  = Axe*(1e0+J7*tp)* (J3-et1+dz1*dz1+J4*cos(ArgLat+ArgLat));







. , , , , :





//---- ----







do AxeOfPer=Am, i=1 to 4;                   // 358







 AxeOfPer=((Period/Dpi)**2*Mu)**(1e0/3e0)







         /(1e0-2e0/3e0*Em/AxeOfPer/AxeOfPer*(4e0*CosIncl*CosIncl-1e0));







end;







- :





//---- ----







Fi = Fi + Alz*sin(2e0*Fi);







Alz – , 1/298.257. , Fi , .. . «», , . «» «» .





PL/1 , «» :





- , ;





- , .





«» – , , , / . .





«» , , «» .





«» . «» . , «» «» . .





, - , (, sind) , (- ). .





Mars Climate Orbiter 23 1999 - « » . , «» , , , «-», .





1.       , , . . . , . . , 1989, . 182.





2.       .. « » RSDN Magazine #4 2011, . 15-21.





3. A. S. Romanov, A. V. Semikolenov, S.N. Taranenko, A.P. Teori Shakhorin tentang kesamaan dan dimensi. Lapisan batas. Publikasi pendidikan elektronik dari Universitas Teknik Negeri Moskow. N.E. Bauman, 2011, hal. 8.












All Articles