Você está na página 1de 7

Instituto tecnolgico superior TAYLOR

Introduccin
La lgica de programacin es la pieza fundamental en la que se basa la labor de un programador. Si bien
la lgica es una capacidad inherente del ser humano, la lgica de programacin debe aprenderse y
ejercitarse si se desea iniciar una carrera como desarrollador de software.
Aprender lgica de programacin nos ensea a disear soluciones a problemas de la vida real para su
posterior implementacin en forma de programas, sitios o aplicaciones que se ejecutan en una gran
variedad de dispositivos.
El objetivo del curso es proporcionar las bases fundamentales de la lgica de programacin. Durante el
curso se asumir que el estudiante no conoce NADA sobre el desarrollo de software y que su intencin
es aprender a pensar como lo hara una computadora a fin de poderla programar adecuadamente usando
algn lenguaje de programacin en el futuro.
Cabe aclarar que el curso no se enfoca a ningn lenguaje de programacin, ni se aprender a desarrollar
ningn programa informtico como tal. El objetivo es simplemente aprender la lgica que hay detrs de
la programacin de aplicaciones.

CLASE (1): INTRODUCCIN A LA PROGRAMACIN


Qu es programar?
Programar puede sonar como una actividad reservada a los genios matemticos o
a gente con un coeficiente intelectual muy elevado, pero eso no es cierto en
absoluto. Programar es, en pocas palabras, el proceso que seguimos para resolver
un problema usando una computadora. Para lograr esto necesitamos hacer
bsicamente 3 cosas:

analizar y entender bien a fondo el problema que queremos resolver

definir bien cules son los requerimientos del problema (entradas, salidas,
procesos, etc.)

finalmente disear una solucin para el problema.

Pareciera que es complejo pero la verdad es que seguimos ese proceso todos los
das cuando resolvemos los problemas ms cotidianos, aunque no siempre somos
conscientes de ello. Desde decidir si nos levantamos de la cama o no, preparar la
comida del da o hasta elaborar ese complejo reporte sobre la Segunda Guerra
Mundial, todas nuestras actividades diarias siguen ms o menos el mismo proceso.
Escribir un programa de computadora requiere de ciertos conocimientos y
habilidades tcnicas, pero en esencia cualquier persona que se proponga aprender
a programar una computadora puede lograrlo.
Lgica de Programacin III Ciclo Computacin e Informtica

Instituto tecnolgico superior TAYLOR


Ahora bien, es cierto que no hay una receta mgica que garantice que cualquier
persona va a aprender a programar, pero s podemos sealar algunos aspectos a
tener en mente cuando se emprende esta tarea.
1) Las computadoras son tiles, pero tambin son bastante tontitas.
No cabe duda que una computadora es un dispositivo fantsticamente til, pero
esa utilidad depende en gran medida de que sepamos cmo usarla y, an ms,
cmo programarla para que haga lo que queremos. En efecto, detrs de la
"magia" de las computadoras estn los programadores de software que logran
crear programas que hacen que las computadoras hagan lo que ellos (y los
usuarios, por supuesto) les pidan que hagan. Y es que una computadora puede
ser rpida, pero es bastante tonta. No sabe pensar ni decidir por s misma
(aunque los escritores de Terminator nos quieran hacer creer lo contrario). Una
computadora necesita de un programador que le diga qu, cmo y cundo
hacer algo.

2) Las computadoras no entienden el espaol.


Ni el ingls, ni el japons ni ningn otro de esos lenguajes humanos tan
complicados. Esos aparatos fueron concebidos para pensar y comunicarse
empleando un lenguaje bastante simpln (o extremadamente complejo,
depende de cmo se le mire): el lenguaje binario. O sea, la computadora slo
entiende en trminos de 0 y 1. Esa carta de amor que escribiste a tu
novio/a ayer? para la computadora son slo ceros y unos. Esa cancin de
Lady Gaga que tanto te gusta? otra vez ceros y unos. Y qu tal esa tierna
foto que le tomaste a tu beb mientras esbozaba su primera sonrisita?:
tambin son slo ceros y unos. Pero si la computadora no entiende nuestro
idioma, cmo le decimos qu es lo que tiene que hacer? Tenemos dos
opciones: o aprendemos a comunicarnos en binario o buscamos un modo de
que la computadora entienda nuestro lenguaje (o algo muy parecido a ello).
Es ah donde entran los lenguajes de programacin y sus intrpretes.

Lgica de Programacin III Ciclo Computacin e Informtica

Instituto tecnolgico superior TAYLOR

Esa bonita foto que tomaste, para la computadora slo es un montn de cdigo

3) Programar es un proceso creativo.


No se trata solamente de aprenderse de memoria la edicin ms reciente de
ese libro que ensea ese lenguaje de programacin que est de moda. Se
trata de saber incorporar todo eso que sabemos para disear programas que
sirvan, que resuelvan un problema, que sean visualmente atractivos y que
sean fciles de usar. Se trata de disear la mejor solucin y no slo una
solucin. Un buen chef conoce a la perfeccin los mejores ingredientes que
puede usar pero su arte radica en saberlos combinar para lograr platillos
exquisitos. Un msico no slo sabe cmo se toca un instrumento, sino que
tambin tiene la habilidad de elegir la mejor nota para que una cancin sea
esplendorosa. Un programador conoce cmo disear un programa que no
slo sea til, sino que sea indispensable.
Y entonces, cmo se hace un programa?
Ya dijimos que programar es un proceso que requiere de creatividad, pero eso no
quiere decir que no debamos seguir cierto orden lgico al momento de hacerlo.
Dependiendo de la complejidad del problema, los pasos que normalmente se
siguen para desarrollar un programa son:
1) Analizar el problema. Es bien importante que entendamos bien a fondo ese
problema que estamos tratando de resolver para poder llegar a una solucin til.
Si necesito crear un programa que le permita a una empresa calcular la nmina de
sus empleados, necesito primero comprender cmo calcula esa nmina la
empresa. Hay que saber cules son los conceptos por los que le pagan a los
empleados, las deducciones que se les hacen, cmo descuentan las faltas, cmo
calculan cunto pagar a los empleados por las horas extras que trabajaron, si se
paga por semana, catorcena, quincena o mes, si se paga por honorarios, si hay
descuentos o pagos considerados extraordinarios... en fin, necesitamos conocer
muy a fondo la forma en que esa empresa lleva a cabo sus procesos de nmina.
Lgica de Programacin III Ciclo Computacin e Informtica

Instituto tecnolgico superior TAYLOR


De igual modo, parte de este anlisis es tambin el hecho de dividir el problema
en "sub-problemas" menos complejos (como calcular primero las horas a pagar,
luego calcular el monto bruto, luego calcular los descuentos, unir los resultados y
finalmente imprimir un recibo). En pocas palabras, hay que conocer eso a lo que
en este medio se le conoce como la "lgica de negocio".
2) Disear el algoritmo. O, en otras palabras menos tcnicas, escribir la serie de
pasos que tenemos que seguir para resolver el problema. Esto no implica escribir
el programa, sino slo escribir la secuencia de actividades que nos van a permitir
resolver el problema en cuestin. Eso implica entre otras cosas, definir qu datos
se requieren para resolver el problema, escribir frmulas, disear la secuencia de
uso del programa, definir los distintos escenarios que se pueden presentar al
resolver el problema, etc. Aprender a disear algoritmos efectivos ser el objetivo
central del curso.
3) Codificar el algoritmo. Ya que tenemos bien definido el proceso que se tiene
que seguir para resolver el problema, es hora de indicarle a la computadora qu es
lo que tiene que hacer. En otras palabras, hay que traducir nuestras instrucciones
de modo que la computadora las comprenda y las ejecute. Aqu es donde hacemos
uso de toda nuestra pericia tcnica, nuestro conocimiento de lenguajes de
programacin, nuestra capacidad de razonamiento y de todas las herramientas
que existen para escribir programas. Desde editores de cdigo, compiladores,
sistemas de bases de datos, programas de diseo y toda herramienta que sea
necesaria para lograr nuestro objetivo.
4) Poner a prueba el programa. Aqu es donde se revela de qu estamos
hechos como programadores. No slo porque nuestro trabajo finalmente ser
probado por los usuarios finales y eso dar pie al surgimiento de errores
(comnmente llamados "bugs") y ajustes al cdigo, sino porque sabremos qu
tanta paciencia tenemos para soportar los cambios de ltimo minuto, los cambios
de parecer en los requerimientos de los usuarios, los errores de uso, etc. En esta
etapa los cdigos son depurados para ajustar la nueva aplicacin a los
requerimientos iniciales hasta que queda lista su versin definitiva.
5) Depurar y dar mantenimiento al programa. Una vez que nuestra aplicacin
ya es puesta en uso definitivo (o, como tambin se le dice en el medio, cuando es
"movida a produccin"), viene una etapa de depuracin en la que vamos
actualizando y mejorando el programa cada vez que sea necesario, de modo que
podamos ir dando nuevas y mejoradas funcionalidades, as como ajustar mejor la
Lgica de Programacin III Ciclo Computacin e Informtica

Instituto tecnolgico superior TAYLOR


aplicacin a los requerimientos de los usuarios finales. Tambin puede que surjan
nuevos "bugs" que no se detectaron en las etapas de prueba previas, pero eso es
perfectamente normal.
6) Documentacin. Este es un mal necesario. Aburrido, pero muy importante. De
hecho, no es precisamente el ltimo paso de nuestro proceso de desarrollo, sino
que, en teora, debera ser una prctica constante a lo largo de todas las etapas.
Documentar nuestro programa es esencial no solo para que los usuarios tengan un
manual de referencia de nuestro programa, sino tambin para permitir que otros
programadores que trabajen en nuestra aplicacin (o an nosotros mismos,
cuando regresamos a ella despus de algn tiempo de haberla hecho) tengan una
mejor comprensin de nuestro trabajo, de por qu pusimos tal o cual variable, de
qu hace un mtodo determinado, de dnde estamos sacando informacin para
mostrar en la pantalla, etc.

Programar requiere varias actividades previas, como el anlisis del problema y la


definicin del algoritmo

Algoritmo
Dejemos de lado los tecnicismos y digamos que un algoritmo es simplemente el
conjunto de pasos que tenemos que seguir para resolver un problema. Puede que
el trmino nos suene bastante tcnico y confuso, pero la verdad es que usamos
algoritmos todo el tiempo: el instructivo que seguimos para armar el nuevo librero
para la sala, es un algoritmo; la receta de cocina que seguimos para preparar el
delicioso pastel de elote de la abuelita, es un algoritmo; esos tutoriales en YouTube
Lgica de Programacin III Ciclo Computacin e Informtica

Instituto tecnolgico superior TAYLOR


para pintarse las uas, tambin son algoritmos. Los algoritmos de computadora no
son diferentes: son listas de pasos a seguir para que la mquina realice alguna
tarea, y deben ser muy especficos para que la computadora entienda bien lo que
tiene que hacer (recuerdan que son bastante tontitas?). En general, cualquier
algoritmo debe cumplir tres requisitos:
1.

Debe ser preciso, es decir, nos debe indicar el orden de realizacin de cada
paso.

2.

Debe ser definido, de modo que se obtenga el mismo resultado cada vez que
se ejecute.

3.

Debe ser finito, o sea, debe tener un fin, un nmero determinado de pasos.

Una receta de cocina es el mejor ejemplo de algoritmo que cumple con los tres
requisitos: es preciso, definido y finito
Cmo se escribe un algoritmo para computadora?
Bueno, en realidad no hay gran ciencia detrs de ello. Lo importante es describir a
detalle el proceso a seguir. Sin embargo, hay dos herramientas que los
profesionales usan para escribir algoritmos: los diagramas (ya sean de flujo o UML)
y el pseudocdigo.
Tanto los diagramas de flujo como los diversos diagramas UML (Unified Modeling
Language - Lenguaje Unificado de Modelado) son una representacin grfica de un
algoritmo. Para disearlos, se emplean smbolos estndar como crculos,
cuadrados, rombos, trapecios, etc., cada uno de los cuales tiene una funcin y
significado particular.
El pseudocdigo, por otro lado, es una herramienta de programacin en la que las
instrucciones se escriben en palabras similares al ingls o al espaol, que facilitan
tanto la lectura como la escritura de programas.

Lgica de Programacin III Ciclo Computacin e Informtica

Instituto tecnolgico superior TAYLOR


Tenemos, por ejemplo, el siguiente proceso simpln para calcular el pago de la
nmina de un empleado:
"Calcular Nmina"
1. Solicitar que nos proporcionen la cantidad de horas trabajadas, el pago por hora
y la tasa de impuestos a descontar.
2. Calcular el monto bruto a pagar multiplicando la cantidad de horas trabajadas
por el pago por hora.
3. Calcular el monto a descontar por concepto de impuestos.
4. Calcular el pago neto, restando los impuestos calculados en el paso anterior del
monto bruto a pagar.
5. Mostrar al usuario el monto del pago bruto, la cantidad descontada por
impuestos y el monto del pago neto.
Un ejemplo de pseudocdigo para definir este proceso podra ser como sigue:
Algoritmo Calcular_Nomina
1. Leer horas_trabajadas, tarifa_por_hora, tasa_impuesto
2. Calcular PagoBruto = horas_trabajadas * tarifa_por_hora
3. Calcular Impuestos = PagoBruto * tasa_impuesto
4. Calcular PagoNeto = PagoBruto - Impuestos
5. Visualizar PagoBruto, Impuestos, PagoNeto
Como podemos ver, la escritura de un pseudocdigo no se apega a ningn
lenguaje de programacin en particular, sino que emplea un lenguaje ms o
menos familiar para poder definir la estructura del algoritmo. Para escribir el
pseudocdigo no hay reglas, ms bien convenciones que en realidad en muchas
ocasiones las define el propio programador. En el ejemplo, vemos que algunas
palabras estn remarcadas en negrita. Esas palabras se corresponderan con lo
que en los lenguajes de programacin se llaman Palabras Reservadas, o sea,
palabras que representan una instruccin particular dentro de ese lenguaje. Luego
podemos ver que las operaciones matemticas se representan con algunos
smbolos conocidos (como el signo = o - ) y otros no tanto, como el asterisco para
representar la multiplicacin, tradicin propia de los lenguajes de programacin.
Otra vez, al escribir un pseudocdigo no hay reglas definidas y cada quien va
definiendo su estilo al escribirlo.
Lgica de Programacin III Ciclo Computacin e Informtica

Você também pode gostar