capítulo 1 conceptos de programación

19
Computación para Ingeniería I y Laboratorio Cap. 1 Conceptos de Programación Ing. Hermas Herrera Callejas Página : 1 de 19 CAPITULO 1 - CONCEPTOS DE PROGRAMACION 1.1 INTRODUCCION .- Los problemas o tareas que se plantean diariamente, por ejemplo en el ámbito de la empresa, ya sean de gestión, técnicos, matemáticos, etc, pueden ser resueltos mediante el uso de la capacidad intelectual y la habilidad manual de la persona. Diremos entonces que la tarea ha sido realizada de forma manual (Figura 1.1). Figura 1.1. Resolución manual de trabajos. 1.2 Aplicación o Sistema Informático .- La utilización de la computadora para la realización automática de una tarea aporta grandes ventajas, como la rapidez de ejecución y la fiabilidad de los resultados obtenidos Un buen número de problemas conllevan complicados cálculos, así como el manejo de grandes cantidades de datos. En el primer caso, el riesgo de equivocarse es grande y en el segundo, el trabajo se convierte en pesado y rutinario. Mediante el uso de la computadora se eliminan estos inconvenientes debido a las capacidades de la máquina, basadas en las siguientes características: • Rapidez. • Precisión. • Memoria. No obstante, la computadora por sí sola no sabría resolver ni el más sencillo problema que se nos pueda ocurrir. Es preciso, para que pueda hacerlo, describirle con detalle y en su lenguaje todos los pasos que ha de llevar a cabo para la resolución del problema. Una descripción de este tipo es lo que se llama programa de computadora y su objetivo es dirigir el funcionamiento de la máquina. 1.3 CICLO DE VIDA DE LA APLICACIÓN .- Desde el planteamiento de un problema o tarea hasta que se tiene el correspondiente programa o aplicación informática para su realización por medio de una computadora, instalado en la misma y en funcionamiento mientras sea de utilidad, se siguen una serie de etapas que en conjunto denominamos ciclo de vida del software. Cada una de las etapas, que tiene un objetivo bien determinado, ha de llevarse a cabo cuando se ha terminado completamente la anterior; es decir, se han de abordar de forma estrictamente secuencial. Las etapas de que consta el ciclo de vida del software pueden agruparse en los siguientes bloques, según el esquema de la Figura 1.2.

Upload: marcelorod

Post on 24-Sep-2015

6 views

Category:

Documents


5 download

DESCRIPTION

Capítulo 1 Conceptos de Programación

TRANSCRIPT

  • Computacin para Ingeniera I y Laboratorio Cap. 1 Conceptos de Programacin

    Ing. Hermas Herrera Callejas Pgina : 1 de 19

    CAPITULO 1 - CONCEPTOS DE PROGRAMACION

    1.1 INTRODUCCION .- Los problemas o tareas que se plantean diariamente,

    por ejemplo en el mbito de la empresa, ya sean de gestin, tcnicos, matemticos, etc, pueden ser resueltos mediante el uso de la capacidad intelectual y la habilidad manual de la persona. Diremos entonces que la tarea ha sido realizada de forma manual (Figura 1.1).

    Figura 1.1. Resolucin manual de trabajos. 1.2 Aplicacin o Sistema Informtico .- La utilizacin de la computadora para la realizacin automtica de una tarea aporta grandes ventajas, como la rapidez de ejecucin y la fiabilidad de los resultados obtenidos Un buen nmero de problemas conllevan complicados clculos, as como el manejo de grandes cantidades de datos. En el primer caso, el riesgo de equivocarse es grande y en el segundo, el trabajo se convierte en pesado y rutinario. Mediante el uso de la computadora se eliminan estos inconvenientes debido a las capacidades de la mquina, basadas en las siguientes caractersticas: Rapidez. Precisin. Memoria.

    No obstante, la computadora por s sola no sabra resolver ni el ms sencillo problema que se nos pueda ocurrir. Es preciso, para que pueda hacerlo, describirle con detalle y en su lenguaje todos los pasos que ha de llevar a cabo para la resolucin del problema. Una descripcin de este tipo es lo que se llama programa de computadora y su objetivo es dirigir el funcionamiento de la

    mquina. 1.3 CICLO DE VIDA DE LA APLICACIN .- Desde el planteamiento de un problema o tarea hasta que se tiene el correspondiente programa o aplicacin informtica para su realizacin por medio de una computadora, instalado en la misma y en funcionamiento mientras sea de utilidad, se siguen una serie de etapas que en conjunto denominamos ciclo de vida del software. Cada una de las etapas, que tiene un objetivo bien determinado, ha de llevarse a cabo cuando se ha terminado completamente la anterior; es decir, se han de abordar de forma estrictamente secuencial.

    Las etapas de que consta el ciclo de vida del software pueden agruparse en los siguientes bloques, segn el esquema de la Figura 1.2.

  • Computacin para Ingeniera I y Laboratorio Cap. 1 Conceptos de Programacin

    Ing. Hermas Herrera Callejas Pgina : 2 de 19

    1.3.1 Etapas del Desarrollo de Aplicaciones .- Es de destacar que en la

    realizacin de estas etapas no todas necesitan el uso de la computadora. No obstante, desde hace algn tiempo se utiliza sta como apoyo mediante las denominadas herramientas CASE (Computer Aided Software Engineering).

    Etapa Resultado Problema Especificaciones Reportes Formatos Bases de datos Programas Aprobacin D Algoritmo/Flujograma/Seudocdigo E CodificacinPrograma fuente, Prog estructurada S Compilacin Programa Objeto A (Errores: Sintaxis, Lgica) R Enlace Cdigo ejecutable R (Aplicacin:Interactiva/por lotes/reportes/consultas) O L L Unitarias Errores:Ejecucin,Especificacin O Funcionales De conjunto De esfuerzo Aplicacin aprobada Manual Sistema Manual Usuario Manual Operacin Manual Instalacin Usuarios EXPLOTACION Tcnicos Figura 1.2. Ciclo de vida del software

    Anlisis

    Diseo

    Pruebas

    Evaluacin

    Documentacin

    Capacitacin

    Programacin

    Explotacin y

    Mantenimiento

    Presentacin

    Diseo

  • Computacin para Ingeniera I y Laboratorio Cap. 1 Conceptos de Programacin

    Ing. Hermas Herrera Callejas Pgina : 3 de 19

    Anlisis. Consiste en el estudio detallado del problema con el fin de obtener una

    serie de documentos (especificaciones) en los que quede totalmente definido el proceso de la automatizacin. Consta principalmente de: - Anlisis previo. - Anlisis funcional. - Anlisis orgnico. Diseo. Consiste en concebir de modo completo la aplicacin en trminos de

    definir el contenido de los reportes, formatos de pantalla, bases de datos y de los programas. Programacin. Consiste en la realizacin de una solucin o algoritmo del problema planteado. Esta solucin se disea utilizando una notacin intermedia (seudo-cdigo) o mediante alguna de las notaciones grficas como los ordinogramas; sin tener en cuenta necesariamente el lenguaje de programacin

    que se vaya a utilizar en la siguiente etapa. En esta etapa es donde tiene cabida fundamentalmente la actividad del

    programador y la utilizacin de tcnicas adecuadas de diseo como la programacin estructurada y el diseo modular. Codificacin. Escritura en un lenguaje de programacin de alto nivel de los algoritmos obtenidos en la etapa anterior. Edicin. En esta fase se transcribe el programa a la computadora, grabndose el mismo en la memoria auxiliar por medio de un editor de programas o procesador textos. A este programa almacenado en la computadora y escrito en lenguaje de alto nivel se le denomina programa fuente. Compilacin. Consiste en obtener el programa objeto, codificado en lenguaje de mquina a partir del programa fuente. Esta tarea se realiza de forma automtica mediante el compilador del lenguaje, el cual, adems de efectuar la traduccin, incluye un anlisis sintctico del programa, detectando posibles errores en su escritura y posibilitando correccin de los mismos. Enlace (linkage). En esta fase se incluyen determinadas rutinas internas de la

    librera dcl lenguaje que sean necesarias en el programa, y si la aplicacin consta de varios programas o mdulos se enlazan todos ellos, obtenindose lo que denominamos programa ejecutable. Prueba de ejecucin. El programa ejecutable obtenido en la etapa anterior se

    somete a un juego de datos de prueba capaz de detectar los posibles errores en su funcionamiento. Errores .- La presencia de errores, surgidos en alguna de las etapas antes descritas, suele ser inevitable. Por ello, es muy importante saber detectarlos y corregirlos para asegurar la calidad del producto final. Un programa en explotacin puede contener errores que no han sido detectados y que pueden dar lugar a consecuencias imprevisibles.

    En el momento en que se encuentra un error hay que proceder a estudiar sus causas y regresar a la etapa correspondiente en que puede ser corregido.

    Segn la etapa en que se detectan, los errores se clasifican de la siguiente manera: De compilacin. Tambin denominados errores sintcticos, son los ms fciles de encontrar y corregir. Se producen por el incumplimiento de las reglas

    Explotacin y

    mantenimiento

  • Computacin para Ingeniera I y Laboratorio Cap. 1 Conceptos de Programacin

    Ing. Hermas Herrera Callejas Pgina : 4 de 19

    sintcticas del lenguaje y son detectados por el programa compilador indicando el lugar en que se encuentran y la clase de error. De ejecucin. Se detectan durante la ejecucin del programa por la parada anormal del mismo, y suelen provenir de la realizacin de operaciones no permitidas. Se producen o no dependiendo de los datos de entrada empleados; por ello, para encontrarlos es necesaria la prueba del programa con un conjunto de datos dc ensayo lo suficientemente amplio que abarque la mayora de casos y posibilidades de ejecucin. De lgica. Se dice que un programa tiene un error de lgica si produce resultados que no son correctos. Para detectarlos hay que realizar un nmero suficiente dc ejecuciones con diferentes datos de prueba y comprobar los resultados obtenidos. De especificacin. Son los ms difciles de corregir, pues corresponden a incorrecciones sobrevenidas en la etapa del anlisis, por lo que hay que modificar gran parte del trabajo realizado. 1.3.2 Documentacin de tos programas .- Constituida por todos los

    documentos que se elaboran en cada una de las etapas del anlisis y diseo, es muy importante para facilitar su mantenimiento y obtener un mayor rendimiento.

    Denominamos documentacin interna al contenido del propio programa fuente. Debe incluir los comentarios explicativos suficientes que posibiliten su comprensin y actualizacin. Asimismo, se debe utilizar un cdigo autodocumentado; es decir, debe ser escrito de una forma clara y legible.

    La documentacin externa la forman el resto de documentos que se acompaan con el programa sin formar parte de l. Entre ellos deben figurar los siguientes: Especificaciones del anlisis. Descripcin del diseo. Descripcin de las versiones, s las hubiere. Descripcin de archivos y estructuras de datos. Descripcin del programa principal y subprogramas. Manual de mantenimiento. Manual de explotacin. 1.3.3. Etapas de la implantacin y explotacin .- Para la implantacin y

    explotacin de programas se deben seguir los pasos que se describen a continuacin. Explotacin y mantenimiento. Una vez comprobada la correccin del programa y realizada su instalacin en el sistema informtico, la aplicacin queda a disposicin de los usuarios, que la utilizarn hasta tanto se decida abandonarla o cambiarla por otra. Es lo que denominamos explotacin de la aplicacin.

    Paralelamente al uso de la aplicacin se realiza el mantenimiento de la misma, consiste en su evaluacin peridica por parte del personal informtico, as como la inclusin de las adaptaciones y modificaciones necesarias para mantenerla actualizada.

  • Computacin para Ingeniera I y Laboratorio Cap. 1 Conceptos de Programacin

    Ing. Hermas Herrera Callejas Pgina : 5 de 19

    1.4 ESTRUCTURA DE UN PROGRAMA .- En general, un programa consiste en

    una secuencia de instrucciones que ha de procesar la computadora con el objetivo de obtener unos resultados o datos de salida a partir de unos datos iniciales o datos de entrada (Figura 1.3). Desde el punto de vista funcional, un programa se estructura en tres pasos: 1.4.1 Entrada de datos. Est formada por todas las instrucciones que toman los

    datos objeto del programa desde un dispositivo externo (unidad de entrada) depositndolos en la memoria central de la computadora, incluyendo la depuracin o validacin de los mismos. 1.4.2 Proceso. Conjunto de instrucciones que resuelven el problema a partir de los datos que han sido introducidos, dejando los resultados en la memoria central. El dispositivo fsico encargado de llevar a cabo esta tarea es la unidad central de proceso.

    Figura 1.3. Proceso de elaboracin. 1.4.3 Salida de resultados. La constituyen las instrucciones que hacen que los

    datos resultantes del proceso sean proporcionados al exterior por medio de algn dispositivo (unidad de salida).

    Estos tres componentes de todo programa (Figura 1.4) no aparecen separadamente, sino que lo normal es encontrar las instrucciones pertenecientes a cada uno de los tres grupos mezcladas entre si, pues en multitud de ocasiones es necesario realizar operaciones de entrada despus de iniciada la fase de proceso, y asimismo, se proporcionan algunos resultados antes de terminado el mismo. Datos Memoria central Resultados Figura 1.4. Estructura funcional de un programa. 1.5 LENGUAJES DE PROGRAMACIN .- El desarrollo de las capacidades del

    hardware ha experimentado un auge desmesurado en los ltimos aos, pero el aprovechamiento de estas posibilidades no es ptimo si no se dispone del software adecuado. Con este fin se han diseado diversos lenguajes de pro-gramacin, unos de propsito general, es decir, para todo tipo de aplicaciones, y otros de aplicacin particular en alguno de los campos del mbito informtico.

    Un lenguaje de programacin es una notacin para escribir programas, a travs de los cuales podemos comunicarnos con el hardware y dar as las rdenes

    Entrada Proceso Salida

  • Computacin para Ingeniera I y Laboratorio Cap. 1 Conceptos de Programacin

    Ing. Hermas Herrera Callejas Pgina : 6 de 19

    adecuadas para la realizacin de un determinado proceso. Un lenguaje est definido por una gramtica o conjunto de reglas que se aplican a un alfabeto constituido por el conjunto de smbolos utilizados. 1.5.1 CLASIFICACION DE LOS LENGUAJES DE PROGRAMACIN .- Una

    primera clasificacin, atendiendo a su proximidad al lenguaje de la mquina o al lenguaje de las personas (lenguaje natural), establece los tres siguientes grupos: Lenguaje de mquina (Lenguaje de bajo nivel). Lenguaje ensamblador (Lenguaje intermedio). Lenguaje de alto nivel (evolucionado). 1.5.2 Lenguaje de mquina .- El lenguaje de mquina es el nico que entiende directamente la computadora. Utiliza el alfabeto binario, que consta de los dos nicos smbolos 0 y 1, denominados bits (abreviatura inglesa de dgitos binarios). Fue el primer lenguaje utilizado en la programacin de computadoras, pero dej de utilizarse por su dificultad y complicacin, siendo sustituido por otros lenguajes ms fciles de aprender y utilizar, que adems reducen la posibilidad de cometer errores. EJEMPLO

    Instrucciones en lenguaje de mquina y sus equivalentes en el sistema hexadecimal. 0000 0001 1010 0001 01 Al 1000 1001 1001 1010 89 9A 0011 1010 1001 1100 3A 9C 0111 0100 0111 0000 74 70 1110 1001 0010 0000 E9 20 1.5.3 Lenguaje ensamblador .- El lenguaje ensamblador es el primer intento de sustituir el lenguaje de mquina por otro ms similar a los utilizados por las personas. En este lenguaje, cada instruccin equivale a una instruccin en lenguaje de mquina, utilizando para su escritura palabras nemotcnicas en lugar de cadenas de bits. EJEMPLO Instrucciones en lenguaje ensamblador. INICIO: ADD B, 1 MOV A, B CMP A, E JE FIN JMP INICIO FIN: END

    Este lenguaje presenta la mayora de los inconvenientes del lenguaje de mquina:

    Cada modelo de computadora tiene un lenguaje ensamblador propio diferente del de los dems, por lo cual un programa slo puede utilizarse en la mquina para la que se program.

  • Computacin para Ingeniera I y Laboratorio Cap. 1 Conceptos de Programacin

    Ing. Hermas Herrera Callejas Pgina : 7 de 19

    El programador ha de conocer perfectamente el hardware del equipo, ya que maneja directamente las posiciones de memoria, registros del procesador y dems elementos fsicos.

    Todas las instrucciones son elementales, es decir, en el programa se deben describir con el mximo detalle todas las operaciones que se han de efectuar en la mquina para la realizacin de cualquier proceso.

    Por otro lado, tanto el lenguaje de mquina como el ensamblador gozan de la ventaja de mnima ocupacin de memoria y mnimo tiempo de ejecucin en comparacin con el resultado de la compilacin del programa equivalente escrito en otros lenguajes. 1.5.4 Lenguajes de alto nivel .- Los lenguajes de alto nivel, tambin denominados lenguajes evolucionados, surgen con posterioridad a los anteriores con los siguientes objetivos, entre otros: 1. Lograr independencia de la mquina, pudiendo utilizar un mismo programa en diferentes equipos con la nica condicin de disponer de un programa traductor o compilador, que es suministrado por el fabricante, para obtener el programa ejecutable en lenguaje binario de la mquina que se trate. Adems, no se necesita conocer el hardware especfico de dicha mquina. 2. Aproximarse al lenguaje natural para que el programa se pueda escribir y leer de una forma ms sencilla, eliminando muchas de las posibilidades de cometer errores que se daban en el lenguaje de mquina, ya que se utilizan palabras (en ingls) en lugar de cadenas de smbolos sin ningn significado aparente 3. Incluir rutinas de uso frecuente, como las de entrada/salida, funciones matemticas, manejo de tablas, etc., que figuran en una especie de librera del lenguaje de manera que se puedan utilizar siempre que se quiera sin necesidad de programarlas cada vez.

    Se puede decir que el principal problema que presentan los lenguajes de alto nivel es la gran cantidad de ellos que existen actualmente en uso, adems de las diferentes versiones o dialectos que se han desarrollado de algunos de ellos. 1.6 REPRESENTACION DE DATOS: CODIFICACIN ALFANUMERICA.- Los datos e informaciones que se manejan internamente en un sistema informtico se pueden representar, segn sus caractersticas, de las siguientes formas:

    ASCII ALFANUMRICAS EBCDIC ....

    Representaciones o cdigos internos

    Coma fija NUMRICAS Coma flotante .... Cdigos alfanumricos

    Una computadora puede trabajar internamente con un conjunto de caracteres

    que nos permitirn manejar datos, informaciones, instrucciones, rdenes de

  • Computacin para Ingeniera I y Laboratorio Cap. 1 Conceptos de Programacin

    Ing. Hermas Herrera Callejas Pgina : 8 de 19

    control etc. Este conjunto de caracteres podemos subdividirlo en los siguientes grupos:

    Caracteres alfabticos. Letras maysculas. Son las letras de la A a la Z (sin la ). Letras minsculas. Son las letras de la a a la z (sin la ).

    Cifras decimales. Son los nmeros 0, 1, 2, 3, 4, 5, 6, 7, 8 y 9.

    Caracteres especiales. Caracteres. Son el punto (.), la coma (,), el punto y coma (;), e1 asterisco

    (*), etc. rdenes de control. Son NUL, CR, ACK, etc.

    En general, cada carcter se maneja internamente en una computadora por medio de un conjunto de 8 bits mediante un sistema de codificacin binario que denominaremos cdigo de caracteres. (9 bits si se incluye el bit de paridad)

    Cada computadora tiene su cdigo de caracteres definidos por el fabricante, si bien la mayora de ellos adaptan a sus equipos cdigos estndar de los ya establecidos. En estos cdigos se representa cada carcter por medio de un byte (8 bits), con lo cual todo tipo de informaciones pueden ser utilizadas internamente, formando cadenas de bytes sucesivos que representarn cadenas de caracteres para que la mquina las maneje e interprete. No todos los tipos de cdigos utilizan para la representacin de caracteres los ocho bits de un byte.

    Hoy da los cdigos ms utilizados son los de 8 bits, de los cuales los ms

    conocidos son el EBCDIC (Extended Binary Coded Decimal Interchange Code) y el ASCII extendido. La Tabla 1.1 representa el cdigo ASCII extendido a 8 bits y la Tabla 1.2 representa el cdigo EBCDIC.

    Tabla 1.1 Cdigo ASCII extendido

    bits 7654

    3210 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111

    0000 000 NUL 016 DLE 032 SP 048 0 064 @ 080 P 096 ` 112 p 128 144 160 176 _ 192 208 224 240

    0001 001 SOH 017 DC1 033 ! 049 1 065 A 081 Q 097 a 113 q 129 145 161 177 _ 193 - 209 225 241

    0010 002 STX 018 DC2 034 " 050 2 066 B 082 R 098 b 114 r 130 146 162 178 _ 194 - 210 226 242 _

    0011 003 ETX 019 DC3 035 # 051 3 067 C 083 S 099 c 115 s 131 147 163 179 195 + 211 227 243

    0100 004 EOT 020 DC4 036 $ 052 4 068 D 084 T 100 d 116 t 132 148 164 180 196 - 212 228 244

    0101 005 ENQ 021 NAK 37% 053 5 069 E 085 U 101 e 117 u 133 149 165 181 197 + 213 i 229 245

    0110 006 ACK 022 SYN 038 & 054 6 070 F 086 V 102 f 118 v 134 150 166 182 198 214 230 246

    0111 007 BEL 023 ETB 039 '' 055 7 071 G 087 W 103 g 119 w 135 151 167 183 199 215 231 247

    1000 008 BS 024 CAN 040 ( 056 8 072 H 088 X 104 h 120 x 136 152 168 184 200 + 216 232 248

    1001 009 HT 025 EM 041 ) 057 9 073 I 089 Y 105 i 121 y 137 153 169 185 201 + 217 + 233 249

    1010 010 LF 026 SUB 042 * 058 : 074 J 090 Z 106 j 122 z 138 154 170 186 202 - 218 + 234 250

    1011 011 VT 027 ESC 043 + 059 ; 075 K 091 [ 107 k 123 { 139 155 171 187 + 203 - 219 _ 235 251

    1100 012 FF 028 FS 044 , 060 < 076 L 092 \ 108 l 124 | 140 156 172 188 + 204 220 _ 236 252

    1101 013 CR 029 GS 045 - 061 = 077 M 093 ] 109 m 125 } 141 157 173 189 205 - 221 237 253

    1110 014 SO 030 RS 046 . 062 > 078 N 094 ^ 110 n 126 ~ 142 158 174 190 206 + 222 238 254 _

    1111 015 SI 031 US 047 / 063 ? 079 O 095 _ 111 o 127Del 143 159 175 191 + 207 223 _ 239 255

  • Computacin para Ingeniera I y Laboratorio Cap. 1 Conceptos de Programacin

    Ing. Hermas Herrera Callejas Pgina : 9 de 19

    Tabla 1.2 Cdigo EBCDIC bits 7654

    3210 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111

    0 1 2 3 4 5 6 7 8 9 A B C D E F

    0000 0 NUL DLE DS SP & _ { } \ 0

    0001 1 SOH DC1 SOS a j ~ A J 1

    0010 2 STX DC2 FS SYN b k s B K S 2

    0011 3 ETX DC3 c l t C L T 3

    0100 4 PF RES BYP PN d m u D M U 4

    0101 5 HT NL LF RS e n v E N V 5

    0110 6 LC BS EOB UC f o w F O W 6

    0111 7 DEL IL ESC EOT g p x G P X 7

    1000 8 CAN h q y H Q Y 8

    1001 9 RLF EM . \ i r z I R Z 9

    1010 A SMM CC SM ! ' :

    1011 B VT . $ , #

    1100 C FF IFS DC4 < * % @

    1101 D CR IGS ENQ NAK ( ) - '

    1110 E SO IRS ACK + ; > =

    1111 F SI IUS BEL SUB | ? "

    Donde los significados de los caracteres de control son: NUL Null SOH Start of Heading. STX Ster of Text. ETX End of Text PF Punch 0ff HT Horizontal Tabulation. LC Lower Case. DEL Delete. RLF Reserve Line Feed. SMM Start of Manual Message. VT Vertical Tabulation. FF Form Feed. CR Carriage Return. SO Shift Out. SI Shift in. DLE Data Link Escape. DC1 Device Control 1. DC2 Device Control 2. DC3 Device Control 3. RES Restore. NL New Line. BS Backspace. IL Idle. CAN Cancel EM End of Medium.

    CC Cursor Control IFS Imterchange File Separator. IGS Interchange Group Separator. IRS Interchange Record Separator. IUS Interchange Unit Separator. DS Digit Select. SOS Start of Significance. FS Field Separator. BYP Bypass. LF Line Feed. EOB End of Block ESC Escape. SM Set Mode. ENQ Enquiry. ACK Acknowledge. BEL Bell. SYN Synchronous Idle. PN Punch On. RS Reader Stop. UC Upper Case. EOT End of Transmission DC4 Device control 4. NAK Negative Acknowledge. SUB Substitute. SP Space

  • Computacin para Ingeniera I y Laboratorio Cap. 1 Conceptos de Programacin

    Ing. Hermas Herrera Callejas Pgina : 10 de 19

    1.7 Tcnicas de programacin

    1.7.1 Programacin convencional

    Aquella que sigue el procedimiento normal de ejecucin de los distintos

    procesos dentro del programa, traduccin del diagrama de flujo a programa fuente, similar a un seudo cdigo, con un principio y un final 1.7.2 Programacin modular

    La programacin modular es un paradigma de programacin que consiste

    en dividir un programa en mdulos subprogramas con el fin de hacerlo ms legible y manejable.

    Se presenta histricamente como una evolucin de la programacin estructurada para solucionar problemas de programacin ms grandes y complejos de lo que sta puede resolver.

    Al aplicar la programacin modular, un problema complejo debe ser dividido en varios sub-problemas ms simples, y estos a su vez en otros sub-problemas ms simples. Esto debe hacerse hasta obtener sub-problemas lo suficientemente simples como para poder ser resueltos fcilmente con algn lenguaje de programacin. sta tcnica se llama refinamiento sucesivo, divide y vencers anlisis descendente (Top-Down).

    Un mdulo es cada una de las partes de un programa que resuelve uno de los subproblemas en que se divide el problema complejo original. Cada uno de estos mdulos tiene una tarea bien definida y algunos necesitan de otros para poder operar. En caso de que un mdulo necesite de otro, puede comunicarse con ste mediante una interfaz de comunicacin que tambin debe estar bien definida. 1.7.3 Programacin estructurada

    La programacin estructurada sigue tres reglas: la secuencia, la iteracin y

    la decisin. La primera de ellas indica que las instrucciones del cdigo se leern de principio a fin; la segunda indica que, segn cierta condicin, un nmero de instrucciones podran repetirse un numero determinado de veces, y la tercera indica que segn unas ciertas condiciones se ejecutarn o no un conjunto de instrucciones.

    En el siguiente algoritmo para limpiar platos, separando los azules se aprecian estas tres caractersticas. La indentacin de las instrucciones indican cules son englobadas y cules no por sus predecesoras. Entre los beneficios de la programacin estructurada se encuentran la facilidad de mantenimiento y la legibilidad por parte de otros programadores mientras haya platos coger plato mientras haya suciedad echar jabon pasar el estropajo por el plato

  • Computacin para Ingeniera I y Laboratorio Cap. 1 Conceptos de Programacin

    Ing. Hermas Herrera Callejas Pgina : 11 de 19

    si plato es azul ponerlo con los azules En cdigo no estructurado, quedara como sigue: 1 coger plato 2 echar jabon 3 pasar el estropajo por el plato 4 si hay suciedad ir a la instruccin 2 5 si el plato no es azul ir a la instruccin 7 6 ponerlo con los azules 7 si hay ms platos ir a la instruccin 1 1.7.4 Estructuras de control

    Las estructuras de control pueden dividirse en dos grupos: De decisin

    IfThen IfThenElse Select Case

    De bucle Do Loop (While / Until) ForNext For each Next

    Anidadas Salidas de estructuras (Exit)

    1.8 Programacin orientada a objetos.- Un estilo de programacin en el que un programa se contempla como un conjunto de objetos limitados que, a su vez, son colecciones independientes de estructuras de datos y rutinas que interactan con otros objetos. Una clase define las estructuras de datos y rutinas de un objeto. Un objeto es una instancia de una clase, que se puede usar como una variable en un programa. En algunos lenguajes orientados a objetos, ste responde a mensajes, que son el principal medio de comunicacin. En otros lenguajes orientados a objeto se conserva el mecanismo tradicional de llamadas a procedimientos. 1.9 Algoritmos.- En matemticas, ciencias de la computacin, y disciplinas relacionadas, un algoritmo (del matemtico persa al-Jwarizmi) es una lista bien definida, ordenada y finita de operaciones que permite resolver un problema.

    En la vida cotidiana se emplean algoritmos en multitud de ocasiones para resolver diversos problemas. Los instructivos (manuales de usuario), para usar un aparato, las instrucciones que recibe un trabajador. Tambin existen ejemplos de ndole matemtico, como el algoritmo de la divisin para calcular el cociente de dos nmeros, el algoritmo de Euclides para calcular el mximo comn divisor de dos enteros positivos, o el mtodo de Gauss para resolver un Sistema lineal de ecuaciones.

  • Computacin para Ingeniera I y Laboratorio Cap. 1 Conceptos de Programacin

    Ing. Hermas Herrera Callejas Pgina : 12 de 19

    En la actualidad, el trmino algoritmo se aplica a muchos de los mtodos

    de resolver problemas que empleen una secuencia mecnica de pasos, como en el diseo de un programa de ordenador o computadora. Esta secuencia se puede representar en la forma de un diagrama de flujo para que sea ms fcil de

    entender. Al igual que los algoritmos usados en aritmtica, los algoritmos para

    ordenadores pueden ser desde muy sencillos hasta bastante complejos. En

    todos los casos, sin embargo, la tarea que el algoritmo ha de realizar debe ser definible. Esta definicin puede incluir trminos matemticos o lgicos o una compilacin de datos o instrucciones escritas. En el lenguaje de la informtica,

    quiere decir que un algoritmo debe ser programable, incluso si al final se comprueba que el problema no tiene solucin. 1.9.1 Importancia.- La importancia de un algoritmo radica en mostrar la manera de llevar a cabo procesos y resolver mecnicamente problemas matemticos o de otro tipo. Al igual que las funciones matemticas, los algoritmos reciben una entrada y la transforman en una salida, para que un algoritmo pueda ser considerado como tal, debe ser una secuencia ordenada, finita y definida (formalizacin de su comportamiento) de instrucciones. De este modo se puede seguir y predecir el comportamiento del algoritmo para cualquier entrada posible.

    El concepto de algoritmo, aunque similar y obviamente relacionado, no debe confundirse con el concepto de programa. Mientras el primero es la especificacin de un conjunto de pasos (operaciones, instrucciones, rdenes,...) orientados a la resolucin de un problema (mtodo), el segundo es ese conjunto de operaciones especificadas en un determinado lenguaje de programacin y para un computador concreto, susceptible de ser ejecutado (o compilado o interpretado). Un algoritmo, estrictamente hablando, no puede ejecutarse hasta que se implementa, ya sea en un lenguaje de programacin, en un circuito elctrico, en un aparato mecnico, usando papel y lpiz, o en algn otro modelo de computacin. 1.9.2 Caractersticas de los algoritmos.- Se han definido cinco propiedades, que son ampliamente aceptadas como requisitos para un algoritmo: Carcter finito. "Un algoritmo siempre debe terminar despus de un nmero finito

    de pasos". Precisin. "Cada paso de un algoritmo debe estar precisamente definido; las operaciones a llevar a cabo deben ser especificadas de manera rigurosa y no ambigua para cada caso". Entrada. "Un algoritmo tiene cero o ms entradas: cantidades que le son dadas antes de que el algoritmo comience, o dinmicamente mientras el algoritmo corre. Estas entradas son tomadas de conjuntos especficos de objetos".

  • Computacin para Ingeniera I y Laboratorio Cap. 1 Conceptos de Programacin

    Ing. Hermas Herrera Callejas Pgina : 13 de 19

    Salida. "Un algoritmo tiene una o ms salidas: cantidades que tienen una relacin

    especfica con las entradas". Eficacia. "Tambin se espera que un algoritmo sea eficaz, en el sentido de que todas las operaciones a realizar en un algoritmo deben ser suficientemente bsicas como para que en principio puedan ser hechas de manera exacta y en un tiempo finito por un hombre usando lpiz y papel".

    A partir del carcter finito y de la salida se deduce que ante una misma

    situacin inicial (o valores de entrada) un algoritmo debe proporcionar siempre el mismo resultado (o salida), con excepcin de los algoritmos probabilistas. 1.10 Mtodos de representacin de los algoritmos.- Los algoritmos pueden

    ser expresados de muchas maneras: Lenguaje natural Pseudocdigo Lenguajes de programacin Diagramas de flujo 1.10.1 Lenguaje Natural.- Las descripciones en lenguaje natural explican el mtodo de solucin del problema, tienden a ser ambiguas y extensas. El usar pseudocdigo y diagramas de flujo evita muchas ambigedades del lenguaje natural. Dichas expresiones son formas ms estructuradas para representar algoritmos. 1.10.2 Pseudocdigo.- Trmino genrico para nombrar las instrucciones del programa, utilizadas en dos sentidos generales derivados del diagrama de flujo. Pseudocdigo es la descripcin de un algoritmo que asemeja a un lenguaje de programacin pero con algunas convenciones del lenguaje natural. Tiene varias ventajas con respecto a los diagramas de flujo, entre las que se destaca el poco espacio que se requiere para representar instrucciones complejas. El pseudocdigo no est regido por ningn estndar. Pseudo viene de falso y por ende es un cdigo que, aunque es entendible, no se aplica al proceso que debe realizar la maquina. 1.10.3 Lenguajes de Programacin.- Descritos ya anteriormente con mayor detalle 1.10.4 Diagramas de flujo.- Los diagramas de flujo son descripciones

    grficas de algoritmos; usan smbolos conectados con flechas para indicar la secuencia de instrucciones y estn regidos por normas ISO.

    Los diagramas de flujo son usados para representar algoritmos pequeos, ya que abarcan mucho espacio y su construccin es laboriosa. Por su facilidad de lectura son usados como introduccin a los algoritmos, descripcin de un lenguaje y descripcin de procesos a personas ajenas a la computacin.

    Diagrama secuencial empleado en muchos campos para mostrar los

    procedimientos detallados que se deben seguir al realizar una tarea, como un

  • Computacin para Ingeniera I y Laboratorio Cap. 1 Conceptos de Programacin

    Ing. Hermas Herrera Callejas Pgina : 14 de 19

    proceso de fabricacin. Tambin se utilizan en la resolucin de problemas, como

    por ejemplo en algoritmos. Los diagramas de flujo se usan normalmente para seguir la secuencia lgica de las acciones en el diseo de programas de computadoras. 1.10.4.1 Smbolos

    1.10.4.2 Tipos.- Muchos algoritmos son ideados para implementarse en un programa. Sin embargo, los algoritmos pueden ser implementados en otros medios, como una red neuronal, un circuito elctrico o un aparato mecnico. Algunos algoritmos inclusive se disean especialmente para implementarse usando lpiz y papel. El algoritmo de multiplicacin tradicional, muchas formas de resolver la raz cuadrada son slo algunos ejemplos. Hay tambin Diagramas de flujo de Sistemas donde se utilizan otros smbolos adicionales a los mostrados o inclusive con otro significado 1.11 EJERCICIOS DE DIAGRAMAS DE FLUJO.- Realizar los diagramas de

    flujo para resolver los siguientes problemas 1.- Convertir metros a Dm, Hm y Km (Dato: metros)

    Inicio / Fin

    Entrada / Salida

    Proceso

    Decisin

    Proceso iterativo

    Proceso predefinido

    Conector dentro de pgina

    Conector fuera de pgina

    Direccin de flujo

  • Computacin para Ingeniera I y Laboratorio Cap. 1 Conceptos de Programacin

    Ing. Hermas Herrera Callejas Pgina : 15 de 19

    2.- Hallar el rea y permetro de un rectngulo (Datos: base, altura) 3.- Sumar los nmeros enteros, los cuadrados y los cubos de 1 a N (Dato: N) 4.- Decidir segn moneda. Si al lanzar cae cara ir al cine, caso contrario estudiar 5.- Encontrar el MAYOR de 3 nmeros diferentes (Datos: A, B, C) 6.- Encontrar el MAYOR y el MENOR de 3 nmeros diferentes (Datos: A, B, C) 7.- Hay 3 barras de diferente longitud. Comprobar si forman un tringulo. (Si la

    suma de todo par de lados es mayor que el tercero, forman tringulo, caso contrario no)

    8.- Se deben digitar R, G, o B (Rojo, Verde o Azul). Imprimir color Rojo, Verde o Azul segn las letras introducidas especificadas anteriormente)

    9.- Evaluar la funcin: X

    Y39

    100, donde x es la abscisa e Y es la ordenada. (Si

    X = 3 no se puede dividir 10.- El cuadrado de un nmero entero N es la suma de los N primeros nmeros

    impares (Dato N, N

    i

    iN1

    2 )12(

    11.- Calcular el factorial de un nmero N introducido 12.- Calcular el salario e imprimir la boleta de pago de los empleados (Datos:

    Nombre, horas trabajadas, salario por hora, fin de archivo) Pago regular hasta 40 Hs semanales Sobretiempo: 50% ms que el salario normal Imprimir: Nombre, Hs trabajadas, salario/hora, salario normal, sobretiempo y pago total

    13.- Imprimir el reporte de ventas (Vendedor, Nro de Orden, valor de la venta, Totales por vendedor, Total compaa) leyendo la informacin de un archivo

    14.- Se ingresarn N valores para X. Calcular el valor promedio N

    X

    X

    N

    i

    i

    1

    15.- La funcin xe se puede calcular con la frmula !

    ....!3!2!1

    1321

    n

    xxxxe

    nx

    Llamemos NUM = Numerador, DEN = Denominador, TER = trmino = N/D. Detener el proceso cuando el trmino TER sea menor o igual a 0.00005

    16.- Cargar un vector de N elementos con valores introducidos al azar, luego buscar el valor mayor y su ubicacin e imprimir la informacin encontrada

    17.- Construir la matriz identidad de N x N 18.- Se dispone de 9 bolas de billar, todas iguales menos una que tiene peso

    diferente. En 3 pesadas debemos determinar cual es la diferente adems de saber si es ms pesada o ms liviana que las dems

    19.- Dado un nmero, determinar si el mismo es par o impar 20.- Dado un nmero, determinar si el mismo es primo o no es primo 21.- Hallar la suma de los N primeros nmeros pares 22.- Se debe introducir la temperatura ya sea en oC o oF. Convertir los valores a

    oF o oC segn corresponda. (Ver cmo identificar el valor introducido) 23.- Ordenar M nmeros introducidos al azar, en forma ascendente. Podemos

    usar el mtodo de comparaciones sucesivas con el primer nmero.

  • Computacin para Ingeniera I y Laboratorio Cap. 1 Conceptos de Programacin

    Ing. Hermas Herrera Callejas Pgina : 16 de 19

    No Si Si No Si No Si No Si No Si

    INICIO

    I=0

    I=I+1

    Leer N(I)

    I=M?

    I=M

    I=I-1

    J=0

    J=J+1

    N(J)>N(J+1)

    J=I?

    I=1

    I=0

    I=I+1

    Escribir N(I)

    I=M?

    Fin

    AUX=N(J)

    N(J)=N(J+1)

    N(J+1)=AUX

    Leer M

  • Computacin para Ingeniera I y Laboratorio Cap. 1 Conceptos de Programacin

    Ing. Hermas Herrera Callejas Pgina : 17 de 19

    24.- Generar los N primeros nmeros primos Si No No Si Si No No No Si Si No Si

    Inicio

    Def P(I), I, N, K, J, DIVE

    Fin ?

    Leer N

    Ejecutar ?

    N>0 ?

    Fin

    N debe ser > 0

    A

    A

    A

    J = 1, K = 0

    DIVE = 0

    I = 1, J

    J Mod I = 0 ?

    DIVE = DIVE + 1

    I

    B

    B

    K = K + 1

    P(K) = J

    DIVE>2 ?

    K=N ? J=J+1

    I = 1, N

    Imprimir P(I)

    I

    C

    A

    C

  • Computacin para Ingeniera I y Laboratorio Cap. 1 Conceptos de Programacin

    Ing. Hermas Herrera Callejas Pgina : 18 de 19

    25.- Invertir los dgitos de un nmero N entero, positivo de dos cifras o ms Si No No Si No Si No Si

    Inicio

    Def A, N, N1, DIG

    Fin ?

    Leer N

    Invertir ?

    N>11 ?

    Fin

    N debe ser > 11

    A

    A

    A

    A = N, N1 = 0

    A A > 0 ?

    DIG = A Mod 10

    N1 = N1*10 + DIG

    A = A \ 10

    Desplegar N1

  • Computacin para Ingeniera I y Laboratorio Cap. 1 Conceptos de Programacin

    Ing. Hermas Herrera Callejas Pgina : 19 de 19

    26.- Construir una matriz de N x N con N impar y mayor a 2. Calcular las sumas de los vectores centrales (vertical y horizontal) adems de la suma total de los vectores centrales (horizontal y vertical)

    Si No No Si No Si

    Inicio

    Def A(I, J), N, I, J, C, S, K, H, V

    Fin ?

    Leer N

    Ejecutar ?

    N>2 y N Mod 2= 1?

    Fin

    N debe ser impar y > 2

    A

    A

    A

    H = 0, V = 0, S = 0

    J

    H = H + A(I, K)

    V = V + A(K, I) Leer C

    I = 1, N

    J = 1, N

    A(I, J) = C

    I

    S = 0, K = N \ 2 + 1

    B

    B

    I = 1, N

    I

    S = H + V A(K, K)

    Imprimir H, V, S

    A