Conceptos basicos de Programacion - 1 PDF

Title Conceptos basicos de Programacion - 1
Course Fundamentos de programación
Institution Universidad Nacional de Rosario
Pages 11
File Size 214.9 KB
File Type PDF
Total Downloads 39
Total Views 176

Summary

Conceptos basicos de Programacion - 1...


Description

Índice 1. Introducción.........................................................................................................2 1.1 Metodología para la construcción de un programa........................................3 A - Comprensión del problema..........................................................................3 B - Diseño de una estrategia de resolución.......................................................5 C– Desarrollo del algoritmo................................................................................6 D – Implementación del algoritmo....................................................................9 E - Ejecución del programa y evaluación de resultados.................................10 Resumen Introducción:.....................................................................................11

Conceptos básicos de Programación 1. Introducción La materia Fundamentos de Informática tiene como objetivo el conocimiento de los conceptos y las estructuras básicas utilizadas en la programación de computadoras. En el curso veremos todos aquellos contenidos que nos permitan crear programas en un lenguaje de diagrama de flujo, esto es, un conjunto de símbolos gráficos que permiten la representación de las instrucciones. Estos conocimientos nos servirán de base para encarar el estudio de otros lenguajes de programación, a la vez de aportarnos esquemas de razonamiento lógicos aplicables a la resolución de problemas más generales, por lo que podríamos definirla también como una introducción a una metodología de resolución de problemas. Como requisitos previos podríamos plantear el conocimiento y operación de una PC, esto es el manejo del Sistema Operativo y programas de aplicación, así como el conocimiento de los componentes de hardware y software de un equipo de computación. En el apunte Hard y Soft básico podrán encontrar una breve historia del desarrollo de los sistemas informáticos, así como una descripción de estos componentes, y de cómo la interacción entre ellos permite desarrollar y ejecutar aplicaciones útiles con una computadora. Ahora bien, el ámbito específico de estudio de nuestro curso es el del software. Suele definirse el software como el componente lógico de un equipo, en contraposición con el componente físico o hardware, pero si queremos una definición más precisa podríamos decir que es el conjunto de programas, procedimientos, reglas, documentación y datos asociados que forman parte de las operaciones de un sistema de computación. De manera particular, a nosotros nos interesan los programas, ya que, como se dijo, el objetivo de nuestro curso es aprender los conceptos y las estructuras básicas que permiten la creación de programas, y su representación mediante el uso de un lenguaje de diagrama de flujo. Veamos entonces algunas definiciones. Programa: de manera general, un programa puede definirse como una serie de operaciones ordenadas para llevar a cabo un proyecto o resolver un problema. El término “problema” debemos entenderlo, en este contexto, como cualquier situación que requiera de un análisis para definirla y solucionarla. En particular, en un Programa de computadora ese conjunto de operaciones será un conjunto ordenado de instrucciones codificadas en un lenguaje de programación específico, que le indican al procesador lo que debe hacer. Lenguaje de programación: los lenguajes de programación son idiomas diseñados para expresar las acciones que pueden ser llevadas a cabo por las computadoras. Pueden usarse para crear todo tipo de programas: sistemas operativos, aplicaciones o juegos. Como todos los idiomas los lenguajes están compuestos por un conjunto de símbolos y reglas que definen su estructura y

el significado de sus elementos y expresiones, y su objeto es permitir la “comunicación” entre nosotros y las máquinas. Se definió a los lenguajes de programación como idiomas. Todos nosotros conocemos y usamos el idioma castellano, y eso nos permite comunicarnos con cualquier otra persona que lo conozca. Podemos entonces situados frente a un problema establecer el conjunto de operaciones que nos conduzca a su solución, e incluso repartirnos las tareas que haya que realizar; si alguno de los integrantes lidera el grupo, será éste quien se encargue de dar las instrucciones. Pero si los integrantes del grupo hablaran idiomas distintos, la tarea sería prácticamente imposible. Algo parecido nos sucede frente a una computadora: no tienen (por ahora) la capacidad de entender nuestro idioma ni de aprenderlo, por lo que fue necesario desarrollar, a partir de lo que ellas “entienden”, idiomas que nos permitan indicarles que cosas tiene que hacer. Las computadoras son mecanismos complejos que sólo pueden operar sobre datos, sin importar las unidades, resolviendo operaciones muy sencillas (sumas y comparaciones) a una elevadísima velocidad y con gran precisión. Aprovechando estas características se han desarrollado programas que se utilizan en campos cada vez más amplios de las actividades humanas. 1.1 Metodología para la construcción de un programa Los programas son “métodos” para resolver problemas. El proceso de construcción de la solución a un problema se puede dividir en las siguientes etapas: A. B. C. D.

Compresión del problema. Diseño de una estrategia de resolución. Desarrollo del algoritmo (diagrama de lógica). Implementación del algoritmo (codificación y construcción del programa ejecutable). E. Ejecución del programa y evaluación de resultados. Describiremos a continuación a cada una de las etapas mencionadas. A - Comprensión del problema No existe ninguna posibilidad de resolver un problema si no se lo comprende acabadamente. Por esa razón ésta es la primera etapa, y en ella debemos determinar claramente que se debe hacer para solucionar el problema; no importa todavía como resolverlo. Nuestra tarea deberá comenzar analizando profundamente los requerimientos del problema, familiarizándonos con el enunciado leyéndolo cuidadosamente, resaltando las partes más importantes y dificultosas de interpretar. Si el problema lo permite es conveniente reescribirlo o apoyarse en soluciones gráficas, confección de tablas o cualquier otro elemento que facilite la compresión.

Sea cual sea la complejidad del problema a resolver podemos representarlo con el siguiente esquema: Datos de entrada

???

Resultados (datos de salida)

En una punta del esquema tenemos los datos de entrada, y en la otra los resultados. El programa debe procesar los datos de entrada de manera conveniente como para producir la salida esperada. Nuestra incógnita es entonces establecer cuales son las relaciones que permitan convertir los datos de entrada en la información resultado. De eso se debe encargar el programa. Podemos considerar que hemos comprendido el problema cuando podamos responder las siguientes preguntas: a) ¿ Cuáles son los datos a contemplar en el problema ? ¿ Cuántos son ? ¿ En qué secuencia se presentan ? b) ¿ Cuáles son los resultados que se deben proporcionar ? ¿ Cuántos son ? ¿ Se debe respetar una secuencia preestablecida ? ¿ Se han establecido unidades ? c) ¿ Qué tipo de relación, método o proceso se debe establecer con los datos suministrados para obtener los datos pedidos ? ¿ Es un proceso matemático o de evaluación ? ¿ Es un proceso selectivo ? ¿ Simple o múltiple ? ¿ Es una combinación y/o repetición de ambos ? Veamos algunos ejemplos simples. Ejemplo 1 Dados dos números que se ingresan por teclado, calcular e informar la suma a) Entrada: 2 números b) Salida: 1 número que representa el valor de la suma de los dos valores de entrada c) Proceso: operación matemática de suma entre los 2 números ingresados Ejemplo 2 Dados dos valores numéricos determinar e informar al mayor de ambos. a) Entrada: 2 números b) Salida: 1 número; el de mayor valor entre los 2 ingresados. c) Proceso: una selección simple entre dos valores conocidos.

Ejemplo 3 Se ingresan 3 números sin ningún orden y se pide que se los informe en orden creciente. a) Datos: 3 números. b) Resultados: los tres valores ingresados ordenados de manera creciente. c) Proceso: se debe efectuar más de una selección para ordenarlos, será una selección múltiple. Ejemplo 4 Se dan como datos las longitudes de los dos catetos de un triángulo rectángulo y se debe calcular el área del triángulo. a) Datos: 2 números positivos ( las longitudes de los 2 catetos). b) Resultados: 1 número; el área del triángulo. c) Proceso: aplicación de la fórmula de cálculo de la superficie del triángulo En este último ejemplo se establecen limitaciones para los datos de entrada: deben ser positivos. Además para la resolución debe conocerse cuál es la fórmula para el cálculo de la superficie. B - Diseño de una estrategia de resolución Consiste en la elaboración de un plan general sobre el cual nos basaremos para luego desarrollar el algoritmo, obteniendo el “diagrama de lógica” del problema. En esta etapa definimos como resolveremos el problema, haciendo abstracción de los detalles. En lugar de pensar en instrucciones, trataremos de establecer las tareas o procesos constitutivos del problema. En general la estrategia se basa en dividir el problema original en las partes que lo componen, obteniendo un conjunto de problemas más simples ordenados en una secuencia específica. Este criterio puede volver a aplicarse hasta que los “subproblemas” en los que dividimos el problema original sean perfectamente compresibles, esto es, que puedan resolverse en forma individual. Una vez resueltos todos los pequeños problemas tendremos resuelto el problema original. Nuestro esquema inicial podría representarse ahora de la siguiente manera:

Entrada

Sub. 1 ???

S1 – E2

Sub. 2 ???

S2 – E3

Sub. 3 ???

Salida

El problema original fue dividido en 3 subproblemas. La salida de Sub. 1 se convierte en la entrada de Sub. 2; y la salida de Sub. 2 se convierte en la entrada de Sub. 3. Veamos un ejemplo Ejemplo: Determinar la edad promedio de los alumnos del curso 1 - COMPRENSIÓN DEL PROBLEMA (¿ qué ?) a) Datos: edad de cada alumno y cantidad de alumnos. b) Resultados: edad promedio. c) Proceso: cálculo del promedio. 2 - ESTRATEGIA: (¿ cómo ?) a) Obtener la cantidad de alumnos y la edad de cada uno. b) Calcular el promedio (sumatoria y cociente). c) Informar la edad promedio. C– Desarrollo del algoritmo La definición general de algoritmo es: conjunto finito de operaciones que ejecutadas en un orden determinado permiten resolver el problema planteado. El concepto de algoritmo es aplicable a cualquier proceso, sea este una operación matemática, el armado de un mueble, o el desarrollo de un programa de computación. Es similar al de “estrategia”, con la diferencia que en lugar de hablar de “procesos o tareas”, hablaremos de “instrucciones”, lo cual involucra un mayor grado de detalle y precisión. El algoritmo se diseña tomando como punto de partida la estrategia definida. Para llegar al algoritmo se deben satisfacer las siguientes condiciones: que se hallen perfectamente identificados los datos de entrada, pudiendo ser varios, uno o ninguno. que se produzca al menos un resultado. que cada instrucción utilizada sea clara y precisa, sin ambigüedades. que se halle compuesto por una cantidad finita de instrucciones para cualquier caso particular de los datos. que cada instrucción sea lo suficientemente básica para que pueda ser resuelta por cualquier computadora. Ejemplo: Construir un algoritmo que determine e informe si un número A es múltiplo de otro B.

1. 2. 3. 4. 5. 6.

Ingresar el valor de A Ingresar el valor de B Obtener el resto del cociente, sin decimales, de A/B Analizar el resto del cociente Si el resto es cero informar “ES MULTIPLO” Finalizar El diseño del algoritmo es la etapa más creativa del desarrollo de un programa. Si bien las condiciones que debe cumplir son muy estrictas, no existe una única forma de resolver un problema: puede que frente a un problema dado a cada uno de los alumnos del curso se les ocurra una solución (algoritmo) distinta. Y si los algoritmos resuelven correctamente el problema todos están bien. Nuestra materia se basa precisamente en el diseño de algoritmos. Y a esta tarea dedicaremos la mayor parte de nuestro tiempo. En el ejemplo anterior se representó el algoritmo describiendo cada uno de los pasos para su solución, utilizando el lenguaje natural, que es la manera que utilizamos para comunicarnos entre nosotros. Otra forma de representarlo sería utilizando un pseudocódigo, esto es, escribir las instrucciones siguiendo un conjunto de reglas sintácticas poco estrictas, pero intentando acercar las ideas del algoritmo a las estructuras y sintaxis parecidas a las de los lenguajes en los que vamos a programar el algoritmo. Y la otra posibilidad es representar las instrucciones gráficamente mediante un diagrama de flujo, que es lo que haremos en la materia. Más adelante veremos detalladamente cada uno de los bloques que utilizaremos en la construcción de nuestros algoritmos, o diagramas lógicos. Para empezar veamos una como se representa el algoritmo anterior en un diagrama de flujo:

P

a

b

resto=a%b

resto= = 0

“Es múltiplo”

F

Cada bloque representa

Ingreso de datos

Salida de datos Operación

Decisión simple P

F

Indicadores de principio y fin del programa

El diagrama nos proporcionará entonces las siguientes ventajas: permite una sencilla y rápida visualización de todo del problema.

es un medio de comunicación entre quien explica y quien aprende, o entre los miembros de un equipo. es un medio claro de documentación de los problemas. D – Implementación del algoritmo Una vez terminado el algoritmo el programa debe ser escrito en un lenguaje de programación para que pueda ejecutarse en una computadora. De manera simplificada podemos decir que para construir un programa que pueda ser ejecutado por una computadora debemos seguir los siguientes pasos: - Codificar el algoritmo en un lenguaje de programación. Por codificación entendemos la traducción de las instrucciones del diagrama de flujo a las instrucciones propias del lenguaje. Se obtendrá un archivo de texto que suele denominarse Archivo Fuente. -

Compilar el archivo fuente. La compilación es un proceso que realiza el compilador o el lenguaje que utilizamos, y que convierte el archivo de texto fuente en un archivo ejecutable, que puede ser copiado y utilizado en una computadora.

El proceso de compilación traduce las instrucciones que escribimos en el archivo de texto en un lenguaje que entendemos, en instrucciones que entiende la máquina. Para codificar el algoritmo en un determinado lenguaje, en nuestro caso el C/C++, debemos conocer su vocabulario (conjunto de símbolos y palabras), y respetar sus reglas (sintaxis) para generar frases válidas. Durante el curso veremos las reglas básicas del lenguaje C/C++, y una traducción de éste al castellano para facilitar la construcción de programas en el laboratorio. Ejemplo: Codificación del algoritmo visto en C/C++ #include int main(){ int a, b, resto; cin>>a; cin>>b; resto=a%b; if(resto= = 0) cout...


Similar Free PDFs