1 Solución de problemas.
Las cuatro etapas de la resolución de problemas con una computadora se dan a continuación:
2. Encontrar un método de solución: esto es, diseñar un algoritmo que le permita definir los
pasos que llevarán a la solución del problema.
2 Algoritmo
Definición de Algoritmo.
¨ Descripción narrada
¨ Notación matemática
¨ Pseudocódigo
¨ Diagramas de flujo
¨ Lenguaje de computadora.
2. Exactamente cada pregunta del problema debe ser contestada por la ejecución del algoritmo.
3. Cualquiera que sean los valores de las entradas, la ejecución terminará después de algún
número finito de pasos.
Por ello, para que una computadora pueda resolver un problema concreto, el usuario
1. Descripción Narrada. Se utiliza el lenguaje natural ya sea hablado o escrito. Por ejemplo, la
receta para hacer un pastel.
2. Notación matemática: se expresa mediante fórmulas matemáticas que determinarán las salidas
del problema.
3. Diagramas de flujo: en ésta técnica se utilizan símbolos que representan cada paso de
OBSERVACIONES:
a) Es importante conservar los diagramas de flujo lo más sencillo posible, y apoyarse en el
significado de la simbología. Por ello, debemos evitar escribir demasiado texto dentro de cada uno
de los símbolos, y en su lugar, utilizar sólo el identificador de la variable y las expresiones
aritméticas, relacionales o lógicas según sea el caso.
b) Para un buen estilo de diseño del algoritmo, y en general, para ayudar la traducción posterior
al lenguaje de programación deseado, es necesario conservar la verticalidad del diagrama, sin
inventar conexiones diferentes a las establecidas.
c) Es muy importante utilizar los símbolos adecuados para cada operación a realizar. De esta
forma, en el símbolo condicional, no deben incluirse asignaciones; ni en el símbolo de proceso se
pueden incluir operadores relacionales ni lógicos.
¨ Asignarle nombres coherentes a las variables, de acuerdo con lo que representan y según el
contexto del problema.
4 Tipos de datos.
hacer esto, un programa utiliza estructuras de datos, es decir, formas para almacenar los
diferentes datos que van a ser procesados. Conforme aumenta la complejidad del programa,
variables y constantes.
Un programa asigna una posición de memoria a cada variable o constante que sea declarada en el
programa. La posición en memoria puede ser vista como una casilla de memoria, en donde el valor
será determinado por el programa, y el tipo de valor que puede ser almacenado en ella será
determinado por el programador al momento de declarar la variable.
Para una variable, el valor en dicha casilla cambiará tantas veces lo necesite en el programa; en
cambio, para una constante, su valor es fijado una vez, al, inicio del programa, y no puede cambiar
durante el transcurso de éste.
1. El identificador debe empezar con una letra, seguida de letras, números o el carácter "_".
5 Operadores
Los operadores nos permiten realizar operaciones aritméticas entre los datos, ya sean constantes
o variables.
Aunque el número y tipo de operadores depende del lenguaje de programación que se esté
utilizando, los operadores más frecuentes se clasifican de la siguiente forma:
El operador mod sólo se aplica a operandos tipo entero. El mod se lee como módulo de la división,
y el resultado será el residuo de una división entera.
2. Operadores de relación Los cuales son:
Se hace una distinción con el operador de igualdad, que no es el mismo de asignación: ==. Así se
tiene x == y se traduce como "¿es x igual a y?, en tanto que x=y, equivale a decir "a la variable x se
le asigna el mismo valor que tiene y "
Para resolver expresiones con operadores lógicos, se utilizan las siguientes tablas, conocidas
como tablas de verdad:
x ! (NOT)
Falso Verdadero
Verdadero Falso
x y && (AND)
x y II (OR)
Las reglas para resolver una expresión aritmética son las siguientes:
() Paréntesis
*, /, mod
&& (AND)
|| (OR)
1. Identificar todas las variables que intervienen en el problema a resolver. Para ello, te
puedes auxiliar de una tabla como la que se muestra a continuación:
2. Toda variable debe tener un valor, ya sea por que se le solicita como entrada o por que se
le asigna dentro del algoritmo.
3. Respeta las reglas para la creación de identificadores al momento de crear los nombres
para tus variables.
5. En el símbolo condicional, sólo se pueden utilizar los operadores relacionales (<, <=, >, >=,
==, !=), y los operadores lógicos (AND, OR, NOT ó &&, ||, ! )
Ejem.:
x >z
y==5
Ejem.:
x=y*3
7 Estructuras de control de flujo
Las estructuras de control de flujo nos permiten tomar decisiones o repetir una secuencia de
pasos sobre diferentes datos.
Este tipo de estructura, nos-permite seleccionar entre dos posibles alternativas de acción. Su
forma general es:
Estructura condicional
Estructura condicional
En este caso, si la condición es verdadera, se ejecuta la Acción1, si es falsa, se ejecuta la Acción 2.
En ambos casos, terminada la estructura, se ejecutará la Acción 3.
Cuando se ejecutan más de una acción en las ramas falsa o verdadera, es necesario delimitar el
inicio y el fin de cada rama, de tal forma que el pseudocódigo debe escribirse:
Si condición
Inicio
Acción 1
. /* más acciones */
Fin
Sino
Inicio
Acción2
.. /* más acciones */
Fin
Acción3
En ocasiones, esta estructura no presenta la rama "Sino", en este caso se tiene una estructura
de selección simple:
Condicional Simple
Condicional Simple
OBSERVACIONES:
1. En el símbolo de decisión, (el rombo), sólo deben utilizarse expresiones con operadores
aritméticos y/o lógicos.
z = x+y Incorrecto
4. Los operadores lógicos se utilizan para unir dos o más condiciones. Por ejemplo:
5. El símbolo de decisión o condicional (el rombo) no puede utilizarse para ninguna otra cosa
que no sea para tomar una decisión (preguntar). No se pueden leer datos de entrada, ni asignar
valores a una variable, ni utilizarlo como símbolo de salida.
6. En un pseudocódigo, si existe una rama Sino, debe existir una rama "Si".
Este tipo de estructura, nos permite seleccionar entre más de dos posibles alternativas de acción.
Su forma general es:
Seleccionar variable
Condicional múltiple
Condicional múltiple
7.2 Ciclos.
Las tres estructuras disponibles para ciclos son: la estructura "para", "mientras" y "hacer".
Este ciclo es el más sencillo, ya que se conoce con exactitud cuantas veces se va a llevar a cabo la
misma tarea. Una variable (el contador) se incrementa o decrementa, y la acción se ejecuta hasta
que la variable llegue al límite superior. Su forma general es:
Acción1
Acción2
De la misma forma que en la estructura condicional, si realiza más de una acción dentro del ciclo,
se deben delimitar colocando las palabras inicio y fin.
OBSERVACIONES
B) No se debe modificar el valor de la variable de control dentro del cuerpo del ciclo, ya que esto
alteraría su valor y por consiguiente, el número de veces que se repetirán las acciones.
Ciclo mientras
Ciclo mientras
Para formular las condiciones se emplean los símbolos relacionales como >, <, =, etc.
Así trabaja un ciclo "mientras": se prueba la condición, si esta es verdadera, se ejecuta la acción1,
y se regresa al principio para volver a probar la condición. Este proceso se repite hasta que la
condición sea falsa, en cuyo caso, se ejecuta la acción 2.
OBSERVACIONES:
c) Si el ciclo depende de una variable de control, ésta debe cambiar su valor dentrodel cuerpo
del ciclo, a diferencia de lo sucedido con el ciclo para.
d) El ciclo mientras se debe utilizar cuando primero se requiere hacer una comparación, y
después repetir un número determinado de acciones.
Ciclo hacer
Ciclo hacer
OBSERVACIONES:
g) Si el ciclo depende de una variable de control, ésta debe cambiar su valor dentrodel cuerpo
del ciclo, a diferencia de lo sucedido con el ciclo para.
h) El ciclo hacer se debe utilizar cuando primero se requiere hacer un número determinado de
acciones y después una comparación para saber si es necesario seguir repitiendo estas acciones.
8. Prueba de escritorio.
La prueba de escritorio también es conocida como trazado del algoritmo, y es muy útil para
conocer el valor de salida de un algoritmo, o el comportamiento del mismo.
Elaborar una prueba de escritorio es muy sencillo. Para comenzar el trazado del algoritmo, es
necesario crear una tabla, con las variables que intervienen en el algoritmo, e ir colocando su valor
conforme cambia en el transcurso del algoritmo. Por ejemplo, para el siguiente pseudocódigo, se
tiene la siguiente prueba de escritorio:
Inicio
suma = 0
suma = suma + x
Imprimir(suma)
Fin
suma x Salida
0 1
1 2
3 3
6 4 6
Por qué aprender a programar puede ser útil para la vida de cualquiera
Conocé las diferentes visiones sobre la creencia de que todos deberíamos aprender a programar
más allá de la profesión que escojamos
Fuente: Shutterstock
Seguramente escuchaste o leíste acerca de la necesidad de aprender a programar desde una edad
temprana, ya que es una habilidad con alta demanda en el mercado laboral. Existen distintas
visiones al respecto, dividiéndose entre quienes piensan que la programación es útil para
cualquier profesión y los que aseguran que la innovación se logra librándose del código. A
continuación, te explicamos los fundamentos que revindica cada visión.
Te puede interesar
>Coding bootcamps: qué son y por qué es importante aprender a escribir en código
La corriente que posiciona a la programación entre los pilares básicos de la educación, considera
que esta habilidad aumenta la productividad, eficiencia y eficacia de una persona en su trabajo,
independientemente de la profesión que desarrolle.
El argumento principal es que las tareas tediosas, como por ejemplo, tener que crear cientos de
carpetas iguales por cada nuevo proyecto que nos surge. Si bien es posible hacerlo a mano, como
la mayoría lo hace, esta tarea puede simplificarse sabiendo escribir un script (archivo de órdenes)
en Phyton y apenas un poco de investigación en Internet, ya que gracias a este script podemos
automatizar un proceso de creación de carpetas para cada proyecto y transformar largas horas de
trabajo en un proceso de pocos pasos. Por lo tanto, no solo es útil saber programar para quienes
trabajan en el desarrollo de aplicaciones móviles o creando software comercializable, sino que
existen otros usos que se le pueden dar a la programación que facilitan la vida de cualquier
profesional que trabaja constantemente con una computadora.
Aunque los códigos pueden tomar casi una hora en escribirse, solventan otras cuantas de
frustración y tedio, opinan quienes están convencidos de que programar es adecuado para todos e
instan a aprender lenguajes sencillos como Python, JavaScript, Ruby o Java para agregar a tu
carrera.
Visión cautelosa: La programación es para algunos
La codificación no constituye un nuevo tipo de alfabetización que debe estar disponible para todos
desde una edad temprana, es la premisa mayor que maneja esta línea de pensamiento según un
artículo publicado en Wired escrito por el vicepresidente de marketing de la firma Mendix,
empresa dedicada a la creación de aplicaciones y soluciones digitales. Cabe destacar que reconoce
la importancia de la programación para el mundo actual, pero no cree que sea una habilidad
realmente solicitada en todas las profesiones.
El fundamento se apoya en la conocida frase del inventor de autos, Ford: “Si le hubiera
preguntado a la gente que quería, me habría contestado que deseaba un caballo más rápido”.
Llevado a este caso, la innovación debe ir más allá del código, encontrando nuevas formas de crear
aplicaciones útiles no solo a nivel laboral, sino para otros aspectos de la vida cotidiana.
De este modo, lo importante es aprender cómo funciona la tecnología y aprender a pensar a partir
de las posibilidades que nos ofrece la tecnología. Más importante que saber escribir código es
tener la capacidad de identificar las necesidades de las personas para pensar en soluciones que
puede aportar la tecnología para satisfacerlas. Entender la tecnología y estar familiarizado con ella
nos permite expresar e imaginar posibles soluciones de una manera visual y lógica que luego
termine ejecutando una persona especializada en programación.