Sugerido por la sección de entretenimientos matemáticos de un número de Investigación y Ciencia ( Scientific American ) En aquellos tiempos solo tres formas de encordar eran populares:
DECLARE SUB Grafican (st!, a!, b!) DECLARE SUB Graficab (st!, a!, n!) DECLARE SUB graficaa (st!, b!, n!) 'Resolviendo el problema de los cordones. 'En las siguientes funciones, la interpretaci¢n de las 'variables es: 'a: distancia (vertical) entre dos ojales consecutivos. 'b: distancia (horizontal) entre dos ojales opuestos. 'n: n£mero de parejas de ojales. 'Longitud de un cord¢n desde el ojal de arriba de un lado 'hasta el ojal contrario, colocado con el sistema americano ' (XXXX) DEF fnCordonA (a, b, n) = (n - 1) * 2 * SQR(a ^ 2 + b ^ 2) 'Longitud de un cord¢n desde el ojal de arriba de un lado 'hasta el ojal contrario, colocado con el sistema americano ' (|X|X|) DEF fnCordonE (a, b, n) = (n - 2) * SQR(4 * a ^ 2 + b ^ 2) + 2 * SQR(a ^ 2 + b ^ 2) + (n - 1) * b 'Longitud de un cord¢n desde el ojal de arriba de un lado hasta 'el ojal contrario, colocado con el sistema de las zapater¡as '(|\|\|\|) DEF fnCordonZ (a, b, n) = SQR(((n - 1) * a) ^ 2 + b ^ 2) + (n - 1) * b * SQR(a ^ 2 + b ^ 2) SCREEN 12 a = 2.5 b = 2 * a Grafican 0, 2.5, 2 * 2.5 Graficab 200, 2.5, 4 graficaa 400, 2 * 2.5, 4 SUB graficaa (st, b, n) FOR a = 2 TO 17 STEP .1 IF a = 2 THEN PSET (st + a * 10, fnCordonA(a, b, n)), 1 ELSE LINE STEP(0, 0)-(st + a * 10, fnCordonA(a, b, n)), 1 END IF NEXT a FOR a = 2 TO 17 STEP .1 IF a = 2 THEN PSET (st + a * 10, fnCordonE(a, b, n)), 2 ELSE LINE STEP(0, 0)-(st + a * 10, fnCordonE(a, b, n)), 2 END IF NEXT a FOR a = 2 TO 17 STEP .1 IF a = 2 THEN PSET (st + a * 10, fnCordonZ(a, b, n)), 3 ELSE LINE STEP(0, 0)-(st + a * 10, fnCordonZ(a, b, n)), 3 END IF NEXT a END SUB SUB Graficab (st, a, n) FOR b = 2 TO 17 STEP .1 IF b = 2 THEN PSET (st + b * 10, fnCordonA(a, b, n)), 1 ELSE LINE STEP(0, 0)-(st + b * 10, fnCordonA(a, b, n)), 1 END IF NEXT b FOR b = 2 TO 17 STEP .1 IF b = 2 THEN PSET (st + b * 10, fnCordonE(a, b, n)), 2 ELSE LINE STEP(0, 0)-(st + b * 10, fnCordonE(a, b, n)), 2 END IF NEXT b FOR b = 2 TO 17 STEP .1 IF b = 2 THEN PSET (st + b * 10, fnCordonZ(a, b, n)), 3 ELSE LINE STEP(0, 0)-(st + b * 10, fnCordonZ(a, b, n)), 3 END IF NEXT b END SUB SUB Grafican (st, a, b) FOR n = 2 TO 17 STEP .1 IF n = 2 THEN PSET (st + n * 10, fnCordonA(a, b, n)), 1 ELSE LINE STEP(0, 0)-(st + n * 10, fnCordonA(a, b, n)), 1 END IF NEXT n FOR n = 2 TO 17 STEP .1 IF n = 2 THEN PSET (st + n * 10, fnCordonE(a, b, n)), 2 ELSE LINE STEP(0, 0)-(st + n * 10, fnCordonE(a, b, n)), 2 END IF NEXT n FOR n = 2 TO 17 STEP .1 IF n = 2 THEN PSET (st + n * 10, fnCordonZ(a, b, n)), 3 ELSE LINE STEP(0, 0)-(st + n * 10, fnCordonZ(a, b, n)), 3 END IF NEXT n END SUB