SlideShare una empresa de Scribd logo
Algoritmos y Programación
Marzo, 2025
Christian Vidal Castro
cvidal@ubiobio.cl
Académico del Departamento Sistemas de Información
Facultad de Ciencias Empresariales - Universidad del Bío-Bío
Algoritmo y Programa
PROGRAMA: Conjunto de instrucciones, con una secuencia lógica, escrito en algún
Lenguaje de Programación que permite resolver un Problema. El programa recibe
datos de entrada, realiza las operaciones de transformación requeridas, y entrega
los resultados esperados.
ALGORITMO: Una secuencia de pasos (modelo) para realizar una tarea.
Estructura general de un Algoritmo utilizando
Pseudocódigo
Algoritmo <Nombre_Proceso>
//Variables
Definir variables Como Tipo_Dato;
Acción_1
Acción_2
Acción_3
:
:
:
Acción_n
FinAlgoritmo
Las variables son espacios de memoria reservados para el
almacenamiento de datos requeridos por el algoritmo
Las instrucciones o acciones presentes en un programa o
algoritmo se pueden clasificar de la siguiente manera:
• Instrucciones o acciones de transferencia de datos
• Instrucciones o acciones aritméticos / lógicos
• Instrucciones o acciones de transferencia de
control (condicional o incondicional)
Variables
Algoritmo <Nombre_Proceso>
//Variables
Definir variables Como Tipo_Dato;
Acción1
Acción_2
Acción_3
:
:
Acción_n
FinAlgoritmo
Las variables son espacios de memoria reservados para el
almacenamiento de datos requeridos por el algoritmo.
Las variables quedan definidas por un nombre y el tipo de dato que pueda
contener. La posición de memoria especificada por una variable solo
puede contener un valor a la vez.
Nombre de Variable: se recomienda usar nombres “significativo”, asociado al
uso que se le dará al dato almacenado.
Tipo de dato: Corresponde a un atributo del dato que permite especificar el
dominio de valores que puede tomar y las operaciones que se pueden hacer
sobre ellos. Los tipos de datos primitivos (básicos) son: Numérico (Entero o
Decimal), Carácter y Lógicos.
Instrucciones
Algoritmo <Nombre_Proceso>
//Variables
Definir variables Como Tipo_Dato;
Acción_1
Acción_2
Acción_3
:
:
Acción_n
FinAlgoritmo
Las instrucciones o acciones presentes en un programa o
algoritmo se pueden clasificar de la siguiente manera:
• Instrucciones o acciones de transferencia de datos:
•INGRESO/SALIDA DE DATOS (LECTURA/ESCRITURA)
Leer lista_de_variables; //separadas por coma
Escribir lista_de_expresiones; //separadas por coma
lista_de_expresiones: pueden ser variables, expresiones
aritméticas, 'mensajes entre comillas simples'
•ASIGNACIÓN
variable <expresión>/<variable>
expresión: corresponde a una transformación
matemática que usa variables definidas y/o funciones
predefinidas o desarrolladas.
•ASIGNACIÓN
a  5;
b  a+z;
c  (a*a+b*b)/(a*b);
Instrucciones
Algoritmo <Nombre_Proceso>
//Variables
Definir variables Como Tipo_Dato;
Acción_1
Acción_2
Acción_3
:
:
Acción_n
FinAlgoritmo
• Ejemplos Instrucciones o acciones de transferencia de datos:
•INGRESO/SALIDA DE DATOS (LECTURA/ESCRITURA)
Leer a, b, c;
Escribir 'El valor ingresado de a =',a;
Escribir 'La suma de a y b es =', a+b;
Escribir 'La suma de ', a , ' + ‘ , b , 'es =', a+b;
Escribir 'Ingrese un ´numero: ';
Leer n
Instrucciones
Algoritmo <Nombre_Proceso>
//Variables
Definir variables Como Tipo_Dato;
Acción_1
Acción_2
Acción_3
:
:
Acción_n
FinAlgoritmo
Las instrucciones o acciones presentes en un programa o
algoritmo se pueden clasificar de la siguiente manera:
• Instrucciones o acciones aritméticos / lógicos:
•Suma (+), Resta(-), Multiplicación(*), División (/), Módulo (%), Raíz
cuadrada (RC)
(el módulo como la raíz cuadrada pueden ser implementados con
las operaciones básicas, pero por comodidad los utilizaremos en
forma explicita)
• y (and o &), o (or 0 |), no (not o ~)
(los operadores lógicos, al igual que los aritméticos y relacionales se
utilizan en las expresiones lógicas presentes en las transferencias de
control condicional)
Ejemplos de Algoritmo básicos utilizando Pseudocódigo
Construir los algoritmos en pseudocódigo que permita resolver
los siguientes problemas, mostrando el resultado por pantalla:
• sume dos valores
• multiplica tres números
• divida dos números
• Calcular el cuadrado de un número
• Determine el año de nacimiento de una persona a partir
de la edad
Ejemplos de Algoritmo básicos utilizando
Pseudocódigo
Sume dos valores
Algoritmo Suma
//Variables
Definir a,b,c Como Entero;
Escribir 'Ingrese los datos a sumar';
Leer a,b;
c<-a+b;
Escribir 'La suma de los numeros ingresados es = ',c;
FinProceso
Multiplica tres números
Proceso Suma
//Variables
Definir a,b,c,d Como Entero;
Leer a,b,c;
d<-a*b*c;
Escribir d;
FinProceso
Ejemplos de Algoritmo básicos utilizando
Pseudocódigo
Divida dos números
Proceso División
Variables
a,b,c Entero;
Escribir 'Ingresar el dividendo y divisor';
Leer a,b;
c<-a/b;
Escribir 'El resultado es =', c;
FinProceso
Calcular el cuadrado de un número
Proceso cuadrado
Variables
a,c Entero;
Escribir 'Ingresar un numero';
Leer a;
c<-a*a;
Escribir 'El cuadrado es ', c;
FinProceso
Proceso cuadrado
Variables
a Entero; //una sola variable
Escribir 'Ingresar un numero';
Leer a;
a<-a*a;
Escribir 'El cuadrado es', a;
FinProceso
Ejemplos de Algoritmo básicos utilizando
Pseudo-Código
Construir los algoritmos en pseudocódigo que permita resolver los
siguientes problemas, mostrando el resultado por pantalla:
• Determinar la distancia entre dos puntos en el plano cartesiano
• Evaluar la función f(x)=3*x3+4*x2 - 5 para un valor especifico de x
• Evaluar la ecuación de primer grado
• Evaluar la ecuación de segundo grado
Instrucciones de transferencia de control
Proceso <Nombre_Proceso>
Variables
Lista de variables Tipo_Dato;
Acción_1
Acción_2
Acción_3
:
:
Acción_n
FinProceso
Las instrucciones o acciones presentes en un programa o
algoritmo se pueden clasificar de la siguiente manera:
•Instrucciones o acciones de transferencia de control:
•Transferencia condicional
Esta instrucción es necesaria cuando el flujo de ejecución del
algoritmo depende de una condición lógica. La instrucción más
simple es la bifurcación, en la cual la ejecución puede tomar dos
cursos de acción dependiendo de una condición lógica.
Si expresion_logica Entonces
acciones_por_verdadero;
Sino
acciones_por_falso;
FinSi
•Transferencia repetitiva (se vera con posterioridad)
•Transferencia incondicional (se explicara el porque no es aconsejable
usar)
Proceso Ecuacion_primer_grado
Variables
a,b Entero;
x Flotante;
Leer a,b;
Si a = 0 Entonces
Escribir 'La ecuacion no es de primer grado';
Sino
x<- -b/a; //probar la solución con PSeInt
Escribir x;
FinSi
Escribir 'Fin de Programa';
FinProceso
Instrucciones de transferencia de control
Proceso <Nombre_Proceso>
Variables
Lista de variables Tipo_Dato;
Acción_1
Acción_2
Si expresion_logica Entonces
acciones_por_verdadero;
Sino
acciones_por_falso;
FinSi
:
Acción_n
FinProceso
Evaluar la ecuación de primer grado
a x + b = 0
?
a
b
x = -b / a
a ≠ 0
• Del ejemplo anterior podemos observar que la bifurcación
permite seguir el flujo adecuado dada una condición.
• Las condiciones lógicas que se evalúan en las bifurcaciones son
siempre verdaderas o falsas.
• También es posible que existan bifurcaciones contiguas.
• No necesariamente deben existir los dos cursos de acción.
Instrucciones de transferencia de
control
En las bifurcaciones, se evalúan proposiciones utilizando:
• Operadores lógicos
y (and o &), o (or 0 |), no (not o ~)
• Operadores aritméticos
(*) multiplicación, (/) división, (+) suma, (-) resta, (%) módulo
• Operadores Relacionales
> (mayor que), < (menor que), = (igual), <= (menor o igual),
>= (mayor o igual), != (distinto)
Instrucciones de transferencia de control
Tablas de verdad asociadas a los operadores
lógicos and, or, not
y, And, &
Y
&
V F
V V F
F F F
O
||
V F
V V V
F V F
O, Or, || No, ~
No
| ~
V F
F V
Ejemplos de proposición lógica:
7 > 3
(a+b > c) y (b>0)
~(a = 0)
(b*b – 4*a*c) >= 0
((b*b – 4*a*c) < 0) o (a=0)
Deportes concepción es el mejor equipo del año
Cada una de estas expresiones tendrá un valor de verdad dependiendo de los
valores de los operandos.
Ejemplos se evaluación de proposiciones lógicas
Proceso <Nombre_Proceso>
Variables
Var1, var2, var3, var4 Entero;
var1  2;
var2  0;
var3  4;
var4  (var1*var1)/var3;
Si (var4>=1) y (var1 !=0) Entonces
acciones_por_verdadero;
Sino
acciones_por_falso;
FinSi
:
Acción_n
FinProceso
Proceso <Nombre_Proceso>
Variables
Var1, var2, var3, var4 Entero;
var1  2;
var2  0;
var3  4;
var4  (var3%var1)
Si ((var4!=0) o (var2 >0)) y (var3 =4) Entonces
acciones_por_verdadero;
Sino
acciones_por_falso;
FinSi
:
Acción_n
FinProceso
Es importante notar que existen prioridades entre los operadores. Por lo tanto, deben
utilizarse paréntesis en los casos que correspondan
Ejercicios: Construir, utilizando pseudocódigo, un algoritmo para cada uno de los
siguientes enunciados
 Cree un algoritmo que divida dos números y muestre el resultado
 Crear un algoritmo que muestre en forma ordenada tres números enteros ingresados
desde teclado.
 Cree un algoritmo que resuelva la ecuación de segundo grado, para valores reales, y
muestre el resultado
 Cree un algoritmo que resuelva la ecuación de segundo grado, para valores reales e
imaginarios, y muestre el resultado
 Cree un algoritmo que permita evaluar la siguiente función para un valor de x:
(3x
2
-5x)/ (x-10) si x > 10
f(x)= (5x)/x si 0 < x <=10
x
2
si x <=0
 Cree un algoritmo que permita calcular el valor absoluto de un número
 Cree un algoritmo que permita calcular el promedio de 20 números
 Cree un algoritmo que permita sumar n números y muestre el resultado. El valor de n debe
ser ingresado por teclado al igual que los números que se sumarán.
Instrucciones de transferencia repetitiva
El último ejemplo planteado permite introducir el concepto de iteración o ciclo. Las
estructuras iterativas permiten la ejecución de un grupo de instrucciones un número
conocido o desconocido de veces.
• Concepto de Ciclo
–Un ciclo es la repetición de un conjunto de
instrucciones. Dicho ciclo culmina cuando se
cumple una condición lógica de de término.
• Cuándo se aplican los Ciclos
–Se aplican cuando queremos ejecutar un conjunto
de instrucciones varias veces.
Bloque de
Instrucción1
Condición
lógica
Bloque de
Instrucción2
Bloque de
Instrucción3
Verdadero
Falso
Bloque de Instrución1;
Mientras Condición_Logica Hacer
Bloque de Instrución2;
FinMientras
Bloque de Instrución3;
Bloque de
Instrucción1
Condición
lógica
Bloque de
Instrucción2
Bloque de
Instrucción3
Verdadero
Falso
Bloque de Instrución1;
Repetir
Bloque de Instrución2;
Hasta Que Condición_Logica
Bloque de Instrución3;
Estructuras Iterativas
Construir un algoritmo que permita imprimir los primeros n
números pares
Programa
n
2
4
6
8
:
:
2*n
n > 0
Proceso Numeros_Pares
Variables
n,i Entero;
Repetir
Escribir 'Ingrese numeros de pares a imprimir';
Leer n;
Hasta Que (n > 0)
i <-1;
Mientras (i <=n) Hacer
Escribir 2*i;
i <- i+1;
FinMientras
Escribir 'Fin del Programa';
FinProceso
Construir un algoritmo que permita calcular el promedio de n
números ingresados por teclado
Programa
n
n > 0
Proceso Promedio
Variables
n,i,x,suma, prom Entero;
Repetir
Escribir 'Cuántos números sumara?';
Leer n;
Hasta Que (n > 0)
i <-1;
suma<-0;
Mientras (i <=n) Hacer
Leer x;
suma<-suma+x;
i <- i+1;
FinMientras
prom<-suma/n
Escribir 'Resultado:',prom;
FinProceso
X1
X2
X3
:
Xn
Promedio
Promedio= (x1+ x2+ x3+…. +xn)/n
n
(∑xi = x1+ x2+ x3+…. +xn ) / n
i=1
Construir un algoritmo que permita sumar números ingresados por teclado. El
ingreso de números debe realizarse hasta que se ingrese un 0. Se debe imprimir
la suma y la cantidad de números ingresados.
Programa
Proceso Sumatoria
Variables
n,i,x,suma Entero;
Escribir 'El programa terminara cuando
ingrese un cero';
i<-0;
suma<-0;
Repetir
Escribir 'Ingrese un numero';
Leer x;
suma<-suma+x;
i<-i+1
Hasta Que (x = 0)
Escribir 'Resultado:',suma;
Escribir 'Numeros ingresados: ' , i;
FinProceso
X1
X2
X3
:
X?
suma
suma= x1+ x2+ x3+…. +x?
Ejercicio propuesto
Construir un algoritmo que permita sumar números
ingresados por teclado. El ingreso de números debe
realizarse hasta que se ingrese un 0. Se debe imprimir la
suma, la cantidad de números ingresados, además el
menor y mayor valor ingresado.
Estructuras Iterativas
Otra estructura iterativa es la siguiente:
Bloque de
Instrucción1
Bloque de
Instrucción2
Bloque de
Instrucción3
VC ← VI , VF, Salto
Bloque de Instrución1;
Para Variable_Numerica<-valor_inicial Hasta valor_final Con Paso paso Hacer
Bloque de Instrución2;
FinPara
Bloque de Instrución3;
Construir un algoritmo que permita calcular el promedio de n
números ingresados por teclado
Programa
n
n > 0
Proceso Promedio
Variables
n,i,x,suma, prom Entero;
Repetir
Escribir 'Cuantos numeros sumara?';
Leer n;
Hasta Que (n > 0)
suma<-0;
Para i<-1 Hasta n Con Paso 1 Hacer
Leer x;
suma<-suma+x;
FinPara
prom<-suma/n
Escribir 'Resultado: ',prom;
FinProceso
X1
X2
X3
:
Xn
Promedio
Promedio= (x1+ x2+ x3+…. +xn)/n
n
(∑xi = x1+ x2+ x3+…. +xn ) / n
i=1
¿Preguntas?
Ejercicios
• Crear un algoritmo que encuentre e imprima el número mayor de N números enteros
positivos ingresados por teclado.
• Crear un algoritmo que calcule e imprima el resultado de la siguiente sumatoria
n
∑i
i=1
• Cree un algoritmo que permita evaluar la siguiente función, para n valores de x:
• (3x2
-5x)/ (x-10) si x > 10
• f(x)= (5x)/x si 0 < x <=10
• x2
si x <=0
• Crear un algoritmo que permita evaluar la función f(x)=3*x3
+4*x2
-5 para todos los
valores enteros de x comprendidos en el intervalo [a,b]
• Crear un algoritmo que permita generar los primeros n números de la serie de
Fibonacci
• Crear un algoritmo que permita calcular la siguiente sumatoria:
S= n + 2*n + 3*n +4*n +…….+ n*n
Simbologia Diagrama de Flujo
• Nomenclatura:
• Inicio del algoritmo
• Término del algoritmo
• Impresión de mensajes
• Receptor de datos
• Operación de datos
• Bifurcación (Decisión)
• Definición de variables
• Conector
Inicio
Fin
?
F V
Diagrama de Flujo y Pseudo-Código
Inicio
“Mensaje 1”
Fin
var1,x, y
a = 3 * x + y
b = a / var1
Entero var1, x , y
Real a, b
a > b
V
F
Inicio de Algoritmo
Definición de variables
Impresión de mensajes
Lectura de mensajes
Transformación de datos
Operaciones sobre los datos
Bifurcación en la ejecución de
instrucciones
Conector
Fin de algoritmo
DIAGRAMA DE FLUJO NOMENCLATURA PSEUDO-CÓDIGO
Inicio
Variables
Entero var1, x, y
Real a, b
Imprimir (“Mensaje 1”)
Leer (var1, x, y)
a = 3 * x + y
b = a / var1
Si a > b Entonces
Inicio
Instrucciones
Fin
Sino
Inicio
Instrucciones
Fin
Fin
Estructura general de un programa en C
Algoritmo Prueba
Definición de Variables
Inicio
bloque de instrucciones
Fin
#incude<stdio.h>
#include<otras librerias>
//Definición de Variables globales
//Definición prototipo de
funciones
main()
{
//Definición de variables locales
bloque de instrucciones
}
//desarrollo de funciones
Instrucciones de un programa en C
Variables
entero a,
flotante b,
Leer a
Leer b
Escribir “Elvalor de a es”,a
Si a > 0 Entonces
BLOQUE DE
INSTRUCIONES UNO
sino
BLOQUE DE
INSTRUCIONES DOS
Fin Si
int a;
float b;
scanf(“%d”,&a);
scanf(“%f”,&b);
printf(“EL valor de a es %d”,a);
if (a>0)
{
BLOQUE DE
INSTRUCIONES UNO;
}
else
{
BLOQUE DE
INSTRUCIONES DOS;
}
Instrucciones de un programa en C
Repetir
Bloque de instrucciones;
Hasta (Condición de Termino)
Mientras (Condición de repetición)
Bloque de instrucciones;
Fin Mientras
Para i=Vi, Vf, salto
Bloque de instrucciones;
Fin Para
do
Bloque de instrucciones;
while (condición de repetición);
while (condición de repetición)
{
Bloque de instrucciones;
}
for (i=vi; condición de termino, salto)
{
Bloque de instrucciones;
}

Más contenido relacionado

PDF
Guía didáctica estructura secuenciales
PPTX
Clase 02
PPT
Fundamentos de Programacion
PDF
Guia didactica programacion estructurada unidad 4
DOCX
Trabajo final programacion
PDF
fp_p4.pdf
PDF
Guía de Algoritmo y Programación en C
Guía didáctica estructura secuenciales
Clase 02
Fundamentos de Programacion
Guia didactica programacion estructurada unidad 4
Trabajo final programacion
fp_p4.pdf
Guía de Algoritmo y Programación en C

Similar a Intro algoritmos, como programar 2025.pdf (20)

PPT
Algoritmo
PPT
Entidades primitivas para algoritmos
PPSX
Solución de problemas aplicando la computadora
PPSX
Solución de problemas aplicando la computadora
PPT
Algoritmos
PDF
Material de Clases TP 03 - Programación Computacional
DOC
Algoritmos
PDF
MN01_-_Introduccion_Matlab.pdf
PDF
MF0951_uf1305 Desarrollo de Aplicaciones Web
DOCX
PPT
Algoritmos
PPTX
Tema 4 -_introduccion_a_razonamiento_algoritmico
PPT
01 algoritmos
PPT
01 algoritmos
PPT
01 algoritmos
PPT
ALGORITMOS
PDF
Material de apoyo unidad 3. datos y entidades primitivas
PDF
Clase 3. Datos y Entidades Primitivas - Sullin Santaella
PDF
Clase de datos variables constantes
Algoritmo
Entidades primitivas para algoritmos
Solución de problemas aplicando la computadora
Solución de problemas aplicando la computadora
Algoritmos
Material de Clases TP 03 - Programación Computacional
Algoritmos
MN01_-_Introduccion_Matlab.pdf
MF0951_uf1305 Desarrollo de Aplicaciones Web
Algoritmos
Tema 4 -_introduccion_a_razonamiento_algoritmico
01 algoritmos
01 algoritmos
01 algoritmos
ALGORITMOS
Material de apoyo unidad 3. datos y entidades primitivas
Clase 3. Datos y Entidades Primitivas - Sullin Santaella
Clase de datos variables constantes
Publicidad

Último (20)

PDF
Romper el Circulo de la Creatividad - Colleen Hoover Ccesa007.pdf
PDF
Guia de Tesis y Proyectos de Investigacion FS4 Ccesa007.pdf
PDF
GUIA DE: CANVA + INTELIGENCIA ARTIFICIAL
PDF
Híper Mega Repaso Histológico Bloque 3.pdf
PDF
SESION 12 INMUNIZACIONES - CADENA DE FRÍO- SALUD FAMILIAR - PUEBLOS INDIGENAS...
DOCX
2 GRADO UNIDAD 5 - 2025.docx para primaria
PDF
Unidad de Aprendizaje 5 de Matematica 1ro Secundaria Ccesa007.pdf
PDF
biología es un libro sobre casi todo el tema de biología
DOCX
UNIDAD DE APRENDIZAJE 5 AGOSTO tradiciones
PDF
La Evaluacion Formativa en Nuevos Escenarios de Aprendizaje UGEL03 Ccesa007.pdf
PDF
ciencias-1.pdf libro cuarto basico niños
PDF
Gasista de unidades unifuncionales - pagina 23 en adelante.pdf
PDF
CONFERENCIA-Deep Research en el aula universitaria-UPeU-EduTech360.pdf
PDF
Breve historia de los Incas -- Patricia Temoche [Temoche, Patricia] -- Breve ...
PDF
IDH_Guatemala_2.pdfnjjjkeioooe ,l dkdldp ekooe
PDF
Tomo 1 de biologia gratis ultra plusenmas
PDF
PFB-MANUAL-PRUEBA-FUNCIONES-BASICAS-pdf.pdf
PDF
Lección 6 Escuela Sab. A través del mar rojo.pdf
PDF
Habitos de Ricos - Juan Diego Gomez Ccesa007.pdf
PDF
Integrando la Inteligencia Artificial Generativa (IAG) en el Aula
Romper el Circulo de la Creatividad - Colleen Hoover Ccesa007.pdf
Guia de Tesis y Proyectos de Investigacion FS4 Ccesa007.pdf
GUIA DE: CANVA + INTELIGENCIA ARTIFICIAL
Híper Mega Repaso Histológico Bloque 3.pdf
SESION 12 INMUNIZACIONES - CADENA DE FRÍO- SALUD FAMILIAR - PUEBLOS INDIGENAS...
2 GRADO UNIDAD 5 - 2025.docx para primaria
Unidad de Aprendizaje 5 de Matematica 1ro Secundaria Ccesa007.pdf
biología es un libro sobre casi todo el tema de biología
UNIDAD DE APRENDIZAJE 5 AGOSTO tradiciones
La Evaluacion Formativa en Nuevos Escenarios de Aprendizaje UGEL03 Ccesa007.pdf
ciencias-1.pdf libro cuarto basico niños
Gasista de unidades unifuncionales - pagina 23 en adelante.pdf
CONFERENCIA-Deep Research en el aula universitaria-UPeU-EduTech360.pdf
Breve historia de los Incas -- Patricia Temoche [Temoche, Patricia] -- Breve ...
IDH_Guatemala_2.pdfnjjjkeioooe ,l dkdldp ekooe
Tomo 1 de biologia gratis ultra plusenmas
PFB-MANUAL-PRUEBA-FUNCIONES-BASICAS-pdf.pdf
Lección 6 Escuela Sab. A través del mar rojo.pdf
Habitos de Ricos - Juan Diego Gomez Ccesa007.pdf
Integrando la Inteligencia Artificial Generativa (IAG) en el Aula
Publicidad

Intro algoritmos, como programar 2025.pdf

  • 1. Algoritmos y Programación Marzo, 2025 Christian Vidal Castro cvidal@ubiobio.cl Académico del Departamento Sistemas de Información Facultad de Ciencias Empresariales - Universidad del Bío-Bío
  • 2. Algoritmo y Programa PROGRAMA: Conjunto de instrucciones, con una secuencia lógica, escrito en algún Lenguaje de Programación que permite resolver un Problema. El programa recibe datos de entrada, realiza las operaciones de transformación requeridas, y entrega los resultados esperados. ALGORITMO: Una secuencia de pasos (modelo) para realizar una tarea.
  • 3. Estructura general de un Algoritmo utilizando Pseudocódigo Algoritmo <Nombre_Proceso> //Variables Definir variables Como Tipo_Dato; Acción_1 Acción_2 Acción_3 : : : Acción_n FinAlgoritmo Las variables son espacios de memoria reservados para el almacenamiento de datos requeridos por el algoritmo Las instrucciones o acciones presentes en un programa o algoritmo se pueden clasificar de la siguiente manera: • Instrucciones o acciones de transferencia de datos • Instrucciones o acciones aritméticos / lógicos • Instrucciones o acciones de transferencia de control (condicional o incondicional)
  • 4. Variables Algoritmo <Nombre_Proceso> //Variables Definir variables Como Tipo_Dato; Acción1 Acción_2 Acción_3 : : Acción_n FinAlgoritmo Las variables son espacios de memoria reservados para el almacenamiento de datos requeridos por el algoritmo. Las variables quedan definidas por un nombre y el tipo de dato que pueda contener. La posición de memoria especificada por una variable solo puede contener un valor a la vez. Nombre de Variable: se recomienda usar nombres “significativo”, asociado al uso que se le dará al dato almacenado. Tipo de dato: Corresponde a un atributo del dato que permite especificar el dominio de valores que puede tomar y las operaciones que se pueden hacer sobre ellos. Los tipos de datos primitivos (básicos) son: Numérico (Entero o Decimal), Carácter y Lógicos.
  • 5. Instrucciones Algoritmo <Nombre_Proceso> //Variables Definir variables Como Tipo_Dato; Acción_1 Acción_2 Acción_3 : : Acción_n FinAlgoritmo Las instrucciones o acciones presentes en un programa o algoritmo se pueden clasificar de la siguiente manera: • Instrucciones o acciones de transferencia de datos: •INGRESO/SALIDA DE DATOS (LECTURA/ESCRITURA) Leer lista_de_variables; //separadas por coma Escribir lista_de_expresiones; //separadas por coma lista_de_expresiones: pueden ser variables, expresiones aritméticas, 'mensajes entre comillas simples' •ASIGNACIÓN variable <expresión>/<variable> expresión: corresponde a una transformación matemática que usa variables definidas y/o funciones predefinidas o desarrolladas.
  • 6. •ASIGNACIÓN a  5; b  a+z; c  (a*a+b*b)/(a*b); Instrucciones Algoritmo <Nombre_Proceso> //Variables Definir variables Como Tipo_Dato; Acción_1 Acción_2 Acción_3 : : Acción_n FinAlgoritmo • Ejemplos Instrucciones o acciones de transferencia de datos: •INGRESO/SALIDA DE DATOS (LECTURA/ESCRITURA) Leer a, b, c; Escribir 'El valor ingresado de a =',a; Escribir 'La suma de a y b es =', a+b; Escribir 'La suma de ', a , ' + ‘ , b , 'es =', a+b; Escribir 'Ingrese un ´numero: '; Leer n
  • 7. Instrucciones Algoritmo <Nombre_Proceso> //Variables Definir variables Como Tipo_Dato; Acción_1 Acción_2 Acción_3 : : Acción_n FinAlgoritmo Las instrucciones o acciones presentes en un programa o algoritmo se pueden clasificar de la siguiente manera: • Instrucciones o acciones aritméticos / lógicos: •Suma (+), Resta(-), Multiplicación(*), División (/), Módulo (%), Raíz cuadrada (RC) (el módulo como la raíz cuadrada pueden ser implementados con las operaciones básicas, pero por comodidad los utilizaremos en forma explicita) • y (and o &), o (or 0 |), no (not o ~) (los operadores lógicos, al igual que los aritméticos y relacionales se utilizan en las expresiones lógicas presentes en las transferencias de control condicional)
  • 8. Ejemplos de Algoritmo básicos utilizando Pseudocódigo Construir los algoritmos en pseudocódigo que permita resolver los siguientes problemas, mostrando el resultado por pantalla: • sume dos valores • multiplica tres números • divida dos números • Calcular el cuadrado de un número • Determine el año de nacimiento de una persona a partir de la edad
  • 9. Ejemplos de Algoritmo básicos utilizando Pseudocódigo Sume dos valores Algoritmo Suma //Variables Definir a,b,c Como Entero; Escribir 'Ingrese los datos a sumar'; Leer a,b; c<-a+b; Escribir 'La suma de los numeros ingresados es = ',c; FinProceso Multiplica tres números Proceso Suma //Variables Definir a,b,c,d Como Entero; Leer a,b,c; d<-a*b*c; Escribir d; FinProceso
  • 10. Ejemplos de Algoritmo básicos utilizando Pseudocódigo Divida dos números Proceso División Variables a,b,c Entero; Escribir 'Ingresar el dividendo y divisor'; Leer a,b; c<-a/b; Escribir 'El resultado es =', c; FinProceso Calcular el cuadrado de un número Proceso cuadrado Variables a,c Entero; Escribir 'Ingresar un numero'; Leer a; c<-a*a; Escribir 'El cuadrado es ', c; FinProceso Proceso cuadrado Variables a Entero; //una sola variable Escribir 'Ingresar un numero'; Leer a; a<-a*a; Escribir 'El cuadrado es', a; FinProceso
  • 11. Ejemplos de Algoritmo básicos utilizando Pseudo-Código Construir los algoritmos en pseudocódigo que permita resolver los siguientes problemas, mostrando el resultado por pantalla: • Determinar la distancia entre dos puntos en el plano cartesiano • Evaluar la función f(x)=3*x3+4*x2 - 5 para un valor especifico de x • Evaluar la ecuación de primer grado • Evaluar la ecuación de segundo grado
  • 12. Instrucciones de transferencia de control Proceso <Nombre_Proceso> Variables Lista de variables Tipo_Dato; Acción_1 Acción_2 Acción_3 : : Acción_n FinProceso Las instrucciones o acciones presentes en un programa o algoritmo se pueden clasificar de la siguiente manera: •Instrucciones o acciones de transferencia de control: •Transferencia condicional Esta instrucción es necesaria cuando el flujo de ejecución del algoritmo depende de una condición lógica. La instrucción más simple es la bifurcación, en la cual la ejecución puede tomar dos cursos de acción dependiendo de una condición lógica. Si expresion_logica Entonces acciones_por_verdadero; Sino acciones_por_falso; FinSi •Transferencia repetitiva (se vera con posterioridad) •Transferencia incondicional (se explicara el porque no es aconsejable usar)
  • 13. Proceso Ecuacion_primer_grado Variables a,b Entero; x Flotante; Leer a,b; Si a = 0 Entonces Escribir 'La ecuacion no es de primer grado'; Sino x<- -b/a; //probar la solución con PSeInt Escribir x; FinSi Escribir 'Fin de Programa'; FinProceso Instrucciones de transferencia de control Proceso <Nombre_Proceso> Variables Lista de variables Tipo_Dato; Acción_1 Acción_2 Si expresion_logica Entonces acciones_por_verdadero; Sino acciones_por_falso; FinSi : Acción_n FinProceso Evaluar la ecuación de primer grado a x + b = 0 ? a b x = -b / a a ≠ 0
  • 14. • Del ejemplo anterior podemos observar que la bifurcación permite seguir el flujo adecuado dada una condición. • Las condiciones lógicas que se evalúan en las bifurcaciones son siempre verdaderas o falsas. • También es posible que existan bifurcaciones contiguas. • No necesariamente deben existir los dos cursos de acción. Instrucciones de transferencia de control
  • 15. En las bifurcaciones, se evalúan proposiciones utilizando: • Operadores lógicos y (and o &), o (or 0 |), no (not o ~) • Operadores aritméticos (*) multiplicación, (/) división, (+) suma, (-) resta, (%) módulo • Operadores Relacionales > (mayor que), < (menor que), = (igual), <= (menor o igual), >= (mayor o igual), != (distinto) Instrucciones de transferencia de control
  • 16. Tablas de verdad asociadas a los operadores lógicos and, or, not y, And, & Y & V F V V F F F F O || V F V V V F V F O, Or, || No, ~ No | ~ V F F V Ejemplos de proposición lógica: 7 > 3 (a+b > c) y (b>0) ~(a = 0) (b*b – 4*a*c) >= 0 ((b*b – 4*a*c) < 0) o (a=0) Deportes concepción es el mejor equipo del año Cada una de estas expresiones tendrá un valor de verdad dependiendo de los valores de los operandos.
  • 17. Ejemplos se evaluación de proposiciones lógicas Proceso <Nombre_Proceso> Variables Var1, var2, var3, var4 Entero; var1  2; var2  0; var3  4; var4  (var1*var1)/var3; Si (var4>=1) y (var1 !=0) Entonces acciones_por_verdadero; Sino acciones_por_falso; FinSi : Acción_n FinProceso Proceso <Nombre_Proceso> Variables Var1, var2, var3, var4 Entero; var1  2; var2  0; var3  4; var4  (var3%var1) Si ((var4!=0) o (var2 >0)) y (var3 =4) Entonces acciones_por_verdadero; Sino acciones_por_falso; FinSi : Acción_n FinProceso Es importante notar que existen prioridades entre los operadores. Por lo tanto, deben utilizarse paréntesis en los casos que correspondan
  • 18. Ejercicios: Construir, utilizando pseudocódigo, un algoritmo para cada uno de los siguientes enunciados  Cree un algoritmo que divida dos números y muestre el resultado  Crear un algoritmo que muestre en forma ordenada tres números enteros ingresados desde teclado.  Cree un algoritmo que resuelva la ecuación de segundo grado, para valores reales, y muestre el resultado  Cree un algoritmo que resuelva la ecuación de segundo grado, para valores reales e imaginarios, y muestre el resultado  Cree un algoritmo que permita evaluar la siguiente función para un valor de x: (3x 2 -5x)/ (x-10) si x > 10 f(x)= (5x)/x si 0 < x <=10 x 2 si x <=0  Cree un algoritmo que permita calcular el valor absoluto de un número  Cree un algoritmo que permita calcular el promedio de 20 números  Cree un algoritmo que permita sumar n números y muestre el resultado. El valor de n debe ser ingresado por teclado al igual que los números que se sumarán.
  • 19. Instrucciones de transferencia repetitiva El último ejemplo planteado permite introducir el concepto de iteración o ciclo. Las estructuras iterativas permiten la ejecución de un grupo de instrucciones un número conocido o desconocido de veces. • Concepto de Ciclo –Un ciclo es la repetición de un conjunto de instrucciones. Dicho ciclo culmina cuando se cumple una condición lógica de de término. • Cuándo se aplican los Ciclos –Se aplican cuando queremos ejecutar un conjunto de instrucciones varias veces.
  • 20. Bloque de Instrucción1 Condición lógica Bloque de Instrucción2 Bloque de Instrucción3 Verdadero Falso Bloque de Instrución1; Mientras Condición_Logica Hacer Bloque de Instrución2; FinMientras Bloque de Instrución3; Bloque de Instrucción1 Condición lógica Bloque de Instrucción2 Bloque de Instrucción3 Verdadero Falso Bloque de Instrución1; Repetir Bloque de Instrución2; Hasta Que Condición_Logica Bloque de Instrución3; Estructuras Iterativas
  • 21. Construir un algoritmo que permita imprimir los primeros n números pares Programa n 2 4 6 8 : : 2*n n > 0 Proceso Numeros_Pares Variables n,i Entero; Repetir Escribir 'Ingrese numeros de pares a imprimir'; Leer n; Hasta Que (n > 0) i <-1; Mientras (i <=n) Hacer Escribir 2*i; i <- i+1; FinMientras Escribir 'Fin del Programa'; FinProceso
  • 22. Construir un algoritmo que permita calcular el promedio de n números ingresados por teclado Programa n n > 0 Proceso Promedio Variables n,i,x,suma, prom Entero; Repetir Escribir 'Cuántos números sumara?'; Leer n; Hasta Que (n > 0) i <-1; suma<-0; Mientras (i <=n) Hacer Leer x; suma<-suma+x; i <- i+1; FinMientras prom<-suma/n Escribir 'Resultado:',prom; FinProceso X1 X2 X3 : Xn Promedio Promedio= (x1+ x2+ x3+…. +xn)/n n (∑xi = x1+ x2+ x3+…. +xn ) / n i=1
  • 23. Construir un algoritmo que permita sumar números ingresados por teclado. El ingreso de números debe realizarse hasta que se ingrese un 0. Se debe imprimir la suma y la cantidad de números ingresados. Programa Proceso Sumatoria Variables n,i,x,suma Entero; Escribir 'El programa terminara cuando ingrese un cero'; i<-0; suma<-0; Repetir Escribir 'Ingrese un numero'; Leer x; suma<-suma+x; i<-i+1 Hasta Que (x = 0) Escribir 'Resultado:',suma; Escribir 'Numeros ingresados: ' , i; FinProceso X1 X2 X3 : X? suma suma= x1+ x2+ x3+…. +x?
  • 24. Ejercicio propuesto Construir un algoritmo que permita sumar números ingresados por teclado. El ingreso de números debe realizarse hasta que se ingrese un 0. Se debe imprimir la suma, la cantidad de números ingresados, además el menor y mayor valor ingresado.
  • 25. Estructuras Iterativas Otra estructura iterativa es la siguiente: Bloque de Instrucción1 Bloque de Instrucción2 Bloque de Instrucción3 VC ← VI , VF, Salto Bloque de Instrución1; Para Variable_Numerica<-valor_inicial Hasta valor_final Con Paso paso Hacer Bloque de Instrución2; FinPara Bloque de Instrución3;
  • 26. Construir un algoritmo que permita calcular el promedio de n números ingresados por teclado Programa n n > 0 Proceso Promedio Variables n,i,x,suma, prom Entero; Repetir Escribir 'Cuantos numeros sumara?'; Leer n; Hasta Que (n > 0) suma<-0; Para i<-1 Hasta n Con Paso 1 Hacer Leer x; suma<-suma+x; FinPara prom<-suma/n Escribir 'Resultado: ',prom; FinProceso X1 X2 X3 : Xn Promedio Promedio= (x1+ x2+ x3+…. +xn)/n n (∑xi = x1+ x2+ x3+…. +xn ) / n i=1
  • 28. Ejercicios • Crear un algoritmo que encuentre e imprima el número mayor de N números enteros positivos ingresados por teclado. • Crear un algoritmo que calcule e imprima el resultado de la siguiente sumatoria n ∑i i=1 • Cree un algoritmo que permita evaluar la siguiente función, para n valores de x: • (3x2 -5x)/ (x-10) si x > 10 • f(x)= (5x)/x si 0 < x <=10 • x2 si x <=0 • Crear un algoritmo que permita evaluar la función f(x)=3*x3 +4*x2 -5 para todos los valores enteros de x comprendidos en el intervalo [a,b] • Crear un algoritmo que permita generar los primeros n números de la serie de Fibonacci • Crear un algoritmo que permita calcular la siguiente sumatoria: S= n + 2*n + 3*n +4*n +…….+ n*n
  • 29. Simbologia Diagrama de Flujo • Nomenclatura: • Inicio del algoritmo • Término del algoritmo • Impresión de mensajes • Receptor de datos • Operación de datos • Bifurcación (Decisión) • Definición de variables • Conector Inicio Fin ? F V
  • 30. Diagrama de Flujo y Pseudo-Código Inicio “Mensaje 1” Fin var1,x, y a = 3 * x + y b = a / var1 Entero var1, x , y Real a, b a > b V F Inicio de Algoritmo Definición de variables Impresión de mensajes Lectura de mensajes Transformación de datos Operaciones sobre los datos Bifurcación en la ejecución de instrucciones Conector Fin de algoritmo DIAGRAMA DE FLUJO NOMENCLATURA PSEUDO-CÓDIGO Inicio Variables Entero var1, x, y Real a, b Imprimir (“Mensaje 1”) Leer (var1, x, y) a = 3 * x + y b = a / var1 Si a > b Entonces Inicio Instrucciones Fin Sino Inicio Instrucciones Fin Fin
  • 31. Estructura general de un programa en C Algoritmo Prueba Definición de Variables Inicio bloque de instrucciones Fin #incude<stdio.h> #include<otras librerias> //Definición de Variables globales //Definición prototipo de funciones main() { //Definición de variables locales bloque de instrucciones } //desarrollo de funciones
  • 32. Instrucciones de un programa en C Variables entero a, flotante b, Leer a Leer b Escribir “Elvalor de a es”,a Si a > 0 Entonces BLOQUE DE INSTRUCIONES UNO sino BLOQUE DE INSTRUCIONES DOS Fin Si int a; float b; scanf(“%d”,&a); scanf(“%f”,&b); printf(“EL valor de a es %d”,a); if (a>0) { BLOQUE DE INSTRUCIONES UNO; } else { BLOQUE DE INSTRUCIONES DOS; }
  • 33. Instrucciones de un programa en C Repetir Bloque de instrucciones; Hasta (Condición de Termino) Mientras (Condición de repetición) Bloque de instrucciones; Fin Mientras Para i=Vi, Vf, salto Bloque de instrucciones; Fin Para do Bloque de instrucciones; while (condición de repetición); while (condición de repetición) { Bloque de instrucciones; } for (i=vi; condición de termino, salto) { Bloque de instrucciones; }