Resolucion de `problemas con computadora PDF

Title Resolucion de `problemas con computadora
Course Informática I
Institution Universidad Nacional de Rosario
Pages 11
File Size 357.1 KB
File Type PDF
Total Downloads 90
Total Views 151

Summary

Resolucion de algoritmos en computadora...


Description

Resolución de problemas con computadoras Etapas en la resolución de un problema con computadoras: 1) Análisis del Problema: Consiste en entender el problema, es decir contemplar exactamente lo que se debe hacer. Para poder definir bien un problema debemos extraer del enunciado:  Entradas  Proceso  Salidas 2) Diseño del Algoritmo: Escribir la secuencia ordenada de acciones primitivas que llevan a la solución del problema. 3) Codificación: Consiste en seleccionar un Lenguaje de Programación para convertir el Algoritmo en Programa. Debemos traducir las acciones primitivas a un lenguaje que entienda nuestro procesador. 4) Ejecución y validación: Se corre el programa y se prueba que no tenga errores. Observación: Siempre que resolvemos un problema usando una computadora tenemos la siguiente secuencia:

Problema  Diseño del Algoritmo  Diseño del Programa Algoritmo: Definición: Secuencia finita y ordenada de acciones primitiva que pueden ser ejecutadas por un procesador y que llevan a la solución del problema. Características de un Algoritmo Todo Algoritmo debe ser:  Preciso e indicar el orden de realización de cada acción primitiva.  Exacto (estar definido) Si se sigue un algoritmo dos veces, con los mismos valores se debe obtener el mismo resultado cada vez.  Finito: Se debe terminar en algún momento, es decir que debe tener un numero finito de acciones primitivas.  Independiente: No depende de ningún lenguaje de programación. Partes de un Algoritmo: Todo algoritmo debe tener tres partes bien definidas: SALIDA ENTRADA  PROCESO  Conjunto de datos Descripción de las Resultados que se necesarios para que el acciones primitas a obtienen al ejecutar el algoritmo se lleve a seguir para resolver el algoritmo en función de cabo – problema – los datos de entrada – DATOS PROCESADOR INFORMACIÓN (Sistema de Procesamiento de la Información)

En los ejemplos de la clase 1 se tendrá: - En el ejemplo 1: Entrada  ingredientes y utensilios empleados Proceso  elaboración de la receta para hacer la tortilla Salida  la tortilla - En el ejemplo 2: Entrada  números Proceso  sumarlos Salida  la suma Representación de un algoritmo Como no existe un lenguaje único y universal para la descripción de los algoritmos, tenemos distintos tipos de representaciones: Gráficos: Con dibujos, se representan las operaciones que realiza un algoritmo.  No Gráficos: Con texto, se representan las operaciones que realiza un algoritmo. La elección del método para expresar la solución del problema debe ser independiente del lenguaje de nuestro procesador. El algoritmo solución del problema, estará representado por un método que no tiene relación con el lenguaje de programación que se va a utilizar para diseñar el programa 

Las técnicas de representación de algoritmos más usuales son: 1. Diagrama de flujo (Gráfico) 2. Diagrama de Nassi Schneideerman (comúnmente llamado Organigrama de Chapin) (Gráfico) 3. Pseudocódigo (No Gráfico) Diagrama de flujo Es un método bastante antiguo. Consiste en utilizar figuras geométricas estandarizadas para representar las acciones y flechas para indicar la secuencia en que deben ejecutarse. Algunos símbolos son:

Problema: “Cálculo de promedio”: Calcular el promedio de un conjunto finito de números enteros positivos que se ingresan de a uno por teclado. Tenga en cuenta que si se ingresa un cero, deberá finalizar el algoritmo. Ejemplo de un algoritmo con diagrama de flujo:

Diagrama de Nassi Schneiderman (NS): Este tipo de diagrama es mucho más compacto. Se puede ver como un diagrama de flujo donde se omiten las flechas de unión y las acciones se escriben en rectángulos sucesivos. Se utiliza cuando el modelo desde donde se programa es estructurado. Problema: “Cálculo de promedio” Ejemplo de un algoritmo con diagrama de Nassi Schneiderman: Cont 0 Suma 0 Leer (Num) Mientras Num 0 hacer Cont Cont +1 Suma Suma + Num Leer (Num) Promedio Suma/Cont Imprimir ( "el promedio es:", Promedio)

Pseudocódigo Se llama así dado que su sintaxis y semántica no es la de ningún lenguaje de Programación. Pseudocódigo: Está formado por palabras comunes ( en el idioma que cada uno elija), como por ejemplo : Var: para identificar el bloque de declaración de variables, Entero: indica el tipo de dato de una variable Mientras: para indicar que mientras se cumpla la condición se realicen las acciones que esta estructura contiene , etc La ventaja del pseudocódigo es que en su uso (planificación de un programa) el programador se puede concentrar en la lógica del problema, y no preocuparse de las reglas de un lenguaje específico. Es también fácil de modificar si se descubren errores de lógica. Ejemplo de un algoritmo con pseudocódigo: Problema: “Determinar la superficie y el perímetro de figuras rectangulares.” Algoritmo ”Superperi” var REAL : base, alt, per, sup Comienzo ESCRIBIR( ‘Ingrese Base y altura’) LEER (base, alt) per base*2 + alt*2 sup base *alt ESCRIBIR ( ‘El perímetro es: ‘, per ) ESCRIBIR ( ‘La superficie es: ‘, sup ) Fin

Ventajas de utilizar Pseudocódigo  No se necesita elementos de dibujo para realizarlo.  Es muy fácil pasar de pseudocódigo a un programa.  El programador se puede concentrar en la lógica del problema, y no preocuparse de las reglas de un lenguaje específico.  Ocupa menos espacio en una hoja de papel.  Permite representar en forma fácil operaciones repetitivas.  El pseudocódigo utiliza palabras comunes que indican el proceso a realizar.  Es muy simple introducir modificaciones. Por estas razones optaremos por el pseudocódigo para escribir los algoritmos

Estructura de un algoritmo en pseudocódigo: Título - Encabezado

Algoritmo "Superper"

Declaraciones

Var REAL : base, alt, per, sup

Comienzo Cuerpo del algoritmo Secuencia finita y ordenada de acciones primitivas que resuelven el problema

ESCRIBIR( ‘Ingrese Base y altura’) LEER (base, alt) per base*2 + alt*2 sup base *alt ESCRIBIR ( ‘El perímetro es: ‘, per ) ESCRIBIR ( ‘La superficie es: ‘, sup)

Fin

Debe ser representativo de la función del algoritmo Se le indica al algoritmo el tipo de dato que corresponde a cada una de las variables, constantes a ser usadas en el cuerpo de las acciones Indica el inicio del cuerpo Entrada: Ingreso de datos Proceso: acciones necesarias para solucionar el problema Salida: Resultados Indica el final del cuerpo

Lenguaje Algorítmico. Como observamos en las distintas técnicas de representación de algoritmos, es un lenguaje formado por acciones primitivas en lenguaje natural. Ventaja: fácil de aprender y entender Desventaja: muchas maneras de poder decir lo mismo.

Avancemos un poquito más

Leng. Algorítmico

Leng. De Programación

Problema del mundo real Diseño y escritura del Algoritmo  Programa Método

Conceptos Básicos: Datos: es la representación de un objeto, hecho o concepto. En principio, es la información no procesada. ENTRADAS Información: es aquello que nos permite adquirir un conocimiento.  SALIDA Dato e Información El término información puede aplicarse a casi cualquier cosa que pueda comunicarse, tenga o no valor. Los datos, en principio, son información no elaborada, que una vez procesados (comparados, ordenados, sumados,…) constituyen información útil. Según esto, podemos decir que las palabras, números, imágenes son símbolos que representan datos. Si se subraya una frase en un libro por ejemplo, se añadiría información a la página. En un problema, se puede disponer de muchos datos, de los cuales algunos pueden ser útiles para la resolución del problema, es decir, considerados información útil. Decimos entonces que la información es el conocimiento producido como resultado del procesamiento de los datos. Al conjunto de operaciones (procesamiento) que se realiza sobre la información útil se la denomina tratamiento de la información y algunas son:  Lectura de datos. Ingreso de información útil. (Entrada)   

Almacenamiento de datos Comparación de datos Procesos aritméticos sobre datos



Muestra de resultados. Datos ProcesadoInformación (Salida)

Acciones de procesamiento (P)

Tipos de Datos TIPOS    

SIMPLE – sin estructura Numérico (entero – real) Carácter String Lógicos

COMPUESTOS –con estructura  Arreglo  Registro  Archivos

Tipo de datos numéricos: Entero puede representar un subconjunto finito de los números enteros. El número mayor que puede representar depende del tamaño del espacio usado por el dato y la posibilidad (o no) de representar números negativos. Los tipos de dato entero disponibles y su tamaño dependen del lenguaje de programación usado. Por ejemplo, si para almacenar un número entero disponemos de 4 bytes de memoria tememos que: 4 Bytes = 4x8 = 32 bits Con 32 bits se pueden representar 232=4294967296 valores:  Sólo positivos: del 0 al 4294967295  Positivos y negativos: del -2147483648 al 2147483647 Real define un conjunto de números que pueden ser representados con la notación de coma flotante. Al igual que los enteros, el tipo real está limitado superior e inferiormente según la cantidad de memoria que haya disponible para almacenarlo. Otro elemento importante a tener en cuenta en este tipo de datos es la precisión con que pueden representar número con decimales (cuantos decimales se pueden representar), esta característica también está directamente relacionada con la cantidad de memoria disponible para almacenar un valor real. Por ejemplo 4 bytes, rango es = ~ [10 -78 ,10 +75 ] Tipo de dato caracter Es cualquier carácter que se encuentre dentro del conjunto ASCII Dichos valores pueden representarse escribiendo el carácter correspondiente encerrado entre comillas simples (apóstrofos). Así, podemos escribir: 'A' < 'a' Que significa: "El valor ordinal de A es menor que el de a" o "A está antes que a" Un valor de tipo carácter (char en ingés) se guarda en un byte de memoria. Tipo de dato string: Es un conjunto de caracteres. Por ej : “ Hola “ Tipo de dato lógico Es aquel que puede representar valores de lógica binaria, esto es, valores que representen falso o verdadero.

Primeros pasos para poder decirle a la computadora lo que debe hacer ¿

?

CONSTANTES Y VARIABLE En computación los datos vienen dados en constantes o variables.

Constantes Una constante es un nombre asociado a un elemento de datos que está situado en posiciones contiguas de la memoria principal cuyo valor no puede cambiar durante la ejecución del programa. Recibe un valor en el momento de la compilación y este permanece inalterado durante todo el programa. Variables Una variable es un nombre asociado a un elemento de datos que está situado en posiciones contiguas de la memoria principal, y su valor puede cambiar durante la ejecución de un programa. Toda constante o variable pertenece a un tipo de dato concreto. Declaración de Constantes o Variables Se deben indicar: Un nombre que identifica a una zona de memoria. Debe ser representativo. Un tipo que describe la clase de operaciones que se pueden realizar con ella. Observación: Convenimos que el nombre de un constante o variable para que sea válido, debe comenzar con una letra (mayúscula ó minúscula). En su constitución pueden existir números o letras, ningún carácter especial, excepto el guión bajo ( _ ) y como máximo reconoce hasta 32 caracteres.

Entrada y Salida de la Información La computadora requiere para realizar cálculos la ENTRADA de Datos necesarios para la solución de un problema y que posteriormente al procesamiento de los mismos, darán como resultado una SALIDA. Las operaciones de entrada de datos permiten leer determinados valores y ASIGNARLOS a determinadas VARIABLES. Este proceso se denomina LECTURA. Equivalentemente, la operación de salida se denomina ESCRITURA. Acciones primitivas:  Leer,  Escribir,  Asignar () Leer: Esta acción permite introducir desde el exterior valor o valores que el procesador entiende y guarda en una región de su memoria. LEER (lista de variables de entrada) Ejemplos: LEER (A) Permite ingresar un valor a través de un periférico de entrada y luego asigna LEER (B,C) dicho valor a la variable o las variables LEER (Num) respetando el orden posicional. LEER (base, per) Ojo: LEER es una acción u operación destructiva, es decir destruye el valor anterior contenido en la variable.

Escribir: permite mostrar los contenidos de las variables y/o carteles aclaratorios ESCRIBIR (lista de variables de salida) Ejemplos ESCRIBIR (‘RESULTADO’) ESCRIBIR (‘RESULTADO’, A)

Escribe en el periférico de salida el texto que se indica entre comillas o el valor de la variable. Observar que si quiero mostrar el valor de una variable escribo el nombre de la misma pero NO entre comillas

ESCRIBIR ( ‘El perímetro es ‘, per ) Asignar: la representamos con  y significa entregar, dar. Es el modo de darle valores a una variable. Variable  valor Variable  expresión Es decir, se almacena en la variable un valor o el resultado de una expresión Se lee de derecha a izquierda, es decir el valor obtenido del lado derecho es otorgado a la variable del lado izquierdo de la misma Ejemplo: Num  4 (El valor 4 lo guardo en la variable Num) Suma  3 + 5 (Se realiza la suma y se guarda en la variable suma) per base*2 + alt*2 ( se calcula la expresión y se guarda el resultado en la variable per) Ojo: No confundir igualdad matemática con asignación A  5 El valor 5 es almacenado en la celda de memoria que corresponde a la dirección de memoria reservada a la variable A Si luego hago: A  A+1 Se resuelve la expresión A+1 y el resultado se almacena de nuevo en la variable A. Es decir que la variable ahora tiene el valor 6 Por eso decimos que la asignación es una acción u operación destructiva, es decir destruye el valor anterior contenido en la variable, de la misma manera que la primitiva leer. Ejemplos de asignaciones aritméticas A  5+7+11 N1 AN+1 Ejemplos de asignaciones lógicas C 11< 5 N  C .OR. (7...


Similar Free PDFs