Академический Документы
Профессиональный Документы
Культура Документы
de Algoritmos
Introduccin
Captulo 1
Actualmente, una persona no ha entendido algo hasta
despus de haberlo enseado a una computadora
Algoritmo
Tipos de datos
bsicos
(TDB)
Tipo de datos
elemental
entero
En
pseudocdigo
int
real
real
booleano
bool
caracter
char
Operaciones
Numricos
Operacin
suma
resta
multiplicaci
n
divisin
potenciacin
divisin
entera
mdulo
Smbolo
+
*
Prioridad
1
1
2
/
^
div
2
3
2
mod
Booleanos
Operacin
AND
OR
NOT
Smbolo
&
|
Enunciado de
asignacin
Flujo de control
Seleccin
Seleccin
Pseudocdigo
si c1
e1
otro
e2
si c2
e3
Ejemplo
/**
* Determina si una persona es joven (menor de 21 aos)
**/
clase SiempreJoven {
principal {
const int joven 21 //Declaracin de la constante joven
int edad
escribe Proporcione su edad
lee edad
si edad < joven
escribe La juventud es un tesoro divino, disfrtala
escribe La edad es un estado mental
}
}
Iteracin
Para
Ejemplo
/**
* Imprime los nmeros del 1 al 100
**/
clase Imprime1-100 {
principal {
para i 1 hasta 100, 1
escribe i
}
}
Debido a que
muchas veces
el incremento
es 1 se
obviara, es
decir no se
pondr.
Ejercicio
Solucin
/**
* Imprime los nmeros mltiplos de 5 comprendidos entre un
* lmite inferior y un lmite superior
**/
clase ImprimeMultiplos5 {
principal {
int limInf, limSup
escribe Proporcione el lmite inferior y el lmite superior
lee limInf, limSup
para i limInf hasta limSup
si i mod 5 = 0 entonces
escribe i
}
}
Mientras
Ejemplo
class EjemMientras {
principal {
int i 0
mientras (i < 10) {
escribe i
i++
}
}
}
Ejercicio:
Ejercicio
Solucin
clase DeterminaPrimo {
principal {
escribe "Dame un entero"
lee num
int i 2
mientras num mod i != 0
i++
escribe "El nmero " + num
si i = num
escribe "es un primo"
otro
escribe "no es un primo"
}
}
Repite
En pseudocdigo:
repite
e1
mientras c1
El enunciado do es similar al
while, excepto que la
condicin de terminacin es
al final del cuerpo del ciclo. El
ciclo do ejecuta las
sentencias dentro del cuerpo
hasta que la condicin es
falsa. El cuerpo de un ciclo
do al menos se ejecuta una
vez.
Ejemplo
class ejemRepite {
principal {
const int LIMITE 7; //constante entera
int cuenta 0
repite {
cuenta++;
escribe "Cuenta: " + cuenta
} mientras cuenta < LIMITE
}
}
Encabezado de un
mtodo
Incluye:
El enunciado return
Parmetros
Arreglos
unidimensionales
y Cadenas
Definicin
Estructura
Declaracin
Operaciones
Ejemplo
Tamao de un arreglo
Ejercicio
Solucin
int sumaElem () {
suma 0
para i 0 hasta info.longitud-1
suma suma + info[i]
regresa suma
}
Ejercicio
Solucin
int maximo () {
//El mayor es el 1ro. hasta que se demuestre lo
contrario
max info [0]
para i 1 hasta info.longitud-1
si max < info[i] entonces
max info [i]
regresa max
}
int posMaximo () {
//El mayor es el 1ro. hasta que se demuestre lo
contrario
posMax 0
para i 1 hasta info.longitud-1
si info [posMax] < info[i]
posMax i
regresa posMax
}
Ejercicio
Solucin
int valorEnmedio () {
regresa info [(info.longitud-1)/2]
}
Ejercicio
Solucin
real promedio () {
regresa sumaElem ()/info.longitud
}
Qu es un
algoritmo?
Algoritmo
Perspectiva histrica
Nocin de algoritmo
problema
algoritmo
entrada
computadora
salida
Solucin algoritmica
Ejemplo de un problema
computacional:
ordenamiento
Seleccin
Insercin
Merge Sort
Muchos otros
Ordenamiento por
seleccin
mcd
mcd
Se
detendr?
Verificacin de enteros
consecutivos
Basado en la definicin
El mcd no puede ser mayor que el menor de
los dos nmeros, t = mn {m, n}
mcd (60, 24) =
Se verifica con 24,
23, ..., 12
Ejercicio
El de la primaria
Ms costoso y lento
que encontrar el
algoritmo de
Euclides
Entender el problema
Decidir: capacidades computacionales
Solucin aproximada vs. Exacta
Estructuras de datos
Tcnica de diseo de algoritmos
Puntos a resaltar
Estudiar algoritmos
desarrolla
capacidades
analticas