Welcome to Dream.In.Code
Become an Expert!

Join 149,515 Programmers for FREE! Get instant access to thousands of experts, tutorials, code snippets, and more! There are 1,356 people online right now. Registration is fast and FREE... Join Now!




Which compiler

 
Reply to this topicStart new topic

Which compiler

tuxerkoss
8 Jun, 2007 - 07:47 AM
Post #1

New D.I.C Head
*

Joined: 5 Jun, 2007
Posts: 1


My Contributions
My dad wrote a program way back when but i can't seem to find the appropriate compiler for it to run under xp. I've tried VB 2005 express edition but that won't let me compile. Any help would be highly appreciated. Originally the files are .bas

CODE

' Programmname: MVN.BAS
' Subject:      1. Calculating of forces and deflection in simply-supported
'                  or cantilever beams with the most common loadtypes.
'               2. Longitudinal and shear reinforcement in concrete beam.
' CRE 95.03.26 FK
' REV 99.12.23 FK
DECLARE SUB SL (U$, I$, X, X$)
DECLARE SUB US (X, F$, X$)
DECLARE SUB VL (Skriver$, I$)
DIM XS$(10), XS(10), TB$(10), TB(10), TS$(10), TS(10), XTS(10), XTS$(10)
DIM XTB$(10), XTB(10), PL$(10), PL(10), XPL$(10), XPL(10), ML$(10), ML(10)
DIM XML$(10), XML(10), NL$(10), NL(10), XNL$(10), XNL(10)
DIM HBJ$(10), HBJ(10), XH$(10), XH(10)
DIM XU(50), Q(50), PLU(50), PLU$(50), MLU(50), MLU$(50)
DIM MQPM(50), MF(50), VF(50), NF(50), R(50), R$(50), HU(50)
DIM ASTAB(50), ASTABM(50), ASD(50), ASDM(50), ASVD(50), XI(30)
DIM AAA(30), BBB(30), CCC(30), DDD(30), NI(30), AH(30), BH(30)
DIM I1(20), I2(20), XKR(20), KR(20), KRKOR1(20), KRKOR2(20)
DIM XLT(20), NLT(20), HLT(20), UIT(20), ULT(20), U(50), XLM(100), ILM(100)
DIM MLT(20), VLT(20)

OPEN "I", #1, "GEN.MEM"
  INPUT #1, SidLgd
  INPUT #1, Skriver$
  INPUT #1, SakNr$
  INPUT #1, Tekst$
  INPUT #1, Sign$
CLOSE
OPEN "I", #1, "MVN.MEM"
  INPUT #1, Flag$
CLOSE
IF Flag$ = "MVNES" THEN FKS$ = "4"
IF Flag$ = "MVNBU" THEN
  Flag$ = ""
  OPEN "O", #1, "GEN.MEM"
    PRINT #1, SidLgd
    PRINT #1, Skriver$
    PRINT #1, SakNr$
    PRINT #1, Tekst$
    PRINT #1, Sign$
  CLOSE
  OPEN "O", #1, "MVN.MEM"
    PRINT #1, Flag$
  CLOSE
  OPEN "I", #1, "MVNINP.DAT"
    LINE INPUT #1, FKS$
    LINE INPUT #1, STSY$
    INPUT #1, LBJ
    LINE INPUT #1, LBJ$
    INPUT #1, LBJ1
    LINE INPUT #1, LBJ1$
    INPUT #1, LBJ2
    LINE INPUT #1, LBJ2$
    LINE INPUT #1, UTBB$
    LINE INPUT #1, EVU$
    INPUT #1, DX
    LINE INPUT #1, DX$
    INPUT #1, ANTXS
    FOR N = 1 TO ANTXS
      INPUT #1, XS(N)
      LINE INPUT #1, XS$(N)
    NEXT N
    INPUT #1, ANTTL
    FOR N = 1 TO ANTTL
      INPUT #1, TB(N)
      LINE INPUT #1, TB$(N)
      INPUT #1, XTB(N)
      LINE INPUT #1, XTB$(N)
      INPUT #1, TS(N)
      LINE INPUT #1, TS$(N)
      INPUT #1, XTS(N)
      LINE INPUT #1, XTS$(N)
    NEXT N
    LINE INPUT #1, GPMN$
    INPUT #1, ANTPL
    FOR N = 1 TO ANTPL
      INPUT #1, PL(N)
      LINE INPUT #1, PL$(N)
      INPUT #1, XPL(N)
      LINE INPUT #1, XPL$(N)
    NEXT N
    LINE INPUT #1, GMN$
    INPUT #1, ANTML
    FOR N = 1 TO ANTML
      INPUT #1, ML(N)
      LINE INPUT #1, ML$(N)
      INPUT #1, XML(N)
      LINE INPUT #1, XML$(N)
    NEXT N
    LINE INPUT #1, GN$
    INPUT #1, ANTNL
    FOR N = 1 TO ANTNL
      INPUT #1, NL(N)
      LINE INPUT #1, NL$(N)
      INPUT #1, XNL(N)
      LINE INPUT #1, XNL$(N)
    NEXT N
    LINE INPUT #1, ME$
    INPUT #1, EEN
    LINE INPUT #1, EEN$
    INPUT #1, IBJ
    LINE INPUT #1, IBJ$
    INPUT #1, EBJ
    LINE INPUT #1, EBJ$
    INPUT #1, FCK
    INPUT #1, GAC
    INPUT #1, FSD
    INPUT #1, FI
    INPUT #1, EPCS
    INPUT #1, QDDQK
    INPUT #1, QPDQ
    INPUT #1, BT
    LINE INPUT #1, BT$
    INPUT #1, BW
    LINE INPUT #1, BW$
    INPUT #1, AB
    LINE INPUT #1, AB$
    INPUT #1, AM
    LINE INPUT #1, AM$
    INPUT #1, ANTIH
    INPUT #1, ANTRH
    FOR N = 1 TO ANTRH
      INPUT #1, HBJ(N)
      LINE INPUT #1, HBJ$(N)
      INPUT #1, XH(N)
      LINE INPUT #1, XH$(N)
    NEXT N
    INPUT #1, HMAX
    INPUT #1, ASMIN
    INPUT #1, ASG
    INPUT #1, ASGM
    INPUT #1, INFMNT
    INPUT #1, UTS$
    INPUT #1, FLAG1
    INPUT #1, FLAG2
    INPUT #1, FLAG3
    INPUT #1, FLAG4
    INPUT #1, FLAG5
    INPUT #1, FLAG6
    INPUT #1, FLAG7
    INPUT #1, FLAG8
    INPUT #1, FLAG9
    INPUT #1, FLAG10
    INPUT #1, FLAG11
  CLOSE
  GOTO HOME
END IF

FCK = 35: GAC = 1.5: FSD = 400: GAS = 1.15
FI = 2.5: EPCS = .45 / 1000: QPDQ = .5: QDDQK = 1.5
BT$ = "  300": AB = 50: AM = 50: LBJ$ = "  5000": XTB$(1) = "     0"
OVRF = 0: GHD = .00363
FKS$ = "1": STSY$ = "2": UTS$ = "Y": UTBB$ = "N": ME$ = "Y"
GPMN$ = "N": GMN$ = "N": GN$ = "N": FLSN$ = "N": EVU$ = "N"
HOME:
CONST PI = 3.1416, ESK = 210000, RME = 100000
LCLIN = 24
'LOCATE , , , 29, 31 ' Cursortype.
DO
  CLS
  PRINT "                 ***********"
  PRINT "                 *   MVN   *"
  PRINT "                 ***********"
  PRINT
  PRINT "                 Program for calculation of Moment, Shear and Normal force"
  PRINT "                 in a simple supported or cantilever beam or slab."
  PRINT
  PRINT "                 The calculations are in accordance with BS 8110: 1985."
  PRINT
  PRINT
  PRINT "    Functions:   1. Beam generelly."
  PRINT "                 2. Longitudinal- and shear reinf. in concrete beam or slab."
  PRINT "                 3. Instruction for printout."
  PRINT "                 4. Designing of singel section."
  PRINT
  PRINT "    Your choice: "; FKS$;
  CALL SL("18.0/ 3CR/L", I$, 0, FKS$): GOSUB ESCSUB
  IF FKS$ = "1" THEN EXIT DO
  IF FKS$ = "2" THEN EXIT DO
  IF FKS$ = "3" THEN EXIT DO
  IF FKS$ = "4" THEN EXIT DO
  SOUND 1400, 1
  FKS$ = ""
LOOP

' Veiledning for MVN-program:
IF FKS$ = "3" THEN
  UVL$ = ""
  CLS
  OPEN "I", #1, "MVNVL.TXT"
  LOCATE 2, 70
      PRINT "page 1"
  LOCATE 2, 1
  FOR N = 1 TO 21
    LINE INPUT #1, POST$
    PRINT "    ";
    PRINT POST$
  NEXT N
  LOCATE 24, 1
      PRINT "    Hit <Enter> for next page. "; UVL$;
  CALL SL("32.0/VJNR/ ", I$, 0, UVL$)
  CLS
  PRINT
      PRINT "    Instruction for MVN-program                                      page 2"
  PRINT
  PRINT
  FOR N = 1 TO 16
    LINE INPUT #1, POST$
      PRINT "    ";
    PRINT POST$
  NEXT N
  UVL$ = ""
  LOCATE 24, 1
      PRINT "    Hit <Enter>: "; UVL$;
  CALL SL("18.0/VJNR/ ", I$, 0, UVL$)
  CLOSE
  IF I$ = "ESC" THEN
    OPEN "O", #1, "GEN.MEM"
      PRINT #1, SidLgd
      PRINT #1, Skriver$
      PRINT #1, SakNr$
      PRINT #1, Tekst$
      PRINT #1, Sign$
    CLOSE
    OPEN "O", #1, "MVN.MEM"
      PRINT #1, Flag$
    CLOSE
    CLS : SYSTEM
  END IF
  IF I$ = "RUN" THEN RUN
  FKS$ = "2"
  GOTO HOME
END IF

' Dimensjonering av enkeltsnitt:
IF FKS$ = "4" THEN RUN "MVNES"

' Innmating av statisk system:
CLS
      PRINT
      PRINT "    Type of beam"
      PRINT "    ------------"
      PRINT
IF FLAG1 = 1 THEN CASENR = 5 ELSE CASENR = 1
DO
  LOCATE 5, 1
      PRINT "    Choose type of beam:  1. Cantilever."
      PRINT "                          2. Simply supported."
      PRINT "                          3. Beam with 3 supports."
  LOCATE 4 + VAL(STSY$), 27
  COLOR 0, 7: PRINT STSY$: COLOR 7, 0
  SELECT CASE CASENR
  CASE 1
    LOCATE 5, 27: PRINT "1"
    LOCATE 6, 27: PRINT "2"
    LOCATE 7, 27: PRINT "3"
    LOCATE 4 + VAL(STSY$)
    LOCATE 4 + VAL(STSY$), , , 0, 31
    CALL SL("27.0/ 1CR/M", I$, 0, STSY$)
    'LOCATE , , , 29, 31
  CASE 2
    IF STSY$ = "1" THEN
      LOCATE 11, 1
      PRINT "                                              "
      LOCATE 10, 1
PRINT USING "    Cantilever length:            l  =\     \mm"; LBJ$;
      CALL SL("39.2/H6.0/L", I$, LBJ, LBJ$)
    END IF
    IF STSY$ = "2" THEN
      LOCATE 11, 1
      PRINT "                                              "
      LOCATE 10, 1
PRINT USING "    Length of span:               l  =\     \mm"; LBJ$;
      CALL SL("39.2/H6.0/L", I$, LBJ, LBJ$)
    END IF
    IF STSY$ = "3" THEN
      LOCATE 10, 1
PRINT USING "    Length of 1. span:            l1 =\     \mm"; LBJ1$;
      CALL SL("39.2/H6.0/L", I$, LBJ1, LBJ1$)
PRINT USING "    Length of 2. span:            l2 =\     \mm"; LBJ2$;
      CALL SL("39.2/H6.0/L", I$, LBJ2, LBJ2$)
      LBJ = LBJ1 + LBJ2
      CALL US(LBJ, "6.0", LBJ$)
    END IF
    IF STSY$ <> "1" AND STSY$ <> "2" AND STSY$ <> "3" THEN
      CASENR = CASENR - 1: STSY$ = "2"
    END IF
  CASE 3
    LOCATE 13, 1
      PRINT "    Calculation of deflection wanted ? (Y/N): "; UTBB$;
    CALL SL("47.0/VJNR/L", I$, 0, UTBB$)
  CASE 4
    LOCATE 15, 1
      PRINT "    Special printout points wanted ?   (Y/N): "; EVU$;
    CALL SL("47.0/VJNR/ ", I$, 0, EVU$)
  CASE 5
    LOCATE 10, 1
    LOCATE 10, 1, , 29, 31
    IF STSY$ = "1" THEN
PRINT USING "    Cantilever length:            l  =\     \mm"; LBJ$
    END IF
    IF STSY$ = "2" THEN
PRINT USING "    Length of span:               l  =\     \mm"; LBJ$
    END IF
    IF STSY$ = "3" THEN
PRINT USING "    Length of 1. span:            l1 =\     \mm"; LBJ1$
PRINT USING "    Length of 2. span:            l2 =\     \mm"; LBJ2$
    END IF
    LOCATE 13, 1
      PRINT "    Calculation of deflection wanted ? (Y/N): "; UTBB$
    LOCATE 15, 1
      PRINT "    Special printout points wanted ?   (Y/N): "; EVU$
    FLAG1 = 1: GOSUB KINS
  END SELECT
  IF I$ = "OPP" THEN CASENR = CASENR - 1 ELSE CASENR = CASENR + 1
  IF CASENR < 1 THEN CASENR = 5
  IF I$ = "INS" THEN CASENR = 1
  IF I$ = "END" THEN CASENR = 5
  GOSUB ESCSUB
LOOP WHILE CASENR <= 5

IF EVU$ = "N" THEN
  DX = 1000000!
ELSE
' Innmating av utskriftpunkter:
IF FLAG2 = 0 THEN I$ = "INS"
IF FLAG2 = 1 THEN I$ = "END"
DO
  IF I$ = "INS" THEN EXP1 = 1: EXP2 = 1: EXP3 = 1: EXP4 = 0
  IF I$ = "END" THEN EXP1 = 1: EXP2 = 0: EXP3 = 0: EXP4 = 1
  IF EXP1 = 0 AND EXP2 = 0 AND EXP3 = 0 AND EXP4 = 0 THEN EXIT DO
  IF EXP1 = 1 THEN
    EXP1 = 0
    CLS
      PRINT
      PRINT "    Printout points"
      PRINT "    ---------------"
      PRINT
      PRINT "    Printout of sectional forces will automaticly be done in all"
      PRINT "    relevant points such as maximum points, load points etc."
      PRINT
      PRINT "    If additional printout points are wanted, then a fixed interval"
      PRINT "    dx can be chosen, and/or it can be given co-ordinats for those"
      PRINT "    spesific points (max 9 nos) that is wanted to be printed out."
  END IF
  IF EXP2 = 1 THEN
    EXP2 = 0
    DO
      FEIL = 0
      LOCATE 12, 1
PRINT USING "    Print out interval:           dx =\     \mm"; DX$;
      CALL SL("39.2/I6.0/L", I$, DX, DX$): GOSUB ESCSUB
      IF DX$ = "" THEN
    DX = 1000000!
    LOCATE CSRLIN - 1
      PRINT "                                                    "
      END IF
      IF DX < LBJ / 40 THEN
    SOUND 1400, 1: LOCATE 24, 1
      PRINT "    Print out interval too litle !!                                ";
    FEIL = 1
      END IF
    LOOP WHILE FEIL = 1
  END IF
  IF EXP3 = 1 THEN
    EXP3 = 0
    N = 1
    LOCATE 14, 1
    DO
      PRINT : LOCATE CSRLIN - 1
PRINT USING "    Chosen print out point no##:  X# =\     \mm"; N; N; XS$(N);
      CALL SL("39.2/G6.0/L", I$, XS(N), XS$(N)): GOSUB ESCSUB
      IF I$ = "INS" OR I$ = "END" THEN EXIT DO
      IF XS$(N) = "" THEN
    ANTXS = N - 1
    I$ = "END"
    LOCATE CSRLIN - 1
      PRINT "                                                    ";
    IF DX$ + XS$(1) = "" THEN
      LOCATE 14, 1
      PRINT "    Print out interval and print out points not spesified."
      DX = 1000000!
    END IF
    EXIT DO
      END IF
      IF N = 9 THEN ANTXS = N: EXP4 = 1: EXIT DO
      N = N + 1
    LOOP
  END IF
  IF EXP4 = 1 THEN
    EXP4 = 0
    IF DX$ <> "" THEN
      LOCATE 12, 1
PRINT USING "    Print out interval:           dx =\     \mm"; DX$;
    END IF
    LOCATE 14, 1
    FOR N = 1 TO ANTXS
PRINT USING "    Chosen print out point no##:  X# =\     \mm"; N; N; XS$(N)
    NEXT N
    FLAG2 = 1: GOSUB KINS: GOSUB ESCSUB
  END IF
LOOP
END IF

' Innmating av trapeslaster:
IF FLAG3 = 0 THEN I$ = "INS"
IF FLAG3 = 1 THEN I$ = "END"
DO
  IF I$ = "INS" THEN EXP1 = 1: EXP2 = 1: EXP3 = 0
  IF I$ = "END" THEN EXP1 = 1: EXP2 = 0: EXP3 = 1
  IF EXP1 = 0 AND EXP2 = 0 AND EXP3 = 0 THEN EXIT DO
  IF EXP1 = 1 THEN
    EXP1 = 0
    CLS
    PRINT
      PRINT "    Trapez loads"
      PRINT "    ------------"
    IF FKS$ = "2" THEN
      PRINT "    Loads shall be given in ultimate limit state (ULS)."
    END IF
      PRINT "    Self weight of beam shall be included."
      PRINT "    Max number of trapez loads is 9."
  END IF
  IF EXP2 = 1 THEN
    EXP2 = 0
    N = 0: XMAXT = 0
    DO
      IF N = 9 THEN ANTTL = N: I$ = "END": EXIT DO
      N = N + 1
      IF N > 1 AND FLAG3 = 0 THEN
    IF XTS(N - 1) <> LBJ THEN
      IF TB$(N) = "" AND XTS(N - 1) < LBJ THEN
        TB$(N) = TS$(N - 1)
        XTB$(N) = XTS$(N - 1)
        XTS$(N) = LBJ$
      END IF
    ELSE
      TB$(N) = ""
    END IF
      END IF
      PRINT : PRINT : LOCATE CSRLIN - 1
PRINT USING "    ##. Trapezl.:   Load in startpoint=\     \kN/m,"; N; TB$(N);
      CALL SL("40.2/G6.1/ ", I$, TB(N), TB$(N)): GOSUB ESCSUB
      IF I$ = "INS" OR I$ = "END" THEN EXIT DO
      IF TB$(N) = "" THEN
    ANTTL = N - 1
    I$ = "END"
    LOCATE CSRLIN - 1
      PRINT "                                                   ";
    EXIT DO
      END IF
      DO
    FEIL = 0
    LOCATE , 52:                                    PRINT USING " start co-ordin.=\     \mm"; XTB$(N);
    CALL SL("69.2/F6.0/L", I$, XTB(N), XTB$(N)): GOSUB ESCSUB
    IF STSY$ = "1" AND XTB(N) < 0 THEN
      FEIL = 1: SOUND 1400, 1: C = CSRLIN: LOCATE 24, 1
      PRINT "    All co-ordinats shall be positive on cantylever beam !!    ";
      LOCATE C - 1
    END IF
      LOOP WHILE FEIL = 1
      IF I$ = "INS" OR I$ = "END" THEN EXIT DO
      IF TS$(N) = "" THEN TS$(N) = TB$(N)
PRINT USING "                    Load in endpoint  =\     \kN/m,"; TS$(N);
      CALL SL("40.2/F6.1/ ", I$, TS(N), TS$(N)): GOSUB ESCSUB
      IF I$ = "INS" OR I$ = "END" THEN EXIT DO
      IF XTS$(N) = "" THEN XTS$(N) = LBJ$
      DO
    FEIL = 0
    LOCATE , 52:                               PRINT USING " end co-ordinat =\     \mm"; XTS$(N);
    CALL SL("69.2/F6.0/L", I$, X, X$): GOSUB ESCSUB
    IF STSY$ = "1" AND X < 0 THEN
      FEIL = 1: SOUND 1400, 1: C = CSRLIN: LOCATE 24, 1
      PRINT "    All co-ordinats shall be positive on cantylever beam !!    ";
      LOCATE C - 1
    END IF
    IF XTB(N) >= X THEN
      FEIL = 1: SOUND 1400, 1: C = CSRLIN: LOCATE 24, 1
      PRINT "    End co-ordinat shall be biggger than start co-ordinat !!     ";
      LOCATE C - 1
    END IF
      IF I$ = "INS" THEN EXIT DO
      LOOP WHILE FEIL = 1
          XTS(N) = X: XTS$(N) = X$
      IF I$ = "INS" OR I$ = "END" THEN EXIT DO
      IF XMAXT < XTS(N) THEN XMAXT = XTS(N)
    LOOP
  END IF
  IF EXP3 = 1 THEN
    EXP3 = 0
    IF ANTTL = 0 THEN
      PRINT
      PRINT "    No trapez loads given."
    ELSE
      FOR N = 1 TO ANTTL
    PRINT : PRINT : PRINT : PRINT : PRINT : LOCATE CSRLIN - 4
PRINT USING "    ##. Trapezl.:   Load in startpoint=\     \kN/m, start co-ordin.=\     \mm"; N; TB$(N); XTB$(N)
PRINT USING "                    Load in endpoint  =\     \kN/m, end co-ordinat =\     \mm"; TS$(N); XTS$(N)
      NEXT N
    END IF
    FLAG3 = 1: GOSUB KINS: GOSUB ESCSUB
  END IF
LOOP
IF ANTTL = 0 THEN GPMN$ = "Y"
LOCATE 24, 1
PRINT USING "    More load types? (Y/N): \\                            "; GPMN$;
CALL SL("29.0/VJNR/ ", I$, 0, GPMN$): GOSUB ESCSUB
IF GPMN$ = "N" THEN GMN$ = "N": GN$ = "N": ANTPL = 0: ANTML = 0: ANTNL = 0
XMAX = XMAXT

IF GPMN$ = "Y" THEN ' Innmating av punktlaster:
IF FLAG4 = 0 THEN I$ = "INS"
IF FLAG4 = 1 THEN I$ = "END"
DO
  IF I$ = "INS" THEN EXP1 = 1: EXP2 = 1: EXP3 = 0
  IF I$ = "END" THEN EXP1 = 1: EXP2 = 0: EXP3 = 1
  IF EXP1 = 0 AND EXP2 = 0 AND EXP3 = 0 THEN EXIT DO
  IF EXP1 = 1 THEN
    EXP1 = 0
    CLS
    PRINT
      PRINT "    Point loads"
      PRINT "    -----------"
    IF FKS$ = "2" THEN
      PRINT "    Loads given in ultimate limit state."
    END IF
      PRINT "    Max number of point loads is 9."
  END IF
  IF EXP2 = 1 THEN
    EXP2 = 0
    N = 0: XMAXP = 0
    DO
      IF N = 9 THEN ANTPL = N: I$ = "END": EXIT DO
      N = N + 1
      PRINT : PRINT : LOCATE CSRLIN - 1
PRINT USING "    ##. Point load =\    \ kN,"; N; PL$(N);
      CALL SL("21.2/G6.1/ ", I$, X, PL$(N)): PL(N) = X * 1000: GOSUB ESCSUB
      IF I$ = "INS" OR I$ = "END" THEN EXIT DO
      IF PL$(N) = "" THEN
    ANTPL = N - 1
    I$ = "END"
    LOCATE CSRLIN - 1
      PRINT "                                                   ";
    EXIT DO
      END IF
      DO
    FEIL = 0
    LOCATE , 32:          PRINT USING " co-ordinat=\    \ mm "; XPL$(N);
    CALL SL("44.2/F6.0/L", I$, XPL(N), XPL$(N)): GOSUB ESCSUB
    IF STSY$ = "1" AND XPL(N) < 0 THEN
      FEIL = 1: SOUND 1400, 1: C = CSRLIN: LOCATE 24, 1
      PRINT "    All co-ordinats shall be positive on cantylever beam !!    ";
      LOCATE C - 1
    END IF
      LOOP WHILE FEIL = 1
      IF I$ = "INS" OR I$ = "END" THEN EXIT DO
    IF XMAXP < XPL(N) THEN XMAXP = XPL(N)
    LOOP
  END IF
  IF EXP3 = 1 THEN
    EXP3 = 0
    IF ANTPL = 0 THEN
      PRINT
      PRINT "    No point loads given."
    ELSE
      FOR N = 1 TO ANTPL
    PRINT : PRINT : PRINT : LOCATE CSRLIN - 2
PRINT USING "    ##. Point load =\    \ kN,  co-ordinat=\    \ mm "; N; PL$(N); XPL$(N)
      NEXT N
    END IF
    FLAG4 = 1: GOSUB KINS: GOSUB ESCSUB
  END IF
LOOP
' Addering av sammenfallende punktlaster:
DO
  N = ANTPL
  FOR I = 1 TO ANTPL - 1
    FOR J = I + 1 TO ANTPL
      IF XPL(I) = XPL(J) THEN
        PL(I) = PL(I) + PL(J)
        PL(J) = PL(ANTPL)
        XPL(J) = XPL(ANTPL)
        CALL US (PL(I)/1000, "6.1", PL$(I))
        CALL US (PL(J)/1000, "6.1", PL$(J))
        CALL US (XPL(J), "6.0", XPL$(J))
        I = ANTPL - 1
        J = ANTPL
        ANTPL = ANTPL - 1
      END IF
    NEXT J
  NEXT I
LOOP WHILE N <> ANTPL
IF ANTPL = 0 THEN GMN$ = "Y"
IF XMAX < XMAXP THEN XMAX = XMAXP
LOCATE 24, 1
PRINT USING "    More load types? (Y/N): \\                             "; GMN$;
CALL SL("29.0/VJNR/ ", I$, 0, GMN$): GOSUB ESCSUB
IF GMN$ = "N" THEN GN$ = "N": ANTML = 0: ANTNL = 0
END IF

IF GMN$ = "Y" THEN ' Innmating av momentlaster:
IF FLAG5 = 0 THEN I$ = "INS"
IF FLAG5 = 1 THEN I$ = "END"
DO
  IF I$ = "INS" THEN EXP1 = 1: EXP2 = 1: EXP3 = 0
  IF I$ = "END" THEN EXP1 = 1: EXP2 = 0: EXP3 = 1
  IF EXP1 = 0 AND EXP2 = 0 AND EXP3 = 0 THEN EXIT DO
  IF EXP1 = 1 THEN
    EXP1 = 0
    CLS
    PRINT
      PRINT "    Moment loads"
      PRINT "    ------------"
    IF FKS$ = "2" THEN
      PRINT "    Loads is given in ULS."
    END IF
      PRINT "    Moment loads around axis perpendicular to the plane for other loads"
      PRINT "    are imposed in random points on the beam."
      PRINT "    Moment loads are positive counter clockwise."
      PRINT "    Max number of moment loads is 9."
  END IF
  IF EXP2 = 1 THEN
    EXP2 = 0
    N = 0: XMAXM = 0
    DO
      IF N = 9 THEN ANTML = N: I$ = "END": EXIT DO
      N = N + 1
      PRINT : PRINT : LOCATE CSRLIN - 1
PRINT USING "    ##. Moment      =\    \ kNm,"; N; ML$(N);
      CALL SL("22.2/G6.0/ ", I$, X, ML$(N)): ML(N) = X * 1000000: GOSUB ESCSUB
      IF I$ = "INS" OR I$ = "END" THEN EXIT DO
      IF ML$(N) = "" THEN
    ANTML = N - 1
    I$ = "END"
    LOCATE CSRLIN - 1
      PRINT "                                                   ";
    EXIT DO
      END IF
      DO
    FEIL = 0
    LOCATE , 34:          PRINT USING " co-ordinat =\    \ mm "; XML$(N);
    CALL SL("47.2/F6.0/L", I$, XML(N), XML$(N)): GOSUB ESCSUB
    IF STSY$ = "1" AND XML(N) < 0 THEN
      FEIL = 1: SOUND 1400, 1: C = CSRLIN: LOCATE 24, 1
      PRINT "    All co-ordinats shall be positive on cantylever beam !!    ";
      LOCATE C - 1
    END IF
      LOOP WHILE FEIL = 1
      IF I$ = "INS" OR I$ = "END" THEN EXIT DO
    IF XMAXM < XML(N) THEN XMAXM = XML(N)
    LOOP
  END IF
  IF EXP3 = 1 THEN
    EXP3 = 0
    IF ANTML = 0 THEN
      PRINT
      PRINT "    No moment loads given."
    ELSE
      FOR N = 1 TO ANTML
    PRINT : PRINT : PRINT : LOCATE CSRLIN - 2
PRINT USING "    ##. Moment      =\    \ kNm,  co-ordinat =\    \ mm "; N; ML$(N); XML$(N)
      NEXT N
    END IF
    FLAG5 = 1: GOSUB KINS: GOSUB ESCSUB
  END IF
LOOP
' Addering av sammenfallende momentlaster:
DO
  N = ANTML
  FOR I = 1 TO ANTML - 1
    FOR J = I + 1 TO ANTML
      IF XML(I) = XML(J) THEN
        ML(I) = ML(I) + ML(J): ML(J) = ML(ANTML): XML(J) = XML(ANTML)
        ML$(I) = STR$(ML(I)/1000000)
        ML$(ANTML) = STR$(ML(ANTML)/1000000)
        XML$(ANTML) = STR$(XML(ANTML))
        ANTML = ANTML - 1
      END IF
    NEXT J
  NEXT I
LOOP WHILE N <> ANTML
IF ANTML = 0 THEN GN$ = "Y"
IF XMAX < XMAXM THEN XMAX = XMAXM
LOCATE 24, 1
PRINT USING "    More load types? (Y/N): \\                              "; GN$;
CALL SL("29.0/VJNR/ ", I$, 0, GN$): GOSUB ESCSUB
IF GN$ = "N" THEN ANTNL = 0
END IF

IF GN$ = "Y" THEN ' Innmating av normallaster:
IF FLAG6 = 0 THEN I$ = "INS"
IF FLAG6 = 1 THEN I$ = "END"
DO
  IF I$ = "INS" THEN EXP1 = 1: EXP2 = 1: EXP3 = 1: EXP4 = 0
  IF I$ = "END" THEN EXP1 = 1: EXP2 = 0: EXP3 = 0: EXP4 = 1
  IF EXP1 = 0 AND EXP2 = 0 AND EXP3 = 0 THEN EXIT DO
  IF EXP1 = 1 THEN
    EXP1 = 0
    CLS
    PRINT
      PRINT "    Normal loads"
      PRINT "    ------------"
    IF FKS$ = "2" THEN
      PRINT "    Loads is given in ULS."
    END IF
      PRINT "    Normal loads are considered to go from target point to"
    IF STSY$ = "1" THEN
      PRINT "    cantylever point (zero point)."
    ELSEIF STSY$ = "2" THEN
      PRINT "    the left most point of support (zero point)."
    END IF
      PRINT "    The positive direction is toward zero point."
      PRINT "    Max number of normal loads is 9 nos."
  END IF
  IF EXP2 = 1 THEN
    EXP2 = 0
    N = 0: XMAXN = 0
    DO
      IF N = 9 THEN ANTNL = N: I$ = "END": EXIT DO
      N = N + 1
      PRINT : PRINT : LOCATE CSRLIN - 1
PRINT USING "    ##. Normal load=\    \ kN,"; N; NL$(N);
      CALL SL("21.2/G6.0/ ", I$, X, NL$(N)): NL(N) = X * 1000: GOSUB ESCSUB
      IF I$ = "INS" OR I$ = "END" THEN EXIT DO
      IF NL$(N) = "" THEN
        I$ = "END"
        ANTNL = N - 1
        LOCATE CSRLIN - 1
      PRINT "                                                   ";
        EXIT DO
      END IF
      DO
        IF XNL$(1) = "" THEN XNL$(1) = LBJ$
    FEIL = 0
    LOCATE , 32:          PRINT USING " co-ordinat =\    \ mm "; XNL$(N);
    CALL SL("45.2/F6.0/L", I$, XNL(N), XNL$(N)): GOSUB ESCSUB
    IF STSY$ = "1" AND XNL(N) < 0 THEN
      FEIL = 1: SOUND 1400, 1: C = CSRLIN: LOCATE 24, 1
      PRINT "    All co-ordinats shall be positive on cantylever beam !!    ";
      LOCATE C - 1
    END IF
      LOOP WHILE FEIL = 1
      IF I$ = "INS" OR I$ = "END" THEN EXIT DO
    IF XMAXN < XNL(N) THEN XMAXN = XNL(N)
    LOOP
    IF ANTNL = 0 THEN EXP3 = 0
  END IF
  IF EXP3 = 1 THEN
    EXP3 = 0
    PRINT
      PRINT "    Is additional moment from normal force to be considered ? (Y/N): "; ME$;
    CALL SL("70.0/VJNR/L", I$, 0, ME$): GOSUB ESCSUB
    IF ME$ = "N" THEN
      PRINT
PRINT USING "    Exentrisity of normal force:         eN =\    \mm"; EEN$;
      CALL SL("46.2/F5.0/L", I$, EEN, EEN$): GOSUB ESCSUB
    ELSE
      EEN = 0
    END IF
    I$ = "END"
  END IF
  IF EXP4 = 1 THEN
    EXP4 = 0
    IF ANTNL = 0 THEN
      PRINT
       PRINT "    No normal loads given."
    ELSE
      FOR N = 1 TO ANTNL
    PRINT : PRINT : PRINT : LOCATE CSRLIN - 2
PRINT USING "    ##. Normal load=\    \ kN,  co-ordinat =\    \ mm "; N; NL$(N); XNL$(N)
      NEXT N
      PRINT
      PRINT "    Is additional moment from normal force to be considered ? (Y/N): "; ME$
      IF ME$ = "N" THEN
    PRINT
PRINT USING "    Exentrisity of normal force:         eN =\    \mm"; EEN$
      END IF
    END IF
    FLAG6 = 1: GOSUB KINS: GOSUB ESCSUB
  END IF
LOOP
' Addering av sammenfallende momentlaster:
DO
  N = ANTNL
  FOR I = 1 TO ANTNL - 1
    FOR J = I + 1 TO ANTNL
      IF XNL(I) = XNL(J) THEN
        NL(I) = NL(I) + NL(J): NL(J) = NL(ANTNL): XNL(J) = XNL(ANTNL)
        NL$(I) = STR$(NL(I)/1000)
        NL$(ANTNL) = STR$(NL(ANTNL)/1000)
        XNL$(ANTNL) = STR$(XNL(ANTNL))
        ANTNL = ANTNL - 1
      END IF
    NEXT J
  NEXT I
LOOP WHILE N <> ANTNL
IF XMAX < XMAXM THEN XMAX = XMAXM
END IF

IF STSY$ = "1" THEN ' For utkraget bjelke:
  INFMNT = 0
  FOR N = 1 TO ANTTL
    INFMNT = INFMNT - ((XTS(N) ^ 2 - XTB(N) ^ 2) / 2 * TB(N) + (XTB(N) + 2 * XTS(N)) / 6 * (XTS(N) - XTB(N)) * (TS(N) - TB(N)))
  NEXT N
  FOR N = 1 TO ANTPL
    INFMNT = INFMNT - XPL(N) * PL(N)
  NEXT N
  FOR N = 1 TO ANTML
    INFMNT = INFMNT + ML(N)
  NEXT N
END IF

IF ANTNL > 0 AND ME$ = "Y" THEN UTBB$ = "Y"
IF EBJ$ = "" THEN EBJ = ESK
IF IBJ$ = "" THEN IBJ = 100 * 10 ^ 6

IF UTBB$ = "Y" THEN

IF FKS$ = "1" THEN ' Homogen bjelke:
IF FLAG7 = 0 THEN I$ = "INS"
IF FLAG7 = 1 THEN I$ = "END"
DO
  IF I$ = "INS" THEN EXP1 = 1: EXP2 = 1: EXP3 = 1: EXP4 = 1
  IF I$ = "END" THEN EXP1 = 1: EXP2 = 0: EXP3 = 0: EXP4 = 1
  IF EXP1 + EXP2 + EXP3 + EXP4 = 0 THEN EXIT DO
  IF EXP1 = 1 THEN
    EXP1 = 0
    CLS
    PRINT
      PRINT "    Data for deflection"
      PRINT "    -------------------"
    END IF
  IF EXP2 = 1 THEN
    EXP2 = 0
    LOCATE 5, 1
PRINT USING "    Moment of inertia:                I = \     \*10^6 mm4"; IBJ$;
    CALL SL("43.1/G6.1/L", I$, X, IBJ$): IBJ = X * 1000000: GOSUB ESCSUB
    IF IBJ$ = "" THEN
      UTBB$ = "N"
      EXP3 = 0
      LOCATE CSRLIN - 1
      PRINT "    Deflection will not be calculated !                    "
    ELSE
      UTBB$ = "Y"
    END IF
  END IF
  IF EXP3 = 1 THEN
    EXP3 = 0
      PRINT
PRINT USING "    Module of elastisity:             E = ###### N/mm2"; EBJ;
      CALL SL("43.0/F6.0/L", I$, EBJ, EBJ$): GOSUB ESCSUB
  END IF
  IF EXP4 = 1 THEN
    EXP4 = 0
    LOCATE 5, 1
    IF IBJ$ = "" THEN
      PRINT "    Deflection will not be calculated !                    "
    ELSE
PRINT USING "    Moment of inertia:                I = \     \*10^6 mm4"; IBJ$
      PRINT
PRINT USING "    Module of elastisity:             E = ###### N/mm2"; EBJ;
    END IF
    FLAG7 = 1: GOSUB KINS: GOSUB ESCSUB
  END IF
LOOP
END IF

END IF

IF FKS$ = "2" THEN ' Betongbjelke:
BTBJ:
I$ = "END"
DO
  IF I$ = "INS" THEN EXP1 = 0: EXP2 = 1: EXP3 = 1: EXP4 = 1: EXP5 = 1
  IF I$ = "END" THEN EXP1 = 1: EXP2 = 0: EXP3 = 0: EXP4 = 0: EXP5 = 1
  IF EXP1 + EXP2 + EXP3 + EXP4 + EXP5 = 0 THEN EXIT DO
  IF EXP1 = 1 THEN
    EXP1 = 0
    CLS
    PRINT
      PRINT "    Material properties"
      PRINT "    -------------------"
  END IF
  IF EXP2 = 1 THEN
    DO
    EXP2 = 0
      LOCATE 5, 1
PRINT USING "    Cube strength of concrete:          fcu =##### N/mm2"; FCK;
      CALL SL("46.3/F5.0/L", I$, X, ""): GOSUB ESCSUB
      IF X >= 10 THEN FCK = X
      IF X >= 15 THEN FCK = X
      IF X >= 25 THEN FCK = X
      IF X >= 35 THEN FCK = X
      IF X >= 45 THEN FCK = X
      IF X >= 55 THEN FCK = X
      IF X >= 65 THEN FCK = X
      IF X >= 75 THEN FCK = X
      IF X >= 85 THEN FCK = X
      IF 10 <= X AND X <= 85 THEN EXIT DO
      SOUND 1400, 1: LOCATE 24, 1
      PRINT "    Incorrect value of fcu ! (fcu < 10 or 85 < fcu)    ";
    LOOP
  END IF
  IF EXP3 = 1 THEN
    EXP3 = 0
PRINT USING "    Partial safety factor for concrete: gac =##.##"; GAC;
    CALL SL("46.1/H5.2/L", I$, GAC, ""): GOSUB ESCSUB
  END IF
  IF EXP4 = 1 THEN
    EXP4 = 0
    PRINT
PRINT USING "    Design strength of reinforcement:   fsd =##### N/mm2"; FSD;
    CALL SL("46.2/H5.0/L", I$, FSD, ""): GOSUB ESCSUB
  END IF
  
User is offlineProfile CardPM
+Quote Post

Amadeus
RE: Which Compiler
9 Jun, 2007 - 12:31 PM
Post #2

g++ -o drink whiskey.cpp
Group Icon

Joined: 12 Jul, 2002
Posts: 12,349



Thanked: 51 times
Dream Kudos: 25
My Contributions
Looks like qbasic should do the trick...but you may have to look for an older version of the compiler...maybe as far back as 1.1...
User is online!Profile CardPM
+Quote Post

William_Wilson
RE: Which Compiler
9 Jun, 2007 - 12:45 PM
Post #3

lost in compilation
Group Icon

Joined: 23 Dec, 2005
Posts: 4,101



Thanked: 25 times
Dream Kudos: 3275
Expert In: Java, C, Javascript

My Contributions
i have a version of the qbasic program laying around somewhere on my desktop. Probably stored with my backup/saved programs over the years.
Pretty sure it's a free compiler, so it shouldn't be too hard to come by.

Wasn't it standard with windows 3.1?
User is offlineProfile CardPM
+Quote Post

static-dragon
RE: Which Compiler
12 Jul, 2007 - 12:47 PM
Post #4

New D.I.C Head
*

Joined: 10 Jul, 2007
Posts: 43


My Contributions
It looks like qBASIC compiler 1.1 would do the trick

http://users.pandora.be/nicvroom/implemnt.htm
User is offlineProfile CardPM
+Quote Post

Amadeus
RE: Which Compiler
12 Jul, 2007 - 05:40 PM
Post #5

g++ -o drink whiskey.cpp
Group Icon

Joined: 12 Jul, 2002
Posts: 12,349



Thanked: 51 times
Dream Kudos: 25
My Contributions
I think I may have mentioned that. smile.gif
User is online!Profile CardPM
+Quote Post

Fast ReplyReply to this topicStart new topic
Time is now: 1/7/09 08:04PM

Be Social

Dream.In.Code RSS Feed Dream.In.Code LinkedIn Group Follow Us On Twitter

Live Help!

Tutorials

Programming

Web Development

Reference Sheets

Code Snippets

DIC Chatroom

Bye Bye Ads

Monthly Drawing

Thumb Drive

Top Contributors

Top 10 Kudos This Month