Documentos de Académico
Documentos de Profesional
Documentos de Cultura
de programacin.
Qu es un lenguaje de programacin?
Es una notacin sistemtica que define procesos computacionales
[Ellis Horowitz]
Programacin Estructrurada
Programacin Estructrurada
Clasificacin No.1
Los lenguajes de programacin se Introduccin clasifican en tres categoras: Lenguajes de Mquina: instrucciones directamente entendibles por el computador; no necesitan traduccin para la CPU (comprensin y ejecucin). Lenguajes de bajo nivel: Simplifican la programacin (assembler)
Clasificacin No.2
IMPERATIVOS
Orientados a la forma de pensar del computador: Secuencialidad Estructuras de Control Repetitivas Variables(Direccin, Estado) No orientados al modo de pensar humano. El concepto bsico es la instruccin Sus elementos han ido avanzando para hacerse ms cmodos (subprogramas, mdulos, parmetros) Ensamblador Fortran Cobol RPG PL1 Algol C Pascal Modula-2 Ada
ADD (suma) SUB (resta) JUMP (Salto de control) INC (incremento unitario)
Lenguajes de alto nivel: instrucciones o sentencias son escritas con palabras similares a los lenguajes humanos.
void menviamensaje() { }
Programacin Estructrurada
Programacin Estructrurada
Clasificacin No.2
Clasificacin No.2
DECLARATIVOS
Basado en el pensamiento humano: las matemticas Elementos bsicos: funciones, relaciones, frmulas, etc.
ORIENTADOS A OBJETOS
Orientados al modo de pensar humano. Modelamiento mundo real Incluye clases, objetos, herencia, polimorfismo
Programacin Estructrurada
Programacin Estructrurada
Conceptos Qu es un Intrprete y un Compilador? En general los intrpretes y compiladores son traductores. El compilador es una mquina terica que tiene como entada un texto escrito en lenguaje X (fuente) y como salida un texto escrito en lenguaje Y (objeto).
Conceptos
Compilador Programas que realizan la traduccin de un lenguaje de alto nivel a un lenguaje de mquina. Intrprete Los intrpretes en lugar de generar un programa objeto, como en los compiladores, efectan la operacin que debera realizar el programa fuente. Un intrprete lee el cdigo base y luego lo convierte en acciones, es decir, lo ejecuta en ese instante.
Programacin Estructrurada
Programacin Estructrurada
Definicin
Definicin
ALGORITMOS Es un conjunto de instrucciones que conducen a la solucin de un problema. Corresponde a una secuencia de pasos -exentos de ambigedades- que lleva a la solucin de un problema.
Definicin de Algoritmo y Programas o Los algoritmos y programas de computadoras, con independencia del lenguaje en que estn escritos, estn diseados para manipular informacin o datos. o Los datos pueden ser cifras de ventas mensuales de un gran almacn, la nmina del personal de una empresa o un listado de direcciones de los alumnos.
PROGRAMAS
Corresponde al algoritmo expresado en algn lenguaje de programacin, que el computador puede comprender.
Programacin Estructrurada
Programacin Estructrurada
Diseo de Algoritmos Proceso de Diseo de Algoritmos Corresponde a un proceso creativo No existe alguna regla, ni algoritmo para indicar como escribir programas
El proceso completo de diseo de un ALGORITMO consta de los siguientes pasos : ANALISIS DEL PROBLEMA DISEO DEL ALGORITMO VERIFICACION MANUAL DEL ALGORITMO
Diseo de Algoritmos
Anlisis del problema Fase de trabajo en el computador
Programacin Estructrurada
Diseo de Algoritmos
o
Requiere del mximo de imaginacin y creatividad por parte del programador. Se debe examinar cuidadosamente el problema a fin de identificar que tipo de informacin se necesita producir.
Se debe identificar aquellos elementos de informacin dados en el problema que puedan ser tiles para obtener la solucin. Finalmente, un procedimiento para producir los resultados deseados a partir de los datos, y que ser el algoritmo.
Anlisis del problema
Datos de entrada
Programacin Estructrurada
Programacin Estructrurada
Diseo de Algoritmos
Diseo del Algoritmo Caractersticas de un buen algoritmo:
Preciso Indicar el orden de realizacin de cada paso Definido Si se sigue dos veces, se debe obtener el mismo resultado cada vez Finito Si se sigue un algoritmo se debe terminar en algn momento
Programacin Estructrurada
Problema Complejo
Divide y vencers
Programacin Estructrurada
Diseo de Algoritmos Un buen mtodo de trabajo para solucionar problemas complejos es el diseo descendente y refinamiento sucesivo. Pasos :
Identificar tareas ms importantes a ejecutar para Refinamiento (incompletitud o inconsistencia); se amplia la primera descripcin aadiendo ms detalles a estos procesos y as se obtiene una nueva lista de actividades del algoritmo. Algunos de estos pasos pueden incluso requerir refinamiento adicional que conducen entonces a una tercera descripcin del algoritmo.
Programacin Estructrurada
Entrada de Datos
Clculo de Superficie
Salida de resultados
Entrada altura
Entrada base
Salida superficie
Programacin Estructrurada
Diseo de Algoritmos Verificacin Manual del Algoritmo Debemos asegurarnos de : a. que el algoritmo realiza las tareas para las que se ha diseado.
b.
Anlisis del problema
ENTRADA PROCESO
Informacin dada al algoritmo Clculos encontrar problema necesarios para la solucin del
SALIDA
Programacin Estructrurada
Diseo de Algoritmos El modo ms normal de comprobar un algoritmo es mediante su ejecucin manual. Usando datos significativos que abarquen todo el posible rango de valores y anotando en una hoja de papel los valores que van tomando en las diferentes fases, los datos de entrada o auxiliares y por ltimo los valores de los resultados. Este proceso se conoce como prueba de ALGORITMO (traza).
Datos y Operaciones
Los algoritmos y programas de computador, con independencia del lenguaje en que estn escritos, estn diseados para manipular informacin o datos.
Los datos pueden ser cifras de ventas mensuales de un gran almacn, la nmina del personal de una empresa o un listado de direcciones de los alumnos.
Programacin Estructrurada
Programacin Estructrurada
Los Datos LOS DATOS o Son los objetos sobre los que opera un computador. o Los tipos de datos se manipulam se dividen en:
SIMPLES ESRUCTURADOS Estn constituidos por datos de tipo simple Numricos Lgicos caracter
Los Datos
Segn sea la informacin que guardemos en los datos, los clasificaremos en los siguientes tipos:
Datos numricos
Son los relativos a las diferentes clases de nmeros.
ENTEROS
Cadenas (string) Vectores y Matrices (arrays) Registros (record) Archivos (file) Punteros (pointer, *) Creados a necesidad del usuario (TDU)
Programacin Estructrurada
REALES
Tiene parte entera y decimal. 7.5 ; 4.321 ; -7.4351 ; 7.0 ; 8.0 Representacin de los nmeros reales : coma fija 3.84567812 coma flotante 4.86732 * 10 9 4.86732E9
Programacin Estructrurada
Los Datos
Datos tipo caracter o alfanumricos
Son los caracteres que puede interpretar el computador: Alfabticos (A, B, C, ...., Z, a, b, c, ..... , z) Dgitos (0, 1, 2, ...., 9) Especiales ($, *,<, >, /, #,......) Una CADENA de caracteres es una secuencia o serie de caracteres vlidos encerrados entre caracteres especiales denominados delimitadores y que suelen ser comillas: Ejemplo : Castellon No. 3344
Los Datos
Programacin Estructrurada
Programacin Estructrurada
Los Operadores
Los Operadores
LOS OPERADORES
RELACIONALES O CONDICIONALES Utilizados para formar expresiones booleanas (al ser evaluadas producen el valor verdadero o falso).
Comparacin Resultado Verdad Falso Verdad Verdad Verdad Verdad Verdad Verdad Falso
Todos los smbolos que representan enlaces entre cada uno de los argumentos que intervienen en una operacin se llaman OPERADORES. Se utilizan para construir expresiones. Los operadores pueden ser: oRelacionales o condicionales oAritmticos oAlfanumricos oLgicos
Signo
< = > <= >= <>
Significado
Menor que Igual Mayor que Menor o igual que Mayor o igual que Distinto
25 < = 25 25 < > 25 25 < > 4 A < B AA > A B > AAA AB > AAAA C < c 2 < 12
Los Operadores
Los Operadores
ARITMETICOS Para tratar los nmeros se utilizan los operadores aritmticos, que, junto con las variables numricas forman expresiones aritmticas
Signo
+ * ^ /
Significado Concatenacin
Significado
Suma Resta Multiplicacin Potenciacin Divisin real
Expresin 12 * 12 12 ^ 2
a b
Hola, qu tal?
a + b
Hola, qu tal?
Los Operadores
LOGICOS Cambian sus operandos de acuerdo con las reglas del lgebra de Boole con el fin de producir un nuevo valor que se convierta en el valor de la expresin.
Signo
OR AND NOT
Significado
Anida expresiones
Expresin (7>4) OR (5=3) (7>4) AND (5<>3) (16=(4*4))&& 2 <>2 (2+3) * (4-7)
Significado
Suma lgica Producto lgico Negacin
La prioridad para evaluar los operadores es cualquier expresin es: 1.- Parntesis (empezando por los ms internos). 2.- Potencias. 3.- Productos, divisiones: 4.- Sumas y restas. 5.- Concatenacin. 6.- Relacionales. 7.- Lgicos.
Programacin Estructrurada
Variables VARIABLES o Zona de memoria referenciada por un nombre de variable, donde se puede almacenar el valor de un dato, que puede cambiarse cuando lo deseemos. o El nombre de la variable es elegido por el usuario. o Una variable no es un dato, sino un rea de memoria que contendr un dato. El computador asigna a cada variable una direccin de memoria.
Cdigo Nombre Edad 105 101 102 103 104
Variables
o
El tipo de una variable debe ser uno de los cuatro tipos de datos descritos : real, entera, lgica, cadena. Aunque no es obligacin en todos los lenguajes s que es conveniente declarar las variables en la cabecera del programa y naturalmente del algoritmo.
Es buena prctica de programacin utilizar nombres de variables significativos que sugieran lo que representan ya que eso har los algoritmos y programas ms legibles y fciles de comprender.
55
108 Sueldo 109 110 111 112
Programacin Estructrurada
Programacin Estructrurada
Variables o Para que este perfectamente definida la variable, debemos especificar: su nombre, el tipo de dato que contendr (numrico, caracter, booleano). o No podemos utilizar las palabras reservadas de un lenguaje para nombrar variables (printf, scanf, if, for) Tipos de Variables
Numricas
Nombre_variable = numero a=1 numero = 55 contador = 675
Asignacin INSTRUCCIONES DE ASIGNACION o El nombre de la variable cuyo valor va a ser modificado debe ser escrito a la izquierda del operador de asignacin. A la derecha se sita una expresin cuyo valor se proporciona a la variable situada a la izquierda.
o
Alfanumricas
Nombre_variable = comentario b = Hola apellido = Fernndez resp =
La operacin de asignacin es destructiva ya que al almacenarse un nuevo valor en una variable se borra el que tena antes. Es posible utilizar el mismo nombre de variable en ambos lados del operador de asignacin. Contador = Contador + 1
Programacin Estructrurada
Programacin Estructrurada
Asignacin
o
Variables o Al hecho de poner a=1 o b=Hola, se le llama asignacin de variables. o La asignacin introduce en una variable un valor o el contenido de otra variable. Tanto estos valores como la variable a la que se asigna deben ser del mismo tipo: Nombre_variable1 = Nombre_variable2
Codigo1 Nombre Edad 101 102 103 104
Se utiliza para asignar valores a variables o, lo que es lo mismo, cambiar el valor almacenado en la posicin de memoria de una variable. La operacin de asignacin se denota con el smbolo = El formato de la instruccin es el siguiente
Nombre de la variable = expresin o valor Area = Pi * Radio ^2 Pi = 3.141592
55
105 108
109
110
111
112 Codigo1
Programacin Estructrurada
Programacin Estructrurada
Constantes
CONSTANTES Toda posicin de memoria, referenciada por un nombre de constante, donde se almacena un valor que no puede cambiarse o permanece invariable a lo largo del proceso.
AnguloRecto = 90 pi = 3,14159 nacion = CHILE a=3 b=0 c=a+b b=a+b a=b a = 10 b=5 a=b b=a a=1 b=4 c=a+b d=a-b a=c+2*b b=c+b c=a*b d=b+d a=8 b=5 c=0 c=c+a a = a + c - 2* b b=b+b a=c
Programacin Estructrurada
Ejemplos de Asignaciones
Asignacin Aritmtica AMN = 3 + 14 + 8 TER1 = 14.5 + 8 TER2 = 0.75 * 3.4 MEDIA = TER1 / TER2
Programacin Estructrurada
Estructuras de Control
Estructura Secuencial Esta estructura indica el orden lgico en el cual se deben ejecutar las instrucciones que conforman el algoritmo.
1.2.3.4.5.6.Terminar
Activar el agua Mojarse las manos Aplicar jabn Enjuagarse las manos Desactivar el agua Secarse las manos
Programacin Estructrurada
Programacin Estructrurada
Estructuras de Control
Estructura Selectiva Esta estructura permite al algoritmo decidir si realiza una determinada accin u otra, previa evaluacin de una condicin.
Ejemplo : Algoritmo para lavarse las manos (versin 1.01)
Empezar
Estructuras de Control
Estructura Repetitiva Esta estructura permite al algoritmo, repetir una serie de acciones, ya sea un nmero determinado de veces o hasta que se cumpla una condicin de trmino.
Ejemplo : Algoritmo para lavarse las manos (versin )
Empezar
1.- Si hace mucho fro entonces Activar el agua caliente De lo contrario Activar el agua fra 2.- Mojarse las manos 3.- Aplicar jabn 4.- Enjuagarse las manos 5.- Desactivar el agua 6.- Secarse las manos
Terminar
Programacin Estructrurada
Empezar Si hace mucho fro entonces 1.Activar el agua caliente De lo contrario Activar el agua fra 2.- Mojarse las manos 3.- Aplicar jabn 4.- Enjuagarse las manos 5.- Desactivar el agua 6.- Repetir 1,2,3,4 y 5 hasta que manos estn limpias. 7.- Secarse las manos
Programacin Estructrurada
Terminar
Estructuras de Control
Estructura de Datos Permitirn que el algoritmo manipule datos en forma organizada. Podrn ser sencillas (variables simples) o compuestas (variables tipo vector o matriz).
Ejemplo : Algoritmo para lavarse las manos (versin 2.0) Empezar 1.- Contar 0 2.- Si hace mucho fro entonces Activar el agua caliente De lo contrario Activar el agua fra 3.- Mojarse las manos 4.- Aplicar jabn 5.- Enjuagarse las manos 6.- Desactivar el agua 7.- Contar Contar + 1 8.- Repetir 2,3,4,5,6 y 7 hasta que manos estn limpias.
Terminar
Primitivas
USO DE PRIMITIVAS Entenderemos por primitivas a todas aquellas palabras o comandos que definiremos como propias de un lenguaje de construccin de algoritmos.
Primitivas
Primitivas de delimitacin de Accin La mayora de las primitivas tienen un rango de accin. Necesitamos indicar donde comienza y donde termina la accin de una primitiva.
Ejemplo : Algoritmo para lavarse las manos
Primitivas
Primitivas de Entrada y Salida de Datos Los algoritmos para solucionar un problema necesitaran datos, y de la misma manera necesitaran entregar resultados. Esto nos lleva a la necesidad de utilizar algn medio para poder comunicarnos con el algoritmo. scanf (variable1, variable2,...)
1.2.3.4.5.6.-
Activar el agua Mojarse las manos Aplicar jabn Enjuagarse las manos Desactivar el agua Secarse las manos
Programacin Estructrurada
Programacin Estructrurada
Primitivas
Primitivas de Estructura Selectiva Como poder indicar que deseamos hacer una u otra cosa.?
Estructura Selectiva con una sola direccin.
if (expresin lgica) { instruccin 1 instruccin 2 .....instruccin N }
Primitivas
Primitivas de Estructura Repetitiva Como poder indicar que deseamos repetir una serie de pasos o instrucciones.? Estructura Repetitiva con nmero de repeticiones constante.
for (<variable simple= valor inicial>;<condicinfinal>;<inc/dec>) { instruccin 1 Ejemplo instruccin 2 .....instruccin N for (i=1;i<=5;i++) }
{ }
printf(primero) printf(segundo)
Programacin Estructrurada
Primitivas
Estructura Repetitiva con nmero de repeticiones variables
do { instruccin 1 instruccin 2 .....instruccin N } while(expresin lgica);
Tipos de Instrucciones TIPOS DE INSTRUCCIONES Las instrucciones disponibles en un lenguaje de programacin dependen del tipo del lenguaje. Las instrucciones bsicas, independientes del lenguaje son:
Ejemplo gets(tunombre); do { printf (hola %s,tunombre) printf (Repite? :) scanf (%c,&respuesta) } while(respuesta == S)
Programacin Estructrurada
o o o o o
instrucciones de inicio/fin instrucciones de asignacin instrucciones de lectura instrucciones de escritura instrucciones de bifurcacin
Programacin Estructrurada
Instrucciones de Asignacin
Ejemplo 1 A 80
La variable A toma el valor de 80 Antes de la ejecucin de las tres instrucciones, el valor de A, B y C es indeterminado. Si se desea darles un valor inicial habr que hacerlo explcitamente. A 0B 0 C 0
Ejemplo 2 A 12 B A C B
Lea del teclado los valores de las variables NUMERO, HORAS y TASA almacenndolas en la memoria. Si los tres nmeros que se digitan en respuesta a la instruccin son 12325, 32, 1200, significara que se han asignado a las variables esos valores y equivaldra a la ejecucin de las instrucciones :
A toma el valor 10; B toma el valor 20; AUX toma el valor de A, o sea, 10; A toma el valor de B, o sea, 20; B toma el valor de AUX, o sea, 10.
Programacin Estructrurada
12325
o o o
Nombre del programa o algoritmo. Declaraciones de constantes, variables y tipos de datos definidos por el usuario. Declaraciones de sub programas.
definicin de constantes constante1= valor1 constante2= valor2 definicin de variables real lista de variables1 integer lista de variables2 void main() { <acciones> }
Programacin Estructrurada
Adems existen otros elementos que forman parte de los programas cuya comprensin y funcionamiento ser vital para el correcto diseo de un algoritmo :
o o o o o Bucles contadores acumuladores interruptores estructuras (secuenciales, selectivas, repetitivas)
Programacin Estructrurada
Por declaracin se entiende la instruccin que con ayuda de las primitivas VAR, CONST, TIPO, etc...permite asignar a cada variable o constante con nombre, un determinado tipo de datos o un valor, respectivamente :