Sumes en sistema binari

Arrojeria, Eustakio

Elhuyar Zientziaren Komunikazioa

Lizaso, Pili

Informatika Saila

Elhuyar Fundazioa

Després de veure les conversions entre bases en sistemes de numeració (ELHUYAR. Hem vist la Ciència i la Tècnica en el número 27) i per a entendre el que suposa treballar en el sistema binari, en aquesta ocasió us proposem: Suma dels números en la base 2 o sistema binari.

Potser el primer que se us ocorri és passar els números a la base 10, realitzar la suma en el sistema decimal i després passar el resultat a la base 2, però encara que el resultat obtingut sigui el correcte, aquesta no seria la via més correcta. Les sumes es poden realitzar també en el sistema binari i és el que us demanem aquí.

A l'hora de realitzar les sumes en el sistema decimal, posar tots els primers números a l'una, és a dir, els primers a l'altura dels uns, els decimals a l'una dels deu, etc. i després comencem a realitzar la suma per la columna de la dreta, guardant un número per al cap (per a la columna següent) cada vegada que passem per deu.

En el sistema binari cal fer una cosa semblant. Això sí, cada vegada que passem de dos en aquest sistema haurem de guardar un més per al cap.

Vegem un exemple:

Suposem que tenim 4 sumands de 6 dígits. La suma seria:


Parts del programa:

  • 10-110: Se selecciona el nombre de dígits dels sumaris (N1) i el nombre de sumands (N2). D'aquesta forma l'usuari definirà la dificultat de la suma.
  • 120 a 180: S'extreuen aleatòriament N2 nombres binaris formats per N1 dígits.
  • 190-360: Es realitza la suma deixant el resultat en la variable SUMA$. La suma començarà per la columna dreta (200). A l'hora d'unir una columna, caldrà tenir en compte si hi ha alguna cosa primer per al cap (210). Atès que una vegada calculada la suma de cada columna, la que s'ha de guardar per al resultat general pot ser Ø o 1, s'haurà d'utilitzar la funció MOD 2 (240). Cada vegada que passi de Bit (o de Ø) s'afegirà 1 a la portada. L'addició d'1 a un nombre binari suposa que, començant per la dreta, l'1 substitueixi Øaz per 1 quan es troba primer Ø (260-310).J. S'afegirà al resultat obtingut en la columna “Ø” o “1” hora (340). Si després d'unir la columna J (esquerra) hi ha alguna cosa per al cap, caldrà afegir a la cadena de suma per l'esquerra (360).
  • 370-410: Presentació de la suma en pantalla.
  • 420-480: Guardar l'introduït fins que l'usuari premi <RETURN> en la variable SAR$.
  • 500-570: Verificació del resultat introduït.
  • 580-630: Possibilitat de continuar o sortir del programa.
Babesleak
Eusko Jaurlaritzako Industria, Merkataritza eta Turismo Saila