Un programa podría definirse como un conjunto de instrucciones que se utiliza para realizar una tarea específica en una computadora.
El programa puede ser diseñado para realizar una gran variedad de tareas, desde simples operaciones matemáticas hasta complejas operaciones de procesamientos de datos, gestión de bases de datos, video juegos y mucho mas.
Los programas de computadora se crean mediante la utilización de un lenguaje de programación y se ejecutan sobre una computadora.
Una computadora es una máquina electrónica que puede recibir, almacenar, procesar y producir información.
El CPU (unidad central de procesamiento, central processing unit por sus siglas en inglés) es el componente principal de una computadora que realiza la mayoría de las operaciones y cálculos. Es el cerebro de la computadora y se encarga de interpretar y ejecutar las instrucciones del software.
La RAM (Random Access Memory) es una forma de memoria volátil que se utiliza en las computadoras para almacenar temporalmente datos e instrucciones mientras se ejecutan los programas.
La cantidad de RAM que tiene puede afectar su rendimiento general del equipo. Cuanta más RAM tenga un equipo, más programas podrá ejecutar a la vez sin ralentizar la máquina.
NO confundir con memoria.
Es un tipo de memoria no volatil. Los datos pueden permanecer en el tiempo, incluso cuando la computadora se apague.
Discos rígidos, discos ssd, pendrives, etc.
Un algoritmo es un conjunto de instrucciones o sentencias precisas y bien definidas que se utilizan para resolver un problema o realizar una tarea.
Un algoritmo puede ser expresado en una variedad de formas, incluyendo en lenguaje natural, diagramas de flujo, pseudocódigo y lenguajes de programación.
A fines prácticos usaremos instrucciones y sentencias como sinónimos. Mas info.
Un algoritmo es en parte una secuencia de instrucciones.
La secuencia indica que se procesa una instrucción tras otra. En orden de arriba hacia abajo.
El siguiente podría ser el programa que hace que la aspiradora robot mencionada funcione:
encender aspiradora
limpiar
moverse hacia adelante
limpiar
moverse hacia adelante
limpiar
...
apagar aspiradora
El orden de las instrucciones está dado de arriba hacia abajo. Primero se procesa la línea 1, luego la 2 y termina en la línea 8.
Un programa hace funcionar un semáforo:
encender luz roja
esperar 30 segundos
encender luz amarilla
esperar 2 segundos
encender luz verde
esperar 30 segundos
...
*Se asume que solo una luz puede estar encendida al mismo tiempo.
Algoritmo: Robot que limpia
limpiar
avanzar
limpiar
avanzar
limpiar
...
Algoritmo: Robot que limpia
limpiar
avanzar
limpiar
avanzar
limpiar
...
Algoritmo: Robot que limpia
limpiar
avanzar
limpiar
avanzar
limpiar
...
Algoritmo: Robot que limpia
limpiar
avanzar
limpiar
avanzar
limpiar
...
Algoritmo: Robot que limpia
limpiar
avanzar
limpiar
avanzar
limpiar
...
Algoritmo: Robot que limpia
limpiar
avanzar
limpiar
avanzar
limpiar
...
Más área para limpiar con la aspiradora.
limpiaravanzargirar a derecha¿Cómo se les ocurre que puede ser?
Una condición es algo que puede ser evaluado y tiene como respuesta o resultado un verdadero o falso.
Supongamos que nos pasan un número cualquiera. Una condición lógica podría ser ¿El número es par?. La respuesta sería sí o no (verdadero o falso).
Otro ejemplo, ¿10 es mayor a 9? en este caso sería verdadero.
Profundizaremos mas adelante en el curso sobre condiciones lógicas y el tipo de datos asociado a las mismas.
El pseudocódigo puede verse como un lenguaje de programación informal que se utiliza para describir el funcionamiento de un algoritmo de manera clara y concisa.
El pseudocódigo se asemeja al lenguaje natural pero con una serie de convenciones que facilitan la comprensión de los algoritmos.
Los ejemplos que veremos a continuación sobre algoritmos están expresados en pseudocódigo.
Las estructuras de control son construcciones en la programación que permiten controlar el flujo de ejecución de un programa.
Podemos destacar las siguientes estructuras de control: las estructuras de repetición, las estructuras de selección, estructuras de iteración y las estructuras de salto.
Es una instrucción que lleva a cabo la repetición de un bloque de código un número n de veces predefinido y conocido de antemano.
repetir (3 veces)
limpiar
avanzar
Observar que las instrucciones limpiar y avanzar están "tabuladas". Eso significa que esas instrucciones están dentro del bloque de instrucciones repetir.
Las instrucciones, limpiar y avanzar están en un bucle o loop.
Es un conjunto de instrucciones que están dentro de otra instrucción.
Un bloque suele estar definido por la identación (espacios delante), entre { } o en palabras claves como begin end
instruccion_a
instruccion_b
repetir(3 veces)
instruccion_c
instruccion_d
instruccion_e
Es un conjunto de instrucciones que están dentro de otra instrucción.
Un bloque suele estar definido por la identación (espacios delante), entre { } o en palabras claves como begin end
instruccion_a
instruccion_b
repetir(3 veces)
{
instruccion_c
instruccion_d
}
instruccion_e
Es un conjunto de instrucciones que están dentro de otra instrucción.
Un bloque suele estar definido por la identación (espacios delante), entre { } o en palabras claves como begin end
instruccion_a
instruccion_b
repetir(3 veces) begin
instruccion_c
instruccion_d
end
instruccion_e
Por cuestiones de claridad en el código, además de estar entre las palabras claves o entre caracteres se suele agregar una identación.
Algoritmo "por si llueve" v1
mirar por la ventana
si (llueve)
agarrar paraguas
agarrar piloto
agarrar botas
ir al curso
El flujo del algoritmo, en caso que llueva será, la línea 1,2,3,4,5 y 6. Pero si no llueve, será 1,2 y 6.
Observar que (llueve) tiene como resultado un valor lógico que puede evaluarse como verdadero o falso.
Se utilizan los paréntesis para destacar la instrucción si y a la condición llueve.
Algoritmo "por si llueve" v2
mirar por la ventana
si (llueve)
agarrar paraguas
agarrar llaves del auto
sino
agarrar la sube
ir al curso
El flujo del algoritmo, en caso que llueva será, la línea 1,2,3,4 y 7. Pero si no llueve, será 1,2,5,6 y 7.
Existe una estructura para decidir entre múltiples alternativas.
Se les conoce comocase o switch por la forma en que generalmente se los utiliza en los lenguajes de programación.
Es como un mientras se cumpla una condición (la condición es verdadera) repito un conjunto de acciones.
A diferencia de la repetición que vimos antes, esta estructura se usa cuando no se sabe de antemano cuantas veces se va a repetir ya que depende de una condición.
Algoritmo "llenar pileta con agua"
abrir canilla
mientras (la pileta no este llena)
echar agua
hacer otra cosa
cerrar canilla
El flujo será: línea 1 y luego las líneas 2,3 y 4 se repitirán indefinidamente hasta que se llene la pileta. Luego continúa con las próximas sentencias.
Es importante destacar que una vez que el programa entra al mientras, las instrucciones que están dentro del bloque se ejecutarán TODAS. Una vez que terminen de ejecutarse todas, se vuelve a evaluar la condición para ingresar otra vez (o no) a la iteración.
Es posible evaluar una condición negativa
instruccion_a
si NO (llueve)
instruccion_b
instruccion_c
...
mientras NO (condición)
instruccion_d
instruccion_e
...
En los casos mencionados, entra en el bloque del si, si NO llueve y entra en el loop del mientras e itera sobre él mientras NO se cumpla la condición.
En algunos lenguajes se suele usar la palabra not o el signo ! para realizar una negación de una condición.
Algoritmo "Saludamos a lxs alumnxs"
abrir centro de formacion
mientras (es horario de atencion)
si (llega una persona)
si (viene al curso de programacion)
saludar "Bienvenidx al curso de programacion"
sino
saludar "Bienvenidx"
sino
espero
cerrar centro de formacion
En este ejemplo se muestra que es posible anidar estructuras de control. En este caso se anidaron una iteración y dos selecciones pero no hay límites.
Las condiciones que están dentro del mientras y de los si pueden ser verdadero o falso.
Anteriormente se utilizaba una instrucción especial llamada goto pero ya no es recomentable. Más adelante veremos en el curso como usar eficientemente una alternativa a esta estructura de control utilizando funciones.
verdadero o falso.Con las herramientas vistas hasta ahora volcadas en un lenguaje de programación se pueden desarrollar una gran cantidad de programas.
Escribir un algoritmo que permita a la aspiradora barrer la primer fila. Utilice todas las herramientas aprendidas que considere útiles.
El área a limpiar es la que se muestra en la imágen.