Presentación inteligencia artificial en la actualidad
Pseudocódigo para la representación y resolución de algoritmos
1. PROYECTO DE INVESTIGACIÓN
PSEUDOCÓDIGO
REALIZADO POR:
AMAVIZCA GALAVIZ AXEL ELIAN
ESTUDIANTE DE:
ING.TECNOLOGÍAS DE LA
INFORMACIÓN Y LA
COMUNICACIÓN.
ESPECIALIDAD:
INFRAESTUCTURA DE REDES
DIGITALES.
2. AXEL AMAVIZCA 2
INDICE
TABLA DE CONTENIDO
¿QUÉ ES UN ALGORITMO? ................................................................................................................. 3
ESTRUCTURAS DE CONTROL............................................................................................................... 4
REPRESENTACIÓN DE ALGORITMOS.................................................................................................. 6
PSEUDOCÓDIGO ................................................................................................................................. 8
EL LENGUAJE HUMANO.................................................................................................................. 8
ALGUNOS EJEMPLOS DE EJERCICIOS.............................................................................................. 9
TIPOS DE DATOS ........................................................................................................................... 10
DATOS NUMÉRICOS.................................................................................................................. 10
DATOS SIMPLES ........................................................................................................................ 11
VARIABLES Y CONSTANTES .............................................................................................................. 12
OPERADORES................................................................................................................................ 15
ENTRADA Y SALIDA DE LA INFORMACIÓN................................................................................... 19
ESTRUCTURA DE UN ALGORITMO............................................................................................ 20
EJERCICIOS RESULTOS................................................................................................................... 23
ANEXOS DE EJEMPLOS.................................................................................................................. 29
REFERENCIAS BIBLIOGRÁFICAS........................................................................................................ 34
3. AXEL AMAVIZCA 3
¿QUÉ ES UN ALGORITMO?
El algoritmo es una secuencia ordenada y cronológica de pasos
que llevan a la solución de un problema o a la ejecución de una
tarea (o actividad).
Los pasos del algoritmo deben tener las siguientes características:
• Ser simples, claros, precisos, exactos
• Tener un orden lógico
• Tener un principio y un fin
Aplicando el concepto de algoritmo a situaciones de nuestra
vida cotidiana, tenemos que, ejemplos de algoritmos son las
señas para encontrar una dirección, las recetas de cocina,
los planos de construcción, las instrucciones para armar o utilizar
un juguete, etcétera
Un algoritmo y finalmente un programa es una secuencia de
instrucciones escritas para realizar una tarea específica, la cual
puede ser una instrucción simple o compleja.
4. AXEL AMAVIZCA 4
ESTRUCTURAS DE CONTROL
Los científicos de la computación definieron tres estructuras de
control para un programa o algoritmo estructurado.
La idea es que un programa debe conformarse de una
combinación de sólo estas tres estructuras: secuenciación,
selección y repetición. Se ha demostrado que no hay necesidad
de ninguna otra estructura. El usar sólo estas estructuras hace que
un programa o algoritmo sea fácil de entender, depurar o
cambiar. Las estructuras de control son las formas lógicas de
funcionamiento de la computadora mediante las que se dirige el
orden en que deben ejecutarse las instrucciones del programa.
• Secuenciación: Es la capacidad de ejecutar instrucciones
secuenciales una tras otra.
• Selección: Es la capacidad de escoger si algo se ejecuta o
no, optar por una o más alternativas.
• Repetición: Es la capacidad de realizar en más de una
ocasión una acción o conjunto de acciones, por ejemplo,
calcular el sueldo de un empleado, repitiendo el cálculo N
veces para N empleados.
6. AXEL AMAVIZCA 6
REPRESENTACIÓN DE ALGORITMOS
Diagrama de flujo: Representa la esquematización gráfica de un
algoritmo en base a sus propias figuras y símbolos.
Pseudocódigo: Es una representación de un algoritmo parecida
al inglés. No hay un estándar para pseudocódigo; algunas
personas utilizan muchos detalles y otras usan menos. Algunos
utilizan un tipo de código que se parece al inglés y otros utilizan
una sintaxis parecida a su idioma.
En este documento, se profundizará únicamente en el
planteamiento y resolución de ejercicios en base a
pseudocódigo, en esta sección sólo se muestran ejemplos de la
representación de algoritmos.
Figura 2. Ejemplo uno de algoritmos en pseudocódigo y diagrama de flujo.
7. AXEL AMAVIZCA 7
Figura 3. Ejemplo en diagrama de flujo de las estructuras de control.
Figura 4. Ejemplo en pseudocódigo de las estructuras de control.
8. AXEL AMAVIZCA 8
PSEUDOCÓDIGO
EL LENGUAJE HUMANO
Pseudocódigo no es un lenguaje de programación específico, en
todo caso, es un conjunto de frases que un programador puede
utilizar para representar las acciones esperadas de un programa.
Para explicar el funcionamiento de un programa entre
desarrolladores, es escrito en pseudocódigo como una forma de
ahorrar el tiempo y facilitar el entendimiento de aquello que se
quiere crear.
El pseudocódigo es una técnica para el diseño de programas
que permiten definir las estructuras de datos y la lógica que
tendrá el programa de computadora para la solución de un
determinado problema.
Las ventajas de usar pseudocódigo para representar un
algoritmo en lugar de un diagrama de flujo son las siguientes:
• Ocupa menos espacio en la hoja de papel.
• Permite representar fácilmente operaciones repetitivas
complejas.
• Simplifica el pasaje de un pseudocódigo a un lenguaje de
programación.
• Permite observar con claridad los niveles que tienen cada
operación.
10. AXEL AMAVIZCA 10
TIPOS DE DATOS
Para representar la información o las reglas que permitan
cambiar fórmulas matemáticas a expresiones válidas de
computación, hay que tener en cuenta los tipos de datos. A nivel
de la máquina, se representan como una serie de bits (dígito 1 o
0) y tienen un tipo asociado en la programación. Por ejemplo, un
dato puede ser una simple letra (como b) o un valor numérico
(como 35).
Los tipos de datos más comunes son los numéricos (entero y real),
cadena de caracteres (alfabéticos o alfanuméricos), carácter y
boolean, cada uno de los cuales puede manejarse como una
constante o como una variable.
DATOS NUMÉRICOS
Estos datos se dividen a su vez en ENTEROS Y REALES.
Los ENTEROS son los números que no contienen componentes
fraccionarios y, por tanto, no incluyen el punto decimal; pueden
ser positivos o negativos, como por ejemplo 450, -325, 4, o -4. Se
representa como Entero.
Los REALES son los números que contienen una parte fraccionaria
y, por tanto, incluyen el punto decimal; pueden ser positivos o
negativos, como por ejemplo 465.0, 42.325, 800.02, -24.5, ó -42.3.
Se representa como Real.
11. AXEL AMAVIZCA 11
DATOS SIMPLES
TABLA 1. Datos simples que pueden utilizar en el desarrollo.
12. AXEL AMAVIZCA 12
VARIABLES Y CONSTANTES
Variable: Son objetos que pueden cambiar su valor durante la
ejecución del programa. Para nombrar variables se utilizan los
identificadores. Pueden existir variables de todos los tipos de
datos. Por lo general las variables se declaran al inicio del
programa y pueden cambiar su valor durante la ejecución del
mismo programa.
Los nombres que representan el valor de un dato, ya sea
numérico o alfanumérico, son variables. Para utilizar una variable,
debemos darle un nombre con el cual identificarla dentro de un
algoritmo. Es posible crear tantas variables como sean
necesarias.
El tipo de variable puede ser cualquiera de los tipos de datos,
como char, int o float. Para crear una variable se especifica el
tipo y el nombre. Por ejemplo, lo siguiente puede usarse para
declarar y definir una variable llamada precio en C. El nombre de
la variable es precio y su tipo es float.
float precio;
Constantes: Las constantes son declaraciones de datos a las que
se les asigna un espacio en la memoria para su almacenamiento.
Estas declaraciones no cambian durante la ejecución del
programa. Por ejemplo, podemos utilizar datos que deben tener
un valor único que no se modifique.
Ejemplo de una constante en C tipo double:
Double pi=3.1416;
13. AXEL AMAVIZCA 13
identificador: Representan los datos de un programa, constantes,
variables y tipo de datos. Se trata de una secuencia de
caracteres que sirve para identificar una posición en la memoria
de la computadora y obtener el acceso a su contenido.
Ejemplo: Nombre;Numero_horas;Calificacion.
Tabla 2: Variables que existen en cuestión de su contenido.
Figura 2: Formato de variables.
14. AXEL AMAVIZCA 14
Tabla 3: Variables según su uso.
Ejemplos de constantes:
Ejemplos de variables:
15. AXEL AMAVIZCA 15
OPERADORES
Aritméticos: Permiten hacer operaciones matemáticas con
valores de variables, y pueden usarse con datos enteros o reales.
Los tipos que podemos encontrar son:
+ Suma
- Resta
* Multiplicación
/ División
Ejemplos:
2+2 = 4
2-1= 1
2*2 = 4
4/2= 2
Es importante tener en cuenta la prioridad de los operadores
aritméticos. Todas las expresiones entre paréntesis siempre se
evalúan primero. Aquellas con paréntesis anidados se evalúan
desde adentro hacia afuera (el paréntesis más interno se evalúa
primero). Dentro de una misma expresión, los operadores se
evalúan en el siguiente orden:
1) Potencias
2) Multiplicación y división
3) Suma y resta
16. AXEL AMAVIZCA 16
Lógicos: Los operadores lógicos se utilizan para establecer
relaciones entre valores lógicos, que pueden ser el resultado de
una expresión relacional. Por lo general, pueden tomar dos
valores para indicar su estado: 1 (Verdadero o True) y 0 (Falso o
False). Los tipos de operadores lógicos que podemos encontrar
son los siguientes:
• AND: y
• OR: o
• NOT: negación, no
Tabla 4: Aplicación del operador AND.
17. AXEL AMAVIZCA 17
El operador AND cumple una función y la otra. Sólo en ese caso
la solución será verdadera, pero si sólo se cumple una función y
otra no, entonces dicha solución sería falso.
Ejemplos:
Tabla 5: Aplicaciones de la función OR
El operador OR se utiliza para preguntar acerca de una solución
u otra; el resultado será verdadero siempre y cuando alguna
expresión también lo sea, de lo contrario será falso.
Ejemplos:
18. AXEL AMAVIZCA 18
Relacionales: Se utilizan para establecer una relación entre dos
valores. Al comparar estos valores entre sí, se produce un
resultado verdadero o falso.
Los operadores relacionales comparan valores del mismo tipo,
numéricos o cadenas. Tienen igual nivel de prioridad en su
evaluación.
Tabla 6: Los operadores relacionales.
Ejemplos:
A>B
A>=B
9=9
2<=10
A+B>=C
19. AXEL AMAVIZCA 19
ENTRADA Y SALIDA DE LA INFORMACIÓN
Para procesar los datos que vamos a obtener de parte del
usuario, debemos asignarlos a variables. Para esto, utilizamos la
instrucción LEER o, también, INGRESAR. Por ejemplo:
variable varNumero tipo numero
LEER varNumero
Dicha instrucción le pide al usuario que ingrese un valor que luego
será asignado a la variable varNumero.
variable Edad,Peso tipo numero
variable Sexo tipo numero
LEER Edad,Peso,Sexo
Esto representa la lectura de tres valores que se van a almacenar
en las variables Edad, Peso y Sexo. Con el código anterior, se
captura información para un programa utilizando pseudocódigo.
Para mostrar un resultado en un mensaje, usamos la instrucción
IMPRIMIR o MOSTRAR. Por ejemplo:
IMPRIMIR "Hola" // MOSTRAR "Hola"
Cuando en pseudocódigo se quiera mostrar en pantalla el
mensaje "Hola", se debe poner siempre en comillas, porque
pertenece a una cadena de texto.
20. AXEL AMAVIZCA 20
ESTRUCTURA DE UN ALGORITMO
1. Encabezado
Todo algoritmo debe tener un encabezado como identificación,
el cual debe empezar con la palabra Algoritmo, seguida por una
breve descripción de lo que hace. Para el problema que nos
ocupa puede ser: Algoritmo CALCULA SUELDO DE UN EMPLEADO
2. Clases
Un algoritmo está formado por un conjunto de una o más clases,
y por lo menos debe tener una clase. Cada clase está formada
por un conjunto de uno o más métodos y en todo el algoritmo
debe haber un método principal, que es donde inicia su
funcionamiento. Con los métodos se implementan las funciones
que hace el algoritmo.
21. AXEL AMAVIZCA 21
3. Declarar
El primer paso en el diseño de un algoritmo consiste en declarar
los elementos que se necesiten como variables, constantes,
tipos de datos, etcétera.
Recordando que Cadena, entero y real son tipos de variables.
4. Leer, calcular e imprimir
Lectura de datos. En este punto se empiezan a introducir los datos
disponibles como materia prima mediante una operación de
lectura precedida por una solicitud de los datos.
Hacer cálculos. El siguiente punto es procesar la entrada para
producir la salida mediante la ejecución de cálculos basados en
expresiones aritméticas.
Impresión de datos. El último punto estriba en dar salida a la
información requerida, imprimiendo las variables que la
contienen.
22. AXEL AMAVIZCA 22
5. Fin del método principal, de la clase y del algoritmo
Por último, se tiene el fin del método principal, el fin de la clase y
el fin del algoritmo.
Ejemplo:
Notas:
Cuando hay más de una variable de un mismo tipo de dato, se
pueden definir juntas separándolas por coma, como cuotaHora,
sueldo: Real (como se muestra en el ejemplo).
Si se desea imprimir un mensaje seguido del resultado de las
operaciones, se puede hacer de la siguiente manera:
Por ejemplo:
Imprimir “Nombre del empleado: “ + nombreEmp
Imprimir “Su sueldo total es: “ + sueldo
23. AXEL AMAVIZCA 23
EJERCICIOS RESULTOS
1. Elaborar un algoritmo que permita leer un número en radianes
e imprima su equivalencia en grados; de igual forma, que
permita leer un número en grados e imprima su equivalencia
en radianes.
Algoritmo grados y radiantes
Clase RadianGrado
1. Método principal
a. Declaración de variables
Pi = 3.1416
Radianes, grados, numradianes, numgrados:
Real
b. Solicitar “número de radianes”
c. Leer numradianes
d. Solicitar “número de grados”
e. Leer numgrados
f. Calcular
numgrados = radianes * (180/Pi)
numradianes = grados * (Pi/180)
g. Imprimir “Radianes igual a: “ + numradianes
Imprimir “Grados igual a “ + numgrados
h. Fin método principal
Fin clase RadianGrado
Fin
24. AXEL AMAVIZCA 24
2. Elabora un algoritmo que calcule el área y perímetro de un
cuadrado, si sus lados miden 8cm.
Nota: Recuerda que las líneas (“//”), se usan para agregar una
etiqueta en el código, esta no será tomada en cuenta, al
momento de ejecutar el algoritmo.
3. Elabora un algoritmo que permite calcular e imprimir el área
de un triángulo.
INICIO
a. Declaración de variables
//Constante
Lado=5
/Variables
Area, perimetro: Real
b. Calcular
Area = Lado*Lado
perimetro = 4*Lado
c. Imprimir Area, perímetro
FIN
FIN
INICIO
a. Declaración de variables
base, altura, area: Real
b. Solicitar “Ingresa el valor de la base”
c. Leer base
d. Solicitar “Ingresa el valor de la altura”
e. Leer altura
f. Calcular
area = (base*altura)/2
g. Imprimir “El area del triangulo es igual a “ + area
FIN
25. AXEL AMAVIZCA 25
4. Elabora un algoritmo para convertir grados Celsius a grados
Fahrenheit e imprima su resultado.
5. Elabora un algoritmo que lea la cantidad en dólares y las
convierta a pesos.
INICIO
a. Declaración de variables
C, F: Real
b. Solicitar “Ingresa grados Celsius”
c. Leer C
d. Calcular
F = (1.8*C)+32
e. Imprimir F
FIN
INICIO
a. Declaracion de variables
D = 20
Cantidad, P: Real
b. Solicitar “Cantidad en dolares”
c. Leer Cantidad
d. Calcular
P = Cantidad*D
e. Imprimir “Cantidad en dolares: “ + Cantidad
Imprimir “Total en pesos: “ + P
FIN
26. AXEL AMAVIZCA 26
6. Elabora un algoritmo que calcule y muestre el promedio de
tres materias de un alumno.
7. Elabora un algoritmo que solicite la edad de una persona, si la
edad es mayor o igual a 18 años, mostrar que es mayor de
edad, sino mostrar menor de edad.
INICIO
a. Declaracion de variables
C1, C2, C3, PROMEDIO: Real
b. Solicitar “Primer calificacion”
c. Leer C1
d. Solicitar “Segunda calificacion”
e. Leer C2
f. Solicitar “Tercer calificacion”
g. Leer C3
h. Calcular
PROMEDIO = (C1+C2+C3)/3
i. Imprimir PROMEDIO
FIN
INICIO
a. Declaracion de variables
Edad: Entero
b. Solicitar “Ingresar edad”
c. Leer Edad
//Aquí agregamos una condición con la función IF/SI
IF Edad>=18 then
Imprimir “Mayor de edad”
ELSE
Imprimir “Menor de edad”
ENDIF
FIN
27. AXEL AMAVIZCA 27
8. Elabora un algoritmo que solicite leer dos números e imprima
cual de ellos es el mayor.
9. Elabora un algoritmo que solicite nombre y edad. Si el nombre
es Mario o si es mayor de edad debe imprimir aceptado sino
debe imprimir.
INICIO
a. Declaracion variables
A, B: Real
b. Solicitar “Ingresa un numero”
c. Leer A
d. Solicitar “Ingresa un segundo numero”
e. Leer B
//Aquí agregamos la siguiente condición con la
función IF/SI.
IF A>B then
Imprimir “El mayor es: “ + A
ELSE
Imprimir “El mayor es: “ + B
ENDIF
FIN
INICIO
a. Declaración de variables
Nombre: Cadena
Edad: Real
b. Solicitar “El nombre y la edad”
c. Leer Nombre, Edad
28. AXEL AMAVIZCA 28
10.Elabora un algoritmo que solicite tres números y determine
cuál de ellos es el mayor.
IF Nombre=”Mario” OR Edad>=18 then
Imprimir “Aceptado”
ELSE
Imprimir “Rechazado”
ENDIF
FIN
INICIO
a. Declaración
A, B, C: Real
b. Solicitar “numero 1”, “numero 2”, “numero 3”
c. Leer A,B,C
IF A>B then
IF A>C then
Imprimir “El mayor es: “ + A
ELSE
Imprimir “El mayor es: “ + C
ENDIF
ELSE
IF B>C then
Imprimir “El mayor es: “ + B
ELSE
Imprimir “El mayor es: “ + C
ENDIF
ENDIF
FIN
34. AXEL AMAVIZCA 34
REFERENCIAS BIBLIOGRÁFICAS
Leobardo López Román. “Metodología de la programación
orientada a objetos”. Segunda edición. (2013)
Leobardo López Román. “Metodología de la programación
orientada a objetos”. Primera edición. (2006)
Behrouz A. Forouzan, Sophia Chung Fegan. "Introducción a la
ciencia de la computación". (2003)
Matías Lacano. “Programador.Net”. (2011)
Juan Carlos Casale. “Programación desde cero”. (2014)