Está en la página 1de 39

Introducción a la

programación
Por Francisco Javier Ramírez Ruiz
Unidad 1 de la materia de Programación de Periféricos
Mayo 2020
Definición de algoritmo
Fuente: Diseño estructurado de algoritmos, 2010
 Un algoritmo es un serie de pasos organizados que describe el
proceso que se debe seguir, para dar solución a un problema
específico.
 Tipos de algoritmos:
❑ Cualitativos: Son aquellos en los que se describen los pasos utilizando
palabras.
❑ Cuantitativos: Son aquellos en los que se utilizan cálculos numéricos
para definir los pasos de un proceso.
 Lenguajes algorítmicos. Es una serie de símbolos y reglas que
se utilizan que se utilizan para definir de manera explícita un
proceso. Existen dos tipos de lenguajes algorítmicos:
❑ Gráficos: Es la representación gráfica de las operaciones que realizar
un algoritmo (diagrama de flujo)
❑ No gráficos: Representa en forma descriptiva las operaciones que debe
realizar un algoritmo (pseudocódigo)
Simbología del Diagrama de Flujo
Diagramas de flujo
Recomendaciones para el uso de diagramas
de flujo
Fuente: Diseño estructurado de algoritmos, 2010

 Se deben usar solo líneas de flujo horizontal y/o vertical.


 Se deben evitar el cruce de líneas utilizando conectores.
 Se deben utilizar conectores cuando sea necesario.
 No deben quedar líneas de flujo sin conectar.
 Se deben trazar los símbolos de manera que se puedan
leer de arriba hacia abajo y de izquierda a derecha.
 Todo texto escrito dentro de un símbolo, deberá ser
escrito claramente, evitando el uso de muchas palabras.
Pseudocódigo
Fuente: Diseño estructurado de algoritmos, 2010

 Mezcla del lenguaje de programación y español (o inglés)


que se emplea, dentro de la programación estructurada,
para realizar el diseño de un programa.
 El pseudocódigo se puede definir como un lenguaje de
especificaciones de algoritmos. Es la representación
narrativa de los pasos que debe seguir un algoritmo para
dar solución a un problema determinado.
 En el pseudocódigo utiliza palabras que indica el proceso
a utilizar.
Ventajas del Pseudocódigo Vs Diagrama de
Flujo
Fuente: Diseño estructurado de algoritmos, 2010

 Ocupa menos espacio en una hoja de papel.


 Permite representar en forma fácil operaciones
repetitivas complejas.
 Es muy fácil pasar de pseudocódigo un programa
en lenguaje de programación.
 Si se siguen las reglas se puede observar
claramente los niveles que sigue cada operación.
Palabras clave usadas en lenguaje de programación
Fuente: Diseño estructurado de algoritmos, 2010
PseInt
http://pseint.sourceforge.net/index.php?page=descargas.php
Documentación/Ejemplos
Crear la carpeta en la ruta
C:/Códigos/Códigos PseInt
Características del programa PSeInt
Las características de este
pseudolenguaje fueron propuestas
en 2001 por el responsable de la
asignatura Fundamentos de
Programación de la carrera de
Ingeniería Informática de la FICH-
UNL. Las premisas son:
 Sintaxis sencilla
 Manejo de las estructuras básicas
de control
 Solo 3 tipos de datos básicos:
numérico, caracter /cadenas de
caracteres y lógico (verdadero-
falso).
 Estructuras de datos: arreglos
Forma general de un algoritmo en PseInt
Todo algoritmo en pseudocógido tiene la siguiente estructura
general:
Algoritmo SinTitulo
accion 1;
accion 1;
.
.
.
accion n;
FinAlgoritmo
Comienza con la palabra clave Algoritmo o Proceso, seguida del
nombre del programa, luego le sigue una secuencia de
instrucciones y finaliza con la palabra FinAlgoritmo. Una secuencia
de instrucciones es una lista de una o más instrucciones, cada una
terminada en punto y coma.
Tipos de datos (variables)
▪ Tipos de datos simple: numérico, lógico, carácter.
▪ Estructura de datos: arreglos
▪ Definición explícita de variables
 Los tipos de datos simples se determinan automáticamente
cuando se crean las variables. Las dos acciones que pueden
crear una variable son la lectura (LEER) y la asignación (<-). Por
ejemplo, la asignación “A<-0”; está indicando implícitamente
que la variable A, será una variable numérica.
 Los arreglos son estructuras homogéneas (es decir, que todos
sus elementos son del mismo tipo simple de dato). El tipo de
sus elementos se determina cuando se utiliza alguno de ellos,
de igual forma que para las variables simples. Pueden ser
unidimensionales o multidimensionales, pero deben ser
dimensionados con la directiva DIMENSION (ejemplo:
“DIMENSION A[10,20];”)
 Los identificadores, o nombre de variables, deben constar sólo
de letras, números y/o guion bajo (_), comenzando siempre con
una letra.
Tipos de datos simples
 Existen tres tipos de datos básicos:
❑ Numérico: números, tanto enteros como reales. Para
separar decimales se utiliza el punto. Por ejemplo: 12
23 0 -4-5 3-1415
❑ Lógico: solo pueden tomar dos valores: VERDADERO o
FALSO.
❑ Carácter: caracteres o cadenas de caracteres
encerrados entre comillas (pueden ser dobles o
simples). Ejemplos ‘Periféricos’, “Programación” ‘123’
‘FALSO ‘etc’
 Opcionalmente, se pueden declarar una variable
numérica como enera con la instrucción DEFINIR.
En este caso, todo valor no entero que se lea o
asigne a la misma será truncado.
Arreglos
 Los arreglos son estructuras homogéneas (es
decir, que todos sus elementos son del mismo
tipo simple de dato) que permiten almacenar
un determinado número de datos bajo un
mismo identificador, para luego referirse a
los mismos utilizando uno o más subíndices.
 Los arreglos pueden pensarse como vectores
o matrices.
 Para poder utilizar un arreglo, primero es
obligatorio su dimensionamiento; es decir,
declarar el rango de los subíndices, lo cual
determina cuantos elementos se almacenarán
y como se accederá a los mismos.
 Si se utiliza un arreglo en base 0, al declarar
un arreglo de, por ejemplo, 15 elementos,
los índices de elementos válidos van de 0 a
14; mientras que se si se utilizan arreglos en
base 1 los índices válidos van de 1 a 15.
Ejemplo de arreglo en PSeInt
Operadores
del lenguaje
reducido
Funciones del pseudocódigo
Expresiones
coloquiales
 Si se encuentra habilitado
el uso de “Condiciones en
lenguaje coloquial” en las
opciones del lenguaje, se
pueden introducir algunas
expresiones adicionales
para formar condiciones
(expresiones lógicas).
Acciones secuenciales: asignación

 La instrucción de asignación permite


almacenar una valor en una variable.

<variable> <- <expresión> ;

 Al ejecutarse la asignación, primero se


evalúa la expresión de la derecha y
luego se asigna el resultado a la variable
de la izquierda. El tipo de la variable y
el de la expresión deben coincidir.
Acciones secuenciales: Lectura (Entradas)

 La instrucción Leer permite ingresar información desde


el ambiente.

Leer <variablel> , <variable2> , ... , <variableN> ;

 Esta instrucción lee N valores desde el ambiente (en


este caso el teclado) y los asigna a las N variables
mencionadas. Pueden incluirse una o más variables, por
lo tanto el comando leerá uno o más valores.
Acciones secuenciales: Escritura (Salidas)

 La instrucción Escribir permite mostrar valores al


ambiente.

Escribir <exprl> , <expr2> , ... , <exprN> ;

 Esta instrucción imprime al ambiente (en este caso en la


pantalla) los valores obtenidos de evaluar N expresiones.
Dado que puede incluir una o más expresiones, mostrará
uno o más valores.
Otras acciones secuenciales
 La instrucción “Borrar Pantalla” (o “Limpiar Pantalla”)
permite, como su nombre lo indica, borrar la pantalla y
colocar el curso en la esquina superior izquierda
Borrar pantalla;
 La instrucción “Esperar Tecla” detiene su algoritmo hasta
que el usuario presione una tecla cualquiera de su
teclado.
Esperar Tecla;
 La instrucción “Esperar” también puede utilizarse para
pausar el algoritmo durante un intervalo de tiempo
predefinido, indicando a continuación de la palabra clave
la longitud y unidad de dicho intervalo. Las unidades
válidas son Segundos y Milisegundos.
Esperar 3 segundos;
Estructura condicional Sí-Entonces

 La secuencia de instrucciones
ejecutadas por la instrucción
Si-Entonces-Sino depende del
valor de una condición lógica. Al ejecutarse esta instrucción, se evalúa la condición y
se ejecutan las instrucciones que correspondan: las
instrucciones que le siguen al Entonces si la condición
es verdadera, o las instrucciones que le siguen al Sino si
Si <condición> la condición es falsa. La condición debe ser una
Entonces expresión lógica, que al ser evaluada retorna Verdadero
o Falso.
<instrucciones>
La cláusula Entonces debe aparecer siempre, pero la
Sino
cláusla Sino puede no estar. En ese caso, si la condición
<instrucciones> es falsa no se ejecuta ninguna instrucción y la
ejecución del programa continúa con la instrucción
FinSi siguiente.
Estructura Condicional
Selección múltiple
 La secuencia de instrucciones ejecutada por una
instrucción Segun depende del valor de una
variable numérica.

Segun <variable> Hacer


<número1>: <instrucciones>
<número2>,<número3>: <instrucciones> Cada opción está formada por uno o más
<...> números separados por comas, dos puntos y una
secuencia de instrucciones. Si una opción incluye
De Otro Modo: <instrucciones> varios números, la secuencia de instrucciones
FinSegun asociada se debe ejecutar cuando el valor de la
variable es uno de esos números.
 Esta instrucción permite ejecutar opcionalmente Opcionalmente, se puede agregar una opción
varias acciones posibles, dependiendo del valor
almacenado en una variable de tipo numérico. Al final, denominada De Otro Modo, cuya secuencia
ejecutarse, se evalúa el contenido de la variable de instrucciones asociada se ejecutará sólo si el
y se ejecuta la secuencia de instrucciones valor almacenado en la variable no coincide con
asociada con dicho valor. ninguna de las opciones anteriores.
Estructuras repetitivas:
Lazo Mientras
 La instrucción Mientras ejecuta una secuencia de
instrucciones mientras una condición sea
verdadera.

Mientras <condición> Hacer


<instrucciones>
FinMientras
Note que las instrucciones del cuerpo
del ciclo pueden no ejecutarse nunca, si
 Al ejecutarse esta instrucción, la condición es al evaluar por primera vez la condición
evaluada. Si la condición resulta verdadera, se
ejecuta una vez la secuencia de instrucciones que resulta ser falsa.
forman el cuerpo del ciclo. Al finalizar la
ejecución del cuerpo del ciclo se vuelve a evaluar Si la condición siempre es verdadera, al
la condición y, si es verdadera, la ejecución se ejecutar esta instrucción se produce un
repite. Estos pasos se repiten mientras la ciclo infinito.
condición sea verdadera.
Estructura repetitiva:
Repetir hasta
 La instrucción Repetir-Hasta Que ejecuta una
secuencia de instrucciones hasta que la
condición sea verdadera.

Repetir
<instrucciones> Note que, dado que la condición se evalúa al
Hasta Que <condición> final, las instrucciones del cuerpo del ciclo serán
ejecutadas al menos una vez.

 Al ejecutarse esta instrucción, la secuencia de Además, a fin de evitar ciclos infinitos, el cuerpo
instrucciones que forma el cuerpo del ciclo se del ciclo debe contener alguna instrucción que
ejecuta una vez y luego se evalúa la condición. modifique la o las variables involucradas en la
Si la condición es falsa, el cuerpo del ciclo se condición de modo que en algún momento la
ejecuta nuevamente y se vuelve a evaluar la condición sea verdadera y se finalice la ejecución
condición. Esto se repite hasta que la del ciclo.
condición sea verdadera.
Estructura repetitiva:
Para

 La instrucción Para ejecuta una secuencia de instrucciones un número


determinado de veces.

Para <variable> <- <inicial> Hasta <final> ( Con Paso <paso> ) Hacer
<instrucciones>
FinPara

 Al ingresar al bloque, la variable <variable> recibe el valor <inicial> y se


ejecuta la secuencia de instrucciones que forma el cuerpo del ciclo. Luego se
incrementa la variable <variable> en <paso> unidades y se evalúa si el valor
almacenado en <variable> superó al valor <final>. Si esto es falso se repite
hasta que <variable> supere a <final>. Si se omite la cláusula Con Paso
<paso>, la variable <variable> se incrementará en 1.
Funciones y subprocesos
 La sintaxis para declarar nuevas funciones o subprocesos en un algoritmo en
Pseudocódigo es:
Función variable_de_retorno <- nombre_de_la_función (argumento_1, argumento_2, …)
acción 1;
acción 2;
.
.
.
acción n;
FinFuncion
 Comienza con la palabra clave Función seguida de la variable de retorno, el signo de
asignación, el nombre del subproceso, y finalmente, la lista de argumentos entre
paréntesis
Funciones y subprocesos
 Si la función no retorna ningún valor, pueden omitirse las
variable de retorno y el signo de asignación. Si el subproceso no
recibe ningún valor pueden colocarse los paréntesis vacíos u
omitirse.
 Opcionalmente pueden agregarse las palabras clave Por valor o
Por referencia para indicar el tipo de pasaje en cada
argumento. Si no se indica, los arreglos se pasan por referencia,
las demás expresiones por valor.
 El pasaje por referencia implica que si la función modifica el
argumento, se modificará en realidad la variable que lo utilizó
en la llamada, mientras que en el pasaje por valor implica que
la función opera con una copia de la variable (o el resultado de
la expresión).
 Para invocar la función se debe utilizar su nombre y entre
paréntesis los parámetros, que podrán ser expresiones sólo si el
tipo de pasaje es por referencia.
Ejemplo de funciones (subprocesos)
Otras observaciones
 Se pueden introducir comentarios luego de una instrucción, o en líneas
separadas, mediante el uso de la doble barra ( // ). Todo lo que precede a
//, hasta el fin de la línea, no será tomado en cuenta al interpretar el
algoritmo.
 Notese que no puede haber instrucciones fuera del programa, aunque si
comentarios.
 Las estructuras no secuenciales pueden anidarse. Es decir, pueden contener
otras adentro, pero la estructura contenida debe comenzar y finalizar
dentro de la contenedora.
 Los identificadores, o nombres de variables, deben constar sólo de letras y
números, comenzando siempre con una letra, y no pueden ser palabras
reservadas (como para, mientras, y, no, etc...)
 Las constantes de tipo carácter se escriben entre comillas ( " ).
 En las constantes numéricas, el punto ( . ) es el separador decimal.
 Las constantes lógicas son Verdadero y Falso.
Ejemplo de algoritmo de suma de dos
números en PseInt
Ejemplo del promedio PSeInt
Ejemplo de algoritmo ordenar tres números
de menor a mayor y viceversa

También podría gustarte