From: Svjatoslav Agejenko Date: Sun, 23 Feb 2025 12:02:52 +0000 (+0200) Subject: Improve code readability X-Git-Url: http://www2.svjatoslav.eu/gitweb/?a=commitdiff_plain;h=fbb1bbf39eeac6e3adefc7c9d488108f05b8ba2c;p=qbasicapps.git Improve code readability --- diff --git a/Math/Truth table calculator/truth.bas b/Math/Truth table calculator/truth.bas index 204c161..93db702 100755 --- a/Math/Truth table calculator/truth.bas +++ b/Math/Truth table calculator/truth.bas @@ -27,15 +27,15 @@ DECLARE SUB removeRedundancies (startIndex!, endIndex!, removalCount!) DECLARE SUB getP (a!, b!) DECLARE SUB movM (x1!, n!) DECLARE SUB lihts (x1, x2, l) -DECLARE SUB klea () -DECLARE SUB lendM (x1!, m!) +DECLARE SUB clearScreenBuffer () +DECLARE SUB lendm (x1!, m!) DECLARE SUB mov (x1!, n!) -DECLARE SUB lendP (x1!, m!) +DECLARE SUB lendp (x1!, m!) DECLARE SUB teeslg (x1!, x2!, l!) DECLARE SUB prepare () DECLARE SUB tee (x1!, x2!) DECLARE SUB lahend (x1, x2) -DECLARE SUB prn (x!, y!, c!, c1!, a$) +DECLARE SUB printText (x!, y!, c!, c1!, a$) DECLARE SUB sist () DECLARE SUB start () DIM SHARED font(0 TO 7, 0 TO 7, 0 TO 122) @@ -57,6 +57,13 @@ sist prepare GOTO 13 +SUB clearScreenBuffer +' Waits for user input to clear the screen buffer +FOR a = 1 TO 50 + a$ = INKEY$ +NEXT a +END SUB + SUB getP (a, b) ' Determines the priority of logical operators SELECT CASE a @@ -73,13 +80,6 @@ SELECT CASE a END SELECT END SUB -SUB klea -' Waits for user input to clear the screen buffer -FOR a = 1 TO 50 - a$ = INKEY$ -NEXT a -END SUB - SUB lahend (x1, x2) ' Analyzes and prepares the logical equation for solving DIM muu(65 TO 122) @@ -142,12 +142,12 @@ FOR a = 0 TO 79 NEXT a FOR a = 1 TO tehl - prn x2 + 1, a, 14, 0, CHR$(vast(a)) + printText x2 + 1, a, 14, 0, CHR$(vast(a)) NEXT a END SUB -SUB lendM (x1, m) +SUB lendm (x1, m) ' Measures the length of a logical expression enclosed in parentheses IF tehe(x1) <> 41 THEN m = 1: GOTO 19 c = x1 @@ -161,7 +161,7 @@ m = x1 - c 19 END SUB -SUB lendP (x1, m) +SUB lendp (x1, m) ' Measures the length of a logical expression enclosed in parentheses IF tehe(x1) <> 40 THEN m = 1: GOTO 17 c = x1 @@ -182,7 +182,7 @@ SUB lihts (x1, x2, l) 'BEEP prnp = prnp + 1 FOR a = x1 TO x2 - l - prn a, 0, 13, 1, CHR$(tehe(a)) + printText a, 0, 13, 1, CHR$(tehe(a)) NEXT a END SUB @@ -208,7 +208,7 @@ CLS ln = 79 FOR a = 0 TO 79 - 5 +5 IF tehe(a) = 32 OR tehe(a) = 0 THEN FOR b = a TO 78 tehe(b) = tehe(b + 1) @@ -223,19 +223,19 @@ NEXT a CLS FOR a = 0 TO ln - prn a, 0, 13, 1, CHR$(tehe(a)) + printText a, 0, 13, 1, CHR$(tehe(a)) NEXT a -prn 0, 1, 7, 0, "Do you want to simplify it (unfinished so press N)" +printText 0, 1, 7, 0, "Do you want to simplify it (unfinished so press N)" a = 0 23 -klea +clearScreenBuffer a$ = INPUT$(1) IF a$ = "n" OR a$ = "N" THEN GOTO 24 -IF a$ = "y" OR a$ = "Y" THEN ELSE GOTO 23 +IF a$ = "y" OR a$ = "Y" THEN ELSE GOTO 23 a = 1 24 -prn 0, 1, 7, 0, SPACE$(79) +printText 0, 1, 7, 0, SPACE$(79) l = 0 IF a = 1 THEN lihts 0, ln, l @@ -245,7 +245,7 @@ a$ = INPUT$(1) END SUB -SUB prn (x, y, c, c1, a$) +SUB printText (x, y, c, c1, a$) ' Prints characters to the screen at location (x,y) with color c, background c1 x1 = x * 8 y1 = (y + prnp) * 8 @@ -319,8 +319,8 @@ END SUB SUB sist ' Interacts with the user to input a logical equation CLS -prn 0, 0, 3, 0, "Enter equation (ESC to quit) keys: 1 - " + CHR$(1) + " 2 - " + CHR$(2) + " 3 - " + CHR$(3) + " 4 - " + CHR$(4) + " 5 - " + CHR$(5) -prn 0, 1, 3, 0, "Example: a" + CHR$(1) + "b" + CHR$(2) + "(g" + CHR$(3) + "b)" +printText 0, 0, 3, 0, "Enter equation (ESC to quit) keys: 1 - " + CHR$(1) + " 2 - " + CHR$(2) + " 3 - " + CHR$(3) + " 4 - " + CHR$(4) + " 5 - " + CHR$(5) +printText 0, 1, 3, 0, "Example: a" + CHR$(1) + "b" + CHR$(2) + "(g" + CHR$(3) + "b)" FOR a = 0 TO 79 tehe(a) = 0 @@ -329,7 +329,7 @@ NEXT a x = 0 1 FOR a = 0 TO 79 - IF a = x THEN prn a, 2, 14, 1, CHR$(tehe(a)) ELSE prn a, 2, 3, 0, CHR$(tehe(a)) + IF a = x THEN printText a, 2, 14, 1, CHR$(tehe(a)) ELSE printText a, 2, 3, 0, CHR$(tehe(a)) NEXT a 2 a$ = INKEY$ @@ -344,7 +344,7 @@ IF x > 79 THEN x = 79 IF LEN(a$) = 1 THEN SELECT CASE ASC(a$) CASE 32, 40, 41, 65 TO 90, 97 TO 122 - 3 +3 FOR a = 78 TO x STEP -1 tehe(a + 1) = tehe(a) NEXT a @@ -441,13 +441,13 @@ FOR a = x1 TO x2 CASE 40 c = a d = 1 - 10 +10 c = c + 1 IF tehe(c) = ASC("(") THEN d = d + 1 IF tehe(c) = ASC(")") THEN d = d - 1 IF d = 0 THEN GOTO 11 GOTO 10 - 11 +11 tee a + 1, c - 1 a = c FOR c = 1 TO tehl @@ -464,12 +464,12 @@ FOR a = x1 TO x2 FOR c = 1 TO nm IF muun(c) = b THEN d = c: GOTO 8 NEXT c - 8 +8 FOR c = 1 TO tehl opr(oprm, c) = muut(d, c) - prn xloc(a), c, 3, 0, CHR$(muut(d, c)) + printText xloc(a), c, 3, 0, CHR$(muut(d, c)) NEXT c - 12 +12 IF ng = 1 THEN GOSUB mkneg IF oprm = 2 THEN SELECT CASE oe @@ -479,7 +479,7 @@ FOR a = x1 TO x2 e = opr(2, c) IF d = e THEN f = ASC("t") ELSE f = ASC("v") opr(1, c) = f - prn xloc(oex), c, 12, 0, CHR$(f) + printText xloc(oex), c, 12, 0, CHR$(f) NEXT c CASE 2 FOR c = 1 TO tehl @@ -488,7 +488,7 @@ FOR a = x1 TO x2 f = ASC("t") IF (d = ASC("t")) AND (e = ASC("v")) THEN f = ASC("v") opr(1, c) = f - prn xloc(oex), c, 12, 0, CHR$(f) + printText xloc(oex), c, 12, 0, CHR$(f) NEXT c CASE 3 FOR c = 1 TO tehl @@ -497,7 +497,7 @@ FOR a = x1 TO x2 f = ASC("t") IF (d = ASC("v")) AND (e = ASC("v")) THEN f = ASC("v") opr(1, c) = f - prn xloc(oex), c, 12, 0, CHR$(f) + printText xloc(oex), c, 12, 0, CHR$(f) NEXT c CASE 4 FOR c = 1 TO tehl @@ -506,7 +506,7 @@ FOR a = x1 TO x2 f = ASC("v") IF (d = ASC("t")) AND (e = ASC("t")) THEN f = ASC("t") opr(1, c) = f - prn xloc(oex), c, 12, 0, CHR$(f) + printText xloc(oex), c, 12, 0, CHR$(f) NEXT c END SELECT ELSE @@ -522,7 +522,7 @@ mkneg: FOR c = 1 TO tehl d = opr(oprm, c) IF d = ASC("t") THEN d = ASC("v") ELSE d = ASC("t") - prn xloc(ngx), c, 4, 0, CHR$(d) + printText xloc(ngx), c, 4, 0, CHR$(d) opr(oprm, c) = d NEXT c ng = 0 @@ -541,18 +541,18 @@ h = 0 FOR e = 1 TO 4 g = 1 a = x1 - 21 +21 b = tehe(a) IF b = 40 THEN c = a d = 1 - 14 +14 c = c + 1 IF tehe(c) = ASC("(") THEN d = d + 1 IF tehe(c) = ASC(")") THEN d = d - 1 IF d = 0 THEN GOTO 15 GOTO 14 - 15 +15 IF e = 1 THEN teeslg a + 1, c - 1, l ELSE l = 0 a = c + l x2 = x2 + l @@ -608,9 +608,10 @@ FOR e = 1 TO 4 CASE 1 g = 4 END SELECT - 16 +16 a = a + 1 IF a <= x2 THEN GOTO 21 NEXT e l = h END SUB +