2. Introducción
El objetivo de estas sesiónes
consistirá en explicar los
conceptos de algoritmo,
programa y lenguaje de
programación. Así como
explorar otros temas
concurrentes.
3. Temática
Sistemas de procesamiento de
información.
Concepto de Algoritmo.
Lenguaje de programación.
Datos, tipos de datos y operaciones
primitivas.
Constantes y variables.
Expresiones.
Funciones intrínsecas.
Asignación.
Entrada y salida de información.
4. 1. Sistemas de
procesamiento de la
información
Un sistema de esta clase se define
como un conjunto de componentes
interconectados entre sí que
transforman datos en información
organizada, significativa y útil.
6. Una primera definición
Un algoritmo consiste en el
grupo de instrucciones que
definen la secuencia de
operaciones a realizar para
resolver un sistema específico o
clase de problema.
7. Conceptos importantes
Hardware: grupo de
componentes físicos de una
computadora.
Software: conjunto de programas
que controlan el funcionamiento
de una computadora
8. 2. Concepto de Algoritmo
La metodología de la
programación es aquella que
es necesaria para resolver
problemas mediante
programas, su eje es el
algoritmo.
Diseño
Problema del Programa
algoritmo
9. Pasos para la solución
de un problema
El diseño del algoritmo describe
el análisis del problema y
desarrollo del algoritmo.
Expresar el algoritmo como un
programa en un lenguaje de
programación.
Ejecutar y validar el programa
por la computadora.
10. Características de los
algoritmos
Preciso, indicará el orden de cada
paso.
Definido, el mismo resultado se
obtendrá al ejecutar el algoritmo
“n” ocasiones.
Finito, deberá terminar en algún
momento.
11. Ejemplo 1 Genere un algoritmo
que solucione la entrega de un
pedido a un cliente
Inicio.
Leer el pedido.
Examinar el historial crediticio del cliente
Si el cliente es solvente, entregar el
pedido. En caso contrario, rechazarlo.
Fin
12. Ejemplo 2 Genere un
algoritmo que sume los
números entre el 3 y el 30.
Inicio.
Hacer SUMA igual cero.
Establecer NUMERO igual a 3.
Sumar NUMERO a SUMA.
Incrementar NUMERO en 3
Si NUMERO es menor o igual que 30 ir a
4; si no imprimir a SUMA.
Fin
13. Ejemplo 3 Genere un algoritmo que
determine al mayor de tres números
enteros.
Inicio
Leer los números y guardarlos en NUM1,
NUM2 y NUM3 respectivamente
Comparar NUM1 y NUM2, el número
mayor se guarda en AUX.
Comparar AUX y NUM3, imprimir el
número mayor.
Fin.
14. Tarea 1 Diseñe un algoritmo para
determinar si un número es primo o no.
Tarea 2 Genere un algoritmo que sume
los números entre el 2 y el 20.
Tarea 3 Genere un algoritmo que sume
los números entre el 5 y el 50.
15. 3. Los lenguajes de
programación
Cuando el procesador de datos es
una computadora entonces el
algoritmo de solución se expresa en
un programa.
Por tanto, un programa es escrito en
un lenguaje de programación.
Luego, la programación consiste en
expresar las operaciones en forma
de programa de un algoritmo.
16. Tipos de lenguajes
Máquina; escritos en código binario.
Bajo nivel (ensamblador); escrito en
nemotécnicos.
Alto nivel; diseñados para ser
entendidos por el ser humano.
17. Instrucciones básicas
Entrada/Salida; transferencia de información
entre dispositivos periféricos y memoria central.
Aritmético/Lógicas; ejecutan operaciones de
éstos tipos.
Selectivas; seleccionan tareas en función de los
resultados
Repetitivas; permiten la iteración de secuencias
de instrucciones un número dado de veces
18. Traductores del Lenguaje
A) Intérpretes; Toma un
programa fuente lo traduce
e inmediatamente lo ejecuta.
Traducción
Programa fuente Intérprete y ejecución
en línea
19. Traductores del Lenguaje
(cont.)
B) Compiladores; traduce un
programa fuente a código objeto.
Programa Programa Programa
fuente Objeto ejecutable
Compilador Montador
(Compiler) (Linker)
20. 4. Datos, Tipos de Datos y
Operaciones Primitivas
Un dato es la expresión general que
describe los objetos con los cuales
opera la computadora
Los tipos son: simples (no
estructurados) y compuestos
(estructurados). Aquellos se
subdividen en:
Numericos (integer, real)
Lógicos (booleans)
Carácter (char, string)
22. 5. Constantes y Variables
Constantes: valores que
durante la ejecución de un
programa no cambian su valor.
Variables: valores que
cambiarán durante la
ejecución del programa
23. 6. Expresiones
Se definen como una
combinación de constantes,
variables, símbolos de operación,
paréntesis, y nombres de
funciones especiales.
Una expresión consta de
operandos y operadores.
Las expresiones se clasifican en
aritméticas, lógicas y carácter.
24. Expresiones aritméticas
Operador Significado Tipo de operandos Tipo resultado
** Exponenciación Entero o real Entero o real
+ Suma Entero o real Entero o real
- Resta Entero o real Entero o real
* Multiplicación Entero o real Entero o real
/ División Real Real
Div División entera Entero Entero
Mod módulo Entero Entero
25. Reglas de prioridad
Operador Gráfo
Parentesis ( )
Exponencial **
Multi, divide *, /
Div y mod Div, mod
Más y menos +, -
26. Operadores de relación
Expresión 1 Operador de Expresión 2
relación
Operador Significado
< Menor
> Mayor
= Igual
<= Menor o igual
>= Mayor o igual
<>,!= Distinto
31. Entrada y salida de
información
La operación de lectura READ
permite el ingreso de los datos
necesarios para los cálculos
computacionales.
La operación de escritura WRITE
imprime la información
procesada por el programa y su
respectivo algoritmo.
33. SOLUCION DE PROBLEMAS
Fases de fragmentación:
◦ Análisis del problema: definición
concisa a fin de que sea analizado
en todo detalle.
◦ Diseño del algoritmo: procedimiento,
paso a paso, para la solucionar el
problema dado.
◦ Solución del algoritmo con la
computadora: codificación del
algoritmo en un lenguaje de
programación
15/10/2008 33
34. ANALISIS DEL PROBLEMA
El propósito es ayudar al programador
a llegar a un cierto grado de
comprensión de la naturaleza del
problema.
Una buena definición del problema,
junto con una descripción detallada
de entrada y salida, son los requisitos
más importantes para una solución
eficaz.
15/10/2008 34
35. ANALISIS DEL PROBLEMA cont.
1. Que información debe
proporcionar la solución del
problema.
Solución del
Problema
Análisis del Diseño del Solución por
Problema algoritmo computadora
36. ANALISIS DEL PROBLEMA cont.
2. Que datos se necesitan para
resolver el problema.
Análisis del
Problema
Definicióndel Especificaciones Especificaciones
Problema de entrada de salida
37. ANALISIS DEL PROBLEMA cont.
Ejemplo: leer los lados de un
triángulo rectángulo e imprima la
hipotenusa.
◦ Entradas: valores de los lados (variable
LADO1 y variable LADO2).
◦ Salida: valor de la hipotenusa (variable
LADO3).
◦ Variables: LADO1, LADO2 y LADO3 (tipo
reales).
38. DISEÑO DEL ALGORITMO
La información proporcionada al
algoritmo constituye su entrada y la
información producida constituye su
salida.
Los problemas complejos se resuelven
eficazmente si se fragmentan en
subproblemas que sean más sencillos de
solucionar que el original. Esta técnica es
conocida como divide y vencerás
(divide and conquer).
39. DISEÑO DEL ALGORITMO cont.
La descomposición del problema
original en subproblemas cuya
solución puede implementarse a
través de la computadora se le
denomina diseño descendente (top
down design)
La descripción detallada de la
solución mediante pasos específicos
se le denomina refinamiento del
algoritmo (stepwise refinement).
40. DISEÑO DEL ALGORITMO cont.
Tarea:
Investigar acerca de los diferentes
tipos de algoritmos.
41. DISEÑO DEL ALGORITMO cont.
Diseño del
algoritmo
Diseño Refinamiento Herramientas de
descendente por pasos programación
–diagramas de flujo
-pseudocódigo
42. DISEÑO DEL ALGORITMO cont.
Ejemplo: Determine a los números
menores que 90 y múltiplos de 9, así
como su sumatoria.
Definicióndel Especificaciones Especificaciones
Problema de entrada de salida
Imprimir TOTAL = 0 NUM, TOTAL
múltiplos de 9 NUM = 9
y su suma LIMITE = 90
siempre y
cuando sea
menor que 90
43. DISEÑO DEL ALGORITMO cont.
Diseño Refinamiento Herramientas de
descendente por pasos programación
Múltiplos de 9 a) Num=9
b) Print num
c) Num <= 90
regresar a)
d) Num=+9
Sumatoria Total=+num
44. DISEÑO DEL ALGORITMO cont.
1. Inicio
2. Total=0, Num=9, Limite=90
3. Print Num
4. Total=Total+Num
5. Si Num <= Limite entonces
Num=Num+9 y regresar a 3
6. Print Total
7. Fin
45. tarea
1. Determine si una palabra es un
palíndromo.
2. Determine el máximo común
divisor para dos números enteros.
3. Lea e imprima una serie de
números distintos de cero. El
algoritmo terminará con un valor
que no se debe imprimir .
Finalmente obtenga la cantidad
de valores leídos.
46. tarea
4. Imprima y sume la serie de
números múltiplos de 3 en el
rango cerrado de 3 y 99.
5. Lea cuatro números e imprima el
mayor de ellos.
6. Calcule la superficie de un
triangulo en función de la base y
la altura.
47. SOLUCION DE PROBLEMAS MEDIANTE
LA COMPUTADORA
Una vez diseñado el algoritmo y
representado mediante una
herramienta de programación se debe:
Solución del
Problema por
Computadora
Codificación Ejecución del Comprobación
del programa programa del programa
48. REPRESENTACION GRAFICA DE LOS
ALGORITMOS
Los métodos usuales para
representarlo son:
1. Diagrama de flujo
2. Lenguaje de especificación de
algoritmo
49. REPRESENTACION GRAFICA DE LOS
ALGORITMOS
Un diagrama de flujo es la
representación gráfica de un algoritmo.
También se puede decir que es la
representación detallada en forma
gráfica de como deben realizarse los
pasos en la computadora para producir
resultados
50. REPRESENTACION GRAFICA DE LOS
ALGORITMOS
Inicio o fin del programa
Pasos, procesos o líneas de instrucción de programa de
computo
Operaciones de entrada y salida
Toma de decisiones y Ramificación
Conector para unir el flujo a otra parte del diagrama
Cinta magnética
Disco magnético
Conector de pagina
Líneas de flujo
Anotación
Display, para mostrar datos
Envía datos a la impresora
51. REPRESENTACION GRAFICA DE LOS
ALGORITMOS cont
Enviar
Inicio/fin
impresora
Ent/Sal
Conector
pagina
Procesos Linea de flujo
Decision Conector
52. REPRESENTACION GRAFICA DE LOS
ALGORITMOS EJEMPLO
Diagrama de flujo para
Sumar los primeros 50
numeros.
53. PSEUDOCODIGO
Es un lenguaje de especificación de
algoritmos que permite una
codificación rápida y simple.
Su ventaja radica en que el
programador no debe preocuparse
por la sintaxis de un lenguaje de
programación en particular.
Utiliza palabras sencillas de
entender para codificar programas.
57. Fases del proceso de
programación
Definiciòn y análisis del problema.
Diseño de algoritmos:
◦ Diagrama de flujo.
◦ Diagrama (N-S).
◦ Pseudocódigo
Codificación del programa.
Depuración y verificación del programa.
Documentación.
Mantenimiento.
58. Partes de un programa
concepto de caja negra
Entrada Algoritmo Salida
59. Tipos de Instrucciones
(acciones que resuelven un
problema)
De inicio / fin.
De asignación.
De lectura,
De escritura.
De bifurcación.
60. Elementos básicos de un
programa
Palabras reservadas.
Identificadores (nombres de
variables).
Caracteres especiales.
Constantes.
Variables.
Expresiones.
instrucciones.
61. Otros elementos……
Iteraciones,
Contadores,
Acumuladores,
Interruptores,
Estructuras de control:
Secuenciales,
Selectivas,
Repetitivas.
62. Iteraciones o bucles.
Es el segmento de un algoritmo o
programa, cuyas instrucciones se repiten
un número determinado de veces
mientras se cumple una determinada
condición. Sus partes son:
decisión
cuerpo del
bucle
salida
Los bucles se pueden anidar unos dentro de otros, y puede
haber varios bucles al mismo nivel, pero nunca se entrelazan.
63. Contadores
Un contador es una variable cuyo valor
se incrementa o decrementa en una
cantidad constante en cada iteración.
64. Acumuladores
Un Acumulador es una variable cuya
misión es almacenar cantidades distintas
resultantes de sumas sucesivas. Es una
variable que también se suele usar en los
bucles y que se incrementa o
decrementa en cada iteración del
bucle, pero no en una cantidad
constante.
65. Acumuladores
Algoritmo ejemplo
Var cont, num, sum: entero
Inicio
Cont 0
Sum 0
Mientras cont <> 3
Leer num
Sum sum + num
Cont cont +1
Fin mientras
Escribir suma
End
66. Interruptores
Un interruptor ( conmutador, bandera,
flag) es una variable que puede tomar
diversos valores durante la ejecución de
un programa y que permite comunicar
información desde una parte a otra del
mismo.
67. Interruptores
Algoritmo ejemplo
Var cont, num, suma: entero
Neg: boolean
Inicio
Cont 0
Sum 0
Neg falso
Mientras cont <>3
Leer num
Si num < 0
Entonces neg verdadero
Fin si
Sum sum + num
Cont cont + 1
Fin mientras
Si neg=verdadero
Entonces escribir (“Se ha leído negativos”)
Fin si
Escribir „La suma es‟,sum
Fin
OPCION
Si es leer un número negativo o hasta 3
números:
Mientras (cont <> 3) y (neg = verdadero)
68. Interruptores
Ejemplo.
Realizar un algoritmo que lea una serie de números reales y los sume. El
algoritmo debe preguntar al usuario cuando desea ingresar un siguiente
dato y si el usuario responde que no desea ingresar más datos el programa
debe confirmar la respuesta. Si el usuario desea continuar ingresando
datos se debe seguir solicitando datos y si el usuario confirma su deseo de
salir, el algoritmo debe mostrar la suma de los datos leídos y terminar.
Especificación:
Donde datos es la colección de n números reales que el usuario
ingresa hasta que decide no continuar ingresando datos y suma Î R
es la suma de dichos números.
69. Interruptores
INICIO
bandera: boolean
suma: real
dato: real
c: caracter
bandera := verdadero
suma <- 0
mientras (bandera) = verdadero hacer
escribir( “Ingrese un dato:” )
leer (dato)
suma := suma + dato
escribir( “Desea continuar ingresando datos (S/N):” )
leer( c )
si (c = „N‟ | c = „n‟) entonces
escribir( “Realmente desea salir (S/N):” )
leer( c )
si (c = „S‟ | c = „s‟) entonces
bandera := falso
fin_si
fin_si
fin_mientras
escribir( “La suma es:”)
escribir( suma )
FIN
70. Estructuras de control.
Las estructuras de control tienen una finalidad
bastante definida: su objetivo es ir señalando el
orden en que tienen que sucederse los pasos
de un algoritmo o de un programa.
Las estructuras de control son de tres tipos:
1. Secuenciales
2. Selectivas
3. Repetitivas
71. Estructuras secuenciales.
Una estructura de control secuencial, en
realidad, no es más que escribir un paso del
algoritmo detrás de otro, el que primero que se
haya escrito será el que primero se ejecute.
Veamos un ejemplo: queremos leer el radio de
un círculo, calcular su área y mostrar por
pantalla al usuario el resultado
72. Estructuras secuenciales.
Ejemplo de algoritmo:
Declaración de variables
REAL: radio, area // No se suele poner acentos, y menos en
órdenes de programas.
fin declaración de variables
inicio
mostrar por pantalla “dame el radio del circulo”
leer del teclado la variable radio //asignación del valor de la
variable radio
area =3.14159*radio //asignación del valor de la variable área
mostrar por pantalla “el área del circulo es:” //En los texto SI SE
PONEN ACENTOS
mostrar por pantalla el contenido de la variable area
fin
73. Estructuras selectivas.
Estas estructuras se utilizan para
TOMAR DECISIONES (por eso también
se llaman estructuras de decisión o
alternativas). Lo que se hace es
EVALUAR una condición, y, a
continuación, en función del
resultado, se lleva a cabo una
opción u otra.
74. Estructuras selectivas.
1) Alternativas simples (condicional IF)
Son los conocidos quot;si... entoncesquot;. Se usan de la siguiente
manera: yo quiero evaluar una condición, y si se cumple (es
decir, si es cierta), entonces realizaré una serie de pasos.
En pseudocódigo sería:
Declaracion de variables
REAL: numero, raiz
fin declaracion de variables
inicio
mostrar por pantalla “introduce un numero”
leer del teclado la variable numero
SI numero>=0 ENTONCES:
raiz=raiz_cuadrada(numero)
mostrar por pantalla “la raíz cuadrada es:”
mostrar por pantalla raiz
fin del SI
fin
75. Estructuras selectivas.
2) Alternativas dobles (IF…….ELSE….)
¿Qué pasa si no cumple la condición puesta?
Si no decimos nada el programa seguirá a la siguiente orden
de forma secuencial. Pero también podemos especificar que
pasaría si no cumple la condición. Es el famoso trío quot;si ...
entonces ... sino esto otroquot;
Declaracion de variables
REAL: numero, raiz
fin declaracion de variables
inicio
mostrar por pantalla 'introduce un numero'
leer del teclado la variable numero
SI numero >= 0 ENTONCES:
raiz = raiz_cuadrada(numero)
mostrar por pantalla 'la raiz cuadrada es:'
mostrar por pantalla raiz
SI NO es numero >=0 ENTONCES: {es decir, si numero es negativo}
mostrar por pantalla 'lo siento, no puedo calcular la raiz cuadrada de un numero negativo'
fin del SI
fin
76. Estructuras repetitivas.
Estas estructuras son instrucciones que se repiten formando un
bucle. El bucle se repite mientras se cumpla una condición que
ha de ser especificada claramente. Cuando deje de cumplirse la
condición, se sale fuera del bucle y no se repiten más las
instrucciones.
Un BUCLE (loop, en inglés) es un trozo de algoritmo o de un
programa cuyas instrucciones son repetidas un cierto número de
veces, mientras se cumple una cierta condición que ha de ser
claramente especificada
Básicamente, existen tres tipos de estructuras repetitivas:
1) Los bucles quot;mientras...quot; o quot;whilequot;
2) Los bucles quot;repetir(hacer)... mientras quequot; o quot;do... untilquot; y
3) Los bucles quot;desdequot; o quot;bucles forquot;.
77. Estructuras repetitivas.
1) Estructura MIENTRAS(condición) o quot;WHILEquot;
En este tipo de estructura, el cuerpo del bucle (las acciones que
deben ejecutarse repetidas veces) se repite MIENTRAS se cumple una
determinada condición, que especificamos entre paréntesis
Pseudocódigo
inicio
contador=1
Mientras (contador<=3.000) hacer
mostrar por pantalla 'Prometo ser bueno'
contador=contador+1
fin mientras
fin
A la variable que quot;llevaquot; la cuenta de las veces que el bucle se ha
ejecutado, se le he llamado contador.
Fijarse que ANTES de entrar en el bucle le asigno el valor 1 a la variable
contador. Si no, al entrar en el bucle y la variable (contador) no tener
valor, obtendríamos un error.
78. Estructuras repetitivas.
2) Estructura REPETIR (hacer)... MIENTRAS QUE (condición) o
quot;DO.....UNTILquot;
Aquí, lo que se desea es que un bucle se ejecute al menos una
vez antes de comprobar la condición de repetición. Es decir si
partiéramos que la variable condición fuera mayor de 3000, en
este caso, el bucle se ejecutaría una vez. En el caso de hacerlo
con while no se ejecutaría ninguna vez. ¡Esta es la única
diferencia¡.
La estructura PARA NUESTRO EJEMPLO es esta:
inicio
Contador=1
Repetir
mostrar por pantalla 'Prometo ser bueno O:-)'
Contador=Contador+1
mientras que(Contador<=3000)
fin
79. Estructuras repetitivas.
3) Estructura DESDE o quot;bucles FORquot;.
Esta estructura hubiera sido la más adecuada para resolver nuestra
situación real. Tiene la peculiaridad, que la variable contador esta dentro del
bucle y no hace falta asignarle el valor (ni definirla) fuera del bucle, y
además, al llegar el programa al bucle siempre se realizarán las instrucciones
que hay dentro del bucle, una cantidad de veces que nosotros fijemos.
inicio
desde contador=1 hasta contador<=3.000 contador=contador+1 hacer
mostrar por pantalla 'Prometo ser bueno'
fin desde
fin
Lo primero que hace es darle a la variable contador el valor 1. Después
comprueba si el valor de la variable es menor o igual a 3000 (comprueba la
condición), y si la cumple aumenta 1 el valor de la variable contador y
realiza las instrucciones que hay dentro del bucle. Así hasta que la condición
deja de cumplirse.
80. Vectores y Matrices (arreglos)
Introducción
Con lo aprendido hasta ahora resolvamos
el siguiente problema:
Dados 100 números enteros, obtener el
promedio de ellos. Mostrar por pantalla dicho
promedio y los números ingresados que sean
mayores que él.
81. Vectores y Matrices
Una de las principales dificultades que se observan
con este tipo de problemas es que para la resolución
de ambos es necesario almacenar la totalidad de los
datos a procesar.
No sería eficiente crear n cantidad de variables para
guardar estos datos.
Para realizar programas y/o algoritmos que nos
permitan resolver los problemas planteados,
usaremos una nueva estructura de datos
denominada vectores.
82. Vectores y Matrices
Una estructura de datos es un conjunto de
datos con un cierto orden.
Las estructuras de datos pueden ser
dinámicas o estáticas.
◦ Estáticas: aquellas a las que se le asigna una
cantidad fija de memoria de acuerdo a lo
definido en la declaración de la variable.
◦ Dinámicas: son aquellas cuyo tamaño en
memoria aumenta o disminuye en tiempo
de ejecución de acuerdo a las necesidades
del programa.
83. Vectores y Matrices
Qué es un vector? Un vector (o arreglo
unidimensional) es una estructura de datos en
la cual se almacena un conjunto de datos de
un mismo tipo. Es decir que un arreglo es una
lista de n elementos que posee las siguientes
características:
◦ se identifica por un único nombre de
variable
◦ sus elementos se almacenan en posiciones
contiguas de memoria
◦ se accede a cada uno de sus elementos en
forma aleatoria
84. Vectores
Elementos
Mi_vector 9 5 6 2 4 8 3
Nombre de
la variable Posición : 1
Contenido : Mi_vector[1] = 9
85. Vectores
Ejemplo:
Cargar 10 elementos en un
vector, sumarlos y mostrar el
resultado por pantalla.
Pasos para resolver este
problema:
Leer un vector de 10
elementos
Sumar los elementos
Mostrar el resultado de la
suma por pantalla
86. Vectores
//Pseudocodigo Ejemplo1//
sumandos <-arreglo[1..10] de enteros;
suma, i <- enteros
vec_sumandos : sumandos;
suma <-0;
Inicio
para i:= 1 a10 hacer
leer(vec_sumandos[i] )
para i := 1 a 10 hacer
suma<- suma +vec_sumandos[i];
Escribir ´La suma de los números es´, suma;
Fin.
87. Vectores
Como ya dijimos anteriormente, los arreglos son
estructuras de datos, por lo tanto las mismas
deben ser declaradas.
Ejemplos de declaraciones:
const
Max= 500;
type
T_Texto = array[ 1..Max ] of
char;
var
Texto: T_Texto;
88. Vectores
En el PSEINT la instrucción Dimension permite definir un arreglo,
indicando sus dimensiones.
Dimesion <identificador> (<maxl>,...,<maxN>);
Esta instrucción define un arreglo con el nombre indicado en
<indentificador> y N dimensiones. Los N parámetros indican la
cantidad de dimensiones y el valor máximo de cada una de ellas.
La cantidad de dimensiones puede ser una o más, y la máxima
cantidad de elementos debe ser una expresión numérica positiva.
Se pueden definir más de un arreglo en una misma instrucción,
separándolos con una coma (,).
Dimension <ident1> (<max11>,...,<max1N>),..., <identM>
(<maxM1>,...,<maxMN>)
Es importante notar que es necesario definir un arreglo antes de
utilizarlo.
89. Vectores
// Se ingresa una lista de nombres (la lista termina
// cuando se ingresa un nombre en blanco) no permitiendo
// ingresar repetidos y luego se ordena y muestra
Proceso OrdenaLista
Dimension lista[200];
Escribir quot;Ingrese los nombres (enter en blanco para terminar):quot;;
// leer la lista
cant<-0;
Leer nombre;
Mientras nombre<>quot;quot; Hacer
cant<-cant+1;
lista[cant]<-nombre;
Repetir // leer un nombre y ver que no este ya en la lista
Leer nombre;
se_repite<-Falso;
Para i<-1 Hasta cant Hacer
Si nombre=lista[i] Entonces
se_repite<-Verdadero;
FinSi
FinPara
Hasta Que ~se_repite
FinMientras
90. Vectores
// ordenar
Para i<-1 Hasta cant-1 Hacer
// busca el menor entre i y cant
pos_menor<-i;
Para j<-i+1 Hasta cant Hacer
Si lista[j]<lista[pos_menor] Entonces
pos_menor<-j;
FinSi
FinPara
// intercambia el que estaba en i con el menor que
encontro
aux<-lista[i];
lista[i]<-lista[pos_menor];
lista[pos_menor]<-aux;
FinPara
// mostrar como queda la lista
Escribir quot;La lista ordenada es:quot;;
Para i<-1 Hasta cant Hacer
Escribir quot; quot;,lista[i];
FinPara
FinProceso
91. Vectores
Tarea:
1) Calcular el promedio de 25 valores
almacenados en un vector. Determinar
además cuantos son mayores que el
promedio, imprimir el promedio, el número
de datos mayores que el promedio y una
lista de valores mayores que el promedio.
2) Llenar dos vectores A y B de 35 elementos
cada uno, sumar el elemento uno del
vector A con el elemento uno del vector B
y así sucesivamente hasta 35, almacenar el
resultado en un vector C, e imprimir el
vector resultante.
92. Componentes de un algoritmo
Algoritmo
Cabecera del programa
Sección de declaración
Sección de acciones
94. Técnicas de Programación...
Programación modular:
Descomposición del problema en
módulos.
Programación estructurada:
Programación de cada módulo
mediante métodos estructurados.
95. Características de la
programación modular
Todo programa tiene un módulo principal.
Dicho módulo primario se divide en
submódulos, que a su vez ejecutan una
tarea única y podrán codificarse de manera
independiente de cualquier otra actividad.
Sin embargo, al finalizar su función
devolverán el control al módulo principal.
Esta independencia alude a que ningún otro
módulo podrá accesarlo directamente, a
excepción de sus propios subsubmódulos y al
módulo principal.
96. Consideraciones …….
La descomposición de un programa
podría implemetarse así:
◦ Módulo principal.
◦ Submódulo impresión de títulos
◦ Submódulo de lectura de datos
◦ Submódulo ejecución de procesos
◦ Submódulo impresión de resultados
97. Características de la
programación estructurada
Conjunto de técnicas que reducen
el tiempo requerido para escribir,
verificar, depurar y mantener los
programas.
Mediante el uso de:
◦ recursos abstractos,
◦ diseño descendente,
◦ estructuras básicas.
98. Recursos Abstractos
Consiste en descomponer una
determinada acción compleja en un
número de acciones más simples,
capaces de ser ejecutada por una
computadora y sus respectivas
instrucciones.
99. Diseño Descendente
TOP-DOWN DESIGN
Esta metodología efectúa una relación
de refinamiento entre las distintas etapas
de estructuración, de modo que se
relacionen unas con otras, mediante
entradas y salidas de información.
Descompone el problema en etapas o
estructuras jerárquicas, de modo que se
pueda considerar cada estructura desde
dos puntos de vista: qué hace y cómo lo
hace
102. Estructuras básicas
Teorema de la programación estructurada:
Un programa propio es aquel que cumple las
siguientes características:
secuenciales,
selectivas, y
repetitivas.
posee un solo punto de entrada y salida.
se puede recorrer toda la estructura del
programa modular.
todas las instrucciones son ejecutables y no
existen bucles infinitos.