Date post: | 15-Mar-2016 |
Category: |
Documents |
Upload: | regan-conway |
View: | 82 times |
Download: | 0 times |
• Definición de Algoritmo.
• Características de los algoritmos.
• Análisis Descendente.
• Estructuras Algorítmicas.
• Programación estructurada
• Pasos de la Programación.
• Codificación vs. Programación.
CI2125 TEORIA semana 2
Un algoritmo es un conjunto ordenado y finito de instrucciones que conducen a la solución de un problema.
ALGORITMO
Un programa es la implementación o expresión de un algoritmo en un determinado lenguaje de programación siguiendo las reglas establecidas por el lenguaje elegido
PROGRAMA
Si un algoritmo puede ser ejecutado por una computadora
ALGORITMO COMPUTACIONAL
PROBLEMA ALGORITMO PROGRAMA
• Debe ser preciso, es decir, cada instrucción debe indicar de forma inequívoca que se tiene que hacer.
• Debe ser finito, es decir, debe tener un número limitado de pasos.
• Debe ser definido, es decir, debe producir los mismos resultados para las mismas condiciones de entrada.
CARACTERISTICAS DEL ALGORITMO
1.Descomposición del problema en subproblemas más simples.
2.Combinando las estructuras algorítmicas básicas, resolver cada subproblema.
3.Ensamblar las soluciones de cada subproblema.
PASOS PARA CREAR UN BUEN ALGORITMO ( Análisis Descendente )
VENTAJAS• Reutilizar algoritmos existentes.• Permite lo que se conoce como programación
modular
• Entrada de datos.
• Proceso.
• Salida de resultados.
PARTES DE UN ALGORITMO
ENTRADA PROCESO SALIDA
Entrada:
La cantidad M de metros
Proceso:
Cálculo de centímetros : C = M*100 Cálculo de pulgadas : P = C/2.54
Salida :
La cantidad C de centímetros y la cantidad P de pulgadas
Algoritmo: Expresar en centímetros y pulgadas una cantidad dada en metros.
algoritmo computacional escrito en lenguaje natural
Es un lenguaje de pseudoprogramación utilizado para escribir algoritmos computacionales. El pseudocódigo es una imitación de uno o más lenguajes de programación, conservando lo básico del Leng natural.No hay estándares.
PSEUDOCODIGO
Algoritmo: Halle el área y el perímetro de un rectángulo.
INICIO // Declaración de variables REAL base, altura, area, perimetro
// Entrada de datos LEER base, altura
// Proceso de cálculo area = base*altura perimetro = 2*(base+altura)
// Salida de resultados IMPRIMIR area, perimetroFIN
1. Secuencia: Sucesión simple de dos o mas acciones, una después de la otra, en el mismo orden en que aparecen.
2. Selección: Estructura SI-CIERTO-FALSO, plantea la selección entre dos alternativas con base en el resultado de la evaluación de una condición; equivale a la instrucción IF de todos los lenguajes de programación
3. Iteración: Estructura HACER-MIENTRAS-QUE, corresponde a la ejecución repetida de una instrucción mientras que se cumple una determinada condición.
ESTRUCTURAS ALGORITMICAS
REPRESENTACION GRAFICA
SECUENCIA SELECCION ITERACION
EL Teorema de la Programación estructurada, demostrado por Edsger Dijkstra (1930-2002) en los años sesenta, demuestra que todo programa puede escribirse utilizando únicamente las tres instrucciones LOGICAS de control : SECUENCIA, SELECCIÓN E ITERACION.
PROGRAMACION ESTRUCTURADA
Un programa estructurado se compone de funciones, segmentos, módulos y/o subrutinas, cada una con una sola entrada y una sola salida., y en ejecución no tiene partes por las cuales nunca pasa, ni tiene ciclos infinitos.
"programación sin GOTO""programación sin GOTO"
PASOS EN LA PROGRAMACION1.- Definición del problema
El problema debe estar bien definido, y deben eliminarse las ambigüedades y la incertidumbre.
1.a.- Especificación de entradas - Descripción de los datos de entrada del programa: - Valores específicos de entrada, Formato, Rango de validez1.b.- Especificación de salidas - Descripción de los datos de salida del programa: - Valores que deben ser producidos: Formato: precisión, cifras significativas, ubicación en la pantalla, Rango de validez1.c- Procesamiento especial - Verificar y procesar ciertas condiciones que podrían llevar a error o que requieran un procesamiento especial.
PASOS EN LA PROGRAMACION
2.- Esquema de la solución
Un programa no se compone de una única tarea, sino de varias tareas interrelacionadas. Hay que descomponer un problema en sub-partes y hacer un esquema de la solución.
3.- Selección y Representación de Algoritmos
Seleccionar los algoritmos que resolverán las sub-tareas que conforman el programa
PASOS EN LA PROGRAMACION4.- CodificaciónEs el Proceso de traducir los algoritmos a un lenguaje de programación.
5.- Eliminación de ErroresDebemos ubicar y corregir los inevitables errores.
6.- Prueba y validaciónResultados correctos, en todos los posibles casos.
7.- DocumentaciónDocumentación técnica, manuales, ayuda referente al programa y su funcionamiento.
PROGRAMACION
CODIFICACION
Serie completa de pasos involucrados en la resolución de un problema utilizando el computador
Se refiere al proceso de escribir instrucciones en un lenguaje de programación particular.
Estructura SecuencialUna estructura secuencial es aquella en la que las
instrucciones están una a continuación de la otra siguiendo una secuencia única, sin cambios de ruta.
La estructura secuencial tiene una entrada y una salida.
Inicio …. acción 1 acción 2 acción 3 …Fin
Diagrama de Flujo Pseudo código
Entrada: metros, Pre-cond: numero real positivo
La cantidad M de metros Proceso:
Cálculo de centímetros: C = M*100 Cálculo de pulgadas: P = C/2.54
Salida : Post-cond: valores reales positivos
La cantidad C de centímetros y la cantidad P de pulgadas
Algoritmo: Expresar en centímetros y pulgadas una cantidad dada en metros.
algoritmo computacional escrito en lenguaje natural
Es un lenguaje de pseudo programación utilizado para escribir algoritmos computacionales.
PSEUDOCODIGO
Algoritmo: Halle el área y el perímetro de un rectángulo.
INICIO // Declaración de variables // variables de entrada REAL base, altura // variables de proceso y salida REAL area, perimetro
// Entrada de datos Pre: reales positivos LEER base, altura
// Proceso de cálculo area = base*altura perimetro = 2*(base+altura)
// Salida de resultados Post: reales IMPRIMIR area, perimetroFIN
VariablesUna variable es una localización o casillero en la memoria principal
que almacena un valor Para almacenar un dato, se necesita una variable.
Partes de una variable: nombre, tipo y valor.
Las variables deben ser declaradas antes de asignarles un valor. Declaración de una variable:
tipo nombre
Declaración de varias variables con el mismo tipo de dato:
tipo nombre1, nombre2, nombre3, ..., nombren
Tipo puede ser: ENTERO, REAL, CARÁCTER, CADENA o LOGICO
Nombre: El nombre de una variable debe comenzar con una letra, puede tener números y el símbolo _ .
EJEMPLOS: Declaración de variables
ENTERO edadREAL descuento
Esto crea los casilleros de memoria edad y descuento.
edad descuento
ENTERO nota_1, nota_2, nota_3
Esto crea los casilleros de memoria nota_1, nota_2 y nota_3.
nota_1 nota_2 nota_3
Variables
3. Asignación:Asignar a una variable el valor de una expresión. La expresión
puede ser una simple variable, un simple literal o una combinación de variables, literales y operadores
variable = expresión
La variable y el valor de expresión deben tener el mismo tipo de dato.
Cuando se asigna un valor ENTERO a una variable REAL, entonces el valor ENTERO se convertirá en REAL antes de almacenarse.
Ej: REAL metro, centimetro LEER metro
centimetro = metro * 100 // asignación, Valor de la variable
Instrucciones Algorítmicas Básicas
Ejemplo: Diseñe un pseudo código que halle el área y el perímetro de un rectángulo. Usando valores dados de la base y la altura
Considere que: area = base x altura ; perimetro = 2 x (base+altura).
INICIO // Declaración de variables de entrada
// Precondición: base y altura deben ser mayor que cero REAL base, altura
// Declaración de variables de salidaREAL area, perimetro
// Entrada de datos LEER base, altura // Proceso de cálculo area = base*altura perimetro = 2*(base+altura) // Salida de resultados IMPRIMIR area, perimetro FIN
Como es todo esto en el Lenguaje C ??
El lenguaje de programación C, tiene una sintaxis particular para definir variables, literales, instrucciones básicas de entrada, salida y asignación, y operaciones aritméticas y lógicas
Esta sintaxis debe ser correcta, de otra manera el compilador del lenguaje no creara el código binario ejecutable para el computador.
Lenguaje C Imprimir en pantalla
Para imprimir se usa la función
printf(“ Hola Mundo “);
Entre las comillas es lo que vamos a sacar por pantalla. Para utilizar la función printf en nuestros programas debemos incluir la directiva:
#include <stdio.h>
Al principio del programa
El primer programa:
#include <stdio.h> void main() {
/* Aquí va el cuerpo del programa */ printf(“ Hola Mundo “);
}
Este programa lo único que hace es sacar por “Consola” el mensaje:
Hola Mundo
Lenguaje C - Cuerpo principal
Explicación:#include es una directiva. Sirve para indicar al compilador que incluya
otro archivo (stdio.h, standard input-output). Este archivo contiene declaraciones de funciones que el programa necesita usar, en particular, contiene la declaración de la función printf.
Todos los programas de C deben tener una función llamada main, Las llaves { indican el Inicio de la función, /* xxx */, es un comentario, no se ejecuta
La función printf muestra un mensaje por la pantalla.una cadena de caracteres van encerradas entre dobles comillas “”El símbolo \n indica un cambio de línea. C requiere un punto y coma al final de cada sentencia (;) } Finaliza la función main,.
Lenguaje C - Cuerpo principal
Librerías o bibliotecas:En el estándar C se definen un conjunto de librerías de
funciones, que satisfacen servicios elementales.
Las interfaces a estos servicios se definen en unos archivos cabeceras ( header files ) que terminan en .h
Algunos de los servicios proporcionados por las bibliotecas estándares son:
• entrada y salida de datos (stdio.h) • manejo de cadenas (string.h) • memoria dinámica (stdlib.h) • rutinas matemáticas (math.h)
Ejemplo: #include <stdio.h>
Lenguaje C - Cuerpo principal
Comentarios
• En el C original, tienen la forma /* cualquier texto */
• Los comentarios se pueden extender varias líneas
• No se pueden anidar comentarios (comentarios dentro de otros)
Ejemplos:
{ /* Esto es un comentario que ocupa varias líneas */ /* esto es otro comentario */ /* este no es /* valido */ en C */
}
Lenguaje C - Cuerpo principal
Ejercicio: Busca los errores en este programa: void main() { /* Aquí va el cuerpo del programa */ Printf( "Hola mundo\n" );
}
…C es “case sensitive”,… archivo cabecera “stdio.h”
Lenguaje C - Cuerpo principal
Al compilar:
ERROR: que nos indicará que no hemos definido la función Printf
SOLUCION: incluir la librería stdio.h #include <stdio.h>
ERROR: nos dice que desconoce Printf.SOLUCION: C es “case sensitive”, debe ser en minúscula,
osea, printf
Lenguaje C - Cuerpo principal
Lenguaje C - Imprimir en pantalla
"\n". Es el indicador de retorno de carro. Lo que hace es saltar el cursor de escritura a la línea siguiente.
la contrabarra '\' sirve para indicarle al compilador que escriba caracteres que de otra forma no podríamos, como “, como la misma \, y caracteres especiales como ‘n’ (newcarrie), Ej: \n \\ \”
printf( "Cadena\n" ); printf( "Segunda\n" ); printf( "Primera cadena" "Segunda cadena" ); printf( "Primera texto en medio Segunda \n" ); printf( "Esto es \"importante\"\n" ); printf( "Hola\\Adios\n" );
Lenguaje C - Variables Nombres:No se pueden poner más que letras de la 'a' a la 'z' (la ñ no vale), números y el símbolo '_'. No se pueden poner signos de admiración, ni de interrogación... El nombre de una variable comienza con letra.
Camiones camiones Numero NUMERObuffer BuffeRa1J10hola29num_alumnos
1abnombre?num/alumnos main
VALIDOSminúsculas y mayúsculas
son diferentes en C‘ case sensitive ‘
INVALIDOSNo se pueden usar las
palabras reservadas de C
Lenguaje C - Variables Tipos de datos básicos:
C provee 4 tipos de datos básicos para almacenar caracteres, números reales y números enteros.
Tipo Bytes de almacenamiento Rango
char 1 -128 a 127
int 2 32768 a 32767
float 4 3'4 E-38 a 3'4 E+38
double 8 1'7 E-308 a 1'7 E+308
Lenguaje C - Asignación con =Se usa el símbolo = para asignar el valor de una expresión a una variable.
variable = expresion
Ej: /* declaración de las variables */int n, m; /* n y m son de tipo entero */float x, y; /* x y y son de tipo real */
/* distintos ejemplos de asignación */ n = 3 * m + 2;
x = 20.4;y = (x+1)*20 / (18.9 – x);
Lenguaje C - Variables Tipos de datos básicos:C permite asignar un valor a las variables al momento de su declaración.
char Para almacenar caracteres. Ejemplos:
char firstInitial = 'J';char secondInitial = 'K';
int Para almacenar números enteros. Ejemplos:
int count;int number_of_students = 30;
float y double Para almacenar números reales. Los números reales contienen una parte entera y una decimal. La diferencia entre float y double está en el número de bytes empleados para almacenar la variable. Double permite valores mas grandes que float.
float owned = 0.0;double owed = 2.9979e+45, d = 1.3456e-45;
Lenguaje C - Variables Imprimir valores de variables: La rutina printf permite la aparición de valores numéricos, caracteres y cadenas de texto por pantalla.
printf( control, arg1, arg2... );Cuando se usan argumentos debe indicarse en la cadena de control tantos modificadores como argumentos se quieran presentar.
Los modificadores más utilizados son:
%c Un único carácter, %i Un entero
%d Un entero con signo, en base decimal %u Un entero sin signo, en base decimal, %e Un número real en coma flotante, con exponente %f Un número real en coma flotante, sin exponente %s Una cadena de caracteres
Lenguaje C - Variables Imprimir valores de variables con ‘printf’Ejemplo:
#include <stdio.h>
void main(){ char InicialAp = ‘J’; int m = 2; float x = 2.3; double num_grande; num_grande = 2.9979e+120; printf(“Mi Inicial es %c \n”,InicialAp); printf(“Entero m es %i \n”,m); printf(“Real x es %f y double es %e \n”,x, num_grande);}
Lenguaje C - Variables Leer valores de variables: La rutina scanf permite leer valores numéricos, caracteres y cadenas de texto del teclado. El prototipo de la función scanf es:
scanf( control, arg1, arg2... );
Ej: int Edad; printf("Introduzca la Edad:"); scanf("%d", &Edad);
Los modificadores del control estarán formados por el caracter % seguido de un caracter de conversión. Los argumentos indicados serán, nuevamente, las variables.
La principal característica de la instrucción scanf es que necesita saber la dirección de memoria en que se encuentra la variable para poder almacenar la información obtenida. Para indicarle esta posición utilizaremos el símbolo ampersand ( & ), que colocaremos delante del nombre de cada variable.
Lenguaje C - Variables Leer valores de variables:
Los modificadores más utilizados son:
%c Un único carácter, %i Un entero
%d Un entero con signo, en base decimal %u Un entero sin signo, en base decimal, %e Un número real en coma flotante, con exponente %f Un número real en coma flotante, sin exponente %s Una cadena de caracteres
Cuando se usan varios argumentos o variables, debe indicarse en la cadena de control tantos modificadores como argumentos se quieran leer.Ej: int Edad, sexo; float salario; printf("Introduzca la Edad, sexo y salario \n"); scanf("%d %c %f", &Edad, &sexo, &salario);
VENTAJAS
• Los programas son más fáciles de entender.
• Reducción del esfuerzo en las pruebas.
• Reducción de los costos de mantenimiento.
• Programas más sencillos y más rápidos.
• Aumento en la productividad del programador.
• Los programas quedan mejor documentados.
PROGRAMACION ESTRUCTURADA