Display a linear combination: Difference between revisions
Content added Content deleted
(Added Easylang) |
(Added various BASIC dialects (Chipmunk Basic, GW-BASIC, MSX Basic, QBasic and Yabasic)) |
||
Line 233: | Line 233: | ||
-e(1) - 2*e(2) - 3*e(4) |
-e(1) - 2*e(2) - 3*e(4) |
||
-e(1)</pre> |
-e(1)</pre> |
||
=={{header|BASIC}}== |
|||
==={{header|Chipmunk Basic}}=== |
|||
{{trans|FreeBASIC}} |
|||
{{works with|Chipmunk Basic|3.6.4}} |
|||
<syntaxhighlight lang="vbnet">100 dim scalars(10,4) |
|||
110 scalars(1,1) = 1 : scalars(1,2) = 2 : scalars(1,3) = 3 |
|||
120 scalars(2,1) = 0 : scalars(2,2) = 1 : scalars(2,3) = 2 : scalars(2,4) = 3 |
|||
130 scalars(3,1) = 1 : scalars(3,2) = 0 : scalars(3,3) = 3 : scalars(3,4) = 4 |
|||
140 scalars(4,1) = 1 : scalars(4,2) = 2 : scalars(4,3) = 0 |
|||
150 scalars(5,1) = 0 : scalars(5,2) = 0 : scalars(5,3) = 0 |
|||
160 scalars(6,1) = 0 |
|||
170 scalars(7,1) = 1 : scalars(7,2) = 1 : scalars(7,3) = 1 |
|||
180 scalars(8,1) = -1 : scalars(8,2) = -1 : scalars(8,3) = -1 |
|||
190 scalars(9,1) = -1 : scalars(9,2) = -2 : scalars(9,3) = 0 : scalars(9,4) = -3 |
|||
200 scalars(10,1) = -1 |
|||
210 cls |
|||
220 for n = 1 to ubound(scalars) |
|||
230 cadena$ = "" |
|||
240 scalar = 0 |
|||
250 for m = 1 to ubound(scalars,2) |
|||
260 scalar = scalars(n,m) |
|||
270 if scalar <> 0 then |
|||
280 if scalar = 1 then |
|||
290 cadena$ = cadena$+"+e"+str$(m) |
|||
300 else |
|||
310 if scalar = -1 then |
|||
320 cadena$ = cadena$+"-e"+str$(m) |
|||
330 else |
|||
340 if scalar > 0 then |
|||
350 cadena$ = cadena$+chr$(43)+str$(scalar)+"*e"+str$(m) |
|||
360 else |
|||
370 cadena$ = cadena$+str$(scalar)+"*e"+str$(m) |
|||
380 endif |
|||
390 endif |
|||
400 endif |
|||
410 endif |
|||
420 next m |
|||
430 if cadena$ = "" then cadena$ = "0" |
|||
440 if left$(cadena$,1) = "+" then cadena$ = right$(cadena$,len(cadena$)-1) |
|||
450 print cadena$ |
|||
460 next n |
|||
470 end</syntaxhighlight> |
|||
==={{header|GW-BASIC}}=== |
|||
{{works with|PC-BASIC|any}} |
|||
{{works with|BASICA}} |
|||
{{works with|Chipmunk Basic}} |
|||
{{works with|QBasic}} |
|||
{{works with|MSX BASIC}} |
|||
<syntaxhighlight lang="qbasic">100 DIM SKLS(10, 4) |
|||
110 SKLS(1, 1) = 1: SKLS(1, 2) = 2: SKLS(1, 3) = 3 |
|||
120 SKLS(2, 1) = 0: SKLS(2, 2) = 1: SKLS(2, 3) = 2: SKLS(2, 4) = 3 |
|||
130 SKLS(3, 1) = 1: SKLS(3, 2) = 0: SKLS(3, 3) = 3: SKLS(3, 4) = 4 |
|||
140 SKLS(4, 1) = 1: SKLS(4, 2) = 2: SKLS(4, 3) = 0 |
|||
150 SKLS(5, 1) = 0: SKLS(5, 2) = 0: SKLS(5, 3) = 0 |
|||
160 SKLS(6, 1) = 0 |
|||
170 SKLS(7, 1) = 1: SKLS(7, 2) = 1: SKLS(7, 3) = 1 |
|||
180 SKLS(8, 1) = -1: SKLS(8, 2) = -1: SKLS(8, 3) = -1 |
|||
190 SKLS(9, 1) = -1: SKLS(9, 2) = -2: SKLS(9, 3) = 0: SKLS(9, 4) = -3 |
|||
200 SKLS(10, 1) = -1 |
|||
210 CLS |
|||
220 FOR N = 1 TO 10 |
|||
230 CAD$ = "" |
|||
240 SCL = 0 |
|||
250 FOR M = 1 TO 4 |
|||
260 SCL = SKLS(N, M) |
|||
270 IF SCL <> 0 THEN IF SCL = 1 THEN CAD$ = CAD$ + "+e" + STR$(M) ELSE IF SCL = -1 THEN CAD$ = CAD$ + "-e" + STR$(M) ELSE IF SCL > 0 THEN CAD$ = CAD$ + CHR$(43) + STR$(SCL) + "*e" + STR$(M) ELSE CAD$ = CAD$ + STR$(SCL) + "*e" + STR$(M) |
|||
280 NEXT M |
|||
290 IF CAD$ = "" THEN CAD$ = "0" |
|||
300 IF LEFT$(CAD$, 1) = "+" THEN CAD$ = RIGHT$(CAD$, LEN(CAD$) - 1) |
|||
310 PRINT CAD$ |
|||
320 NEXT N |
|||
330 END</syntaxhighlight> |
|||
==={{header|MSX Basic}}=== |
|||
{{works with|MSX BASIC|any}} |
|||
The [[#GW-BASIC|GW-BASIC]] solution works without any changes.ht> |
|||
==={{header|QBasic}}=== |
|||
{{trans|FreeBASIC}} |
|||
{{works with|QBasic|1.1}} |
|||
{{works with|QuickBasic|4.5}} |
|||
{{works with|QB64}} |
|||
<syntaxhighlight lang="qbasic">DIM scalars(1 TO 10, 1 TO 4) |
|||
scalars(1, 1) = 1: scalars(1, 2) = 2: scalars(1, 3) = 3 |
|||
scalars(2, 1) = 0: scalars(2, 2) = 1: scalars(2, 3) = 2: scalars(2, 4) = 3 |
|||
scalars(3, 1) = 1: scalars(3, 2) = 0: scalars(3, 3) = 3: scalars(3, 4) = 4 |
|||
scalars(4, 1) = 1: scalars(4, 2) = 2: scalars(4, 3) = 0 |
|||
scalars(5, 1) = 0: scalars(5, 2) = 0: scalars(5, 3) = 0 |
|||
scalars(6, 1) = 0 |
|||
scalars(7, 1) = 1: scalars(7, 2) = 1: scalars(7, 3) = 1 |
|||
scalars(8, 1) = -1: scalars(8, 2) = -1: scalars(8, 3) = -1 |
|||
scalars(9, 1) = -1: scalars(9, 2) = -2: scalars(9, 3) = 0: scalars(9, 4) = -3 |
|||
scalars(10, 1) = -1 |
|||
CLS |
|||
FOR n = 1 TO UBOUND(scalars) |
|||
cadena$ = "" |
|||
scalar = 0 |
|||
FOR m = 1 TO UBOUND(scalars, 2) |
|||
scalar = scalars(n, m) |
|||
IF scalar <> 0 THEN |
|||
IF scalar = 1 THEN |
|||
cadena$ = cadena$ + "+e" + STR$(m) |
|||
ELSEIF scalar = -1 THEN |
|||
cadena$ = cadena$ + "-e" + STR$(m) |
|||
ELSE |
|||
IF scalar > 0 THEN |
|||
cadena$ = cadena$ + CHR$(43) + STR$(scalar) + "*e" + STR$(m) |
|||
ELSE |
|||
cadena$ = cadena$ + STR$(scalar) + "*e" + STR$(m) |
|||
END IF |
|||
END IF |
|||
END IF |
|||
NEXT m |
|||
IF cadena$ = "" THEN cadena$ = "0" |
|||
IF LEFT$(cadena$, 1) = "+" THEN cadena$ = RIGHT$(cadena$, LEN(cadena$) - 1) |
|||
PRINT cadena$ |
|||
NEXT n |
|||
END</syntaxhighlight> |
|||
==={{header|Yabasic}}=== |
|||
{{trans|FreeBASIC}} |
|||
<syntaxhighlight lang="vb">dim scalars(10,4) |
|||
scalars(1,1) = 1: scalars(1,2) = 2: scalars(1,3) = 3 |
|||
scalars(2,1) = 0: scalars(2,2) = 1: scalars(2,3) = 2: scalars(2,4) = 3 |
|||
scalars(3,1) = 1: scalars(3,2) = 0: scalars(3,3) = 3: scalars(3,4) = 4 |
|||
scalars(4,1) = 1: scalars(4,2) = 2: scalars(4,3) = 0 |
|||
scalars(5,1) = 0: scalars(5,2) = 0: scalars(5,3) = 0 |
|||
scalars(6,1) = 0 |
|||
scalars(7,1) = 1: scalars(7,2) = 1: scalars(7,3) = 1 |
|||
scalars(8,1) = -1: scalars(8,2) = -1: scalars(8,3) = -1 |
|||
scalars(9,1) = -1: scalars(9,2) = -2: scalars(9,3) = 0: scalars(9,4) = -3 |
|||
scalars(10,1) = -1 |
|||
for n = 1 to arraysize(scalars(),1) |
|||
cadena$ = "" |
|||
for m = 1 to arraysize(scalars(),2) |
|||
scalar = scalars(n, m) |
|||
if scalar <> 0 then |
|||
if scalar = 1 then |
|||
cadena$ = cadena$ + "+e" + str$(m) |
|||
else |
|||
if scalar = -1 then |
|||
cadena$ = cadena$ + "-e" + str$(m) |
|||
else |
|||
if scalar > 0 then |
|||
cadena$ = cadena$ + chr$(43) + str$(scalar) + "*e" + str$(m) |
|||
else |
|||
cadena$ = cadena$ + str$(scalar) + "*e" + str$(m) |
|||
fi |
|||
fi |
|||
fi |
|||
fi |
|||
next m |
|||
if cadena$ = "" cadena$ = "0" |
|||
if left$(cadena$, 1) = "+" cadena$ = right$(cadena$, len(cadena$)-1) |
|||
print cadena$ |
|||
next n |
|||
end</syntaxhighlight> |
|||
=={{header|C}}== |
=={{header|C}}== |