Docentes: Lic. J. Carla Aguirre Montalvo Lic. C. Flabio Beltrán Gestión - 2012 UNIVERSIDAD SALESIANA DE BOLIVIA Docente: Lic. Carla Aguirre – Lic. Flabio Beltrán Materia: Introducción a la Programación Carrera: CONTADURÍA PÚBLICA ÍNDICE I. PRESENTACIÓN II. CONTENIDO O CUERPO DEL DOSSIER 2.1. CONTENIDOS MÍNIMOS OFICIALES 2.2. CONTENIDOS ANALÍTICOS UNIDAD I. INTRODUCCIÓN A LA INFORMÁTICA Y ELEMENTOS DEL COMPUTADOR Introducción Conceptos y definiciones fundamentales Elementos y conceptos Constitutivos Computadora y computación. Software.Hardware.Dispositivos de Entrada. (Teclado, Mouse, Escáner, Tableta digitalizadota y otros) Unidad Central de Proceso.(Unidad de Control, Unidad Aritmético Lógica, Memoria Central). Dispositivos de Salida (El monitor o pantalla, impresoras y otros.). Dispositivos de Almacenamiento. Unidades o Dispositivos de Entrada y Salida. Software Base u Horizontal. Software de Aplicación o Vertical. Evolución Histórica del Computador. Generación de Computadores. UNIDAD II ALGORITMOS Nociones de algoritmos Características de los algoritmos Algoritmos de la vida real Identificadores y reglas Variables Constantes Variables usos y costumbres Tipos de Operadores Operadores Aritmeticos Operadores relacionales Operadores Lógicos Jerarquía de Operadores Expresiones Ejercicios Propuestos Estructuras algorítmicas Técnicas para la formulación de Algoritmos Diagramas de Flujo Pseudocódigo UNIDAD III. ESTRUCTURAS SECUENCIALES. Definición. Asignación. Lectura, Escritura. 2 UNIVERSIDAD SALESIANA DE BOLIVIA Docente: Lic. Carla Aguirre – Lic. Flabio Beltrán Materia: Introducción a la Programación Carrera: CONTADURÍA PÚBLICA Resolución de Problemas, UNIDAD IV. ESTRUCTURAS CONDICIONALES O SELECTIVAS. Definición. Simples Dobles Múltiples Resolución de Problemas UNIDAD V. ESTRUCTURAS REPETITIVAS Definición. While Do-While For Resolución de Problemas Ejercicios Interdisciplinarios de Descomposición Sumatorias Series, Matemática Financiera y Lotes UNIDAD VI. ARREGLOS Conceptos de Arreglos Tipos de Arreglos Arreglos Unidimensionales Arreglos Bidimensionales Operaciones con Arreglos Ejercicios de Aplicación LECTURAS COMPLEMENTARIAS BIBLIOGRAFIA GLOSARIO 3 UNIVERSIDAD SALESIANA DE BOLIVIA Docente: Lic. Carla Aguirre – Lic. Flabio Beltrán Materia: Introducción a la Programación Carrera: CONTADURÍA PÚBLICA DOSSIER INTRODUCCIÓN A LA PROGRAMACIÓN I. PRESENTACIÓN En el presente Dossier iniciaremos haciendo conocer conceptos introductorios básicos para entender los componentes y elementos del computador y nos vamos a centrar en dos aspectos muy importantes de los algoritmos, como son su diseño y el estudio de su eficiencia. El primero se refiere a la búsqueda de métodos o procedimientos, secuencias finitas de instrucciones adecuadas así como la utilización de estructuras condicionales y repetitivas considerando los dispositivo que disponemos, que permitan resolver el problema. Por otra parte, el segundo nos ofrece la posibilidad de comparar distintos algoritmos que resuelven un mismo problema. Pretendemos presentar una serie de concepto y definiciones propios del estudio de los Algoritmos, su análisis y diseño. Finalmente veremos los que es la verificación y derivación de programas, donde daremos los conceptos básicos y fundamentso referentes al lenguaje de programación Visual Basic. 1.1. Justificación Es importante el estudio y conocimiento de lo que hoy conocemos como Algoritmos Computacionales, que desde su aparición hasta nuestros días es, y seguirá siendo; vital para el desarrollo de aplicaciones para computadoras y el manejo y dominio de la lógica de programación para resolver problemas. 1.2. Objetivos General : Posibilitar la estudiante alcanzar una visión sistemática de lo que conocemos sobre Los Algoritmos Computacionales. Específicos : Introducir los conceptos propios sobre Algoritmo, su importancia en el mundo de las aplicaciones para computadoras y el manejo de lógica de programación. Proporcionar una idea de su uso. Visualizar sus ventajas e importancia. Definir sus tipos y variantes. Proporcionar conceptos sobre su análisis y diseño. Proporcionar concepto sobre las técnicas de diseño. Especificar e ejemplificar los diferentes ejemplos de estructuras algorítmicas. Conocer los conceptos básicos y fundamentos de la programación básicos. 1.3. Dossier como política educativa? ¿Cuál es mi política educativa? El alumno al iniciar el estudio de la materia debe cumplir requisitos imprescindibles, que están establecidos bajo normas salesianas, acordes a un alumno de universidad. Estar inscrito formalmente en la universidad y poseer su carnet de universitario de la universidad salesiana. Ser Bachiller y haber cursado el primer semestre de la carrera de contaduría pública y sistemas. Tener conocimientos básicos sobre el manejo de la computadora. 4 UNIVERSIDAD SALESIANA DE BOLIVIA Docente: Lic. Carla Aguirre – Lic. Flabio Beltrán Materia: Introducción a la Programación Carrera: CONTADURÍA PÚBLICA Cumplir con las normas de conducta requeridas en una casa superior de estudio. La forma de evaluación de estos aspectos deben ser considerados a través del reglamento de la Universidad Salesiana y para reconocer los conocimientos básicos a través de la evaluación diagnóstica. ¿Que quiero hacer en pedagogía? Dejo de ser el depositario de la verdad que debe transmitir a una mente, para convertirme en un miembro del grupo con una función de guía, como un estimulador y organizador del aprendizaje, como un supervisor de una tarea que es ejecutada fundamentalmente por otros y no únicamente por mi persona. ¿Cuáles son mis prioridades? Entre mis prioridades está: Dar cumplimiento al objetivo de la materia. Motivar a los alumnos para incorporar las posibilidades de las nuevas TIC´s en las actividades de enseñanza - aprendizaje. En el plan de disciplina propuesto existe el empleo de técnicas de grupo que deberán ser traducidas ha experiencias, para que puedan ser vividas como tales en la situación grupal. El planeamiento facilita normas para organizar un plan de disciplina por unidades, respetando y alcanzando objetivos operacionalmente definidos, evaluando los resultados. 5 UNIVERSIDAD SALESIANA DE BOLIVIA Docente: Lic. Carla Aguirre – Lic. Flabio Beltrán Materia: Introducción a la Programación Carrera: CONTADURÍA PÚBLICA II. CONTENIDO O CUERPO DEL DOSSIER 2.3. CONTENIDOS MÍNIMOS OFICIALES Organización de las Computadoras – Hardware – Software – Algoritmos y Programas - Representación de datos y Tipos de datos – Operaciones de Asignación Instrucciones y tipos de Instrucciones –- Expresiones –Estructura de un programa – Estructura Secuencial – Estructuras Selectivas – Estructuras repetitivas – Aplicaciones contables algorítmicas – 2. 2. CONTENIDOS ANALÍTICOS UNIDADES Y CONTENDIDO ANALÍTICO DE LA MATERIA UNIDAD I INTRODUCCIÓN A LA INFORMÁTICA Y ELEMENTOS DEL COMPUTADOR Introducción. Conceptos y definiciones fundamentales. Definición de informática, dato, información, sistema, computadora y computación. Sistema Operativos - Hardware.- Dispositivos de Entrada. (Teclado, Mouse, Escáner, Tableta digitalizadota y otros) Unidad Central de Proceso.(Unidad de Control, Unidad Aritmético Lógica, Memoria Central). Dispositivos de Salida (El monitor o pantalla, impresoras y otros.). Dispositivos de Almacenamiento. Unidades o Dispositivos de Entrada y Salida. Software.- Software Base u Horizontal. Software de Aplicación o Vertical. Evolución Histórica del Computador. Generación de Computadores. UNIDAD II ALGORITMOS Nociones de algoritmos, características de los algoritmos, Análisis de un algoritmo, algoritmo de la vida diaria, planteo de problemas, construcción de modelo, diseño del algoritmo, prueba de correctitud, Datos tipos de datos y operaciones primitivas. Tipos de operadores y Expresiones, Operaciones de Asignación ,Tipos de datos, constantes y Variables. Resolución de Problemas, Ejercicios. Diagramas de flujo UNIDAD III ESTRUCTURAS SECUENCIALES. Definición. Asignación. Lectura. Escritura. Resolución de Problemas, Ejercicios de aplicación contable. UNIDAD IV ESTRUCTURAS CONDICIONALES O SELECTIVAS. Definición. Simples, dobles y Múltiples. Resolución de Problemas, Ejercicios de aplicación contable. UNIDAD V ESTRUCTURAS REPETITIVAS Definición. While. For. Do-While. Resolución de Problemas, Ejercicios Interdisciplinarios de Descomposición, Sumatorias, Series, Matemática Financiera y Lotes. UNIDAD VI 6 UNIVERSIDAD SALESIANA DE BOLIVIA Docente: Lic. Carla Aguirre – Lic. Flabio Beltrán Materia: Introducción a la Programación Carrera: CONTADURÍA PÚBLICA ARREGLOS UNIDIMENSIONALES Y BIDIMENSIONALES Conceptos de Arreglos – Tipos de Arreglos – Arreglos Unidimensionales –Arreglos Bidimensionales– Operaciones con Arreglos – Ejercicios de Aplicación 2.3. Documentos Desarrollados 7 UNIVERSIDAD SALESIANA DE BOLIVIA Docente: Lic. Carla Aguirre – Lic. Flabio Beltrán Materia: Introducción a la Programación Carrera: CONTADURÍA PÚBLICA UNIDAD 1. INTRODUCCIÓN A LA INFORMÁTICA Y ELEMENTOS DEL COMPUTADOR 1.1. INTRODUCCIÓN A LA INFORMÁTICA La informática es un mundo que cambia muy rápidamente y lo que hoy es una novedad o un gran avance, mañana puede ser algo obsoleto que ya no se utiliza. Pero no te preocupes, en este curso vamos a enseñarte lo más básico, que es aquello que menos cambios experimenta. Pero dejémonos de palabrería y comencemos ya. 1.2. Definiciones 1.2.1. Informática Informática es la ciencia del tratamiento automático (por realizarse mediante máquinas - hoy en día electrónicas -) y racional (está controlado mediante ordenes que siguen el razonamiento humano) de la información. 1.2.2. Origen Este término apareció en Francia en 1962 uniendo las palabras 'information' y 'automatique'. En los países anglosajones se utiliza la frase Ciencia de las Computadoras (Computer Science). La informática se ocupa entre otros de los siguientes temas: El desarrollo de nuevas máquinas (ordenadores y periféricos) El desarrollo de nuevos métodos de trabajo (sistemas operativos) El desarrollo de nuevas aplicaciones informáticas (software o programas) A lo largo de este curso podrás conocer los principales elementos que se utilizan en informática. Además, no hace falta estar delante de un ordenador para utilizar la informática, ya que hoy en día está muy extendida en muchas áreas y en nuestra vida diaria es fácil encontrarnos con ella, aunque muchas veces sin saberlo: Los cajeros automáticos. Los efectos especiales de muchas películas. La creación y grabación de música. Sistemas de navegación aérea. Los sistemas de seguridad y control que incorporan los coches modernos. En estos, y en muchos casos más, la informática juega un papel decisivo e importante, con el objetivo de facilitar el tratamiento de la información. 1.3. Elementos y conceptos Constitutivos 1.3.1. Computación La computación es definida como la ciencia que trata el procesamiento de datos, utilizando como medios a un equipo electrónico denominado computadora u ordenador, el cual en base a un orden binario (1, 0 lenguaje máquina) es capaz de realizar operaciones aritmética - lógica con gran rapidez y precisión. 1 = encendido, 0=apagado. 8 UNIVERSIDAD SALESIANA DE BOLIVIA Docente: Lic. Carla Aguirre – Lic. Flabio Beltrán 1.3.2. Materia: Introducción a la Programación Carrera: CONTADURÍA PÚBLICA Dato Es información elemental que por si sola no tiene sentido o que no provee de ninguna información. 1.3.3. Información Es todo aquello que permite adquirir cualquier tipo de conocimiento. Los datos pueden ser agrupados bajo leyes y determinadas reglas para constituirse en información. 1.3.4. Sistema En forma elemental un sistema puede describirse como una serie de elementos unidos de algún modo a fin de lograr metas comunes y mutuas. Una definición más completa seria la siguiente: Un sistema es un conjunto de elementos que forman una actividad o un procedimiento o plan de procesamiento que buscan una meta o metas comunes. Mediante la manipulación de datos, energía o materia, en una referencia de tiempo, para proporcionar información, energía o materia. La palabra sistema es posiblemente el término más sobreutilizado y del que más se ha abusado en el léxico técnico. Hablamos de sistemas políticos y educativos, de fabricación, de sistemas bancarios y otros. Es un sistema que transforma Sistema de procesamiento datos en información organizade datos da, significativa y útil, para resolver problemas en distintas áreas. Entrada (DATOS en bruto) PROCESO Componentes Entrada Proceso Salida INFORMACIÓN Proceso o transformación Entrada: Ingredientes y utensilios necesarios Ejemplo práctico: El concepto de una receta de cocina es un ejemplo sencillo para tener clara la idea de entrada, proceso y salida. Proceso: Elaboración de la receta. Salida: Plato elaborado . 1.4. Computador.- Es una máquina electrónica universal para procesar datos, capaz de interpretar y ejecutar una serie de operaciones, relativas al tratamiento de la información y resolver cualquier tipo de problemas. 1.4.1. Hardware Hard - dura Ware - herramienta Se refiere a la parte dura imposible de modificar es decir, la construyen los elementos físicos que configuran la computadora en el lenguaje informático se denomina HARDWARE. Ejemplo monitor, CPU, teclado, impresora, ratón, lápiz óptico, cables, soportes de la información. Hay cuatro partes fundamentales en una computadora: a. Dispositivos de entrada b. Unidad Central de proceso c. Memoria auxiliar o almacenamiento secundario 9 UNIVERSIDAD SALESIANA DE BOLIVIA Docente: Lic. Carla Aguirre – Lic. Flabio Beltrán Materia: Introducción a la Programación Carrera: CONTADURÍA PÚBLICA d. Dispositivos de salida El esquema siguiente muestra la relación que hay entre ellas: Unidad Central de Proceso UNIDAD DE ENTRADA Unidad de Control + Unidad Aritmético Lógica UNIDAD DE SALIDA Memoria Central MEMORIA AUXILIAR 1.4.1.1. Dispositivos de entrada Se refiere a la alimentación de datos para el procesamiento se realiza mediante diversos dispositivos, mediante los cuales se transfiere información del exterior hacia la memoria de la computadora. Existen dos tipos de dispositivos, aquellos que convierten los datos en un formato capaz de ser interpretado por el ordenador como el teclado y los que permiten su entrada directa como el escáner, lectores de tarjetas o códigos de barras o la pantalla táctil. El teclado: Compuesto como su nombre indica por una serie de teclas que representan letras, números y otros caracteres especiales. Al presionar un carácter en el teclado se produce un tren de impulsos que ingresa en el ordenador a través de un cable. Todo tren de impulsos está constituido por estados de tensión eléctrica y no tensión, unos y ceros, es decir, por bits. El Ratón o Mouse: Los más habituales son los ratones mecánicos, en estos en su parte inferior se encuentra una bola que rueda al deslizar el ratón sobre la superficie de la mesa o de una alfombrilla, el movimiento de la bola se transmite a dos ejes perpendiculares y de éstos a unas ruedas dentadas con un sistema óptico que permite captar el giro de cada una de estas ruedas, de aquí, mediante la electrónica del ratón, estos valores de movimiento serán enviados por el puerto serie (COM 1, COM 2,..) - por el puerto serie los datos se transmiten bit a bit -, o de un bus especial para el ratón, hacia la CPU, que mediante el programa adecuado podrá situar el cursor en la pantalla. Al pulsar el botón o botones del ratón, la CPU sabrá, por tanto, sobre que elemento de la pantalla se está actuando. 10 UNIVERSIDAD SALESIANA DE BOLIVIA Docente: Lic. Carla Aguirre – Lic. Flabio Beltrán Materia: Introducción a la Programación Carrera: CONTADURÍA PÚBLICA El Escáner: Permite convertir información gráfica en una imagen digitalizada o mapa de bits ("Bitmap"). La imagen que se desea digitalizar se coloca en el escáner, en éste la imagen es recorrida por un haz luminoso, y la luz reflejada es recogida por un dispositivo tipo CCD (del mismo tipo que el que incorporan las cámaras de vídeo) que convierte la señal luminosa en señal eléctrica, posteriormente esta información se convierte en señales digitales que ingresaran en el ordenador. La tableta digitalizadora: Consiste en un tablero de dibujo que puede ser recorrido por un lápiz, los movimientos del lápiz se convierten en informaciones digitales y se envían al ordenador a través del puerto serie. Otros periféricos de entrada: Lectores de códigos de barras, Lectores de fichas perforadas (en desuso), … 1.4.1.2. Unidad Central de Proceso CPU (Unidad Central de procesamiento) El responsable de la ejecución de los programas y del control de los demás elementos. La CPU (central process unit) contiene miles de transistores en una pequeña pastilla de silicio (también llamado chip o circuito integrado) y pues de ejecutar muchas operaciones diferentes, como suma multiplicación, lectura de informaciones del teclado y envío de información hacia la pantalla e impresora. El funcionamiento de la CPU está controlado por programas almacenados en la memoria principal de la computadora. Se divide en tres partes. 1. Unidad Aritmética Lógica 2. Unidad de control 3. Memoria principal 1.4.1.2.1. 1.4.1.2.2. 1.4.1.2.3. Unidad Aritmética Lógica.- Es la Parte del procesador encargada de realizar todas las operaciones elementales de tipo aritmético de tipo lógico. Es la parte encargada de procesar los datos, se conoce también como ALU (ArithmeticLogic Unit) Unidad de Control.- Es la parte del procesador encargada de gobernar al resto de las unidades, además de interpretar y ejecutar las instrucciones controlando su secuencia. Dirige la ejecución del programa y controla tanto el movimiento entre memoria y ALU, como las señales que circulan entre la CPU y los Periféricos. Memoria principal.- es la zona del CPU - UCP donde se almacena toda la información que se introduce a la computadora, tantos datos como programas para medir la capacidad de la memoria si tiene las siguientes medidas. Podemos imaginar la memoria como un conjunto de casillas, cada una con una dirección que la identifica, donde se almacenan los datos y las instrucciones correspondientes a los programas. 11 UNIVERSIDAD SALESIANA DE BOLIVIA Docente: Lic. Carla Aguirre – Lic. Flabio Beltrán Materia: Introducción a la Programación Carrera: CONTADURÍA PÚBLICA Para conocer la ubicación de cada dato estas casillas deben estar convenientemente numeradas, es lo que se denomina dirección de memoria. En cada casilla podremos almacenar una determinada cantidad de bits según el ordenador, 8bits (1 Byte), 16 bits, 32 bits,.. .El número de bits que almacena un ordenador en cada casilla de la memoria y que puede manipular en cada ciclo se la denomina longitud de palabra ("word" en inglés). La siguiente tabla muestra, a modo de ejemplo, varias posiciones de memoria en un ordenador cuya longitud de palabra es de 8 bits, por tanto en cada dirección de memoria se almacena 1 Byte. 1 bits = 1 carácter o letra 1 Byte = 8 bits o palabra 1 Kilobyte = 1024 Bytes 1 Megabyte = 1024 Kilobyte 1 Gigabyte = 1024 Megabyte Memoria interna La unidad del sistema contiene dos tipos de memoria: RAM y ROM. La memoria ROM (read only memory) o memoria de sólo lectura, en la que se encuentran el test de fiabilidad del ordenador (POST: Power on Self Test), las rutinas de inicialización y arranque, y la BIOS que proporciona los servicios fundamentales para que el ordenador sea operativo, en su mayor parte controla periféricos del ordenador como la pantalla, el teclado y las unidades de disco. El término Memoria de Solo Lectura, significa que esta memoria no puede ser modificada y aun cuando apaguemos el ordenador la información permanecerá inalterada en la ROM. La memoria RAM(random acces memory), o memoria de acceso aleatorio, permite la lectura y la escritura, o sea, el microprocesador puede leer el contenido de esta memoria y también escribir información en ella. que es la encargada de almacenar los datos y los programas que la CPU está procesando. El término acceso aleatorio significa que no es necesario leer una serie de datos para acceder al que nos interesa, sino que podemos acceder directamente al dato deseado. Esta memoria depende del suministro de tensión eléctrica para mantener la información y por tanto al apagar el ordenador los datos almacenados en ella se perderán. La memoria RAM es volátil, es decir, cuando la computadora es desconectada, todo su contenido se pierde, de modo que la memoria RAM es una unidad de almacenamiento de datos temporal. Si, por ejemplo, dedica varias horas a escribir un texto sin grabarlo ninguna vez en disco durante ese tiempo, y por algún accidente la computadora se desconecta, todo el texto que estaba en la memoria se perderá. 1.4.1.3. Dispositivos de Salida.- Se refiere a los datos de información que se tiene como resultado y es preciso conocerlos, se realiza con diversos, dispositivos mediante los cuales se transfiere datos o informaciones de la memoria del computador hacia el exterior para su conocimiento. Presentan al usuario los datos ya elaborados que se 12 UNIVERSIDAD SALESIANA DE BOLIVIA Docente: Lic. Carla Aguirre – Lic. Flabio Beltrán Materia: Introducción a la Programación Carrera: CONTADURÍA PÚBLICA encuentran en la memoria del ordenador, los más habituales son el monitor y la impresora. La pantalla: Consiste, en los equipos de sobremesa, en un tubo de rayos catódicos, en éste tres haces de electrones correspondiendo a los tres colores básicos (rojo, verde y azul) inciden sobre una rejilla tras la cual está situada una pantalla de fósforo que se ilumina. Estos haces recorren la pantalla de izquierda a derecha y de arriba a abajo formando la imagen. Hecho esto se sitúan de nuevo en la esquina superior izquierda para formar una nueva imagen. Cada uno de estos tres haces da lugar a un punto de color básico (rojo, verde o azul), la agrupación de los tres puntos de color básicos da lugar a un punto de la imagen denominado pixel, ver Figura. Los círculos en negro que agrupan a tres puntos de color representan un pixel y el diámetro de éste el tamaño del pixel; la doble flecha indica la distancia entre pixels, ambos elementos decisivos en la calidad de un monitor. Por último, respecto al monitor cabe destacar la frecuencia con que estos haces forman una imagen, cuanto mayor sea ésta mayor será la calidad de la imagen, y la máxima resolución con que pueda trabajar, número de pixels horizontales y verticales. El monitor recibe a su vez la información de la tarjeta gráfica, en ésta cabe distinguir la memoria de vídeo que implicará la máxima resolución que pueda producir la tarjeta gráfica, y a partir del desarrollo VGA el DAC (Conversor Digital Analógico) encargado de traducir la señal digital generada por el procesador a formato analógico para que pueda ser representada en el monitor. En la Figura 9 se representa la memoria correspondiente a diversos estándares de tarjetas gráficas. La impresora: Nos sirve para tener una copia impresa de datos o figuras, en definitiva de la información elaborada o almacenada en el ordenador. Existen diferentes tipos de impresoras, matriciales o de agujas, de inyección de tinta, láser, etc. . Todas ellas suelen recibir la información a través del puerto paralelo del ordenador - por el puerto paralelo (LPT 1,..) los datos se transmiten en grupos de 8 bits - y utilizan para ello un cable tipo Centronics. Las impresoras matriciales contienen en el cabezal de impresión una serie de agujas (9, 18, 24 ó 48) que golpean la cinta entintada y ésta al papel, dando lugar así a la información impresa. El número de agujas, evidentemente, implica una mayor calidad en la impresión. Las impresoras matriciales suelen disponer de una técnica denominada NLQ que consiste en imprimir el mismo carácter dos veces pero ligeramente desplazado, de este modo se puede mejorar la calidad de la impresión, aunque ésta resulta más lenta. La principal ventaja de las impresoras matriciales es su bajo costo y su rapidez. Existen impresoras matriciales de color aunque los resultados son bastante limitados. Las impresoras de inyección contienen un cartucho de tinta para la impresión en blanco y negro y otro o otros tres con los colores Cyan, Magenta y Amarillo para la impresión en color. En estas impresoras la tinta se sitúa en el cabezal y mediante una resistencia se calienta éste que expulsa una burbuja de tinta contra el papel. Las impresoras de inyección producen muy buenos resultados en la impresión tanto en blanco y negro como en color. Debido a su reducido coste y a su calidad son hoy día las de mayor aceptación. Las impresoras láser utilizan un tambor fotosensible que es activado por un láser, este tambor después de ser activado por el láser queda impregnado por el carboncillo del toner que puede pasar al papel. Las impresoras láser producen documentos de gran calidad y con una velocidad superior a las de inyección, pero requieren de una memoria o buffer elevada y suelen ser caras. 13 UNIVERSIDAD SALESIANA DE BOLIVIA Docente: Lic. Carla Aguirre – Lic. Flabio Beltrán Materia: Introducción a la Programación Carrera: CONTADURÍA PÚBLICA Un grupo especial de impresoras láser y también de inyección lo constituyen las impresoras PostScript, en éstas la imagen no es enviada a la impresora en forma de matriz de puntos, sino como gráfico vectorial, de este modo se le puede decir a la impresora "imprime un circulo de radio r cm centrado en el punto x,y", el resultado es una mayor calidad de impresión en gráficos y figuras. Existen otros tipos de impresoras como las de margarita, transferencia térmica de cera, de sublimación, etc. . Otros dispositivos de salida: El Trazador Gráfico o Plotter: Este dispositivo mediante una serie de lápices de dibujo que va escogiendo puede realizar dibujos de gran precisión, se utiliza en diseño gráfico y estudios de arquitectura básicamente. Otros dispositivos como ser los Parlantes, Dispositivos de almacenamiento secundarios.- Son los dispositivos de almacenamiento masivo de información que se utilizan para guardar datos y programas en el tiempo para su posterior utilización. La característica principal de los soportes que manejan estos dispositivos es la de retener la información a lo largo del tiempo mientras se desee, recuperándola cuando sea requerida y sin que se pierda, aunque el dispositivo quede desconectado de la red eléctrica. También se denomina memoria secundaria. Ejemplos: discos duros, CD - ROM, Flash, Pendriver, USB, Unidades de ZIP, etc. Discos Duros (HD): Se componen de varios discos circulares rígidos, y no flexibles como en el caso de las disqueteras, recubiertos de un material susceptible de ser magnetizado. Pueden ser grabados o leídos mediante un cabezal por ambas caras mediante un proceso similar al de los FD, la diferencia estriba en la muy superior velocidad de giro de éstos, por lo menos unas 3.600 r.p.m. Los HD pueden lograr estas elevadas velocidades de giro debido a que se encuentran herméticamente cerrados dentro de una carcasa de aluminio. Debido a las elevadas velocidades de giro los HD logran unos tiempos de búsqueda promedio muy inferiores a las disqueteras y unas velocidades de transferencia muy superiores, ambas características los convierten en el medio más rápido - excluyendo la memoria principal - para almacenar o transferir información por el momento. El proceso de formatear el HD se realiza de forma similar al disquete, pero como ya hemos comentado, los discos duros suelen estar formados por más de un disco y cada uno de estos puede ser formateado por ambas caras. Así un HD se divide en cabezales, cada uno de éstos en cilindros o pistas, y cada una de éstas, en sectores. La capacidad total de un HD se puede calcular entonces: Capacidad total = nº de cabezales x nº de cilindros x nº de sectores por pista x nº de bytes por sector Por otra parte, el sistema operativo MS-DOS divide el HD en los denominados "clusters", éstos constituyen las unidades más pequeñas de información que puede direccionar éste sistema operativo dentro de un HD, y están formados por un número variable de sectores según sea la capacidad total del HD. Una de las nefastas consecuencias de éste método consiste en que cuando el HD es grande, 1 GB o más, los clusters también son muy grandes y cada fichero que se encuentra en el HD ocupa al menos un cluster, cuando el fichero es más pequeño que el cluster parte del cluster se desperdicia, ya que en este cluster no se puede guardar ningún otro fichero. Así nos encontramos discos duros prácticamente llenos, en los que si sumamos el tamaño total ocupado por los ficheros no coincide con el tamaño ocupado que nos muestra el sistema operativo. Por ejemplo, en un HD de 2 GB de capacidad se pueden llegar a desperdiciar fácilmente más de 500 MB. La única solución a este problema consiste en dividir el disco duro en varios de menor tamaño, es decir, realizar varias particiones mediante el comando FDISK de MS-DOS. Por otra parte, el HD y el FD necesitan de una electrónica para comunicarse con el ordenador. Está electrónica se encuentra en una tarjeta denominada "controladora de HD/FD", existen diversos estándares de controladoras, y cada controladora sólo puede operar con los HD de su tipo. Los 14 UNIVERSIDAD SALESIANA DE BOLIVIA Docente: Lic. Carla Aguirre – Lic. Flabio Beltrán Materia: Introducción a la Programación Carrera: CONTADURÍA PÚBLICA antiguos HD eran del tipo MFM o RLL, después surgieron los IDE y los Enhanced IDE, y los SCSI en sus distintas versiones. Las controladoras IDE también pueden "controlar" otros dispositivos como unidades CD-ROM, las SCSI aparte de los CD-ROM también se utilizan con otros dispositivos como Escáneres. CD-ROM: Estas unidades de almacenamiento están constituidos por un soporte plástico en las que un láser ha realizado unas pequeñas hendiduras, esta capa se recubre con una capa de material reflectante, y ésta con otra capa de protección. En el momento de la lectura un láser de menor intensidad que el de grabación reflejará la luz o la dispersará y así podrán ser leídos los datos almacenados. Las pistas en este soporte se encuentran dispuestas en forma de espiral desde el centro hacia el exterior del CD-ROM, y los sectores son físicamente del mismo tamaño. El lector varia la velocidad de giro del CD-ROM, según se encuentre leyendo datos en el centro o en los extremos, para obtener una velocidad constante de lectura. La velocidad de transferencia de estas unidades ha ido variando, las primeras unidades tenían una velocidad de 150 KB/s y se denominaron de simple velocidad, ya que esta velocidad de transferencia era la que venía recogida en las especificaciones del MPC (Multimedia PC Marketing Council), posteriormente han ido apareciendo unidades 2X (2 x 150 = 300 KB/s), hasta en la actualidad 12X ( 12 x 150 = 1.800 KB/s ). Una de las principales ventajas de los CD-ROM es que el desgaste es prácticamente nulo, y la principal desventaja es que no podemos cambiar lo que existe grabado, como podemos hacer en un HD o un FD. En un CD-ROM podemos almacenar hasta 650 MB de información, lo que supone almacenar unas 150.000 páginas de información, o la información contenida en 1.200 disquetes. Existen unidades CD-ROM que se conectan a controladoras IDE y otras a controladoras SCSI como ya se ha mencionado al hablar de los discos duros. Recientemente han hecho su aparición las unidades DVD (Digital Video Disc), éstas unidades son básicamente un CD-ROM con una muy superior densidad de grabación, logrando una capacidad de almacenamiento de 4,38 GB si se graban por una sola cara y una capa, hasta 15,90 GB si la grabación se realiza en dos caras y con dos capas. Cada cara puede tener hasta dos capas. Ver figura. Respecto a la compatibilidad de los DVD con los CD-ROM es absoluta en el caso de los CDROM estampados industrialmente y de los CD-RW; pero no así con los CD-R (procedentes de un grabador) que necesitan para ser leídos por un lector DVD, que éste disponga de dos láser (láser dual). 15 UNIVERSIDAD SALESIANA DE BOLIVIA Docente: Lic. Carla Aguirre – Lic. Flabio Beltrán Materia: Introducción a la Programación Carrera: CONTADURÍA PÚBLICA Otras unidades de almacenamiento: Las unidades de Backup que utilizan cinta similar a las de los cassettes. Los discos magnetoópticos que utilizan un láser para calentar la superficie y una cabeza de lectura-escritura como los FD, una de sus ventajas es la práctica inalterabilidad de los datos, ya que no pueden ser modificados por campos electromagnéticos si no son calentados previamente por el láser. Las unidades ZIP, etc. . 1.4.1.4. Periféricos de Entrada y Salida El Módem: Se utiliza para enviar y recibir datos a través de la línea telefónica. El término Módem procede de Modulador / Demodulador que resume la función del módem, es decir, los datos que un ordenador debe enviar están formados por bits, estos bits se trasmiten de uno en uno por el puerto serie al módem, éste convierte estos datos digitales en señales analógicas de modo que puedan circular por la línea telefónica, modula los datos. El módem que se encuentra en el otro extremo de la línea telefónica y recibe estas señales de frecuencia las convierte en señales digitales, bits, decimos que demodula los datos, y los transmite por el puerto serie de uno en uno al ordenador. La Red de Telefonía Básica (RTB) permite transmitir frecuencias de hasta 2400 Hz, por esto los módems si no utilizaran otras técnicas de compresión podrían transmitir como máximo 2400 bits por segundo. No se debe confundir por tanto la frecuencia de la señal con que se transmiten los datos por la RTB que se expresa en baudios (2400 baudios, 1200 baudios,..), con la cantidad de datos que se transmiten que se expresa en bits/s (28.800 bits/s, 14.400 bits/s,..). Para realizar esta comunicación entre el PC y el Módem existe un chip que juega un papel muy importante, es el denominado UART (Receptor Transmisor Asíncrono Universal). Éste chip se encarga de convertir los datos que recibe en grupos de 8 bits de ancho en cadenas de 1 bit de ancho de modo que puedan salir por el puerto serie. También comprueba el bit de paridad de los datos recibidos y de insertarlo en los enviados, así como los bits de inicio y de parada, es decir los bits que van al inicio y final de un grupo de datos, normalmente grupos de 8 bits. En los PC la UART 8250 solo podía realizar transferencias a baja velocidad, la 16450 mediante compresión hasta 115.200 bits/s en sistemas monotarea y la 16550 de idéntica velocidad pero con multitarea. La mayoría de módems utilizan un grupo de ordenes o comandos de comunicación denominados comandos Hayes o comandos AT, debido a que todos ellos empiezan con las letras AT (por ejemplo ATDT significa realizar la marcación por tonos o ATDP por pulsos). La Tarjeta de sonido: Se encargan de digitalizar las ondas sonoras introducidas a través del micrófono, o convertir los archivos sonoros almacenados en forma digital en un formato analógico para que puedan ser reproducidos por los altavoces. Los sonidos que puede percibir el oído humano abarcan las frecuencias de 20 a 20.000 Hz. 16 UNIVERSIDAD SALESIANA DE BOLIVIA Docente: Lic. Carla Aguirre – Lic. Flabio Beltrán Materia: Introducción a la Programación Carrera: CONTADURÍA PÚBLICA La tarjeta de sonido recorre estas ondas tomando muestras del tipo de onda (de su frecuencia), esta operación se realiza con valores variables de muestreo, desde 8.000 hasta 44.100 Hz, a mayor frecuencia de muestreo mayor será la calidad de la grabación. Y del nivel sonoro de esta onda, esta información se guarda en 8 bits (28 = 256 niveles de sonido) o en 16 bits (216 = 65.536 niveles de sonido). Y en un canal o Mono o dos canales o Estéreo. La calidad telefónica correspondería a 11.025 Hz, 8bits y Mono. La calidad de la radio a 22.050 Hz, 8 bits y Mono, ocupando el archivo el doble que el primero. Y la calidad del CD a 44.100 Hz, 16 bits y Estéreo, ocupando el archivo 16 veces más que el primero. El proceso de reproducción sigue los mismos pasos pero en sentido contrario. Muchas tarjetas de sonido poseen capacidades MIDI; esto significa que en un chip de la tarjeta, sintetizador, se encuentran almacenadas las características de diferentes instrumentos musicales, y la grabación o reproducción de un sonido se hace en referencia a éstos y las notas musicales correspondientes. Otros periféricos de entrada y salida: La pantalla táctil que permite seleccionar, tocando la pantalla, las opciones que se le presentan al usuario. La tarjeta digitalizadora y compresora de vídeo... 1.4.2. Soporte lógico o software Se refiere a la parte suave o lógica es decir aquello que hace posible al computador funcionar es la parte que no se toca físicamente se refiere básicamente a los programas. Ejemplo. Sistema operativo, paquetes de aplicación, lenguaje y etc. soft - intangible ware - herramienta A su vez el software se divide en dos partes : 1.4.2.1. Software Base u horizontal.- Son todos los sistemas operativos por donde parten su funcionamiento los computadores, envase a este se puede manejar el software vertical Ejemplo. Sistemas Operativos como: DOS, WINDOWS, MAC-OS, LINUX, APPLE, XENIX, UNIX, CENTRIX y lenguajes de programación como: Visual Basic, Visual C, Java, C ++, etc. , los últimos últimos sistemas operativos sirven para manejo de redes. Existen varias maneras de clasificar a los sistemas operativos, sin embargo una de las más usuales es la que depende del número de usuarios que atiende ; En está clasificación están los sistemas operativos monousuarios y sistemas operativos multiusuarios. Cabe recalcar que la cantidad de usuarios a los que atiende un computador depende tanto del software como del hardware, y el software (en este caso es sistema operativo) deberá ser apropiado para el hardware donde funcionará. Los monousuarios son los que atienden a un solo ‘usuario’, estos son simples y generalmente se los encuentra en los sistemas personales. Los multiusuarios son los que atienden a varios usuarios, estos por supuesto son mucho más complejos que los anteriores, pues al tratar con varios usuarios, deberá tener un completo control del trabajo que está realizando cada uno de ellos, organizar la asignación de los recursos del computador cuando lo requieran los usuarios, tomando en cuenta políticas de asignación y de prioridades. La utilización, de los recursos del sistema, depende de las políticas con las que fue construido. 17 UNIVERSIDAD SALESIANA DE BOLIVIA Docente: Lic. Carla Aguirre – Lic. Flabio Beltrán Materia: Introducción a la Programación Carrera: CONTADURÍA PÚBLICA Generalmente estos sistemas operativos atienden una milésima parte de segundo a cada usuario en forma circular, por lo que parecería que está atendiendo sólo a uno y ‘guarda’ tablas en las que ‘anota’ las actividades que está realizando cada usuario. 1.4.2.1.1.Lenguajes de Programación Es un conjunto de reglas símbolos y palabras especiales que permiten construir un programa. Al igual que los lenguajes humanos, tales como el Inglés, Español, los lenguajes de programación poseen una estructura (gramática o sintaxis) y un significado (semántica). La gramática española trata de los diferentes modos (reglas) en que pueden ser combinados los diferentes tipos de palabras para formar sentencias o frases aceptables en español. La gramática de Pascal a las diferentes reglas en que pueden combinarse las sentencias (instrucciones) de Pascal para formar un programa válido en Pascal. Los lenguajes de computadora tienen menos combinaciones aceptables que los lenguajes naturales. Sin embargo, estas combinaciones deben ser utilizadas correctamente. Clasificación de los lenguajes : Bajo nivel y Alto nivel.- Existen centenares de lenguajes de programación para computadoras y cada uno tiene diferentes versiones. Cada lenguaje tiene sus ventajas e inconvenientes. Algunos lenguajes son ideales para la programación de un tipo de problemas (gestión, científicos,..) y otros han sido diseñados para resolver otros problemas diferentes (educación, investigación, etc.). Los lenguajes se suelen clasificar en términos de niveles que constituyen una jerarquía de los lenguajes de programación, relacionada con el número de instrucciones necesarias para realizar una tarea específica. Los lenguajes de programación se clasifican como : bajo nivel y alto nivel. El nivel de un lenguaje de programación es indirectamente proporcional al número de instrucciones del programa. Los lenguajes de bajo nivel están más próximos a la máquina que los lenguajes de alto nivel próximo al usuario. Lenguaje de Bajo Nivel.- La CPU de la computadora no puede ejecutar directamente sentencias escritas en un lenguaje simbólico (alto nivel) basado en símbolos; el procesador solo puede ejecutar instrucciones más simples, llamadas instrucciones de máquina. Una instrucción de máquina es un conjunto de ceros y unos, es decir, el procesador solo tiene lenguaje binario, ejemplo: LENGUAJE DE MAQUINA LENGUAJE ENSAMBLADOR 18 UNIVERSIDAD SALESIANA DE BOLIVIA Docente: Lic. Carla Aguirre – Lic. Flabio Beltrán Materia: Introducción a la Programación Carrera: CONTADURÍA PÚBLICA Lenguaje de Alto Nivel.- permiten programar sin necesidad de conocer el funcionamiento interno de la máquina, es decir, que se pueden escribir algoritmos entendibles, para ser ejecutados por el mayor número de computadoras. En esencia las diferencias con el lenguaje ensamblador reside en que los lenguajes de alto nivel utilizan instrucciones muy potentes (normalmente entendibles en idioma inglés : IF, THEN, WHILE, FOR, DO ....) Los lenguajes de alto nivel se pueden dividir en diferentes grupos : LENGUAJES ORIENTADOS A LOS PROCEDIMIENTOS. LENGUAJES ORIENTADOS A LOS PROBLEMAS. LENGUAJES DE CONSULTA. LENGUAJE GENERADOR DE APLICACIONES. 1.4.2.1.2. Compiladores e Interpretes Compilación.- Un compilador es una programa que traduce de programa fuente (conjunto de instrucciones de un lenguaje de alto nivel) a un programa objeto (instrucciones en lenguaje de máquina que la computadora puede interpretar o ejecutar). Como una parte fundamental de este proceso de traducción, el compilador le hace notar al usuario la presencia de errores en el código fuente del programa. Vea la figura de abajo. El compilador ejecuta solo la traducción no lo ejecuta el programa. Interprete.- Un intérprete es un programa que procesa los programas escritos en un lenguaje de alto nivel. Un interprete traduce cada instrucción o sentencia del programa escrito en un lenguaje a lenguaje de máquina e inmediatamente lo ejecuta y a continuación se ejecuta la siguiente sentencia. Un interprete lee el código como esta escrito y luego lo convierte en acciones, es decir, lo ejecuta en ese instante. Existen lenguajes que utilizan un Intérprete, como por ejemplo JAVA, y su interprete traduce en el instante mismo de lectura, el código en lenguaje máquina para que pueda ser ejecutado. La siguiente figura muestra el funcionamiento de un intérprete. 19 UNIVERSIDAD SALESIANA DE BOLIVIA Docente: Lic. Carla Aguirre – Lic. Flabio Beltrán Materia: Introducción a la Programación Carrera: CONTADURÍA PÚBLICA 1.4.2.2. Software de aplicación o vertical, Consiste en una conjunto de programas que indican al computador como realizar tareas específicas para el usuario. La aplicación es el objeto para el cual se usa el computador. Existen tres tipos importantes de programas de aplicación que son: procesadores de textos, bases de datos y hojas de cálculo. Un programa de procesador de texto, es una ayuda al usuario para prepara un texto. El usuario tiene la facilidad de corregir o cambiar el formato del texto antes de la impresión del texto. Ejemplo. WORDPERFECT, WORD, WORDSTAR, WORK, ETC. Un programa de bases de datos, ahora en tiempo a una empresa. Las bases de datos es simplemente un método para organizar la información. En este sentido es similar a un sistema de archivo, pero un sistema de bases de datos es más eficiente que un sistema de archivo en papel. Por ejemplo, si en un sistema de base de datos se almacenara toda la información de los empleados de una empresa, por medio de un programa se obtiene las personas que cumplen años en un determinado mes ; si realizamos el mismo trabajo con un sistema de archivo manual, el proceso nos llevaría mucho más tiempo de trabajo. Ejemplo. ACCESS, FOXPRO, ETC. Un programa de hoja de cálculo, es un libro mayor electrónico (un libro mayor es un libro que contiene registros de transacciones financieras). Puede ayudar a planear y contabilizar las finanzas de una empresa. El programa de hoja de cálculo proporciona la facilidad del manejo de filas y columnas para realizar todos los cálculos apropiados en una transacción financiera. Ejemplo. QPRO, LOTUS, EXCEL, ETC. 1.4.3. Esquema del elemento humano, estas se dividen en dos grandes grupos: El personal informático: personas encargadas de controlar y manejar las máquinas para que den un buen servicio: El Personal de dirección (Director, Jefe del área de desarrollo, Jefe del área de explotación) El Personal de análisis y programación (Jefe de proyectos, Analistas, Programadores) El Personal de explotación (Operadores, Grabadores de datos) Los usuarios 1.4.4. Evolución Histórica: 1.4.4.1. Breve Historia La historia de las máquinas de cálculo que dieron origen a los ordenadores actuales empieza con un instrumento utilizado por diversas civilizaciones, siglos antes de Jesucristo: el ábaco, véase Figura. 20 UNIVERSIDAD SALESIANA DE BOLIVIA Docente: Lic. Carla Aguirre – Lic. Flabio Beltrán Materia: Introducción a la Programación Carrera: CONTADURÍA PÚBLICA John Napier inventa los logaritmos y construye las primeras tablas. Mediante estas funciones matemáticas convierte los productos y divisiones en simples sumas y restas. En los siglos XVI y XVII se construyeron máquinas mecánicas basadas en ruedas dentadas que simulaban el funcionamiento del ábaco, como la Máquina Aritmética o Sumadora de Pascal (1642), construida por éste a la edad de 19 años. Wilhelm von Leibniz (1646-1716) construyó la primera máquina capaz de multiplicar directamente, efectuaba divisiones y raíces cuadradas. Charles Babbage (1792-1871) diseñó la Máquina Analítica, ésta máquina fue pensada como un calculador universal, que pudiera resolver de forma automática cualquier problema matemático, y capaz de albergar distintos programas, murió sin poder construirla. George Boole (1815-1864) desarrollo la famosa álgebra que lleva su nombre. Su lógica formal asignaba un 1 a cada proposición verdadera y un 0 a las falsas. Boole definió las operaciones no con operadores aritméticos sino con operadores lógicos Y, O y NO. A finales del siglo XIX se utilizan en los negocios y la gestión de empresas máquinas de calculo mecánicas, como la Máquina Tabuladora de H. Holletrith (1886), con ella se realizó el 11º censo norteamericano, fundó la Tabulating Machine Corporation que después se transformaría en IBM. El primer ordenador electromecánico fue el Mark I construido en la Universidad de Harvard por Howard H. Aiken en 1944 con la subvención de IBM, tenía 760.000 ruedas y relés y 800 Km de cable y se basaba en Maquina Analítica de Babbage. El primer ordenador electrónico fue el ENIAC, construido en la Escuela Moore de Ingeniería Eléctrica, por John W. Mauchly y John Presper Eckert en 1945, era capaz de realizar 5.000 sumas por segundo, pesaba 30 Tm utilizaba 18.200 válvulas, ocupaba 140 m2 y tenía un consumo medio de 150.000 W. Evidentemente necesitaba un potente equipo de refrigeración.. John von Neumann (1903-1957), matemático húngaro, propuso almacenar el programa y los datos en la memoria del ordenador, con lo que se evitaba la modificación del cableado en el cambio de programas. 1.4.5. Generación de Computadoras 1.4.5.1. PRIMERA GENERACION Para entrar a la primera generación hemos de retomar al hilo narrativo a donde lo dejemos, en la ENIAC. Un año antes que se logre acabar esta computadora, se unió al equipo un matemático húngaro, John Von Neumman, que estaba destinado hacer uno de 21 UNIVERSIDAD SALESIANA DE BOLIVIA Docente: Lic. Carla Aguirre – Lic. Flabio Beltrán Materia: Introducción a la Programación Carrera: CONTADURÍA PÚBLICA los cerebros más preclaros de la investigación en este campo. Participo en los trabajos de la ENIAC y tuvo ocasión de flexionar acerca de los principios del aparato que iba a entrar en breve en funcionamiento. La ENIAC estaba cableada y conectada de manera que pudiera realizar un tipo de cálculo. Cada vez que quería cambiar de actividad computacional, se debía rehacer todo el trabajo. Ello significa la previa planificación y también un trabajo de varías horas. La computadora era la conexión como condición para programar nuevas tareas. CARACTERISTICAS PRINCIPALES: Consideremos algunas de estas características: Válvula electrónica (tubos al vacío). Se construye el ordenador ENIAC de grandes dimensiones (30 toneladas). Alto consumo de energía. El voltaje de los tubos era de 300 v y la posibilidad de fundirse era grande. Almacenamiento de la información en tambor magnético interior. Un tambor magnético disponía de su interior del ordenador, recogía y memorizaba los datos y los programas que se le suministraban mediante tarjetas. Lenguaje de máquina. La programación se codifica en un lenguaje muy rudimentario denominado (lenguaje de máquina). Consistía en la yuxtaposición de largo bits o cadenas de cero y unos. Fabricación industrial. La iniciativa se aventuro a entrar en este campo e inició la fabricación de computadoras en serie. Aplicaciones comerciales. La gran novedad fue el uso de la computadora en actividades comerciales. La ENIAC fue la primera computadora comercializada por las empresas. 1.4.5.2. SEGUNDA GENERACION Cuando los tubos de vacío eran sustituidos por los transistores, estas ultimas eran más económicas, más pequeñas que las válvulas miniaturizadas consumían menos y producían menos calor,. Por todos estos motivos, la densidad del circuito podía ser aumentada sensiblemente, lo que quería decir que los componentes podían colocarse mucho más cerca unos a otros, con la siguiente reducción. CARACTERISTICAS PRINCIPALES Transistor. El componente principal es un pequeño trozo de semiconductor, y se expone en los llamados circuitos transistorizados. Disminución del tamaño. Disminución del consumo y de la producción del calor. Su fiabilidad alcanza metas imaginables con los efímeros tubos al vacío. Mayor rapidez ala velocidades de datos. Memoria interna de núcleos de ferrita. Instrumentos de almacenamiento. Mejora de los dispositivos de entrada y salida. Introducción de elementos modulares. Lenguaje de programación más potente. 1.4.5.3. TERCERA GENERACION La tercera generación ocupa los años que van desde fínales de 1964 a 1970, la mitad de la década de los sesenta. CARACTERISTICAS PRINCIPALES Circuito integrado, miniaturización y reunión de centenares de elementos en una placa de silicio o (chip). Menor consumo. Apreciable reducción de espacio. 22 UNIVERSIDAD SALESIANA DE BOLIVIA Docente: Lic. Carla Aguirre – Lic. Flabio Beltrán Materia: Introducción a la Programación Carrera: CONTADURÍA PÚBLICA Aumento de fiabilidad. Teleproceso. Multiprogramación. Renovación de periféricos. Instrumentación del sistema. Compatibilidad. Ampliación de las aplicaciones. La minicomputadora. 1.4.5.4. CUARTA GENERACION El microprocesador: el proceso de reducción del tamaño de los componentes llega a operar a escalas microscópicas. La microminiaturización permite construir el microprocesador, circuito integrado que rige las funciones fundamentales del ordenador. Las aplicaciones del microprocesador se han proyectado más allá de la computadora y se encuentra en multitud de aparatos, sean instrumentos médicos, automóviles, juguetes, electrodomésticos, etc. Memorias Electrónicas: Se desechan las memorias internas de los núcleos magnéticos de ferrita y se introducen memorias electrónicas, que resultan más rápidas. Al principio presentan el inconveniente de su mayor costo, pero este disminuye con la con la fabricación en serie. Sistema de tratamiento de base de datos: el aumento cuantitativo de las bases de datos lleva a crear formas de gestión que faciliten las tareas de consulta y edición. Lo sistemas de tratamiento de base de datos consisten en un conjunto de elementos de hardware y software interrelacionados que permite un uso sencillo y rápido de la información. 1.4.5.5. QUINTA GENERACION En un sistema de proceso de datos convencional, el soporte lógico esta formado por un conjunto de programas (procesadores de lenguaje de alto nivel, editores, interpretes de JCL, sistemas de comunicaciones, etc.), coordinados por el sistema operativo. Los distintos componentes del soporte lógico se estructuran en capas según su relación jerárquica y entornos según la función que realicen. Se distingue normalmente dos clases de entorno: 1. ENTORNO DE PROGRAMACION.- orientado a la construcción de sistemas, están formados por un conjunto de herramientas que asisten al programador en las distintas fases del ciclo de construcción del programa (edición, verificación, ejecución, corrección de errores, etc.) 2. ENTORNO DE UTILIZACIÓN.- orientado a facilitar la comunicación del usuario con el sistema. Este sistema esta compuesto por herramientas que facilitan la comunicación hombre – máquina, sistemas de adquisición de datos, sistemas gráficos, etc. 23 UNIVERSIDAD SALESIANA DE BOLIVIA Docente: Lic. Carla Aguirre – Lic. Flabio Beltrán Materia: Introducción a la Programación Carrera: CONTADURÍA PÚBLICA UNIDAD 2. ALGORITMOS 2.1. Concepto de algoritmo La idea de algoritmo es natural como la vida misma, ya que siempre encierra una secuencia de pasos _ exentos de ambigüedades _ que lleva a la solución de un problema. La principal razón por la que las personas aprenden a programar es para utilizar el ordenador como una herramienta para la resolución de problemas. Ayudado por un ordenador, la obtención de la solución de un problema exige el diseño de un algoritmo que resuelva el problema propuesto: Los pasos para la resolución de un problema son: A) Fase de resolución del problema Diseño de algoritmo, que describe la secuencia ordenada de pasos sin ambigüedades que conducen a la solución de un problema dado. (Análisis del problema y desarrollo del algoritmo) B) Fase de implementación en el ordenador. Expresar el algoritmo como un programa en un lenguaje de programación adecuado (Fase de codificación. Ejecución y validación, Un ejemplo clásico de algoritmo es la receta para realizar un plato de cocina; otro algoritmo típico son los pasos necesarios para construir un típico juego de rompecabezas. Resolución PROBLEMA ALGORITMO Paso Fácil PROGRAMA Implementación Fig. 2.1. Fases para la resolución de un problema El resultado de la primera fase es el diseño de un algoritmo, que no es más que una secuencia ordenada de pasos que conduce a la solución de un problema concreto, sin ambigüedad alguna, en un tiempo finito. Sólo cuando dicho algoritmo haya sido probado y validado, se deberá entrar en detalles de implementación en un determinado lenguaje de programación; al algoritmo así expresado se denomina programa. Los algoritmos son independientes tanto del lenguaje de programación en que se expresan como del ordenador que los ejecuta. El lenguaje de programación es tan sólo un medio para comunicarle al ordenador la secuencia de acciones a realizar y el ordenador sólo actúa como mecanismo para obtener la solución. En este sentido, podemos comparar la situación anterior con el hecho de explicar una receta a un cocinero en distintos idiomas. Mientras éste entienda el idioma, es indiferente el idioma elegido ya que el resultado final será siempre el mismo. 2.1.1. Características del algoritmo Las características que debe cumplir un algoritmo son: a. Un algoritmo debe ser preciso e indicar el orden de realización de cada paso. 24 UNIVERSIDAD SALESIANA DE BOLIVIA Docente: Lic. Carla Aguirre – Lic. Flabio Beltrán Materia: Introducción a la Programación Carrera: CONTADURÍA PÚBLICA b. Un algoritmo debe estar definido: si se sigue un algoritmo dos veces, se debe obtener el mismo resultado cada vez. c. Un algoritmo debe ser finito: si se sigue un algoritmo se debe terminar en algún momento Ejemplo 1 Por ejemplo, cuando quiero ver una película de vídeo, podría hacer: 1. Elijo una película de las de mi colección. 2. Compruebo SI TV y vídeo están conectados a la red (y procedo). 3. SI la TV está apagada, la enciendo, SI NO, pues no. Y lo mismo con el vídeo. 4. Abro el estuche de la película. 5. Saco la película de su estuche. 6. Introduzco la película en el vídeo. Dejo el estuche sobre el vídeo. 7. SI la TV no está en el canal adecuado, la cambio, SI NO, pues no. 8. Cojo los mandos a distancia (el del TV y el del vídeo). 9. Me pongo cómodo. 10. Pulso PLAY en el mando del vídeo. ¿A qué no se les había ocurrido? Fíjense bien en unos detalles que son fundamentales y que aparecen en este algoritmo: 1. La descripción de cada paso no me lleva a ambigüedades: los pasos son absolutamente explícitos y no inducen a error. 2. El número de pasos es finito. Ejemplo 2. Se desea realizar el algoritmo para sumar dos números. P1: Inicio P2: Pedir el primer número P2: Pedir el segundo número P3: Resultado = primer número + segundo número P4: Mostrar el resultado P5: Fin Ejemplo 3 Se desea realizar el algoritmo para comprar un articulo P1: Inicio P2: Buscar un articulo para comprar P3: Preguntar su precio P4: Pagar el precio P5: Pedir la factura correspondiente P6: Recibir la factura P7: Fin Tome en cuenta que éste ultimo ejemplo contiene en forma global el desarrollo del algoritmo, a diferencia del primer ejemplo que es exacto y directo. Debe constar de tres partes: entrada, proceso, salida. 25 UNIVERSIDAD SALESIANA DE BOLIVIA Docente: Lic. Carla Aguirre – Lic. Flabio Beltrán Materia: Introducción a la Programación Carrera: CONTADURÍA PÚBLICA Ejemplo 4 Veamos algunos ejemplos de la vida diaria. Cómo cocinar un huevo frito. Ya que este es el primer ejemplo vamos a observarlo de forma general. Primero que todo, para fritar un huevo se necesita: 1. 2. 3. 4. 5. Huevo. Sal. Sartén. Mantequilla o aceite. Estufa u hornilla. Ahora que se conocen los implementos necesarios, se continúa con el procedimiento. 1. 2. 3. 4. 5. 6. Calentar el sartén en la estufa. Agregar mantequilla o aceite. Dejar calentar durante un minuto. Agregar el huevo procurando que no se rompa. Cocinar al gusto. Servir y agregar sal. Bueno, ahora está preparado el huevo frito y solucionado el problema. Cómo sumar dos números dados por el usuario. En este ejemplo vamos a empezar a aplicar algunos pasos de forma intuitiva, de tal forma que para cuando se revise el cuarto ejemplo se pueda identificar claramente los pasos necesarios para darle forma al algoritmo. Si se observa con un poco de atención en el enunciado del problema está dada parte de la solución. Es importante que usted imagine todo el proceso en su cabeza para implementar el algoritmo de solución. Analizando el enunciado se puede observar claramente que hay que tener dos variables, a las cuales se les asignarán los valores que indique el usuario; estas variables las vamos a llamar a y b, en minúscula, ya que esta es la forma de definir variables en todos los lenguajes de programación; a su vez tendremos una variable adicional que denominaremos c y guardará el resultado de la operación. Entonces tenemos definidas tres variables: o o o a Para denotar el primer sumando b Para denotar el segundo sumando c Para denotar el resultado de la operación Bueno, conociendo esto vamos a analizar el comportamiento de un sistema que suma dos números. 1. 2. 3. 4. 5. El sistema le solicita al usuario el valor del primer número. El usuario digita el primer número. El sistema almacena el número en la variable a y solicita al usuario el segundo número. El usuario digita el segundo número. El sistema realiza la operación c = a + b. 26 UNIVERSIDAD SALESIANA DE BOLIVIA Docente: Lic. Carla Aguirre – Lic. Flabio Beltrán 6. Materia: Introducción a la Programación Carrera: CONTADURÍA PÚBLICA El sistema le muestra al usuario el resultado almacenado en la variable c. Aunque algunos procesos ya los realizamos de forma intuitiva, es necesario ver que es lo que hay detrás de todo, las cosas son más sencillas de lo que aparentan ser. Cuál es el algoritmo que se debe aplicar en un pinchazo de la llanta de un automóvil. Bien, en este ejemplo vamos a introducir un concepto que se maneja en la vida diaria: Las condicionales, que nos permiten dar valores de verdad como sí o no. Bueno, primero habría que bajarse del auto para verificar: o o o o Si no está pinchado puede volver al auto y continuar su camino. Si está pinchado continúa con el proceso. Afloje los tornillos de la rueda. Saque el repuesto En este momento hay otra condición vamos a asumir primero el mejor de los casos que es cuando el repuesto está en buenas condiciones, y luego analizaremos el caso en que el repuesto esté pinchado. o o o o o o o Coloque el gato. Quite la llanta pinchada. Coloque el repuesto. Apretar las tuercas. Bajar el automóvil. Guardar la llanta Volver al auto y continuar su camino. Bien, ahora en el caso en que esté pinchado el repuesto, habría que localizar un montallantas, mandar arreglar las dos llantas, en fin, imagine el resto del proceso. Como puede ver todas las actividades que se realicen en forma secuencial, se pueden ver en forma de algoritmo. 2.2. Identificadores Los identificadores representan los datos de un programa (constantes, variables, tipos de datos). Un identificador es una secuencia de caracteres que sirve para identificar una posición en la memoria de la computadora, que nos permite accesar a su contenido. Un identificador es un nombre simbólico que se refiere a un dato o programa determinado. Es muy fácil elegir identificadores cuyo nombre guarde estrecha relación con el sentido físico, matemático o real del dato que representan. Así por ejemplo, es lógico utilizar un identificador llamado salario_bruto o salarioBruto para representar el coste anual de un empleado. El usuario no tiene nunca que preocuparse de direcciones físicas de memoria: el sistema se preocupa por él por medio de una tabla, en la que se relaciona cada identificador con el tipo de dato que representa y la posición de memoria en la que está almacenado. Ejemplo: Nombre Num_hrs Calif2 27 UNIVERSIDAD SALESIANA DE BOLIVIA Docente: Lic. Carla Aguirre – Lic. Flabio Beltrán Materia: Introducción a la Programación Carrera: CONTADURÍA PÚBLICA Reglas para formar un Identificador Debe comenzar con una letra (A a Z, mayúsculas o minúsculas) y no deben contener espacios en blanco. Puede tener una longitud hasta 255 caracteres No se admiten espacios o caracteres en blanco, ni puntos (.), ni otros caracteres especiales. Los caracteres pueden ser letras, dígitos, el carácter de subrayado (_) y los caracteres de declaración del tipo de la variable (%, &, #, !, @, y $ ). El nombre de una variable no puede ser una palabra reservada del lenguaje (For, If, Loop, Next, Val, Hide, Caption, And, ...). Para saber cuáles son las palabras reservadas en un lenguaje puede utilizarse el Help del lenguaje de programación, buscando la referencia Reserved Words La declaración de una variable o la primera vez que se utiliza determnan cómo se escribe en el resto del programa. Por tanto, las variables LongitudTotal y longitudtotal son consideradas como idénticas. 2.3. Variables Una variable es un nombre que designa a una zona de memoria (se trata por tanto de un identificador), que contiene un valor de un tipo de información. Tal y como su nombre indica, las variables pueden cambiar su valor a lo largo de la ejecución de un programa. Las variables son valores expresados en letras que van variando en la estructura de un algoritmo por ejemplo tenemos como variables a: A=5 XYZ=1 C=”hola” significa que la variable A vale 5 significa que la variable XYZ tiene un valor en un algoritmo = 1 significa que la variable C tiene el valor de una palabra que es “hola” P1: Inicio: P2: Leer (S) P3: escribir (S) P4: S=S + 10 P5: escribir (S) P6: S=S + 10 P7: escribir (S) P8: Fin La variable S cambia de valor durante el algoritmo, despliega los tres primeros múltiplos de 10. 2.4. Constantes Una constante es un valor continuo en la estructura de un programa que no tiende a cambiar como una variable sino es fijo como por ejemplo: Completando a las variables existe lo que se denomina constantes las cuales son identificadores pero con la particularidad de que el valor que se encuentra en ese lugar de la memoria sólo puede ser asignado una única vez. El tratamiento y tipos de datos es igual al de las variables. Para declarar un dato como constante únicamente es necesario utilizar la palabra Const en la 28 UNIVERSIDAD SALESIANA DE BOLIVIA Docente: Lic. Carla Aguirre – Lic. Flabio Beltrán Materia: Introducción a la Programación Carrera: CONTADURÍA PÚBLICA declaración de la variable. Si durante la ejecución se intenta variar su valor se producirá un error. PI = 3.14163 E = 2.718282 Recuerde que todas estas constantes no se cambian son fijas inclusive las que son alfabéticas. Vea los siguientes ejemplos: (ejemplo) P1: Inicio: P2: PI = 3.14163 P3: radio = 5 P4: Circunferencia = 2* PI*radio P5: Escribir radio, Circunferencia P6: Fin Tanto PI, radio y Circunferencia son constantes no cambian durante todo el programa. 2.4.1. Las variables, usos y costumbres 2.4.1.1. Clasificación de las Variables Por su Contenido Numéricas Lógicas Alfanuméricas Por su Uso De Trabajo Contadores Acumuladores Variables 2.4.1.1.1. Por su contenido Variables Numéricas: Son aquellas en las cuales se almacenan valores numéricos, positivos o negativos, es decir almacenan números del 0 al 9, signos (+ y -) y el punto decimal. Ejemplo: iva = 0.15 pi = 3.1416 costo = 2500 Variables Lógicas: Son aquellas que solo pueden tener dos valores (cierto o falso) estos representan el resultado de una comparación entre otros datos. Variables Alfanuméricas: Esta formada por caracteres alfanuméricos (letras, números y caracteres especiales). Ejemplo: letra = ’a’ apellido = ’lopez’ direccion = ’Av. Libertad #190’ 2.4.1.1.2. Por su uso Variables de Trabajo: Variables que reciben el resultado de una operación matemática completa y que se usan normalmente dentro de un programa. Ejemplo: Suma = a + b /c Contadores: Se utilizan para llevar el control del número de ocasiones en que se realiza una operación o se cumple una condición. Con los incrementos generalmente de uno en uno. Acumuladores: Forma que toma una variable y que sirve para llevar la suma acumulativa de una serie de valores que se van leyendo o calculando progresivamente. 29 UNIVERSIDAD SALESIANA DE BOLIVIA Docente: Lic. Carla Aguirre – Lic. Flabio Beltrán Materia: Introducción a la Programación Carrera: CONTADURÍA PÚBLICA 2.4.2. Expresiones Las expresiones son combinaciones de constantes, variables, símbolos de operación, paréntesis y nombres de funciones especiales. Por ejemplo: a + (b + 3) / c Cada expresión toma un valor que se determina tomando los valores de las variables y constantes implicadas y la ejecución de las operaciones indicadas. 2.5. Operadores Son elementos que relacionan de forma diferente, los valores de una o mas variables y/o constantes. Es decir, los operadores nos permiten manipular valores. Tipos de Operadores Aritméticos Relaciónales Lógicos 2.5.1. Operadores Aritméticos Las variables y constantes pueden ser procesadas utilizando operaciones y funciones adecuadas a sus tipos. Las operaciones aritméticas usuales en todos los lenguajes de programación se indican mediante los siguientes operadores. Símbolo ^ * / + Div (\) Mod Operación Tipos de operandos Exponenciación Multiplicación División Suma Resta División entera Módulo (resto) Entero o real Entero o real Real Entero o real Entero o real Entero Entro Los operadores aritméticos pueden ser utilizados con tipos de datos enteros o reales. Si ambos son enteros, el resultado es entero; si alguno de ellos es real, el resultado es real. Operando (Operador) Operando Valor (Constante o variable) Ejemplos: 4 + 2 * 5 = 14 23 * 2 / 5 = 9.2 3 + 5 * (10 - (2 + 4)) = 23 3.5 + 5.09 - 14.0 / 40 = 5.09 2.1 * (1.5 + 3.0 * 4.1) = 28.98 46 / 5 = 9.2 3 + 5 * (10 - 6) = 3 + 5 * 4 = 3 + 20 = 23 3.5 + 5.09 - 3.5 = 8.59 - 3.5 = 5.09 2.1 * (1.5 + 12.3) = 2.1 * 13.8 = 28.98 30 UNIVERSIDAD SALESIANA DE BOLIVIA Docente: Lic. Carla Aguirre – Lic. Flabio Beltrán Materia: Introducción a la Programación Carrera: CONTADURÍA PÚBLICA 2.5.2. Operadores Relacionales Los operadores de relación o relacionales permites realizar comparaciones de valores de tipo numérico o carácter (alfabéticos). OPERADOR < > = <= >= <> Ejemplos: Asignando valores para: a+b>c a-b<c a-b=c a*b<>c SIGNIFICADO Menor que Mayor que Igual Menor igual Mayor igual Distinto de a = 10 Falso Verdadero Falso Verdadero b = 20 c = 30 Ejemplos no lógicos: a<b<c 10 < 20 < 30 2.5.3. Operadores Lógicos Los operadores lógicos o de Boole permiten relaciones lógicas (si/no) y sirven para representar condiciones compuestas. Los operadores lógicos o booleanos básicos son : Operador lógico AND OR NOT Significado “Y LÓGICO” “O LÓGICO” “NOT LÓGICO” Ejemplos: (a < b) and (b < c) (10<20) and (20<30) T and T T 2.5.4. Jerarquía de operaciones Las expresiones tienden a tener una regla de prioridad, ya que puede haber confusión por cual operación el computador debe comenzar es por eso que a continuación se describen éstas reglas: a) Las operaciones que están encerradas entre paréntesis se evalúan primero. Si existen diferentes paréntesis anidados(interiores unos a otros), las expresiones más internas se evalúan primero. b) Las operaciones aritméticas dentro de una expresión pueden seguir el siguiente orden de prioridad. 31 UNIVERSIDAD SALESIANA DE BOLIVIA Docente: Lic. Carla Aguirre – Lic. Flabio Beltrán Materia: Introducción a la Programación Carrera: CONTADURÍA PÚBLICA Operador exponencial Operador de *, / Operadores +, Operadores div, mod En caso de coincidir varios operadores de igual prioridad en una expresión o subexpresión encerrada entre paréntesis, el orden de prioridad en éste caso es de izquierda a derecha. Ej. 7 * 10 - 15 mod 3 * 4 + 9 70 Ej. - 15 35 mod mod 13 (7*(10 – 5) mod 3) * 4 (7 * 5 mod 3) * 4 (35 mod 3) * 4 2*4 8 a) 43+54*4 12 + 9 21 +9 +9 + 9 +9 + 9 17 b) 4+4*5-4/4 c) 1+(1+2)/4+6*(4+5) 2.5.4.1.Expresiones relacionales El formato general para las comparaciones es: Expresión 1 Operador de relación expresión 2 Y el resultado de la operación será verdadero o falso. Así, por ejemplo, si A=4 y B=3, entonces A>B es verdadero. Mientras que (A-2) < (B-4) es falso. Los operadores de relación se pueden aplicar a cualquiera de los cuatro tipos de datos estándar 2.5.4.2.Expresiones Lógicas Las expresiones lógicas se forman combinando constantes lógicas, variables lógicas y otras expresiones lógicas, utilizando los operadores lógicos NOT, AND Y OR. Y los operadores relacionales. (de relación o comparación) =, <, >, <=, >=, <>. Ej. (1<5) y (5<10) = Verdadero (2>4) y (4>3) = falso (3=3) o (4>1) = Verdadero (x<6.5) y (x=3) (A<=B) o (3>5) Si x =3, el resultado es verdadero Si A=5 y B=8 , el resultado es verdadero. Ejemplos: 32 UNIVERSIDAD SALESIANA DE BOLIVIA Docente: Lic. Carla Aguirre – Lic. Flabio Beltrán Materia: Introducción a la Programación Carrera: CONTADURÍA PÚBLICA a = 10 b = 12 c = 13 d =10 1) ((a > b)or(a < c)) and ((a = c) or (a > = b)) F T F F T F F 2) ((a > = b) or (a < d)) and (( a > = d) and (c > d)) F F T T F T F 3) not (a = c) and (c > b) F T T T 2.5.5. Ejercicios de Algoritmos elementales 1. Realizar el algoritmo para preparar una tortilla de patatas de 4 huevos. Algoritmo Tortilla Inicio P1: Preparación inicial P1.1. Pelar y cortar las patatas P1.2. Echar las patatas en un recipiente con agua P1.3. Tomar los 4 huevos de la nevera P2: Encender el fuego P3: Poner la sartén P4: Repetir Esperar Hasta_que el aceite este hirviendo P5: Meter las patatas en la sartén P6: Esperar que las patatas se doren P7: Apagar el fuego P8: Retirar la sartén P9: Echar la tortilla al plato Fin Ejercicios propuestos Cómo hacer un jugo de Pomelo (fruta que se da en los llanos), invetigue y realice el algoritmo. Diseñe el algoritmo que le permita calcular la tabla de multiplicar del 5 desde el 1 hasta el 10. Diseñe el algoritmo que usted requiere para llegar a la universidad, desde que se levanta en la mañana. Encuentre el algoritmo necesario para almacenar el contenido de una página web en un floppy disk, comenzando desde que se sienta en frente del computador. Investigue el algoritmo necesario para realizar y presentar un ensayo. Imagine que su computador le permite controlar el sistema de una máquina tragamonedas de ruleta, en la cual el usuario debe insertar al menos dos monedas para 33 UNIVERSIDAD SALESIANA DE BOLIVIA Docente: Lic. Carla Aguirre – Lic. Flabio Beltrán Materia: Introducción a la Programación Carrera: CONTADURÍA PÚBLICA iniciar el juego, gana cuando las tres figuras que aparecen son iguales. La menor paga la misma cantidad de monedas que se han apostado, y la mayor paga seis veces la cantidad apostada. La apuesta es seleccionada por el usuario y puede se de 2,4,6 u 8 monedas, hay seis figuras diferentes y según la figura paga la cantidad que le corresponda. Diseñe el algoritmo correspondiente al manejo de la máquina, especifique todos los datos que crea necesarios. 2.6. Estructuras algorítmicas Las estructuras de operación de programas son un grupo de formas de trabajo, que permiten, mediante la manipulación de variables, realizar ciertos procesos específicos que nos lleven a la solución de problemas. Estas estructuras se clasifican de acuerdo con su complejidad en: Estructuras Algoritmicas Secuenciales - Asignación - Entrada - Salida Condicionales - Simples - Dobles - Múltiples Repetitivas - Hacer para - Hacer mientras - Repetir hasta 2.7. TÉCNICAS PARA LA FORMULACIÓN DE ALGORITMOS Las dos herramientas utilizadas comúnmente para diseñar algoritmos son: Diagrama de Flujo Pseudocódigo 2.7.1. Diagrama de Flujo Un diagrama de flujo es la representación gráfica de un algoritmo. También se puede decir que es la representación detallada en forma gráfica de como deben realizarse los pasos en la computadora para producir resultados. Esta representación gráfica se da cuando varios símbolos (que indican diferentes procesos en la computadora), se relacionan entre si mediante líneas que indican el orden en que se deben ejecutar los procesos. Los símbolos utilizados han sido normalizados por el instituto norteamericano de normalización (ANSI). SÍMBOLO DESCRIPCIÓN Indica el inicio y el final de nuestro diagrama de flujo. Indica la entrada y salida de datos. Símbolo de proceso y nos indica la asignación de un valor en la memoria y/o la ejecución de 34 UNIVERSIDAD SALESIANA DE BOLIVIA Docente: Lic. Carla Aguirre – Lic. Flabio Beltrán Materia: Introducción a la Programación Carrera: CONTADURÍA PÚBLICA una operación aritmética. Símbolo de decisión indica la realización de una comparación de valores. Se utiliza para representar los subprogramas. Conector dentro de página. Representa la continuidad del diagrama dentro de la misma página. Conector fuera de página. Representa la continuidad del diagrama en otra página. Indica la salida de información por impresora. Indica la salida de información en la pantalla o monitor. Líneas de flujo o dirección. Indican la secuencia en que se realizan las operaciones. Recomendaciones para el diseño de Diagramas de Flujo Se deben se usar solamente líneas de flujo horizontales y/o verticales. Se debe evitar el cruce de líneas utilizando los conectores. Se deben usar conectores solo cuando sea necesario. No deben quedar líneas de flujo son conectar. Se deben trazar los símbolos de manera que se puedan leer de arriba hacia abajo y de izquierda a derecha. Todo texto escrito dentro de un símbolo deberá ser escrito claramente, evitando el uso de muchas palabras. *Problema: Queremos hallar el producto de varios números positivos introducidos por teclado y el proceso termina cuando se inserte un número negativo. 1. Iniciar la variable del producto. 2. Leer el primer número. 3. Preguntar si es negativo o positivo. 4. Si es negativo nos salimos y escribimos el producto. 5. Si es positivo, multiplicamos el número leído y luego leemos un nuevo número, y se vuelve al paso 3. 35 UNIVERSIDAD SALESIANA DE BOLIVIA Docente: Lic. Carla Aguirre – Lic. Flabio Beltrán Materia: Introducción a la Programación Carrera: CONTADURÍA PÚBLICA Inicio P1 Leer num Num >= 0 P P * num Escribir P Fin Leer num 2.7.2. Pseudocodigo Mezcla de lenguaje de programación y español (o ingles o cualquier otro idioma) que se emplea, dentro de la programación estructurada, para realizar el diseño de un programa. En esencial, el pseudocodigo se puede definir como un lenguaje de especificaciones de algoritmos. Es la representación narrativa de los pasos que debe seguir un algoritmo para dar solución a un problema determinado. El pseudocodigo utiliza palabras que indican el proceso a realizar. Ventajas de utilizar un Pseudocodigo a un Diagrama de Flujo Ocupa menos espacio en una hoja de papel Permite representar en forma fácil operaciones repetitivas complejas Es muy fácil pasar de pseudocodigo a un programa en algún lenguaje de programación. Si se siguen las reglas se puede observar claramente los niveles que tiene cada operación. Es un lenguaje de especificación de algoritmos, pero muy parecido a cualquier lenguaje de programación, por lo que luego su traducción al lenguaje es muy sencillo, pero con la ventaja de que no se rige por las normas de un lenguaje en particular. Nos centramos más en la lógica del problema. El pseudocódigo también va a utilizar una serie de palabras clave o palabras especiales que va indicando lo que significa el algoritmo. 1. Inicio y Fin: Por donde empieza y acaba el algoritmo. Begin /end : Pascal. { } : En C. 2. Sí <cond> Entonces <acc1> If then else Sino <acc2> 3.Mientras <cond> /hacer while do 4. Repetir / hasta repeat until 5. Desde /hasta for .. to 6. Según sea Case 36 UNIVERSIDAD SALESIANA DE BOLIVIA Docente: Lic. Carla Aguirre – Lic. Flabio Beltrán Materia: Introducción a la Programación Carrera: CONTADURÍA PÚBLICA Swith Los comentarios van encerrados entre llaves. Hay que utilizar la identación. Algoritmo <nombre alg> Var <nombre>: <tipo> Inicio <Instrucciones> Fin Algoritmo Producto Var P, num: entero Inicio P1 Leer num Mientras num >=0 hacer P p*num Leer num Fin mientras Escribir p Fin Resolución del Algoritmo en la computadora. Se debe codificar el algoritmo. 37 UNIVERSIDAD SALESIANA DE BOLIVIA Docente: Lic. Carla Aguirre – Lic. Flabio Beltrán Materia: Introducción a la Programación Carrera: CONTADURÍA PÚBLICA UNIDAD 3. ESTRUCTURAS SECUENCIALES 3.1. Estructuras Secuenciales La estructura secuencial es aquella en la que una acción (instrucción) sigue a otra en secuencia. Las tareas se suceden de tal modo que la salida de una es la entrada de la siguiente y así sucesivamente hasta el fin del proceso. Una estructura secuencial se representa de la siguiente forma: Inicio Accion1 Accion2 . . . AccionN Fin Es cuando una instrucción sigue a otra en secuencia, es decir, la salida de una instrucción es la entrada de la siguiente. FLUJOGRAMA: PSEUDOCÓDIGO: Leer num Num num*2 Escribir num 3.1.1. Asignación: La asignación consiste, en el paso de valores o resultados a una zona de la memoria. Dicha zona será reconocida con el nombre de la variable que recibe el valor. La asignación se puede clasificar de la siguiente forma: Simples: Consiste en pasar un valor constate a una variable (a=15) Contador: Consiste en usarla como un verificador del numero de veces que se realiza un proceso (a=a+1) Acumulador: Consiste en usarla como un sumador en un proceso (a=a+b) De trabajo: Donde puede recibir el resultado de una operación matemática que involucre muchas variables (a=c+b*2/4). 3.1.2. Lectura: La lectura consiste en recibir desde un dispositivo de entrada (p.ej. el teclado) un valor. Esta operación se representa en un pseudocodigo como sigue: Leer a, b Donde “a” y “b” son las variables que recibirán los valores 3.1.3. Escritura: Consiste en mandar por un dispositivo de salida (p.ej. monitor o impresora) un resultado o mensaje. Este proceso se representa en un pseudocodigo como sigue: Mostrar “El resultado es:”, R 38 UNIVERSIDAD SALESIANA DE BOLIVIA Docente: Lic. Carla Aguirre – Lic. Flabio Beltrán Materia: Introducción a la Programación Carrera: CONTADURÍA PÚBLICA Imprimir “El resultado es:”, R Donde “El resultado es:” es un mensaje que se desea aparezca y R es una variable que contiene un valor. 3.2. Problemas Secuenciales 1) Suponga que un individuo desea invertir su capital en un banco y desea saber cuanto dinero ganara después de un mes si el banco paga un interés del 2% mensual. Pseudocódigo Diagrama de Flujo Inicio Inicio Leer cap_inv gan = cap_inv * 0.02 Imprimir gan Fin Cap_inv gan = cap_inv * 0.02 gan fin 2) Un vendedor recibe un sueldo base mas un 10% extra por comisión de sus ventas, el vendedor desea saber cuanto dinero obtendrá por concepto de comisiones por las tres ventas que realiza en el mes y el total que recibirá en el mes tomando en cuenta su sueldo base y comisiones. Pseudocódigo Diagrama de Flujo Inicio Leer sb, v1, v2, v3 tot_vta = v1 + v2 + v3 com = tot_vta * 0.10 tpag = sb + com Imprimir tpag, com Fin Inicio Sb,v1,v2,v3 tot_vta = v1 + v2 + v3 com = tot_vta * 0.10 tpag = sb + com Tpag, com fin 3) Una tienda ofrece un descuento del 15% sobre el total de la compra y un cliente desea saber cuanto deberá pagar finalmente por su compra. Pseudocódigo Diagrama de Flujo 39 UNIVERSIDAD SALESIANA DE BOLIVIA Docente: Lic. Carla Aguirre – Lic. Flabio Beltrán Materia: Introducción a la Programación Carrera: CONTADURÍA PÚBLICA Inicio Leer tc d = tc * 0.15 tp = tc - d Imprimir tp Fin Inicio tc d = tc * 0.15 tp = tc - d tp fin 4) Un alumno desea saber cual será su calificación final en la materia de Algoritmos. Dicha calificación se compone de los siguientes porcentajes: 55% del promedio de sus tres calificaciones parciales. 30% de la calificación del examen final. 15% de la calificación de un trabajo final. Pseudocódigo Diagrama de Flujo Inicio Inicio Leer c1, c2, c3, ef, tf prom = (c1 + c2 + c3)/3 ppar = prom * 0.55 pef = ef * 0.30 ptf = tf * 0.15 cf = ppar + pef + ptf Imprimir cf Fin c1, c2, c3, ef ,tf prom = (c1 + c2 + c3)/3 ppar = prom * 0.55 pef = ef * 0.30 ptf = tf * 0.15 cf = ppar + pef + ptf tp fin 5) Un maestro desea saber que porcentaje de hombres y que porcentaje de mujeres hay en un grupo de estudiantes. Pseudocódigo Diagrama de Flujo 40 UNIVERSIDAD SALESIANA DE BOLIVIA Docente: Lic. Carla Aguirre – Lic. Flabio Beltrán Materia: Introducción a la Programación Carrera: CONTADURÍA PÚBLICA Inicio Inicio Leer nh, nm ta = nh + nm ph = nh * 100 / ta pm = nm * 100 / ta Imprimir ph, pm Fin Nh,nm ta = nh + nm ph = nh * 100 / ta pm = nm * 100 / ta Ph,pm fin 6) Realizar un algoritmo que calcule la edad de una persona. Pseudocódigo Diagrama de Flujo Inicio Inicio Leer fnac, fact edad = fact - fnac Imprimir edad Fin fnac, fact edad = fact - fnac edad fin 41 UNIVERSIDAD SALESIANA DE BOLIVIA Docente: Lic. Carla Aguirre – Lic. Flabio Beltrán Materia: Introducción a la Programación Carrera: CONTADURÍA PÚBLICA 42 UNIVERSIDAD SALESIANA DE BOLIVIA Docente: Lic. Carla Aguirre – Lic. Flabio Beltrán Materia: Introducción a la Programación Carrera: CONTADURÍA PÚBLICA UNIDAD 4. ESTRUCTURAS SELECTIVAS O CONDICIONALES 4.1 Estructuras de Condicionales Las estructuras condicionales comparan una variable contra otro(s) valor(es), para que en base al resultado de esta comparación, se siga un curso de acción dentro del programa. Cabe mencionar que la comparación se puede hacer contra otra variable o contra una constante, según se necesite. Existen dos tipos básicos, las simples y las múltiples. 4.1.1 Simples: Las estructuras condicionales simples se les conoce como “Tomas de decisión”. Estas tomas de decisión tienen la siguiente forma: Si <condición> entonces Acción(es) Fin-si 4.1.2. Dobles: Las estructuras condicionales dobles permiten elegir entre dos opciones o alternativas posibles en función del cumplimiento o no de una determinada condición. Se representa de la siguiente forma: Si <condición> entonces Acción(es) caso contrario Acción(es) Fin-si Donde: Si ………………… Indica el comando de comparación Condición………… Indica la condición a evaluar entonces……..…… Precede a las acciones a realizar cuando se cumple la condición acción(es)………… Son las acciones a realizar cuando se cumple o no la condición caso contrario……………… Precede a las acciones a realizar cuando no se cumple la condición Dependiendo de si la comparación es cierta o falsa, se pueden realizar una o mas acciones. Doble: Se evalúa la condición y si es verdad se ejecutan el conjunto de acciones asociadas a la parte entonces, y si es falso se ejecutan el conjunto de acciones asociadas a la parte sino. FLUJOGRAMA: Si No PSEUDOCÓDIGO: Condicion Sí <condición> Entonces <acciones> Sino <acciones> Accciones Acciones Fin si Una condición se ejecuta una única vez. 43 UNIVERSIDAD SALESIANA DE BOLIVIA Docente: Lic. Carla Aguirre – Lic. Flabio Beltrán 4.1.3. Materia: Introducción a la Programación Carrera: CONTADURÍA PÚBLICA Múltiples: Las estructuras de comparación múltiples, son tomas de decisión especializadas que permiten comparar una variable contra distintos posibles resultados, ejecutando para cada caso una serie de instrucciones específicas. La forma común es la siguiente: Si <condición> entonces Acción(es) caso contrario Si <condición> entonces Acción(es) caso contrario . . Varias condiciones . Forma General Casos Variable Op1: Acción(es) Op2: Acción(es) . . OpN: acción Fin-casos Problemas Condicionales 4.2. PROBLEMAS Problemas Selectivos Simples 1) Un hombre desea saber cuanto dinero se genera por concepto de intereses sobre la cantidad que tiene en inversión en el banco. El decidirá reinvertir los intereses siempre y cuando estos excedan a Bs.7000, y en ese caso desea saber cuanto dinero tendrá finalmente en su cuenta. Pseudocódigo Diagrama de Flujo Inicio Inicio Leer p_int, cap inte = cap * p_int si inte > 7000 entonces capf = cap + inte fin-si Imprimir capf P_int , cap inte= cap*p_int NO SI Inte>700 0 fin Capf= cap+inte capf fin Problemas Selectivos Dobles 2) Determinar si un alumno aprueba a reprueba un curso, sabiendo que aprobara si su promedio de tres calificaciones es mayor o igual a 70; reprueba en caso contrario. Pseudocódigo Diagrama de Flujo 44 UNIVERSIDAD SALESIANA DE BOLIVIA Docente: Lic. Carla Aguirre – Lic. Flabio Beltrán Materia: Introducción a la Programación Carrera: CONTADURÍA PÚBLICA Inicio Inicio Leer calif1, calif2, calif3 prom = (calif1 + calif2 + calif3)/3 Si prom >= 70 entonces Imprimir “alumno aprobado” caso contrario Imprimir “alumno reprobado” Fin-si Fin calif1,calif2, calif3 prom= (calif1+calif2+calif3)/3 NO SI prom>70 “Alumno reprobado” “alumno aprobado” fin 3) En un almacén se hace un 20% de descuento a los clientes cuya compra supere los $1000 ¿ Cual será la cantidad que pagara una persona por su compra? Pseudocódigo Diagrama de Flujo Inicio Inicio Leer compra Si compra > 1000 entonces desc = compra * 0.20 caso contrario desc = 0 fin-si tot_pag = compra - desc imprimir tot_pag compra NO SI Int>1000 Desc = 0 Desc=compra*0.2 0 Tot_pag=compra - Desc fin. Tot_pag fin 45 UNIVERSIDAD SALESIANA DE BOLIVIA Docente: Lic. Carla Aguirre – Lic. Flabio Beltrán Materia: Introducción a la Programación Carrera: CONTADURÍA PÚBLICA 4) Un obrero necesita calcular su salario semanal, el cual se obtiene de la siguiente manera: Si trabaja 40 horas o menos se le paga $16 por hora Si trabaja mas de 40 horas se le paga $16 por cada una de las primeras 40 horas y $20 por cada hora extra. Pseudocódigo Diagrama de Flujo Inicio Inicio Leer ht Si ht > 40 entonces he = ht - 40 ss = he * 20 + 40 * 16 caso contrario ss = ht * 16 Fin-si Imprimir ss Fin ht NO SI ht>40 ss=ht*16 he=he-20+40*16 ss=he*20+40*16 Tot_pag fin 5) Que lea dos números y los imprima en forma ascendente Pseudocódigo Diagrama de Flujo Inicio Inicio Leer num1, num2 Si num1 < num2 entonces Imprimir num1, num2 caso contrario Imprimir num2, num1 fin-si fin num1, num2 NO SI num1>num2 num2, num1 num1,num2 fin 46 UNIVERSIDAD SALESIANA DE BOLIVIA Docente: Lic. Carla Aguirre – Lic. Flabio Beltrán Materia: Introducción a la Programación Carrera: CONTADURÍA PÚBLICA 6) Una persona enferma, que pesa 70 kg, se encuentra en reposo y desea saber cuantas calorías consume su cuerpo durante todo el tiempo que realice una misma actividad. Las actividades que tiene permitido realizar son únicamente dormir o estar sentado en reposo. Los datos que tiene son que estando dormido consume 1.08 calorías por minuto y estando sentado en reposo consume 1.66 calorías por minuto. Pseudocódigo Diagrama de Flujo Inicio Leer act$, tiemp Si act$ = “dormido” entonces cg = 1.08 * tiemp caso contrario cg = 1.66 * tiemp fin-si Imprimir cg Fin Inicio act$, tiemp act$ = “dormido” NO cg = 1.66 * tiemp SI cg = 1.08 * tiemp cg fin 7) Hacer un algoritmo que imprima el nombre de un articulo, clave, precio original y su precio con descuento. El descuento lo hace en base a la clave, si la clave es 01 el descuento es del 10% y si la clave es 02 el descuento en del 20% (solo existen dos claves). Pseudocódigo Diagrama de Flujo Inicio Inicio Leer nomb, cve, prec_orig Si cve = 01 entonces nomb, cve, prec_orig prec_desc = prec_orig - prec_orig * 0.10 caso contrario NO cve = 01 prec_desc = prec_orig - prec_orig * SI 0.20 fin-si Imprimir prec_desc fin nomb, cve, prec_orig, prec_desc = prec_orig - prec_orig * 0.20 prec_desc = prec_orig - prec_orig * 0.10 nomb, cve, prec_orig, prec_desc fin 8) Hacer un algoritmo que calcule el total a pagar por la compra de camisas. Si se compran tres camisas o mas se aplica un descuento del 20% sobre el total de la compra y si son menos de tres camisas un descuento del 10% Pseudocódigo Diagrama de Flujo 47 UNIVERSIDAD SALESIANA DE BOLIVIA Docente: Lic. Carla Aguirre – Lic. Flabio Beltrán Materia: Introducción a la Programación Carrera: CONTADURÍA PÚBLICA Inicio Leer num_camisas, prec tot_comp = num_camisas * prec Si num_camisas > = 3 entonces tot_pag = tot_comp - tot_comp * 0.20 caso contrario tot_pag = tot_comp - tot_comp * 0.10 fin-si Imprimir tot_pag fin Inicio num_camisas, prec tot_comp = num_camisas * prec NO SI num_camisas > = 3 tot_pag = tot_comp - tot_comp * 0.10 tot_pag = tot_comp - tot_comp * 0.20 tot_pag fin 9) Una empresa quiere hacer una compra de varias piezas de la misma clase a una fabrica de refacciones. La empresa, dependiendo del monto total de la compra, decidirá que hacer para pagar al fabricante. Si el monto total de la compra excede de $500 000 la empresa tendrá la capacidad de invertir de su propio dinero un 55% del monto de la compra, pedir prestado al banco un 30% y el resto lo pagara solicitando un crédito al fabricante. Si el monto total de la compra no excede de $500 000 la empresa tendrá capacidad de invertir de su propio dinero un 70% y el restante 30% lo pagara solicitando crédito al fabricante. El fabricante cobra por concepto de intereses un 20% sobre la cantidad que se le pague a crédito. Pseudocódigo Diagrama de Flujo 48 UNIVERSIDAD SALESIANA DE BOLIVIA Docente: Lic. Carla Aguirre – Lic. Flabio Beltrán Materia: Introducción a la Programación Carrera: CONTADURÍA PÚBLICA Inicio Leer costopza, numpza totcomp = costopza * numpza Si totcomp > 500 000 entonces cantinv = totcomp * 0.55 préstamo = totcomp * 0.30 crédito = totcomp * 0.15 caso contrario cantinv = totcomp * 0.70 crédito = totcomp * 0.30 préstamo = 0 fin-si int = crédito * 0.20 Imprimir cantinv, préstamo, crédito, int Fin Inicio costopza, numpza tot_comp = num_camisas * prec NO SI totcomp > 500 000 cantinv = totcomp * 0.70 crédito = totcomp * 0.30 préstamo = 0 cantinv = totcomp * 0.55 préstamo = totcomp * 0.30 crédito = totcomp * 0.15 préstamo, crédito, int cantinv, fin Problemas Selectivos Múltiples 1) Leer 2 números; si son iguales que los multiplique, si el primero es mayor que el segundo que los reste y caso contrario que los sume. Pseudocódigo Diagrama de Flujo 49 UNIVERSIDAD SALESIANA DE BOLIVIA Docente: Lic. Carla Aguirre – Lic. Flabio Beltrán Materia: Introducción a la Programación Carrera: CONTADURÍA PÚBLICA Inicio Leer num1, num2 Si num1 = num2 entonces resul = num1 * num2 caso contrario Si num1 > num2 entonces resul = num1 - num2 caso contrario resul = num1 + num2 fin-si fin-si Imprimir resul fin Inicio num1, num2 NO NO num1 = num2 resul = num1 * num2 num1 > num2 resul = num1+ num2 SI resul = num1 - num2 resul fin 2) Leer tres números diferentes e imprimir el numero mayor de los tres. Pseudocódigo Diagrama de Flujo 50 SI UNIVERSIDAD SALESIANA DE BOLIVIA Docente: Lic. Carla Aguirre – Lic. Flabio Beltrán Materia: Introducción a la Programación Carrera: CONTADURÍA PÚBLICA Inicio Leer num1, num2, num3 Inicio Si (num1 > num2) and (num1 > num3) entonces mayor = num1 caso contrario num1, num2,num3 Si (num2 > num1) and (num2 > num3) entonces mayor = num2 caso contrario mayor = num3 fin-si fin-si Imprimir mayor fin NO NO num1 > num2 AND num1>num3 SI Num2 > num1 AND num2>num3 mayor = num3 SI mayor = num1 mayor = num2 mayor fin 3) Determinar la cantidad de dinero que recibirá un trabajador por concepto de las horas extras trabajadas en una empresa, sabiendo que cuando las horas de trabajo exceden de 40, el resto se consideran horas extras y que estas se pagan al doble de una hora normal cuando no exceden de 8; si las horas extras exceden de 8 se pagan las primeras 8 al doble de lo que se pagan las horas normales y el resto al triple. Inicio Leer ht, pph Si ht < = 40 entonces tp = ht * pph caso contrario he = ht - 40 Si he < = 8 entonces pe = he * pph * 2 caso contrario pd = 8 * pph * 2 pt = (he - 8) * pph * 3 pe = pd + pt fin-si tp = 40 * pph + pe fin-si Imprimir tp fin 4) Calcular la utilidad que un trabajador recibe en el reparto anual de utilidades si este se le asigna como un porcentaje de su salario mensual que depende de su antigüedad en la empresa de acuerdo con la sig. tabla: 51 UNIVERSIDAD SALESIANA DE BOLIVIA Docente: Lic. Carla Aguirre – Lic. Flabio Beltrán Materia: Introducción a la Programación Carrera: CONTADURÍA PÚBLICA Tiempo Utilidad Menos de 1 año 5 % del salario 1 año o mas y menos de 2 años 7% del salario 2 años o mas y menos de 5 años 10% del salario 5 años o mas y menos de 10 años 15% del salario 10 años o mas 20% del salario Inicio Leer sm, antig Si antig < 1 entonces util = sm * 0.05 caso contrario Si (antig > = 1) and (antig < 2) entonces util = sm * 0.07 caso contrario Si (antig > = 2) and (antig < 5) entonces util = sm * 0.10 caso contrario Si (antig > = 5) and (antig < 10) entonces util = sm * 0.15 caso contrario util = sm * 0.20 fin-si fin-si fin-si fin-si Imprimir util fin 5) En una tienda de descuento se efectúa una promoción en la cual se hace un descuento sobre el valor de la compra total según el color de la bolita que el cliente saque al pagar en caja. Si la bolita es de color blanco no se le hará descuento alguno, si es verde se le hará un 10% de descuento, si es amarilla un 25%, si es azul un 50% y si es roja un 100%. Determinar la cantidad final que el cliente deberá pagar por su compra. se sabe que solo hay bolitas de los colores mencionados. Inicio leer tc, b$ si b$ = ‘blanca’ entonces d=0 caso contrario si b$ = ‘verde’ entonces d=tc*0.10 caso contrario si b$ = ‘amarilla’ entonces d=tc*0.25 caso contrario si b$ = ‘azul’ entonces d=tc*0.50 caso contrario d=tc fin-si fin-si fin-si fin-si fin 6) El IMSS requiere clasificar a las personas que se jubilaran en el año de 1997. Existen tres tipos de jubilaciones: por edad, por antigüedad joven y por antigüedad adulta. Las personas adscritas a la 52 UNIVERSIDAD SALESIANA DE BOLIVIA Docente: Lic. Carla Aguirre – Lic. Flabio Beltrán Materia: Introducción a la Programación Carrera: CONTADURÍA PÚBLICA jubilación por edad deben tener 60 años o mas y una antigüedad en su empleo de menos de 25 años. Las personas adscritas a la jubilación por antigüedad joven deben tener menos de 60 años y una antigüedad en su empleo de 25 años o mas. Las personas adscritas a la jubilación por antigüedad adulta deben tener 60 años o mas y una antigüedad en su empleo de 25 años o mas. Determinar en que tipo de jubilación, quedara adscrita una persona. Inicio leer edad,ant si edad >= 60 and ant < 25 entonces imprimir “la jubilación es por edad” caso contrario si edad >= 60 and ant > 25 entonces imprimir “la jubilación es por edad adulta” caso contrario si edad < 60 and ant > 25 entonces imprimir “la jubilación es por antigüedad joven” caso contrario imprimir “no tiene por que jubilarse” fin-si fin-si fin-si fin 53 UNIVERSIDAD SALESIANA DE BOLIVIA Docente: Lic. Carla Aguirre – Lic. Flabio Beltrán Materia: Introducción a la Programación Carrera: CONTADURÍA PÚBLICA UNIDAD 5. ESTRUCTURAS REPETITIVAS 5.1. Estructuras Repetitivas Se llaman problemas repetitivos o cíclicos a aquellos en cuya solución es necesario utilizar un mismo conjunto de acciones que se puedan ejecutar una cantidad especÍfica de veces. Esta cantidad puede ser fija (previamente determinada por el programador) o puede ser variable (estar en función de algún dato dentro del programa).Los ciclos se clasifican en: 1. Mientras hacer While do 2. Repetir hasta repeat until 3. Desde (Hacer Para) for Ciclos con un Número Indeterminado de Iteraciones ( Hacer-Mientras, Repetir-Hasta) Son aquellos en que el número de iteraciones no se conoce con exactitud, ya que esta dado en función de un dato dentro del programa. 5.1.1. Hacer-Mientras: Esta es una estructura que repetirá un proceso durante “N” veces, donde “N” puede ser fijo o variable. Para esto, la instrucción se vale de una condición que es la que debe cumplirse para que se siga ejecutando. Cuando la condición ya no se cumple, entonces ya no se ejecuta el proceso. La forma de esta estructura es la siguiente: Hacer mientras <condición> Accion1 Accion2 . . Accion N Fin-mientras CONDICION N SI CUERPO DEL CICLO 54 NO UNIVERSIDAD SALESIANA DE BOLIVIA Docente: Lic. Carla Aguirre – Lic. Flabio Beltrán Materia: Introducción a la Programación Carrera: CONTADURÍA PÚBLICA Problemas (Hacer Mientras) 1) Una compañía de seguros tiene contratados a n vendedores. Cada uno hace tres ventas a la semana. Su política de pagos es que un vendedor recibe un sueldo base, y un 10% extra por comisiones de sus ventas. El gerente de su compañía desea saber cuanto dinero obtendrá en la semana cada vendedor por concepto de comisiones por las tres ventas realizadas, y cuanto tomando en cuenta su sueldo base y sus comisiones. Pseudocódigo Diagrama de Flujo Inicio Leer n C = 0 Hacer mientras c < n Leer sb, v1, v2, v3 tot_vta = v1 + v2 + v3 com = tot_vta * 0.10 tpag = sb + com Imprimir tpag, com C = c + 1 Fin_ Mientras Fin Inicio n C=0 NO C< N SI Sb,v1,v2,v3 tot_vta = v1 + v2 + v3 com = tot_vta * 0.10 tpag = sb + com C = C + 1 Tpag, com fin 55 UNIVERSIDAD SALESIANA DE BOLIVIA Docente: Lic. Carla Aguirre – Lic. Flabio Beltrán Materia: Introducción a la Programación Carrera: CONTADURÍA PÚBLICA 2) En una empresa se requiere calcular el salario semanal de cada uno de los n obreros que laboran en ella. El salario se obtiene de la siguiente. forma: Si el obrero trabaja 40 horas o menos se le paga $20 por hora Si trabaja más de 40 horas se le paga $20 por cada una de las primeras 40 horas y $25 por cada hora extra. Pseudocódigo Diagrama de Flujo Inicio Leer n C = 0 Hacer mientras c < n Leer HT SI ht <= 40 entonces ss = ht * 20 Caso contrario He = ht -40 Inicio n C=0 NO C< N ss = ht * 20 + he * 25 fin si SI Imprimir ss C = c + 1 Fin_ Mientras Fin HT HT<=40 HE = HT - 40 SS = HT *20 + HE*25 SS=HT *20 SS C = C + 1 fin 3) Determinar cuantos hombres y cuantas mujeres se encuentran en un grupo de n personas, suponiendo que los datos son extraídos alumno por alumno. Pseudocódigo Diagrama de Flujo 56 UNIVERSIDAD SALESIANA DE BOLIVIA Docente: Lic. Carla Aguirre – Lic. Flabio Beltrán Materia: Introducción a la Programación Carrera: CONTADURÍA PÚBLICA Inicio Leer n C = 0; cm=0; cv=0 Hacer mientras c < n Leer (sexo) SI sexo <= “Varón” entonces cv = cv + 1 Caso contrario Cm = cm +1 Inicio n C=0 CV =0 CM =0 NO fin si C< N C = c + 1 Fin_ Mientras Imprimir (cv,cm) Fin SI SEXO SEXO = “VARON” CM = CM +1 CV = CV+1 C = C + 1 CV , CM fin 4) El Departamento de Seguridad Publica y Transito del D.F. desea saber, de los n autos que entran a la ciudad de México, cuantos entran con calcomanía de cada color. Conociendo el último dígito de la placa de cada automóvil se puede determinar el color de la calcomanía utilizando la sig. relación: DÍGITO COLOR 1o2 amarilla 3o4 rosa 5o6 roja 7o8 verde 9o0 azul 5.1.2. Repetir-Hasta: Esta es una estructura similar en algunas características, a la anterior. Repite un proceso una cantidad de veces, pero a diferencia del Hacer-Mientras, el Repetir-Hasta lo hace hasta que la condición se cumple y no mientras, como en el Hacer-Mientras. Por otra parte, esta estructura permite realizar el proceso cuando menos una vez, ya que la condición se evalúa al final del proceso, mientras que en el Hacer-Mientras puede ser que nunca llegue a entrar si la condición no se cumple desde un principio. La forma de esta estructura es la siguiente: Repetir Accion1 Accion2 CUERPO DEL CICLO 57 UNIVERSIDAD SALESIANA DE BOLIVIA Docente: Lic. Carla Aguirre – Lic. Flabio Beltrán Materia: Introducción a la Programación Carrera: CONTADURÍA PÚBLICA . . AccionN Hasta <condición> NO CONDICION SI Problemas Repetir - Hasta 1) En una tienda de descuento las personas que van a pagar el importe de su compra llegan a la caja y sacan una bolita de color, que les dirá que descuento tendrán sobre el total de su compra. Determinar la cantidad que pagara cada cliente desde que la tienda abre hasta que cierra. Se sabe que si el color de la bolita es roja el cliente obtendrá un 40% de descuento; si es amarilla un 25% y si es blanca no obtendrá descuento. 2) En un supermercado una ama de casa pone en su carrito los artículos que va tomando de los estantes. La señora quiere asegurarse de que el cajero le cobre bien lo que ella ha comprado, por lo que cada vez que toma un articulo anota su precio junto con la cantidad de artículos iguales que ha tomado y determina cuanto dinero gastara en ese articulo; a esto le suma lo que ira gastando en los demás artículos, hasta que decide que ya tomo todo lo que necesitaba. Ayúdale a esta señora a obtener el total de sus compras. 3) un teatro otorga descuentos según la edad del cliente. Determinar la cantidad de dinero que el teatro deja de percibir por cada una de las categorías. Tomar en cuenta que los niños menores de 5 años no pueden entrar al teatro y que existe un precio único en los asientos. Los descuentos se hacen tomando en cuenta el siguiente cuadro: Edad Descuento Categoría 1 5 - 14 35 % Categoría 2 15 - 19 25 % Categoría 3 20 - 45 10 % Categoría 4 46 - 65 25 % Categoría 5 66 en adelante 35 % 5.1.3. Ciclos con un Número Determinado de Iteraciones (Hacer-Para) Son aquellos en que el número de iteraciones se conoce antes de ejecutarse el ciclo. La forma de esta estructura es la siguiente: Hacer para V.C = L.I a L.S VC=LI Accion1 Accion2 Vc = LS vc=vc+1 . . . Acción N Fin-para F Cuerpo del ciclo Donde: V.C Variable de control del ciclo 58 V UNIVERSIDAD SALESIANA DE BOLIVIA Docente: Lic. Carla Aguirre – Lic. Flabio Beltrán Materia: Introducción a la Programación Carrera: CONTADURÍA PÚBLICA L.I Limite inferir L.S Límite superior En este ciclo la variable de control toma el valor inicial del ciclo y el ciclo se repite hasta que la variable de control llegue al límite superior. Problemas ( Hacer para ) 1) Calcular el promedio de un alumno que tiene 7 calificaciones en la materia de Diseño Estructurado de Algoritmos Pseudocódigo Diagrama de Flujo Inicio Sum=0 Leer Nom Hacer para c = 1 a 7 Leer calif Sum = sum + calif Fin-para prom = sum /7 Imprimir prom Fin. Inicio Sum = 0 Nom C=1 to 7, 1 no Calif Sum = sum + calif prom = sum /7 prom fin 2) Leer 10 números y obtener su cubo y su cuarta. Pseudocódigo Diagrama de Flujo 59 si UNIVERSIDAD SALESIANA DE BOLIVIA Docente: Lic. Carla Aguirre – Lic. Flabio Beltrán Materia: Introducción a la Programación Carrera: CONTADURÍA PÚBLICA Inicio Hacer para n = 1 a 10 Leer num cubo = num * num * Inicio n=1 to 10, 1 si num no cuarta = cubo * num Imprimir cubo, cuarta Fin-para Fin. num cubo = num*num*num cuarta = cubo*num Cubo,cuarta fin 3) Leer 10 números e imprimir solamente los números positivos Pseudocódigo Diagrama de Flujo Inicio Hacer para n = 1 a 10 Inicio Leer num Si num > 0 entonces n=1 to 10, 1 Imprimir num fin-si no Fin-para Fin. num si NO num > 0 SI num fin 4) Leer 20 números e imprimir cuantos son positivos, cuantos negativos y cuantos neutros. Inicio cn = 0 cp = 0 cneg = 0 Hacer para x = 1 a 20 Leer num 60 UNIVERSIDAD SALESIANA DE BOLIVIA Docente: Lic. Carla Aguirre – Lic. Flabio Beltrán Materia: Introducción a la Programación Carrera: CONTADURÍA PÚBLICA Sin num = 0 entonces cn = cn + 1 caso contrario Si num > 0 entonces cp = cp + 1 caso contrario cneg = cneg + 1 Fin-si Fin-si Fin-para Imprimir cn, cp, cneg Fin. 5) Leer 15 números negativos y convertirlos a positivos e imprimir dichos números. Inicio Hacer para x = 1 a 15 Leer num pos = num * -1 Imprimir num, pos Fin-para Fin. 6) Suponga que se tiene un conjunto de calificaciones de un grupo de 40 alumnos. Realizar un algoritmo para calcular la calificación media y la calificación mas baja de todo el grupo. Inicio sum = 0 baja = 9999 Hacer para a = 1 a 40 Leer calif sum = sum + calif Si calif < baja entonces baja = calif fin-si Fin-para media = sum / 2 Imprimir media, baja fin 7) Calcular e imprimir la tabla de multiplicar de un número cualquiera. Imprimir el multiplicando, el multiplicador y el producto. Inicio Leer num Hacer para X = 1 a 10 resul = num * x Imprimir num, “ * “, X, “ = “, resul Fin-para fin. 8) Simular el comportamiento de un reloj digital, imprimiendo la hora, minutos y segundos de un día desde las 0:00:00 horas hasta las 23:59:59 horas Inicio Hacer para h = 1 a 23 Hacer para m = 1 a 59 Hacer para s = 1 a 59 Imprimir h, m, s 61 UNIVERSIDAD SALESIANA DE BOLIVIA Docente: Lic. Carla Aguirre – Lic. Flabio Beltrán Materia: Introducción a la Programación Carrera: CONTADURÍA PÚBLICA Fin-para Fin-para Fin-para fin. 5.2. Problemas Repetitivos Compuestos 1.- El profesor de una materia desea conocer la cantidad de sus alumnos que no tienen derecho al examen de nivelación. Diseñe un pseudocódigo que lea las calificaciones obtenidas en las 5 unidades por cada uno de los 40 alumnos y escriba la cantidad de ellos que no tienen derecho al examen de nivelación. 2.- Diseñe un diagrama que lea los 2,500,000 votos otorgados a los 3 candidatos a gobernador e imprima el número del candidato ganador y su cantidad de votos. 3.- Suponga que tiene usted una tienda y desea registrar las ventas en una computadora. Diseñe un pseudocódigo que lea por cada cliente, el monto total de su compra. Al final del día escriba la cantidad total de las ventas y el número de clientes atendidos. 4.- Suponga que tiene una tienda y desea registrar sus ventas por medio de una computadora. Diseñe un pseudocódigo que lea por cada cliente: a).- el monto de la venta, b).- calcule e imprima el IVA , c).-calcule e imprima el total a pagar, d).- lea la cantidad con que paga el cliente, e).-calcule e imprime el cambio. Al final del día deberá imprimir la cantidad de dinero que debe haber en la caja. 62 UNIVERSIDAD SALESIANA DE BOLIVIA Docente: Lic. Carla Aguirre – Lic. Flabio Beltrán Materia: Introducción a la Programación Carrera: CONTADURÍA PÚBLICA UNIDAD 6 ARREGLOS Hasta aquí se han visto distintos tipos de estructuras de control. A partir de este punto se verá la aplicación de las mismas a distintos tipos de problemas. 6.1. Estructura de datos: Una estructura de datos es una colección de datos que pueden ser caracterizados por su organización y las operaciones que se definen en ella. Dentro de ellas encontramos distintos tipos, los tipos de datos más frecuentes en los diferentes lenguajes son: Tipos de datos entero (integer) real (real) carácter (char) lógico (boolean) Estándar simples definidos por el programador (no estándar) subrango (subrange) enumerativo (enumerated) simples o estáticos arrays (vectores/matrices) registros ficheros conjuntos cadenas (string) estructurados compuestos o dinámicos listas (pilas/colas) listas enlazadas árboles grafos Las estructuras estáticas son aquellas en las que el tamaño de memoria ocupado se define antes de que el programa se ejecute y no puede modificarse durante la ejecución Las estructuras de datos estáticas son aquellas en las que el tamaño ocupado en memoria se define antes que el programa se ejecute y no pueda modificarse dicho tamaño durante la ejecución del programa. Estas estructuras son: Vectores, matrices, registros y archivos. Las estructuras dinámicas son aquellas en las que no se debe definir previamente el tamaño de memoria Las estructuras de datos dinámicas no tienen limitaciones o restricciones en el tamaño de memoria ocupada que sus propias de las estructuras estáticas. Mediante el uso de un tipo de datos específico denominado puntero. Las estructuras de datos dinámicas son: listas, pilas, colas, árboles y grafos. Los datos simples tienen en común que cada variable representa un elemento, en los estructurados un identificador puede representar múltiples datos individuales, pudiendo cada uno de estos ser referenciados independientemente. 63 UNIVERSIDAD SALESIANA DE BOLIVIA Docente: Lic. Carla Aguirre – Lic. Flabio Beltrán Materia: Introducción a la Programación Carrera: CONTADURÍA PÚBLICA 6.2. ARRAY UNIDIMENSIONALES: VECTORES * * ARRAY (ARREGLO): Es un conjunto finito y ordenado de elementos homogéneos. Ordenado : cada elemento del arreglo puede ser identificado Homogéneo : son del mismo tipo de dato El tipo más simple de arreglo es el unidimensional o vector (matriz de una dimensión). Por ejemplo podría ser un vector denominado NOTAS NOTAS[1] 5 NOTAS[2] 8 NOTAS[k] 7 .......... ...... NOTAS[j] 3 Los subíndices 1, 2, k, n, indican la posición del elemento, en Pascal van entre corchetes. El primer elemento es el 5, el segundo es el 8, el elemento k es 7 y el enésimo es 3. 6.3. Operaciones con vectores : Un vector es una secuencia ordenada de elementos como: Si el vector se llama X, sus elementos son: X(1), X(2),.......,X(n) Las operaciones que se pueden realizar con vectores son: - Asignación. - Lectura/escritura. - Recorrido (acceso secuencial) - Actualizar (añadir, borrar) - Ordenación. - Búsqueda. Las operaciones implican el procesamiento o tratmiento de los elementos individuales del vector. La notación que se puede utilizar: Nombre Array (arreglo) = array[liminf....limsup] de tipo Nombre Array = nombre válido del vector. liminf....limsup= límite inferior y límite superior del rango del array tipo = tipo de datos de los elementos del array; Entero, real, caracter. Ejemplos: Nombres= Array[1..10] de caracter En el vector se almacenarán nombres de personas por ello se llama nombre, y es de tipo caracter. Lista = Array[1,...10] de real 64 UNIVERSIDAD SALESIANA DE BOLIVIA Docente: Lic. Carla Aguirre – Lic. Flabio Beltrán Materia: Introducción a la Programación Carrera: CONTADURÍA PÚBLICA El vector lista es numérico de tipo real 6.3.1. Asignación : La asignación de valores a un elemento del vector se realizará con la instrucción de asignación. Ejemplos: A(20)<-------5 asigna el valor de 5 al elemento 20 del vector A. A(2)<--------8 asigna el valor de 8 al elemento 2 del vector A 6.3.2. Lectura/escritura de datos : La lectura/escritura de datos en arrays u operaciones de entrada/salida normalmente se realizan en operaciones repetitivas y selectivas. Esto es: Leer A Escribir A Leer V(5) lectura del vector A escritura del vector A leer el contenido del elemento 5 de V Se leen elementos del vector con : Leer A(i) 6.3.3. Acceso secuencial al vector (recorrido) : Se puede acceder a los elementos de un vector para introducir datos (escribir) en el o bien para visualizar su contenido (leer). 6.3.4. Actualización de un vector : La operación de actualizar un vector puede constar a su vez de tres operaciones: añadir insertar borrar elementos elementos elementos Se denomina añadir datos a un vector la operación de adicionar un nuevo elemento al final del vector. La condición única para esta operación consistirá en la comprobación de espacio de memoria suficiente para el nuevo vector. Esto se define a principio de programa. 6.4. Arrays de varias dimensiones : Los vectores anteriormente mencionados son unidimensionales y en ellos cada elemento se define o referencia por un índice o subíndice. Estos vectores son elementos son elementos de datos escritos en una secuencia. También se pueden definir los arrays: - Bidimensionales. - Multidimensionales. 65 UNIVERSIDAD SALESIANA DE BOLIVIA Docente: Lic. Carla Aguirre – Lic. Flabio Beltrán Materia: Introducción a la Programación Carrera: CONTADURÍA PÚBLICA 6.4.1. Arrays bidimensionales (tablas/matrices) : El array bidimensional se puede considerar como un vector de vectores, también todos del mismo tipo, en el cual el orden de los componentes es significativos. Para identificar cada elemento se especifican dos subíndices, por fila y por columna. Estos arrays tienen un tamaño o dimensión. Si I es indicador de fila J es el indicador de columna => I = 1,..N J= 1,...M Para la matriz llamada B se tiene la dimensión: B(1:N,....1:M) = B(I,J) cada elemento es del mismo tipo. La matriz tiene N filas y M columnas. 6.5. Arrays multidimensionales : Un array puede ser definido de tres dimensiones, cuatro y hasta de n- dimensiones. Un array de n-dimensiones requiere que los valores de los n-subíndices puedan ser indentificados a fin de identificar un elemento individual del array. este se puede identificar como: A(L1:U1,L2:U2,.....,Ln:Un) y un elemento individual se puede identificar como: A(I1, I2,...,In) donde cada subíndice esta dentro de los límites adecuados: Lk<=Ik, donde k=1,2,...,n 6.6. Almacenamiento de Arrays en Memoria : Los lenguajes de programación nos proporcionan medios eficaces para almacenar y acceder a los elementos de los arrays, de modo que el programador no tenga que ocuparse sobre los detalles específicos de almacenamiento. El almacenamiento en la computadora esta dispuesto en secuencia contigua. A(1) A(2) A(1,1) ...... A(n,1) A(1,2)......A(i,1) .... ..... .... A(i,j) A(i) ... A(n) 6.7.Almacenamiento de un vector : 66 UNIVERSIDAD SALESIANA DE BOLIVIA Docente: Lic. Carla Aguirre – Lic. Flabio Beltrán Materia: Introducción a la Programación Carrera: CONTADURÍA PÚBLICA El almacenamiento en memoria de una vector se realiza en celdas o posiciones secuenciales. Cada elemento del array ocupa S bytes y B es la dirección inicial de la memoria , posición o dirección base, la dirección inicial del elemento i- ésimo sería: B + (I-S)*S IV. BIBLIOGRAFÍA LISTADO DE TEXTOS AUTOR Luis Joyanes OBRA LUGAR de EDIC EDITORIAL “Fundamentos de Perú . Ed. McGraw-Hill Programación. Algoritmos y Estructuras de Datos y Objetos”. AÑO 2003 Luis Joyanes Aguilar Sanders, Donald “Fundamentos de la Programación” “Informática : Presente y futuro” “Fundamentos en Computación” “Introducción a las ciencias de la computación, enfoque algoritmico”. “Metodología de la Programación” “Metodología de la Programación”. “Aprenda Visual Basic 6.0” ARECHIGA Rafael TREMBLAY Jean Paul Luis Joyanes Aguilar Bustos A. Franklin Michael Halvorson Perú McGraw-HIll 2000 México LIMUSA 1998 Mexico LIMUSA 1990 España McGraw-HIll 1985 España McGraw-HIll 1998 Mexico LIMUSA 1995 Madrid – España McGraw-Hill 1998 DIRECCIONES WEB. V. GLOSARIO. 67 UNIVERSIDAD SALESIANA DE BOLIVIA Docente: Lic. Carla Aguirre – Lic. Flabio Beltrán Materia: Introducción a la Programación Carrera: CONTADURÍA PÚBLICA A Algoritmo Conjunto de pasos ordenados o procedimientos para resolver un Problema. Almacenamiento Manejo de los datos que no están siendo usados en este momento por la computadora. Magnético: Tipo de tecnología para el almacenamiento de datos que trabaja por medio de la polarización de pequeñas piezas de hierro sobre un medio magnético. Optico: La alternativa principal al almacenamiento magnético; usa un rayo láser para leer, escribir y/o transferir datos a un medio apropiado. Acrónimo de Arithmetic and Logic Unit, unidad aritmética y lógica. ALU B Base de Datos 1. Colección integrada de datos almacenados en un dispositivo de BASIC almacenamiento de acceso directo. 2. Software de aplicación que le permite al usuario introducir, actualizar y extraer información, así como organizar y buscar esos datos de múltiples maneras. Acrónimo de Beginners All-purpose Symbolic Instruction Code, Código de instrucciones simbólicas de propósito general para principiantes: Lenguaje de Programación muy popular y fácil de usar por principiantes; desarrollado en 1964. Acrónimo de "BInary digiT", digito binario: segmento individual de datos; ya sea un 0 o un 1. Bit Bit de paridad Bit adicional en un byte usado para detectar errores, usado en la versión original de ASCII. Bus de Datos Via elctronica que conecta al CPU, la memoria y otros dispositivos de hardware en una tarjeta principal; algunas veces conocida simplemente como bus. Camino electrónico que lleva los datos entre la CPU de la computadora y la memoria. Ocho bits, la cantidad de memoria que se requiere para guardar un solo carácter; unidad de datos capaz de guardar 256 valores diferentes. Bus de Direcciones BYTE C Carácter 1. Un número, letra, símbolo o signo de puntuación. 2. Una sola variable de 8 bits. CD-ROM Acrónimo de Compact Disk-Read Only Memory, Disco compacto, memoria de solo lectura. El dispositivo más común de almacenamiento óptico, donde un láser lee superficies y hoyos de la superficie de un disco (como un CD de música); puede almacenar hasta 640 MB pero no se puede 68 UNIVERSIDAD SALESIANA DE BOLIVIA Docente: Lic. Carla Aguirre – Lic. Flabio Beltrán Chip Ciclo Iterativo con el comando FOR Cinta Magnética Código Máquina Materia: Introducción a la Programación Carrera: CONTADURÍA PÚBLICA escribir en él; Actualmente han salido nuevos que ya permiten la lectura y escritura pero requieren de una unidad especial de CD ROM llamada CD Writer, CDWR Oblea de silicio u otro material grabada con los circuitos electrónicos que realizan las operaciones de una computadora. Programación iterativa donde el programador empieza con un valor determinado que va cambiando por una cantidad predeterminada hasta que alcanza el límite conocido y luego se detiene. Tipo de Almacenamiento magnético que tiene mayor capacidad que un disco flexible, pero requiere de mucho más tiempo para tener accesos a los datos que no van a ser usados con frecuencia, por ejemplo el respaldo completo de un disco duro. Código que reconoce el CPU como instrucciones en archivos de programas ejecutables. Código de Objeto Código usado para generar un programa en lenguaje máquina; traducción de un archivo de código fuente. Código Fuente Instrucciones de programa creadas por los programadores cuando lo escriben. Compilación El primer paso en el proceso de conversión de archivos de código fuente de programa a programas ejecutables. Compilador Programa que traduce un archivo de código fuente de programa a código objeto. D Datos Información, números, letras o símbolos que se convierten en información útil cuando son procesados. Densidad Medida de la calidad de la superficie de un disco; a más alta densidad, más estrechamente se almacenan las partículas de oxido de hierro y más datos pueden ser grabados en el disco. Diagrama de Flujo Representación gráfica, usando líneas y símbolos geométricos, de un procedimiento o programa de Computadora. Dirección de memoria Número que indica una localidad en los chips de memoria para que la computadora pueda encontrar datos rápidamente sin tener que buscar secuencialmente en toda la memoria. Un disco magnético oculto, no removible, que se incluye con la mayoría de las PC; pila de discos magnéticos, cada uno recubierto con óxido de hierro, que giran sobre un eje y están encapsulados en un recinto sellado; puede almacenar mucha más información que un disco flexible y es usado para guardar generalmente grandes cantidades de datos. Disco Duro Disco Flexible Disco magnético removible hecho de una pieza de plástico delgada y flexible cubierta con óxido de hierro y contenida en un estuche de plástico o forro protector; viene en tamaño de 2, 3 1/2, 5 1/4 69 UNIVERSIDAD SALESIANA DE BOLIVIA Docente: Lic. Carla Aguirre – Lic. Flabio Beltrán Disco Magnético Dispositivos de Entrada Dispositivos de Entrada y Salida Dispositivos de Salida Materia: Introducción a la Programación Carrera: CONTADURÍA PÚBLICA pulgadas; comúnmente usado para cargar nuevos programas o datos a un disco duro, intercambiar datos con otros usuarios, o hacer respaldos de datos de un disco duro; también llamado disquete. El medio de almacenamiento más común; componente redondo y plano de computadora que gira sobre su eje central. Equipo de cómputo que acepta datos e instrucciones de un usuario. Por Ejemplo: Teclado, ratón , pluma, digitalizador (scanner) ,lector de código de barras, lector de imágenes, palanca de juegos (jostick). (E/S): Equipo que permite a una computadora comunicarse con un usuario y con otras máquinas o dispositivos. Equipo de computadora que regresa datos de procesados o información a un usuario; Por ejemplo: Monitor, graficador, impresora. E E-mail Abreviación de Electronic mail, correo electrónico. F Freeware Software disponible para uso sin costo alguno; puede o no tener derecho de autor. G Graficador (Plotter): Dispositivo de Salida que crea imagines con un brazo robotizado, usando plumas para trazar líneas en una hoja de papel; utilizado comúnmente para diseño asistido por computadora y gráficos de presentación. H Hardware Componentes físicos de una computadora, incluyendo el procesador, memoria, dispositivos de entrada y salida y discos. Hoja de Cálculo Software de aplicación que exhibe una rejilla grande de columnas y filas, en la cual el usuario introduce texto, números y/o fórmulas para cálculos; hoja contable computarizada u hoja de trabajo; usada para cálculos y evaluación de números; puede crear reportes y presentaciones para comunicar información; utilizada para propósitos como análisis financieros, registros contables además e captura y administración de datos. I Impresora Dispositivo de salida que produce una copia en papel. 1. Impresora de Inyección de tinta: Impresora que crea imágenes directamente en papel por medio del rociado de tinta; tiene una calidad y velocidad mayores que el de las impresoras de matriz de punto, pero menores que las de las impresoras láser. 2. Impresora de Matriz de Punto: El primer tipo de impresora comúnmente usada con PC; opera mediante le uso de alambres 70 UNIVERSIDAD SALESIANA DE BOLIVIA Docente: Lic. Carla Aguirre – Lic. Flabio Beltrán Información IS Materia: Introducción a la Programación Carrera: CONTADURÍA PÚBLICA (martinetes) que pegan sobre el papel; ruidosa y con menor calidad de impresión que otros tipos de impresoras; pero también más barata. 3. Impresora Láser: Impresora que opera mediante el enfoque de un rayo láser sobre un tambor fotostático; produce mayor calidad de impresión que todas las impresoras para PC, es silenciosa, rápida y fácil de usar, pero también más cara que otros tipos de impresoras. 1. Datos que han sido capturados y procesados por una computadora. 2. Cualquier elemento no tangible que afecta a las empresas. Acrónimo de Information Sistems, Sistemas de Información. K KB Kilobyte Acrónimo de Kilobyte. (KB): 1024 bytes de memoria. L Lenguaje de Alto Nivel Lenguaje de Máquina Lenguaje Ensamblador 1. Originalmente, cualquier lenguaje más fácil de entender que el lenguaje máquina. 2. Actualmente usado para aquellos lenguajes más distantes del código máquina que el lenguaje ensamblador; usa palabras con mayor significado y frases, y posee facilidades para alterar el flujo de programas. Programación de Bajo Nivel que consiste de una serie de instrucciones codificadas que pueden ser ejecutadas directamente por la CPU. Lenguaje de Programación de Bajo Nivel que usa códigos de programación en lugar de los 0 y 1 del lenguaje máquina. M MB Memoria Memoria de Acceso Aleatorio (RAM): Acrónimo de Megabyte, 1 024 kilobytes (1 048 576 bytes) de Memoria. Uno de los dos componentes de procesamiento (junto con el CPU) de una computadora; área temporal de almacenamiento construido dentro del equipo de cómputo; lugar donde se guardan instrucciones y datos mientras son manipulados. Memoria volátil y temporal de una computadora incluida en la CPU, almacena información mientras se esta trabajando con está, pero la guarda sólo hasta que la computadora se apaga o se arranca de nuevo. P PC Procesador de Palabras Programa Acrónimo de Personal Computer, Computadora Personal. Software de Aplicación usado para crear y modificar documentos. Software. 71 UNIVERSIDAD SALESIANA DE BOLIVIA Docente: Lic. Carla Aguirre – Lic. Flabio Beltrán Pseudocódigo Materia: Introducción a la Programación Carrera: CONTADURÍA PÚBLICA Código que está entre el idioma inglés y el código real de programación y que algunos programadores usan para plasmar ideas en papel sin tener que preocuparse por las reglas y la sintaxis reales del lenguaje de programación. R RAM Acrónimo de Random Access Memory, Memoria de Acceso Aleatorio. Ratón (Mouse): Dispositivo de entrada que permite al usuario poder dibujar en la pantalla y controla el cursor por medio de un apuntador y haciendo clic, mientras lo mueve sobre una superficie plana; el usuario hace clic, doble clic, arrastra o apunta el ratón para que trabaje. Sistema de computadoras interconectadas que pueden comunicarse entre sí y compartir aplicaciones y datos. Red ROM Acrónimo de Read Only Memory, Memoria de Solo Lectura. S Salida Scanner Sistema Operativo Software Información generada por el procesamiento de datos de entrada. (Lector de Imágenes): Dispositivo de entrada usado para copiar una página impresa a la memoria de la computadora sin la necesidad de un tecleo manual. (OS) Software del sistema que provee una interfaz para que el usuario pueda comunicarse con la computadora, administre dispositivos de hardware (unidades de disco, teclado, monitor, etc.), administre y mantenga sistemas de archivos de disco y soporte programas de aplicación. Colección de instrucciones electrónicas escritas por programadores, usando un lenguaje de programación que la CPU de una computadora puede interpretar para llevar a cabo una tarea específica; generalmente se guarda en un medio magnético. 1. Antivirus: Programa que rastrea en discos y memoria la presencia de virus, los detecta y los erradica. 2. De Aplicación: Programas que trabajan con más frecuencia los usuarios de computadoras, especialmente para propósitos generales como crear un documento, hojas de cálculo, gráficas, etc. 3. De Autoedición: (DTP): Software que permite al usuario, con un solo programa de aplicación, llevar a cabo las funciones de diseño, composición y armado para producir páginas de impresión de alta calidad y listas para ser fotografiadas. 4. De Dominio Público: Software sin derecho de autor y, por lo tanto, disponible para ser usado sin costo o restricción. 5. Del Sistema: Software que realiza funciones específicas en una computadora y sus componentes. 6. De Procesamiento de Imágenes: Programa usado para manipular imágenes leídas con equipo lector de imágenes. 7. De Reconocimiento Óptico de Caracteres: (OCR): Programa que permite a un scanner traducir texto, tecleando o impreso, a una 72 UNIVERSIDAD SALESIANA DE BOLIVIA Docente: Lic. Carla Aguirre – Lic. Flabio Beltrán Materia: Introducción a la Programación Carrera: CONTADURÍA PÚBLICA serie de códigos de caracteres en la memoria de la computadora para su procesamiento. T Teclado Tarjeta de Sonido Dispositivo de entrada más común; permite al usuario introducir letras, números o símbolos, caracteres de puntuación y comandos en una computadora. Dispositivo que produce sonidos y que generalmente, provee salidas en la parte trasera de una computadora para bocinas externas. Tarjeta de Video Tarjeta que procesa imágenes de video y provee puertos para tener o dar acceso por una video reproductora o una cámara de video. Tarjeta Principal o Tarjeta Madre Principal tarjeta del sistema de una computadora, donde se encuentran la CPU y la memoria; la mayoría también tiene onectores para tarjetas que se pueden agregar por medio de ranuras de expansión. U Unidad Aritmético Lógica Unidad de Control Unidad de Procesamiento Central (ALU): Una de las dos partes básicas (junto con la Unidad de Control) de un CPU, maneja operaciones aritméticas, como la suma de números, y operaciones lógicas, tal como la comparación numérica. Una de las dos partes básicas (junto con la ALU) de una CPU; contiene instrucciones para llevar a cabo las actividades de una computadora. (CPU): El componente (comúnmente conocido como chip) que realiza la función de procesamiento, localizado en la tarjeta principal, que interpreta y ejecuta instrucciones de un programa y se comunica con dispositivos de entrada, salida y de almacenamiento. V Variable Parte de la memoria de una computadora que un programa se reserva para su propio uso; número de bytes de memoria que puede contener un valor que puede cambiar; carácter, punto flotante, número entero largo, serie. 73