home *** CD-ROM | disk | FTP | other *** search
/ ftp.barnyard.co.uk / 2015.02.ftp.barnyard.co.uk.tar / ftp.barnyard.co.uk / cpm / walnut-creek-CDROM / CPM / EDUCATIN / MDLPLNE2.LBR / WNGLDG12.PQS / WNGLDG12.PAS
Pascal/Delphi Source File  |  2000-06-30  |  6KB  |  202 lines

  1. {$A-}
  2. PROGRAM Wingldg12;
  3.  
  4. {WNGLDG12.PAS - WingLoading version 1.2 a Turbo Pascal program based on a}
  5. {Microsoft Basic program orginally written by Dick Phillips, President of}
  6. {IMAA. The program will calculate the wing area and wing loading for a}
  7. {selection of wing types and configurations. Turbo Pascal conversion by}
  8. {Curtis W. Givens 22 July 86}
  9.  
  10. PROCEDURE Menu;FORWARD;
  11.  
  12. PROCEDURE TWM;{Taperwing Mono-plane}
  13.  
  14. VAR
  15.    S : Real;{Wingspan}
  16.    R : Real;{Root Chord}
  17.    T : Real;{Tip Chord}
  18.    W : Real;{Weight}
  19.    Choice : Integer;
  20.  
  21. BEGIN
  22.      WRITELN('Please remember to use decimal fractions for all inputs');
  23.      WRITELN;
  24.      WRITELN('Wingspan?');
  25.      READLN(S);
  26.      WRITELN('Tip Chord?');
  27.      READLN(T);
  28.      WRITELN('Root Chord?');
  29.      READLN(R);
  30.      WRITELN('Weight in Pounds?');
  31.      READLN(W);
  32.      WRITELN;
  33.      WRITELN('The wing area is',((((R+T)/2)*S)/144):8:3, 'square feet.');
  34.      WRITELN;
  35.      WRITELN('The Wing Loading is',(W*16)/((((R+T)/2)*S)/144):8:3, 'oz per sqft.');
  36.      WRITELN;
  37.      WRITELN('Do another? Yes=1 No=Any other integer');
  38.      READLN(Choice);
  39.      IF Choice=1 THEN Menu ELSE HALT;
  40.      END;
  41.  
  42.  
  43. PROCEDURE CCM;{Constant Chord Mono-plane}
  44.  
  45. VAR
  46.    S : Real;{Wingspan}
  47.    C : Real;{Chord}
  48.    W : Real;{Weight}
  49.    Choice : Integer;
  50.  
  51. BEGIN
  52.      WRITELN('All inputs in decimal fractions');
  53.      WRITELN;
  54.      WRITELN('Wingspan?');
  55.      READLN(S);
  56.      WRITELN('Chord?');
  57.      READLN(C);
  58.      WRITELN('Weight-lbs?');
  59.      READLN(W);
  60.      WRITELN('The wing area is',((S*C)/144):8:3, 'square feet.');
  61.      WRITELN;
  62.      WRITELN('The wing loading is',((W*16)/((S*C)/144)):8:3, 'ounces per square ft.');
  63.      WRITELN;
  64.      WRITELN('Do another? Yes=1 No=Any other integer');
  65.      READLN(Choice);
  66.      IF Choice=1 THEN Menu ELSE HALT;
  67. END;
  68.  
  69. PROCEDURE CCB;{Constant chord bi-plane}
  70.  
  71. VAR
  72.    US : Real;{upper wing span}
  73.    UC : Real;{upper wing chord}
  74.    LS : Real;{lower wing span}
  75.    LC : Real;{lower wing Chord}
  76.    W : Real;{weight}
  77.    Choice : Integer;
  78.  
  79. BEGIN
  80.      WRITELN('All inputs in decimal fractions');
  81.      WRITELN;
  82.      WRITELN('Upper Wing Span?');
  83.      READLN(US);
  84.      WRITELN('Upper Wing Chord?');
  85.      READLN(UC);
  86.      WRITELN('Lower Wing Span?');
  87.      READLN(LS);
  88.      WRITELN('Lower Wing Chord?');
  89.      READLN(LC);
  90.      WRITELN('Weight - lbs?');
  91.      READLN(W);
  92.      WRITELN('The wing area is',(((US*UC)+(LS*LC))/144):8:3, 'square feet.');
  93.      WRITELN;
  94.      WRITELN('The wing loading is', ((W*16)/(((US*UC)+(LS*LC))/144)):8:3, 'ounces per square foot.');
  95.      WRITELN;
  96.      WRITELN('Do another? Yes=1 No=Any other integer');
  97.      READLN(Choice);
  98.      IF Choice=1 THEN Menu ELSE HALT;
  99.      END;
  100.  
  101. PROCEDURE TWBU;{Tapper wing bi-plane with unequal wings}
  102.  
  103. VAR
  104.    US : Real;{Upper wing span}
  105.    UT : Real;{Upper wing tip chord}
  106.    UR : Real;{Upper wing root chord}
  107.    LS : Real;{Lower wing span}
  108.    LT : Real;{Lower wing tip chord}
  109.    LR : Real;{Lower wing root chord}
  110.    W : Real;{Weight}
  111.    Choice : Integer;
  112. BEGIN
  113.      WRITELN('All inputs in decimal fractions');
  114.      WRITELN;
  115.      WRITELN('Upper Wing Span?');
  116.      READLN(US);
  117.      WRITELN('Upper Wing Tip Chord?');
  118.      READLN(UT);
  119.      WRITELN('Upper Wing Root Chord?');
  120.      READLN(UR);
  121.      WRITELN('Lower Wing Span?');
  122.      READLN(LS);
  123.      WRITELN('Lower Wing Tip Chord?');
  124.      READLN(LT);
  125.      WRITELN('Lower Wing Root Chord?');
  126.      READLN(LR);
  127.      WRITELN('Weight - lbs?');
  128.      READLN(W);
  129.      WRITELN('The wing area is',(((((UT+UR)/2)*US)+(((LT+LR)/2)*LS))/144):8:3,'square feet.');
  130.      WRITELN;
  131.      WRITELN('The wing loading is',((W*16)/(((((UT+UR)/2)*US)+(((LT+LR)/2)*LS))/144)):8:3, 'ounces per square foot.');
  132.      WRITELN;
  133.      WRITELN('Do another? Yes=1 No=Any other integer');
  134.      READLN(Choice);
  135.      IF Choice=1 THEN Menu ELSE HALT;
  136.      END;
  137.  
  138. PROCEDURE TWB;{Taper wing bi-plane upper and lower wing equal}
  139.  
  140. VAR
  141.    S : Real;{Wing Span}
  142.    T : Real;{Tip Chord}
  143.    R : Real;{Root Chord}
  144.    W : Real;{Weight}
  145.    Answer : Integer;
  146.    Choice : Integer;
  147.  
  148. BEGIN
  149.      WRITELN('All inputs in decimal fractions');
  150.      WRITELN;
  151.      WRITELN('Are the upper and lower wings identical? Yes = 1 No = any other integer');
  152.      READLN(Answer);
  153.      IF Answer <>1 THEN TWBU ELSE
  154.         BEGIN
  155.         WRITELN('Wing span?');
  156.         READLN(S);
  157.         WRITELN('Tip chord?');
  158.         READLN(T);
  159.         WRITELN('Root chord?');
  160.         READLN(R);
  161.         WRITELN('Weight - lbs?');
  162.         READLN(W);
  163.         WRITELN;
  164.         WRITELN('The wing are is',((((T+R)/2)*2*S)/144):8:3, 'square feet.');
  165.         WRITELN;
  166.         WRITELN('The wing loading is',((W*16)/(((T+R)/2)*2*S/144)):8:3, 'ounces per square foot.');
  167.         WRITELN;
  168.         WRITELN('Do another? Yes=1 No=Any other integer');
  169.         READLN(Choice);
  170.         IF Choice=1 THEN Menu ELSE HALT;
  171.         END;{IF}
  172. END;
  173.  
  174. PROCEDURE Menu;
  175.  
  176. VAR
  177.    Choice : Integer;
  178.  
  179. BEGIN
  180.      WRITELN('Please select your wing type from the following list.');
  181.      WRITELN;
  182.      WRITELN('Taper Wing Mono-Plane     = 1');
  183.      WRITELN;
  184.      WRITELN('Taper wing Bi-Plane       = 2');
  185.      WRITELN;
  186.      WRITELN('Constant Chord Mono-Plane = 3');
  187.      WRITELN;
  188.      WRITELN('Constant Chord Bi-Plane   = 4');
  189.      WRITELN;
  190.      READLN(Choice);
  191.            IF Choice=1 THEN TWM ELSE
  192.            IF Choice=2 THEN TWB ELSE
  193.            IF Choice=3 THEN CCM ELSE
  194.            IF Choice=4 THEN CCB ELSE
  195.            HALT;
  196. END;{Menu}
  197.  
  198. BEGIN
  199.      Menu
  200. END.
  201.  
  202.