domingo, 15 de enero de 2023

Videojuego Educativo "Gimnasio del saber"

El videojuego "Gimnasio del saber" está creado con el objetivo de reforzar competencias en el área de lectura crítica y en matemáticas.

Se puede programar una práctica con varias sesiones en la sala de informática a comienzo del año escolar. Resulta adecuado porque, al ser una actividad que abarcará varias sesiones, permitirá que los estudiantes que llegan tarde al inicio de clases puedan incorporarse de manera menos traumatica.

Presenta dos niveles: lectura critica y matemáticas. En cada uno de estos niveles se deben recoger siete llaves. Si la máxima calificación es 5.0 cada llave tendrá un valor de 0.72 aproximadamete.







Para salir se debe presionar la combinación de teclas ALT + F4 (Presionar la tecla ALT, se mantiene presionada y se pulsa la tecla de función F4).

domingo, 20 de noviembre de 2022

COBOL: suma de dos números

COBOL no estaba muerto, solo andaba de parranda. En algún momento tuve la oportunidad de aprender un poco sobre COBOL, luego me olvidé de este lenguaje. Llegué a pensar que había quedado en desuso. Si bien no es un lenguaje muy conocido hoy en día, los grandes sistemas informáticos bancarios del planeta lo usan. El siguiente código fue probado en OpenCobolIDE.

IDENTIFICATION DIVISION.
PROGRAM-ID. SUMA.
DATA DIVISION.
FILE SECTION.
WORKING-STORAGE SECTION.
01 NUM1 PIC 9(4).
01 NUM2 PIC 9(4).
01 RESULTADO PIC 9(5).
PROCEDURE DIVISION.
MAIN-PROCEDURE.
	DISPLAY "Introduce el primer número: ".
	ACCEPT NUM1.
	DISPLAY "Introduce el segundo número: ".
	ACCEPT NUM2.
	ADD NUM1 TO NUM2 GIVING RESULTADO.
	DISPLAY "El resultado es " RESULTADO.
	STOP RUN.
END PROGRAM SUMA.

jueves, 3 de noviembre de 2022

PHP: suma de dos números

PHP es un lenguaje de programación del lado del servidor. El siguiente ejemplo suma dos números que se han introducido en un formulario HTML. El código HTML se ha escrito junto al código PHP en el mismo archivo, lo cual viene a ser una mala práctica de programación. Sin embargo, en esta ocasión la pasamos por alto puesto que se trata de un ejemplo básico.

<html>
<head>
<title>Suma de números en PHP</title>
</head>
<body>
<form method="POST">
Primer número:   <input type="text" name="numero1"> <br>
Segundo número: <input type="text" name="numero2"> <br>
<input type="submit" value="sumar"> <br>
</form>
</body>
</html>

<?php
	if($_POST)
	{	
		$num1 = $_POST['numero1'];
		$num2 = $_POST['numero2'];
		$suma = $num1 + $num2;
		echo "<p>La suma de ".$num1." y ".$num2." es ".$suma."</p>"; 
	}
?>

miércoles, 2 de noviembre de 2022

C++: suma de dos números

Mientras que el lenguaje C maneja el paradigma de programación estructurada, C++ incorpora programación orientada a objetos. El siguiente código muestra la suma de dos números enteros en C++ usando programación estructurada. Por supuesto, se podría implementar una versión con POO.

#include <iostream>

using namespace std;

int main()
{
   int num1, num2, suma;
   cout << "Primer número: " ;
   cin >> num1;
   cout << "Segundo número: " ;
   cin >> num2;
   suma = num1 + num2;
   cout <<" la suma es : " <<suma;
}

martes, 1 de noviembre de 2022

C: suma de dos números

El lenguaje de programación C es uno de los pocos lenguajes que se puede usar para crear sistemas operativos. Con este lenguaje pude explorar algunos aspectos de bajo nivel que hasta ese momento solo se podia hacer con ensamblador.

#include <stdio.h>

int main()
{
    int num1, num2, suma;
    printf("Dime primer número:");
    scanf("%d",&num1);
    printf("Dime segundo número:");
    scanf("%d",&num2);
    suma = num1 + num2;
    printf("La suma es: %d",suma);
    return 0;
}

domingo, 30 de octubre de 2022

Java: suma de dos números enteros

Siendo Java un lenguaje tan polifacético se me ocurren, como mínimo, unas cinco formas de sumar dos números. La siguiente es, a mi parecer, la más sencilla.

import java.util.Scanner;

public class Suma {
    public static void main( String[] args ) {
        int n1, n2, suma;
        Scanner teclado = new Scanner( System.in );
        System.out.print( "Dime primer numero: " );
        n1 = teclado.nextInt();
        System.out.print( "Dime segundo numero: " );
        n2 = teclado.nextInt();
        suma = n1 + n2;
        System.out.println( "La suma de " + n1 + " mas " + n2 + " es " + suma + "." );
    }
}

sábado, 29 de octubre de 2022

Prolog: torres de Hanoi

Prolog es un lenguaje de programación no procedimental. La solución al problema de las torres de Hanoi es un excelente ejemplo de la clase de problemas que se pueden resolver usando este lenguaje. El siguiente código muestra la solución para torres con tres discos. El código se probó usando GNU Prolog 1.4.4.

:- initialization(ppal).
ppal :- hanoi(3,1,2,3).

hanoi(0,_,_,_).

hanoi(N,Origen,Auxiliar,Destino):- N1 is N-1,
hanoi(N1,Origen,Destino,Auxiliar),
mostrar_pasos(Origen,Destino),
hanoi(N1,Auxiliar,Origen,Destino).

mostrar_pasos(Origen,Destino):-
write(' desde '),
write(Origen),
write(' hasta '),
write(Destino),
write('\n'). 

miércoles, 26 de octubre de 2022

Logo: curva de Hilbert

Otro lenguaje de programación que tuvo su pico de popularidad hace ya muchos años es Logo. Debido al enfoque del lenguaje no es apropiado mostrar cómo se hace la suma de dos número (es más, creo que no es posible hacer dicho programa en este lenguaje). En vez de ello presento el código fuente de un programa que realiza el interesante dibujo de la curva de Hilbert.

cs 
st

to hilbert :a :p :n
  if n < 1 [ stop ]
  lt p*90
  hilbert (a) (-p) n-1
  fd a
  rt p*90
  hilbert a p n-1
  fd a
  hilbert a p n-1
  rt p*90
  fd a
  hilbert (a) (-p) n-1
  lt p*90
  wait 0.1 ; 100 ms
end

pu 
setpos [200 (-200)] 
pd
hilbert 15 1 5
ht
Curva de Hilbert

martes, 25 de octubre de 2022

Pascal: suma de dos números

Pascal es un lenguaje de programación que tuvo su punto más alto de popularidad hace ya varios años. Para mi fue un poco dificil de programar debido a su rigidez. El siguiente programa suma dos números de tipo entero.

program suma;

uses
 crt; 

Var
 num1, num2, total: Integer;

begin
 writeln('Ingrese el primer numero:');
 readln(num1);
 writeln('Ingrese el segundo numero:');
 readln(num2);
 total:= num1+num2;
 writeln('El total de la suma es: ',total);
end.

lunes, 24 de octubre de 2022

FoxPro: suma de dos números


FoxPro 2.6 for DOS tiene un lugar especial en mi corazón. Si bien ya conocía algo acerca de lenguajes como Logo, BASIC y Pascal, FoxPro fue el lenguaje en el que realicé mis primeros programas. Hace años que no lo usaba, pero hoy he recibido una dosis de nostalgia al crear el programa de suma de dos números en su versión colorida para el sistema DOS.

clear
num1 = 0
num2 = 0
@ 2 , 2 say "Primer número: "
@ 2,20 get num1
@ 6 , 2 say "Segundo número: "
@ 6,20 get num2
read
suma = num1 + num2
@ 8 , 2 say "La suma es: "
@ 8 , 20 say suma

lunes, 19 de septiembre de 2022

¿El ICFES regala 100 puntos?

¿Es verdad que el ICFES "regala" 100 puntos a los que presentan las pruebas Saber 11? En 2022, la respuesta es NO. De acuerdo a la documentación vigente el examen Saber 11 consta de cinco pruebas y cada una recibe una puntuación de 0 a 100; luego a partir de estas puntuaciones individuales se calcula una puntuación global que va de 0 a 500. Esto significa que la puntuación de una persona que no responde el examen va a ser de cero.

Entonces, ¿por qué hay personas que sostienen que el ICFES sí "regala" los 100 puntos? La confusión surge de la forma que el ICFES tenía de calificar hace algún tiempo. Antes del año 2000 cada una de las cinco pruebas tenían asignadas una puntuación mínima de 20 y máxima de 80, con lo que el puntaje global mínimo era de 100 y el máximo de 400.

sábado, 20 de agosto de 2022

Siete peliculas sobre profesores

Las siguientes son reseñas de peliculas que he tenido la oportunidad de ver y cuyo argumento principal giran en torno a la figura del maestro. No siguen un orden especial y hay diversos generos. Anexo una pequeña sinopsis sacada de diferentes sitios de Internet.


1. AL FRENTE DE LA CLASE

(De Wikipedia) "Al frente de la Clase" , está basada en la vida de Brad Cohen, un joven que padece el síndrome de Tourette, una enfermedad que se caracteriza por la realización de ciertos ruidos y tics que produce con el cuerpo, ambos incontrolables.


2. DETRÁS DE LA PIZZARRA

(De Ecotic) El film narra la historia verdadera de la profesora Stacey Bess que escribió el libro Nobody Don't Love Nobody (Nadie los ama, nadie), donde ella cuenta sus experiencias con los niños que nadie quería. Cuenta su historia ocurrida en el año 1987, cuando se hizo cargo de la “escuela” improvisada en un refugio para personas sin techo en Salt Lake City.


3. ESCUELA DE ROCK

(De Google) Dewey Finn es un guitarrista con delirios de grandeza que es expulsado de su banda. Decide suplantar la identidad de un profesor sustituto para dar clase a alumnos de quinto a los que intentará enseñarles 'rock and roll de alto voltaje'.


4. EL MAESTRO LUCHADOR

(De Google) Scott Voss, es un profesor de biología que se mete en el mundo de las peleas de artes marciales con el objetivo de recaudar fondos para salvar el programa de música de la escuela para la que trabaja.


5. LA SOCIEDAD DE POETAS MUERTOS

(De Google) Un grupo de alumnos descubre la importancia de perseguir los sueños gracias a un profesor que despierta sus mentes con métodos poco convencionales.


6. SCHOOL OF LIFE (2005)

(De hmong.es) School of Life es una película de comedia dramática de 2005 hecha para televisión protagonizada por Ryan Reynolds sobre un maestro que se muda a una ciudad y sacude un poco las costumbres de la vieja escuela.


7. EL PROFE

(De Google) Sócrates García un abnegado maestro que ha consagrado su vida a la enseñanza, renuncia a las comodidades de la gran ciudad para marchar al pueblo del Romeral, donde se requieren sus servicios. Allí deberá enfrentarse al poderoso cacique local, muy interesado en fomentar la ignorancia de los vecinos. Pero Sócrates no está solo: cuenta con el apoyo del párroco del pueblo y de Hortensia, una joven en cuya casa se aloja como inquilino.

viernes, 12 de agosto de 2022

Programación, arañas y una conclusión interesante

La programación de computadores es una disciplina en la que se da instrucciones a una máquina para que alcance ciertos objetivos. Cualquier programador estaría de acuerdo en que el proceso de crear software totalmente funcional no es en ningún modo resultado de eventos fortuitos. Todo lo contrario: se requiere planificación, diseño, "echar cabeza" a ver cómo se resuelve determinada dificultad. También requiere pruebas hasta que el producto queda suficientemente terminado como para salir al mercado. Y esto es así hasta en los llamados algoritmos genéticos en donde el proceso se debe planificar y dirigir en todo momento ¿A dónde quiero llegar con todo esto?

Se establece a continuación un paralelismo y también un contraste entre un computador y un elemento de la naturaleza que se usará cómo muestra: una araña. En las diferencias se puede mencionar la que existe en cuanto al grado de complejidad en la estructura de funcionamiento de cada elemento. Una araña es exponencialmente más compleja que la computadora más avanzada que exista actualmente. Una similitud es la siguiente: Ambas necesitan o necesitaron ser programadas. Así es, la araña tiene en su interior lo que podría llamarse una especie de software que la arma y hace funcionar ¿tiene sentido esta afirmación?

Las instrucciones para crear una araña nueva se encuentran en el ADN heredado de los progenitores. Esto quiere decir que al leer la secuencia de esta macromolécula se pueden construir los elementos exactos para armar una nueva araña. Pero el ADN también es responsable de dotar a la araña de un atributo increíble: le provee del instinto, es decir, que la araña "nace sabiendo" las cosas que deben saber las arañas, como por ejemplo cómo cazar o cómo construir una red.

Llegado a este punto surge la pregunta forzosa: ¿quién programó el código que está escrito en el ADN de la araña? Anteriormente se ha establecido que la programación no es un proceso fortuito y en el caso de un organismo tan complejo hay muchas cosas que podrían salir muy mal.

La conclusión no debería ser tan difícil de inferir: quién programó el ADN de la araña también la construyó inicialmente. Se trata de un ser consciente, inteligente, pensante. Con seguridad aquel que no solo se limitó a crear arañas sino todo aquello que existe, vive y respira.

jueves, 11 de agosto de 2022

Star Trek VIII: ¿cómo invadir la tierra?

La octava entrega de la serie de películas del universo de Star Trek: Primer contacto, es una de mis favoritas. Los sucesos iniciales se desarrollan de una manera que el ojo crítico encontraría un agujero de guión del tamaño del que está en la capa de ozono. Es necesario repasar las primeras escenas de la película y para ello dar anticipadamente una alerta de spoiler.

En los primeros minutos de película la flota estelar de la federación está haciendo frente al ataque de una nave de una raza alienígena llamada Los Borg. Esta nave, que tiene forma de cubo, se dirige a invadir y asimilar el planeta tierra. Las naves de la federación, aunque son muchas, no logran frenar el avance del cubo Borg. La nave Enterprise acude en ayuda y, entre todos, logran destruirlo. No obstante, otra nave más pequeña con forma de esfera logra salir del cubo antes (si, las naves Borg tienen esas formas). La esfera se dirige presurosa hacia la tierra y abre un vórtice para viajar al pasado e invadir la tierra desde allí. La Enterprise le sigue de cerca y las dos naves entran al vórtice yéndose ambas al pasado.

El supuesto agujero de guión se halla en la capacidad que tienen Los Borg de viajar en el tiempo. Uno pensaría: “Si pueden viajar en el tiempo, ¿por qué arriesgarse a lanzar un ataque contra la tierra en el presente cuando existe una flota de naves que pueden hacerle frente? Lo más lógico es ir al pasado estando a una distancia prudente de la tierra; una vez allí se puede invadir y asimilar con muy poca resistencia ya que en ese tiempo no existiría aún la flota estelar”.

La explicación para este aparente gazapo radica en la razón por la que Los Borg invaden: incorporar la tecnología de la especie invadida a la suya. Es por ello que les interesa invadir la tierra en el presente (el presente de la película) cuando la codiciada tecnología existe y no en el pasado cuando aún no se ha inventado. Para Los Borg invadir la tierra en el pasado viene a ser algo así como un plan B.

Después de ver esta película media docena de veces solo me ha quedado una pregunta a la que no he hallado aún una respuesta válida: En otras series y películas ha quedado claro que Los Borg poseen decenas de naves en forma de cubo. Entonces, ¿por qué enviar una sola nave a invadir la tierra? Si con un cubo la flota estaba más que apurada, hubiese sido una excelente estrategía enviar unos cuantos cubos más para asegurar la victoria. Pero entonces la película hubiera terminado antes de empezar y no tendríamos esta joya del cine de ciencia ficción.

martes, 26 de julio de 2022

Circuito que muestra el funcionamiento de un condensador

El siguiente es un circuito de carga y descarga de un condensador electrolítico. Al cerrar el interruptor SW1 el condensador empezará a cargarse, el LED D1 emitirá luz y se apagará poco a poco, cuando esto suceda significará que el condensador está completamente cargado. Para descargar el condensador se cierra el interruptor SW2 (estando abierto SW1) y el led D2 se encenderá con la carga del condensador, el LED se apagará poco a poco mientras el condensador va soltando su carga.


 

lunes, 25 de julio de 2022

Encender un LED

Una de las primeras prácticas que se realizan en electrónica consiste en encender un LED. Conociendo que la batería maneja 9 voltios y que el LED, en general no soportará más de unos cuantos voltios antes de dañarse, ¿Cómo se puede calcular el valor de la resistencia a usar?



Opción 1: REALIZAR EL CALCULO MANUAL

Es necesario tener en cuenta el valor de voltaje o tensión en la que operan los LEDs de acuerdo al color que producen.

Se aplica la ley de OHM para hallar el valor de la resistencia. Es importante saber que los LEDs funcionan con una intensidad de corriente de 20 mA. El LED que se usará en el ejemplo será de color azul.

El valor teorico obtenido es de 280 ohmnios. Se debe buscar una resistencia de valor comercial que sea igual o ligeramente superior a dicho valor.



Opción 2: USAR UNA CALCULADORA

El siguiente enlace lleva a una calculadora para circuitos LEDs y con los datos del ejemplo arroja como resultado una resistencia de 300 ohmnios. Tambien muestra otros valores útiles y dos tipos de diagramas.

Calculadora de LED



martes, 5 de abril de 2022

Calculadora para materiales de concreto tipo 1-2-3


Largo en metros:
Ancho en metros:
Alto en metros:
Volumen:
Bolsas de cemento de 50 kg:
Arena en metros cúbicos:
Gravilla en metros cúbicos:

JavaScript: suma de dos números

JavaScript permite, entre otras cosas, realizar cálculos en las páginas web. Así que pensé "en vez de solo mostrar el código fuente también puedo incluir el programa funcionando". La función de JavaScript se invoca desde un formulario HTML.

<form  style="background-color: lightgrey;" > 
<br>
<p>Escribe el primer número : <input id="num1" /> </p>  
<p>Escribe el segundo número : <input id="num2" /> </p>  
<p id="sumando"></p>  
<p> <button onclick="myFunction()" type="button">Sumar</button> </p>   

<script>  
function myFunction() 
 {  
   var x,y,suma,text;  
   x = document.getElementById("num1").value;  
   y = document.getElementById("num2").value;  
   suma=parseFloat(x)+parseFloat(y);  
   text= "La suma es: "+ suma;  
   document.getElementById("sumando").innerHTML = text;  
 }  
</script>  
<br>
<form>

Escribe el primer número :

Escribe el segundo número :