• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
7492681 m-algoritmos
 

7492681 m-algoritmos

on

  • 1,011 views

 

Statistics

Views

Total Views
1,011
Views on SlideShare
1,000
Embed Views
11

Actions

Likes
0
Downloads
28
Comments
0

2 Embeds 11

http://entrenamientopc.blogspot.com.ar 6
http://entrenamientopc.blogspot.mx 5

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    7492681 m-algoritmos 7492681 m-algoritmos Document Transcript

    • MODULO CURSO ALGORITMOS IVAN ARTURO LOPEZ ORTIZ Ivan.lopez@UNAD.edu.co Ivan.lopezortiz@gmail.comUNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD FACULTAD DE CIENCIAS BÁSICAS E INGENIERÍAPROGRAMA INGENIERIA DE SISTEMAS BOGOTÁ D.C., 2005
    • PROTOCOLO ACADEMICO Y GUÍA DIDÁCTICACURSO: ALGORITMOS@CopyRigthUniversidad Nacional Abierta y a DistanciaISBN2005Centro Nacional de Medios para el Aprendizaje
    • TABLA DE CONTENIDO1.-Ficha Tecnica.................................................................................................. 5Planificación De Las Unidades Didácticas. ......................................................... 6Introduccion......................................................................................................... 71. Primera Unidad ............................................................................................... 5GENERALIDADES, CONCEPTOS, ANTECEDENTES Y DESARROLLO DE LOS ALGORITMOS ............................................................................................................................ 5INTRODUCCIÓN ...................................................................................................... 51.1 INTENCIONALIDADES FORMATIVAS: .................................................................... 61.2 GENERALIDADES .............................................................................................. 71.2.1 LECTURA 1. INTRODUCCIÓN A LA INFORMÁTICA ............................................... 81.3 PROGRAMACIÓN DE COMPUTADORAS .............................................................. 181.3 PROGRAMACIÓN DE COMPUTADORAS .............................................................. 181.3.1 LENGUAJES DE PROGRAMACIÓN .................................................................. 18Lectura # 2: Lenguajes De Programación ......................................................... 191.3.2 LA LÓGICA DE LA PROGRAMACIÓN ............................................................... 221.3.3 TÉCNICAS DE PROGRAMACIÓN ................................................................... 231.4 TIPOS DE DATOS Y OPERADORES .................................................................. 281.4.1. VARIABLES Y CONSTANTES ........................................................................ 281.3.2 EJERCICIOS DE VERIFICACIÓN ..................................................................... 312. Segunda Unidad:........................................................................................... 33ESTRUCTURA GENERAL DE UN ALGORITMO........................................................... 33INTRODUCCIÓN .................................................................................................... 332.1 INTENCIONALIDADES FORMATIVAS: .................................................................. 332.2 DIAGRAMAS DE FLUJO ................................................................................... 342.2.1 EJERCICIOS DE VERIFICACIÓN..................................................................... 402.3 ALGORITMOS ................................................................................................. 422.3.1 ESTRUCTURAS DE SELECCIÓN ..................................................................... 452.3.1.1 Ejercicios De Verificación ...................................................................... 472.3.2 ESTRUCTURAS DE SECUENCIA CICLOS O BUCLES ......................................... 482.3.2.1 Ciclo Para O Desde ............................................................................ 492.3.2.1.1 Ejercicios De Verificación ................................................................... 522.3.2.2 Ciclo Mientras........................................................................................ 542.3.2.3 Ciclo Repita Hasta Que ......................................................................... 552.2.3.4 Ejercicios De Verificación ...................................................................... 562.3.3 SUBPROGRMA O MODULO ........................................................................... 58
    • 3. Tercera Unidad.............................................................................................. 61LENGUAJE DE PROGRAMACIÓN C++ .................................................................... 61INTRODUCCIÓN .................................................................................................... 613.2 LENGUAJE DE PROGRAMACIÓN C++............................................................... 623.2.2 EJECUCIÓN DEL PROGRAMA ........................................................................ 643.2.3 EJERCICIOS DE VERIFICACIÓN ..................................................................... 713.2.4 C++, CICLOS .............................................................................................. 753.2.4.1 Ciclo For ................................................................................................ 753.2.4.1.1 Ejercicios De Verificación ................................................................... 773.2.4.2 Ciclos While Y Do While........................................................................ 773.2.4.2.1 Ejercicios De Verificación ................................................................... 793.1.5.1 Funciones Incorporadas ........................................................................ 823.1.5.2.-Nuestras Propias Funciones ................................................................ 83Fuentes Documentales ..................................................................................... 89Sitios Web ......................................................................................................... 89Anexos .............................................................................................................. 91ANEXO 1 – MAPA CONCEPTUAL ............................................................................ 92ANEXO2 GUIA PARA LA CONSTRUCCION DE PORTAFOLIO ....................................... 95ANEXO 3 FICHA DE SEGUIMIENTO ....................................................................... 100ANEXO 4 FORMATO PARA LA AUTOEVALUACIÓN DEL GRUPO COLABORATIVO ........ 102ANEXO 5 COMAPAR Y CONTRASTAR ................................................................... 103ANEXO 7 HABILIDAD DE OBSERVAR .................................................................... 104ANEXO 8 ÍNDICE DE FUNCIONES ......................................................................... 105
    • 1.-FICHA TECNICA NOMBRE DEL CURSO ALGORITMOS. Computadora, Hardware, Software, Informática, Código binario, Periféricos, Memoria, Programación de computadoras, programador, Programación estructurada, Lenguaje de programación, Interprete,PALABRAS CLAVE Compilador, Variable, Constante, Diagrama de flujo, Diagramas de flujo, Algoritmos, Toma de decisión, Ciclos, Funciones UNIVERSIDAD NACIONAL ABIERTA Y A INSTITUCION DISTANCIA UNAD CIUDAD SANTA FE DE BOGOTÁ AUTOR DEL IVAN ARTURO LOPEZ ORTIZ PROTOCOLO Ivan.lopez@UNAD.edu.co ACADEMICO ivan.lopezortiz@gmail.com AÑO 2005UNIDAD ACADEMICA FACULTAD DE CIENCIAS BASICAS E INGENIERIA CAMPO DE PROFESIONAL FORMACION AREA DE INGENIERIA DE SISTEMAS Y AFINES CONOCIMIENTO CREDITOS TRES (3) ACADEMICOS TIPO DE CURSO TEORICO PRÁCTICO DESTINATARIOS Estudiantes de diversos programas de la UNAD, COMPETENCIA El estudiante se inicia en los fundamentos esenciales de GENERAL DE las técnicas y destrezas del diseño, análisis y APRENDIZAJE construcción de algoritmos y programas informáticosMETODOLOGIA DE A DISTANCIA OFERTA FORMATO DE Documentos impresos en papel con apoyo en Web; CIRCULACION CD-ROM. 1. Conceptos, antecedentes y desarrollo deDENOMINACION DE algoritmos LAS UNIDADES DIDACTICAS 2. Estructura general de un algoritmo 3. Herramienta de programación
    • PLANIFICACIÓN DE LAS UNIDADES DIDÁCTICAS.Unidades didácticas, capítulos, temas, secciones, fragmentosUnidades capítulos temas seccionesDidácticas Introducción a la • Generalidades • Características informática • Técnicas • Programación DE • Programación modular COMPUTADORAS • Programación estructurada • Lenguajes de máquina,Unidad 1: • Lenguajes de bajo y alto nivelConceptos, programaciónantecedentes y • Interpretes • Traductoresdesarrollo de los • compiladoresalgoritmos Enteros • Numéricos • tipos de datos y Reales • Alfanuméricos operaciones Carácter • Lógicos Booleano • concepto • Variables y constantes • identificadores • Manipulación • Aritméticas • Reglas de prioridad • Expresiones • Lógicas(booleanas) • Operadores lógicos Diagramas de flujo Simbología • Conceptos generales Algoritmos Conceptualización • De asignación • Sentencias en • De lectura(entrada) Algoritmos • De escritura(salida) • DecisiónUnidad 2: • Desde (para)Estructura • Bucles (ciclos) • Mientras queGeneral de un • Repetir - hasta queAlgoritmo • Elementos básicos • Contadores • Acumuladores • Subalgoritmos • Variables locales y • Subprogramas globales • Comunicación • Conceptos Generales • Instalación • Introducción al lenguaje • Estructura de unUnidad 3: de programación C o programaHerramienta de C++ • Estructuras de controlprogramación • Funciones
    • INTRODUCCIONEl curso de Algoritmos, esta adscrito a la facultad de Ciencias Básicas eIngeniería de la UNAD y corresponde al programa de Ingeniería de Sistemas,esta constituido por tres créditos académicos, correspondientes a 38 deacompañamiento y 106 de estudio independiente, de acuerdo al contenidoprogramático establecido por la facultad de ciencias básicas e ingeniería, estadirigido inicialmente a alumnos de la UNAD de segundo semestre o periodoacadémico, sin que esto implique que lo puedan tomar otros participantesdeseosos de adquirir conocimientos en el arte de la programación decomputadoras. Este curso corresponde a la formación básica del programa y norequiere que el participante posea conocimientos iniciales para el desarrollo dellos temas planteados; el temario pretende que los participantes adquieran yapliquen conocimientos básicos necesarios para la construcción de solucionesinformáticas, utilizando para ello diversas estrategias de aprendizaje, propiasdel modelo de educación a distancia, permitiendo activar las habilidadescognitivas y metacognitivas en el estudiante.El presente modulo no pretende ser un libro especializado en la construcción dealgoritmos; es un material de consulta que pretende llevar al estudiante alaprendizaje de los conceptos básicos necesarios para adquirir conocimientosprevios en la programación de computadoras, los cuales le ayudarán aenfrentarse a la solución de supuestos problemicos y de problemáticas realesen su entorno.Toma la premisa de Luis Joyanes Aguilar1, pues construye y recopila una cantidadde ejercicios prácticos que brindan la posibilidad de adquirir destreza y habilidaden el abordaje, análisis y resolución de los mismos.Esta dividido en tres unidades didácticas, que van desde la adquisición deconocimientos previos en el diseño de algoritmos, hasta la solución de losmismos mediante el lenguaje de programación C++.La primera Unidad comprende, una introducción a hardware, software, técnicasde programación, lenguajes de programación, tipos de datos, operadores,variables, constantes, expresiones (aritméticas, Lógicas, carácter);La segunda inicia con una conceptualización de los diagramas de flujo,simbología y utilidad, luego se realiza el abordaje de la estructura como tal delos algoritmos, su evolución, sentencias de asignación, entrada, salida dedatos, instrucciones de decisión, cada uno de los ciclos empleados en laprogramación de computadoras, así mismo se trabajara con contadores yacumuladores; finalizaremos la unidad con un vistazo a los subprogramas.1 Madrid, 1996 "Todos los cursos de programación deben apoyarse en la resolución de grannúmero de problemas que permitan al alumno adquirir práctica que le facilite el aprendizaje."
    • La tercera unidad, procura llevar a la práctica lo realizado con cada algoritmo,en esta unidad se utilizara el lenguaje de programación C++, como herramientade programación, al igual que en las anteriores unidades, ésta inicia con unafundamentación teórica, continúa con la estructura de un programa, lasestructuras de control y finaliza con la practica de funciones.Cada una de las unidades con sus correspondientes temas y secciones seabordara mediante recopilación de lecturas, complementadas con diferentestalleres para ser abordados en forma individual, grupo colaborativo y grangrupo. Evidenciada permanentemente en las fichas de seguimiento que sellevan en el portafolio.Es importante destacar que para este curso los estudiantes tengan algunashabilidades de dominio del computador, las cuales se dieron en el curso deherramientas informáticas, al igual se sugiere tomar el curso de mantenimientoy ensamble de computadoras, que aportara grandes referentes para entender laarquitectura básica de un computador.
    • 51. PRIMERA UNIDADGeneralidades, Conceptos, antecedentes y desarrollo de los algoritmosIntroducciónLa primera unidad del curso de algoritmos, esta dirigida esencialmente a laconceptualización de términos básicos necesarios para el abordaje del presentecurso.Entre los aspectos fundamentales se encuentran, las generalidades de laprogramación, las técnicas de programación, evolución histórica de laprogramación, lenguajes de programación, traductores (compiladores einterpretes), tipos de datos (numéricas, alfanuméricas, lógicas) y operaciones,manejo de variables y constantes lo mismo que expresiones aritméticaslógicas, todo esto acompañado de procesos pedagógicos, propios del modelode la educación a distancia apropiada en el uso de las nuevas tecnologíasEsta unidad se trabaja mediante lecturas que permiten la apropiación delconocimiento y se evidencian en diferentes productos que le ofrecen laoportunidad de aplicar las diferentes herramientas, adquiridas en los primeroscursos académicos; también se desarrollarán una serie de ejercicios prácticos,tendentes a adquirir habilidades en la resolución de problemáticas supuestas,para pasar a problemáticas reales.Igualmente están implícitas diferentes estrategias de pensamiento de ordensuperior que el estudiante irá descubriendo gracias al apoyo permanente deltutor, quien en es el mediador del proceso de aprendizaje.Al final de la unidad, se plantean una serie de actividades que buscandeterminar el grado de apropiación del conocimiento, además de dar soportevalorativo a la nota definitiva**
    • 61.1 INTENCIONALIDADES FORMATIVAS:Propósitos de la unidadMotivar al estudiante en el abordaje de los temas referentes a la evolución ydesarrollo de los algoritmos Realizar lecturas que permitan conceptualizar lo referente a hardware ysoftwareObjetivos de la unidadConceptualizar los aspectos fundamentales referentes a los antecedentes,desarrollo y evolución de los algoritmos.Determinar las técnicas de programación, lo mismo que los lenguajes deprogramaciónConocer tipos de operadoresDiferenciar y aplicar variables y constantesJerarquizar las expresiones mediante las reglas de prioridadConocer diferentes tipos de lenguajes de programaciónCompetencias de la unidad:El estudiante domina los conceptos previos necesarios para el desarrollo dealgoritmosMetas de aprendizajeEl estudiante mediante lecturas y acompañamiento tutorial mediado es capazde comprender los conceptos fundamentales para el desarrollo de unalgoritmo.Unidades Didácticas:Palabras claves:HardwareSoftwareInformáticaCódigo binarioPeriféricosMemoriaProgramación de computadorasprogramadorProgramación estructuradaLenguaje de programaciónInterpreteCompiladorVariableConstanteDiagrama de flujo
    • 71.2 GENERALIDADESEs importante que los estudiantes del curso de algoritmos, adquieranconocimientos básicos en temas referentes a la informática como elfuncionamiento básico de los computadores, sus dispositivos hardware, lascaracterísticas esenciales del software y esencialmente se adquieraconocimiento en lenguajes de programación, características, evolución, lastendencias y técnicas de programación y en fin todo aquello que aporte aldesarrollo habilidades que permitan un conocimiento inicial necesario paraabordar temas primordiales en la programación de computadoras, para lo cualse propone la siguientes lecturas
    • 81.2.1 Lectura 1. Introducción a la Informática2Es necesario que el alumno determine y diferencie claramente aspectos básicossobre Informática, hardware, software, para lo cual se sugiere al estudiante seapoye en la lectura número 1, 2 y 3, a partir de ella debe realizar la actividadesprogramadas para estas lecturas.“ INTRODUCCIÓN A LA INFORMÁTICADesde sus orígenes, el hombre ha tenido necesidad de la información. Estainformación, que en principio se recogía de forma oral, con el surgimiento de laescritura, comenzó a almacenarse en medios que evolucionaron desde lastablillas hasta el papel, pasando por los papiros y los pergaminos. También losmedios de transmisión han ido evolucionando desde la transmisión oral, buenapara distancias cortas, hasta la transmisión a grandes distancias por cablesutilizando código Morse o la propia voz mediante el teléfono.Se puede decir que el tratamiento de la información es tan antiguo como elhombre y se ha ido potenciando y haciendo más sofisticado con el transcursodel tiempo hasta llegar a la era de la electrónica. El hombre no ha parado a lolargo de la historia de crear máquinas y métodos para procesar la información.Para facilitar esta tarea, en especial en el mundo actual, donde la cantidadde información que se procesa a diario es ingente, surge la informática.DEFINICIONES BÁSICAS.El término Informática proviene de la unión de las palabras información yautomática. De una forma muy general podemos decir que la informática seocupa del tratamiento automático de la información. Concretando más,podemos definir Informática como la ciencia o conjunto de conocimientoscientíficos que permiten el tratamiento automático de la información por mediode ordenadores.Como se puede observar, en la definición anterior de Informática, intervienendos palabrasclave:• Información, y • ordenador.Por información se entiende cualquier conjunto de símbolos que representehechos, objetoso ideas.¿Qué es un ordenador?. Un ordenador o computadora es básicamente unamáquina compuesta de una serie de circuitos electrónicos que es capaz derecoger unos datos de entrada, efectuar con ellos ciertos cálculos, operacioneslógicas y operaciones aritméticas y devolver los datos o información resultantepor medio de algún medio de salida. Todas estas acciones las realiza la2 Documento tomado de: http://wwwdi.ujaen.es/asignaturas/fundTopo/TEMA1.pdf
    • 9computadora sin necesidad de intervención humana y por medio de unprograma de instrucciones previamente introducido en ella.Si tenemos en cuenta esta definición de computadora podemos redefinir elconcepto de Informática como la ciencia que abarca todos los aspectos deldiseño y uso de las computadoras.El ordenador se diferencia del resto de la máquina con capacidad de tratarinformación (por ejemplo, una calculadora básica o una máquina de escribir) enlo siguiente:• Gran velocidad de tratamiento de la información.• Gran potencia de cálculo aritmético y lógico.• Capacidad para memorizar los programas y datos necesarios para resolvercualquier problematécnico o de gestión.• Capacidad de comunicación con las personas y con otras máquinas ydispositivos pararecibir o transmitir datos.• Posibilidad de tratamiento de datos en tiempo real.• Actúa sin intervención de un operador humano y bajo el control de unprograma previamentealmacenado en la propia computadora.Desde el punto de vista informático, existen dos tipos de información: Datos einstrucciones.Los datos son conjuntos de símbolos que utilizamos para expresar orepresentar un valorNumérico, un hecho, un objeto o una idea, en la forma adecuada para sutratamiento. Como se puede ver, este concepto es bastante más amplio que elutilizado en otras disciplinas como la Física o las Matemáticas, ya que enInformática un dato no es sólo una temperatura o una longitud, sino quetambién se entiende como dato una matrícula, una dirección, un nombre, etc.Estos datos los puede obtener el ordenador directamente mediantemecanismos electrónicos (detectar sonidos,Temperaturas, contornos, imágenes,...) o pueden ser introducidos mediantegrafismos (letras y números) que es el medio más utilizado (lenguaje escrito).Cualquier información (datos e instrucciones) se puede introducir al ordenadormediante caracteres (letras, dígitos, signos de puntuación, ...). Generalmente elordenador devolverá la información utilizando también esta formaEscrita.Las instrucciones le indican a la computadora qué es lo que debe realizar y losdatos sonlos elementos sobre los que actúan o que generan las instrucciones. Visto esto,una computadora la podemos ver como un sistema que tiene como entradasdatos e instrucciones y produce en función de éstos unos determinadosresultados. El funcionamiento básico de un ordenador se podría describir así:
    • 10 ¿Cuáles son las razones que de alguna forma han obligado a la automatizacióndel tratamiento de la información?Las principales son:1. A veces es necesario realizar funciones que el hombre puede abordar por símismo, pero que leLlevarían mucho tiempo, como por ejemplo, cálculos complejos como losnecesarios para el seguimiento y control de naves espaciales (cálculos entiempo real).2. Es necesario realizar funciones que el hombre, por sí solo no puede cubrir,como por ejemplo, las comunicaciones a larga distancia.3. Es necesario obtener seguridad en algunas tareas, sobre todo en las de tiporepetitivo en las que el hombre es más propenso a cometer errores. Sinembargo, las máquinas, una vez que se les ha enseñado cómo realizar lastareas correctamente, repiten el proceso una y otra vez sinCometer ningún error.4. Se puede sustituir al hombre en las tareas monótonas. Este tipo de tareas noimplican el desarrollo de su actividad intelectual, con lo que al automatizarlas, elhombre puede dedicar su esfuerzo a funciones más decisivas e importantes. REPRESENTACIÓN DE LA INFORMACIÓN.Debido a las características de las computadoras, la información se almacenadentro de ellas de forma codificada. La codificación es una transformación querepresenta los elementos de un conjunto mediante los de otro, de tal forma quea cada elemento del primer conjunto le corresponde uno distinto del segundo.ejemplos de códigos: - código de barras- código de circulación- carnet de identidadDos características importantes de los códigos son que nos permiten comprimiry estructurarla información.Dentro de la computadora la información se almacena y se transmite en base aun código que sólo usa dos símbolos, el 0 y el 1, y a este código se denominacódigo binario. En la entrada y en la salida de la computadora se realizanautomáticamente los cambios de código que sean necesarios, de forma que lainformación pueda ser entendida fácilmente por los usuarios.El BIT (BInary digiT, dígito binario) es la unidad elemental de información queequivale a un valor binario (0 ó 1) y constituye, dentro de una computadora lacapacidad mínima de información. El bit, como unidad de información mínima,representa la información correspondiente a la ocurrencia de un suceso deentre dos posibilidades distintas.La información se representa por caracteres (letras, números, ...), internamenteestos caracteres se representan utilizando el código binario, es decir, con bits;esto quiere decir que a cada posible carácter le corresponde una secuencia de
    • 11bits. Un byte es el número de bits necesarios para almacenar un carácter. Estenúmero va a depender del código concreto usado por la computadora,Aunque generalmente se usan 8, esto es, podemos asumir que un byteequivale a 8 bits.La capacidad de almacenamiento de una computadora o de un soporte físico(como un disco)se suele dar en bytes o en unidades superiores (múltiplos), ya que el byte esuna unidad relativamente pequeña. Los principales múltiplos del byte son:1 Kbyte (KB): 210 bytes.1 Megabyte (MB): 210 KB = 220 bytes.1 Gigabyte (GB): 210 MB = 230 bytes.1 Terabyte (TB): 210 GB = 240 bytes.Estos múltiplos (K,M,G y T) no solo se pueden utilizar con bytes, sino tambiéncon bits. PorEjemplo, 1Mb equivale a 220 bits. (B=byte y b=bit).ESTRUCTURA DE UN ORDENADOR.En la figura puede observarse el diagrama de bloques de una computadorabásica:Una computadora se compone de las siguientes unidades funcionales:- Unidad de Entrada: es el dispositivo por donde se introducen en lacomputadora tanto datos como instrucciones. La información de entrada setransforma en señales binarias de naturalezaeléctrica. Una misma computadora puede tener distintas unidades de entrada.ej.:- teclado- scanner- una unidad de disco- ...- Unidad de Salida: es el dispositivo por donde se obtienen los resultados delos programas que se están ejecutando en la computadora. En la mayoría delos casos se transforman las señales binarias eléctricas en caracteres escritos ovisualizados.ej.: - monitor- impresora
    • 12- plotter- una unidad de disco- ...La acción combinada de estos dos tipos de unidades -de entrada y de salida-,hace que el usuario de un ordenador sea ajeno a la forma en que ésterepresenta la información.De manera genérica, tanto a las unidades de entrada como a las de salida, seles denominaPeriféricos.- Memoria: es la unidad donde se almacenan los datos y las instrucciones. Enfunción de la velocidad y también de la capacidad de almacenamiento podemosdistinguir dos tipos básicos de memorias• Memoria principal o central, es la más rápida y está estrechamente ligada alas unidades funcionales más rápidas de la computadora (UC y ALU). Es launidad donde se almacenan tanto los datos como las instrucciones durante laejecución de un programa.La memoria está constituida por una serie de posiciones numeradascorrelativamente, cada una de las cuales es capaz de almacenar un númerodeterminado de bits. A cada una de estas celdas se le denomina posición opalabra de memoria. Cada palabra de memoria se identifica por un número, sudirección, que indica la posición que ocupa en el conjunto. Si queremos leer oescribir en una posición de memoria debemos dar su dirección. Por eso sesuele decir que la memoria principal es una memoria de acceso directo ya queaccedemos de forma directa al dato que necesitemos sin más que dar sudirección. Por tanto, el tiempo de acceso a cualquier palabra de memoria esindependiente de la dirección o posición a la que se accede.Dentro de la memoria principal podemos distinguir entre la memoria ROM(Read Only Memory) y la RAM (Random Acces Memory). La memoria ROMsólo permite leer la información que contiene, pero no se puede escribir en ella.Las memorias ROM no se borran cuando se les deja de suministrar corriente.La memoria RAM es la memoria de lectura y escritura en la que deben estarcargados nuestros programas y sus datos para poder ejecutarse. En la memoriaRAM se puede escribir y leer, pero la información que contiene se pierde aldejarle de suministrar corriente (memoria volátil).• Memoria auxiliar o secundaria. En contraste con la memoria principal, lamemoria auxiliar tiene una alta capacidad de almacenamiento, aunque lavelocidad de acceso es notoriamente inferior (es más lenta). Los soportestípicos de memoria auxiliar son los discos y cintas magnéticas, CD-ROM,unidades ZIP, etc. Normalmente los programas y los datos se guardan en disco,evitando el tener que volver a introducirlos (por un dispositivo de entrada) cadavez que queramos utilizarlos. La información almacenada en la memoria auxiliarpermanece indefinidamente mientras no deseemos borrarla.- Unidad Aritmético-Lógica (ALU): como su nombre indica se encarga derealizar las operaciones aritméticas (sumas, restas, etc.) y las operacioneslógicas (comparación, operaciones del álgebra de Boole binaria, etc).- Unidad de Control (UC): Esta unidad se encarga de controlar y coordinar elconjunto de operaciones que hay que realizar para dar el oportuno tratamiento ala información. Su función obedece a las instrucciones contenidas en elprograma en ejecución: detecta señales de estado que indican el estado de lasdistintas unidades, y en base a estas señales y a las instrucciones que capta de
    • 13la memoria principal, genera las señales de control necesarias para la correctaejecución de la instrucción actual. Dentro de la UC existe un reloj o generadorde pulsos que sincroniza todas las operaciones elementales de la computadora.El período de esta señal se le denomina tiempo de ciclo. La frecuencia del reloj,medida en MegaHercios (MHz), es un parámetro que en parte determina lavelocidad de funcionamiento de la computadora.El esquema de interconexión representado en la figura puede variardependiendo de la computadora. La computadora central está constituida por laUC, la ALU y la memoria principal. Al conjunto formado por la UC y la ALU se leconoce con las siglas CPU (Central Processing Unit).Otra unidad de información ligada a la computadora es la palabra. Una palabraestá formada por un número entero de bits (8, 16, 32, 64 ...) e indica el tamañode los datos con los que opera la ALU (palabra de CPU) o de los datostransferidos entre CPU y memoria (palabra de memoria). La longitud de palabradetermina, entre otras cosas, la precisión de los cálculos y la variedad delrepertorio de instrucciones. La longitud de palabra, el tiempo de ciclo del reloj yla capacidad de memoria, son factores determinantes para establecer lapotencia de una computadora. Aunque actualmente las computadoras sonbastante más complejas, conceptualmente el esquema visto sigue siendoválido. Hace unas décadas cada una de las distintas unidades representadasequivalía a un armario independiente conectado por mangueras de cables alresto de las unidades. Actualmente, y debido fundamentalmente al desarrollo dela microelectrónico, variasunidades funcionales pueden estar en una mismatarjeta de circuitos integrados e incluso en un mismo circuito integrado. Porejemplo, actualmente, la Unidad de Control, Unidad Aritmético Lógica y losregistros (de la CPU) están físicamente unidos en un chip al que se denominamicroprocesador.El microprocesador es el verdadero cerebro del ordenador. Desde el punto devista externo, un microprocesador es un chip cuadrado con un tamaño superioral del resto de los chips de la placa base. Un microordenador (omicrocomputador) es un computador cuyo procesador central es unmicroprocesador. Conviene destacar el hecho de que el prefijo micro en estecaso hace referencia al tamaño de la CPU y no a las prestaciones de la misma.¿Cuál es el funcionamiento básico de un ordenador?La filosofía general del ordenador es muy simple: Recibe datos del usuario através de las unidades de entrada, los procesa con la CPU y presenta elresultado mediante las unidades de salida. Pero la CPU no recibe los datosdirectamente de la unidad de entrada ni los envía directamente a la unidad desalida. Existe una zona de almacenamiento temporal, la memoria RAM, quesirve como lugar de paso obligatorio para acceder a la CPU. Dentro de la CPU,el funcionamiento es el siguiente: Una vez almacenado el programa a ejecutar ylos datos necesarios en la memoria principal, la Unidad de Control vadecodificando (analizando) instrucción a instrucción. Al decodificar unainstrucción detecta las unidades (ALU, dispositivos de entrada, salida omemoria) implicadas, y envía señales de control a las mismas con las cualesles indica la acción a realizar y la dirección de los datos implicados. Lasunidades implicadas a su vez, cuando terminen de operar sobre los datos,
    • 14enviarán señales a la UC indicando que la acción se ha realizado o bien elproblema que ha imposibilitado que se haga. En líneas generales podríamosdecir que el funcionamiento del ordenador se rige por dos principios:· La CPU es la única que puede procesar los datos (lo cual implica que losdatos tienen que llegar de alguna forma a la CPU para ser procesados), y · laCPU sólo puede acceder a los datos almacenados en memoria RAM. Estos dosprincipios tienen un corolario muy claro que ya fue señalado anteriormente:Todos los datos, absolutamente todos, tiene que pasar por la memoria RAMpara que desde allí puedan ser leídos por la CPU.CLASIFICACIÓN DE LOS ORDENADORESLos ordenadores se pueden clasificar atendiendo a distintos criterios.En función del uso, podemos distinguir entre:1. Computador de uso general: Puede utilizarse para distintos tipos deaplicaciones, tales como gestión administrativa, cálculos científicos o técnicos.Que realice una aplicación u otra depende del programa que el usuario quieraejecutar.2. Computador de uso específico: Es aquel que únicamente puede utilizarsepara una aplicación concreta. Ej.: Un videojuego, el computador que contieneun robot, el que contiene un misil para seguir su trayectoria o un computadorpara control del tráfico. Estos computadores se caracterizan porque ejecutanuno o muy pocos programas y porque las unidades de entrada y salida estánperfectamente adaptados a la aplicación específica del ordenador. Por ejemplo,en un robot las unidades de entrada suelen ser sensores (de proximidad, desonido, de formas, etc.) y las unidades de salida, motores.
    • 15• En función de la potencia, capacidad o el tamaño del computador2,podemos distinguir entre:1. Supercomputadores: Este tipo de computadores se caracterizan por surapidez. Son de longitud de palabra grande y están constituidas por variosprocesadores trabajando en paralelo.Son multiusuario.Se utilizan para realizar cálculos a gran velocidad con grandes cantidades dedatos. Por ejemplo, predicciones meteorológicas.2. Macrocomputadores (mainframes): Son computadores de uso general conamplias posibilidadesde procesamiento, memoria y E/S. Son -al igual que los supercomputadores-multiusuario, es decir, que puede haber cientos de usuarios conectados ytrabajando a la vez con el mismo ordenador. Cada uno de estos usuarios puedetrabajar en un microordenador (que tiene a su vez capacidad de proceso) osimplemente en un terminal, que es una consola sin capacidad de proceso,destinado simplemente a enviar y recibir los mensajes en el mainframe. Suelentener velocidad y longitud de palabra inferior a la de los supercomputadores.Son ordenadores típicos para la gestión de grandes empresas.3. Minicomputadores: Son máquinas muy potentes pero de menor potencia,tamaño, velocidad y fiabilidad que los mainframes. Son también multiusuario,pero el número de usuarios admisibles suele ser menor que para losmacrocomputadores. Su longitud de palabra puede ser igual o inferior a la delos anteriores. En definitiva, son sistemas similares a los mainframes pero aescala reducida de prestaciones y precio. Son ordenadores usados porempresas medianas.4. Estaciones de trabajo (workstations): Son un tipo de ordenadores a mediocamino entre los minicomputadores y los ordenadores personales. Suelenutilizarse en forma monousuario y tienen como CPU un microprocesador degran potencia (de 32 o 36 bits). Generalmente trabajan bajo el S.O. UNIX(marca registrada de los laboratorios Bell).5. Computadores profesiones / personales (Pcs): Son microcomputadores delongitud de palabrade 16 o 32 bits. Su memoria principal suele tener una capacidad del orden de 4MBytes. Normalmente se utilizan en forma monousuario. Se caracterizan por lagran cantidad de programas disponibles para ellos y la gran compatibilidadentre unos y otros. Son, en definitiva, ordenadores de pequeño tamaño y precio,cada vez más potentes y fiables, que han hecho posible que el ordenador seintroduzca casi como electrodoméstico imprescindible.6. Nanocomputadores: (Este tipo de ordenadores prácticamente tiende adesaparecer). Son microcomputadores de bajo coste y capacidad limitada,ideados para uso doméstico con programas tales como videojuegos,contabilidad familiar o tratamiento de textos. Frecuentemente usan comopantalla de salida un monitor de TV.
    • 167. Calculadores programables de bolsillo: Se caracterizan por su pequeñotamaño y alimentación a pilas. Su unidad de entrada es un teclado sencillo queincluye teclas específicas para cada instrucción y su unidad de salida estáconstituida por un visualizador (display). Disponen de una capacidad dememoria y lenguaje de programación muy limitados.Hay que insistir en que los límites de esta clasificación son muy imprecisos. Losavances tecnológicos han conseguido, por ejemplo, que actualmente algunosordenadores personales tengan más capacidad de proceso que algunosmainframes antiguos.PROGRAMAS E INSTRUCCIONES.La computadora necesita los programas de igual forma que éstos requieren decomputadoras para poder ejecutarse. Un programa es un conjunto desentencias que se dan a una computadora indicándole las operaciones que sedesea que realice. Es un conjunto de sentencias que ha de procesar unordenador con el objetivo de obtener unos resultados o datos de salida a partirde unos datos iniciales o de entrada. Las sentencias son conjuntos de símbolosy se clasifican en dos tipos:· Sentencias imperativas o instrucciones: Representan una orden para elordenador.· Sentencias declarativas: Proporcionan información sobre los datos que manejael programa.Las instrucciones se pueden clasificar en los siguientes tipos:- instrucciones de transferencia de datos, como pueden ser instrucciones parallevar datos de memoria a la ALU o de memoria a un dispositivo de salida, etc.- instrucciones de tratamiento, como instrucciones para sumar dos datos, paracompararlos, es decir, todo tipo de instrucciones aritmético-lógicas.- instrucciones de bifurcación y saltos. Este tipo de instrucciones son necesariasya que las computadoras ejecutan las instrucciones secuencialmente (unadetrás de otra) y en determinados momentos podemos necesitar instruccionespara realizar bifurcaciones o saltos que nos permitan alterar el orden deejecución. Dentro de este tipo de instrucciones cabe resaltar las instruccionesque nos permiten interrumpir la ejecución de un programa y saltar a otroprograma (llamado rutina o subalgoritmo) para una vez finalizado éste volver alanterior en el punto en que se dejó.Existen otras instrucciones como esperar a que se pulse una tecla o rebobinaruna cinta, etc.Las sentencias se construyen con unos símbolos determinados y siguiendounas reglas precisas, es decir, siguiendo un lenguaje de programación.Los circuitos electrónicos de la CPU de la computadora sólo pueden ejecutarinstrucciones del lenguaje propio de la computadora, conocido como lenguaje ocódigo máquina. Estas instrucciones están formadas por palabras de bits (cerosy unos) que usualmente tienen dos partes diferenciadas, el código deoperación, que indica cuál es de entre las posibles instrucciones; y el campo dedirección, que almacena la dirección de memoria del dato con/sobre el queopera la instrucción.Programar en código máquina presenta inconvenientes obvios ya que es unlenguaje dependiente de la máquina y si queremos programar otra máquina
    • 17deberemos aprender su código máquina particular; además el repertorio deinstrucciones suele ser muy pequeño y elemental y sólo se programa usandonúmeros, lo que puede resultar muy engorroso. Para paliar estos problemassurgieron los lenguajes de alto nivel (PASCAL, C, COBOL,...) que no dependende la computadora y están pensados para facilitar la programación. Existenunos programas llamados traductores que toman como datos de entradaprogramas escritos en un lenguaje de alto nivel y devuelven como datos desalida el programa en lenguaje máquina de esa computadora equivalente, de talforma que ya si puede ser ejecutado por la CPU de la computadora.Existen dos tipos de traductores: compiladores e intérpretes. Los compiladoresfuncionan básicamente como se explicó antes, es decir, cogen en conjunto elprograma escrito en lenguaje de alto nivel, programa fuente, lo traducen ygeneran un programa en código máquina, programa objeto. Los intérpretes, sinembargo, van analizando, interpretando y ejecutando instrucción a instruccióndel programa fuente y por tanto no generan programa objeto.Además de estos programas, el constructor debe suministrar junto con lacomputadora otra serie de programas que permitan controlar y utilizar de formaeficiente y cómoda la computadora. A este conjunto de programas se le conocecon el nombre de sistema operativo. Para utilizar el sistema operativo seutiliza un lenguaje de control constituido por órdenes o comandos, que nossirven, por ejemplo, para grabar los programas y datos en nuestro disquete, opara editar y ejecutar programas, etc. Actualmente los sistemas operativos másdifundidos son: Windows, Linux, Unix, entre otrosSOPORTE FÍSICO (HARDWARE) Y SOPORTE LÓGICO (SOFTWARE) DELOS ORDENADORES.El soporte físico o hardware de una computadora está constituido por lamáquina en sí, esto es, por el conjunto de circuitos electrónicos, cables,armarios, dispositivos electromecánicos y cualquier otro componente físico. Porextensión, también se considera hardware todo lo relacionado con la máquina,como son las disciplinas relativas al diseño y construcción de ordenadores.El soporte lógico o software de la computadora es el conjunto de programas(sistema operativo, utilidades y del usuario) ejecutables por la computadora. Porextensión también se considera software a las materias relacionadas con eldiseño y construcción de programas.No hay ordenador sin máquina (hardware) o sin programa (software).Para que un ordenador funcione es necesario usar programas; es decir, unacomputadora con sólo soporte físico no funciona. Tan necesario es el hardwarecomo el software.
    • 181.3 PROGRAMACIÓN DE COMPUTADORAS1.3.1 Lenguajes De ProgramaciónSe puede definir un lenguaje de computadora como una secuencia deelementos, los cuales tienen un significado concreto y entendible. Estoselementos son: las palabras reservadas, los identificadores y los símbolos, lasintaxis del lenguaje define cómo se combinarán todos estos para producir uncódigo ejecutable por la máquina.El concepto de programación estructurada como un enfoque científico a laprogramación de computadoras lo introdujeron E.W.Dijkstra (izquierda) yC.A.R.Hoare (derecha) a fines de los años sesentas. Mediante el análisismatemático de la estructura de los programas, ellos mostraron que podemosevitar muchos errores de diseño de programas mediante un enfoquesistemático a la programación. Es fundamental en la programación estructuradael diseño adecuado de los algoritmos y el manejo de las estructuras de datos.En la siguiente lectura se pueden describir mejor algunos de los lenguajes deprogramación que se han utilizado a lo largo de la historia de la informática,asiendo claridad que existen muchos más, los cuales se pueden consultar oprofundizar en diferentes sitios de interne o en la biblioteca
    • 19Lectura # 2: Lenguajes de programación“Algunos lenguajes de Programación3“FORTRAN clic pra ver ejemploEl lenguaje fortran es uno de los lenguajes que forman el grupo de lenguajes de computadororientados a procedimientos, los cuales están fundamentados en la estructura del lenguajeusado originalmente para describir el problema, como también en el procedimiento empleadopara resolverlo. Tiene por objeto descargar al programador de la tarea de reducir todos loscálculos y toma de decisiones a las pasos elementales requeridos por el repertorio limitado deoperaciones ofrecido a nivel de lenguaje de maquina. FORTRAN es un acrónimo de FORmulaTRANslation (traducción de formulas), diseñado especialmente para la manipulación deformulas científicas y la aplicación de métodos numéricos a la solución de problemas.COBOL clic para ejemploEn mayo de 1959 mediante una reunión realizada en Estados Unidos por una comisióndenominada CODASYL (Conference On Data Systems Languages ) integrada por fabricantesde ordenadores, empresas privadas y representantes del Gobierno; un lenguaje deprogramación fue diseñado expresamente para el procesamiento de datos administrativos. Esun lenguaje de alto nivel y como tal generalmente es independiente de la maquina. Una versiónpreliminar de COBOL (Common Business Oriented Lenguaje) apareció en diciembre de 1959.Esta versión fue seguida en 1961 por la versión COBOL-61, que constituyó la base para eldesarrollo de versiones posteriores. En 1968 se aprobó una versión estándar del lenguaje por loque ahora se denomina ANSI y una versión revisada se aprobó por ANSI en 1974. El COBOLen cualquiera de sus versiones es el lenguaje apropiado para las aplicaciones administrativasdel computador.LISP clic para ejemploEs el lenguaje para aplicaciones como la inteligencia artificial. Es un lenguaje funcional que hadesempeñado un papel especial en la definición de lenguajes. La definición de un lenguajedebe estar escrita en alguna notación, llamada metalenguaje o lenguaje de definición, y loslenguajes de definición tienden a ser funcionales. De hecho la primera implantación de LISP seprodujo, casi por accidente, cuando se uso LISP para definirse a sí mismo. De esta manera losconceptos básicos de programación funcional se organizaron con LISP, diseñado por JhonMcCarthy en 1968, el cuál es lenguaje con mayor edad después de Fortran. LISP significa (Lotsof Silly Parenthese “montones de tontos parentesis”). A comienzos de 1960 Lisp fue “ultralento”para aplicaciones numéricas. Ahora hay buenas implantaciones disponibles.PASCAL clic para ejemploPACAL es un lenguaje de programación de alto nivel de propósito general; esto es, se puedeutilizar para escribir programas para fines científicos y comerciales. Fue diseñado por elprofesor Niklaus (Nicolás) Wirth en Zurich, Zuiza, al final de los años 1960 y principios de los3 [1]http://www.itq.edu.mx/vidatec/espacio/aisc/ARTICULOS/leng/LENGUAJESDEPROGRAMACI%D3N.htm[2] 1993-2003 Microsoft Corporation. Reservados todos los derechos.
    • 2070’s. Wirth diseñó este lenguaje para que fuese un buen lenguaje de programación parapersonas comenzando a aprender a programar. Pascal tiene un número relativamente pequeñode conceptos para aprender a denominar. Su diseño facilita escribir programas usando un estiloque esta generalmente aceptado como práctica estándar de programación buena. Otra de lasmetas del diseño de Wirth era la implementación fácil.PROLOG clic ejemploEs un lenguaje de programación de computadoras que fue inventado alrededor de 1970 porAlain Colmerauer y sus colegas de la Universidad de Marcella. A finales de 1970 comenzaron aaparecer versiones de Prolog para microcomputadoras fue el micro-prolog y se dedicaronmuchos libros de prolog a él. Pero el micro-prolog no ofrece la riqueza de predicados que ofreceun lenguaje como él turbo prolog. No existió mucho interés en el prolog, hasta que loscientíficos, japoneses lanzaron su famoso proyecto de la quinta generación con el objetivo dediseñar nuevas computadoras y software, los cuales no tendrían rivales en los años 1990 yposteriores. Ala principales implementaciones de prolog le falta la habilidad para mejorarproblemas sobre “números” o “procesamiento de texto”, en su lugar, prolog está diseñado paramanejar “problemas lógicos” (es decir problemas donde se necesita tomar decisiones de un aforma ordenada). Prolog intenta hacer que la computadora razone la forma de encontrar unasolución.SMALLTALK clic ejemploAlan Kay creó SMALLTALK es principalmente un lenguaje interpretado, es decir smalltalk es unlenguaje compilado en forma incremental: tanto el compilador como el lenguaje son parte delambiente de programación smalltalk, cuando se utiliza smalltalk nunca se sale del ambiente deprogramación (incluyendo el apoyo de biblioteca, las clases y los métodos), usted puede probarincluso el fragmento más pequeño del programa con él interprete, o compilar solo una secciónde código. Usted podría utilizar el intérprete smalltalk como una calculadora muy compleja, paraevaluar expresiones matemáticas.OBJECT PASCALEs un lenguaje de programación muy poderoso que está si dudas a la altura de C++ y queincluso lo supera en algunos aspectos. Este lenguaje surge a partir del desarrollo de BorlandPascal 7.0, un lenguaje que ocupa un lugar muy importante en la programación de ordenadorespersonales. El Object Pascal es totalmente compatible con el Borland Pascal 7.0, lo que permiteque programas desarrollados con este último puedan ser convertidos a Delphi. Nuevosaspectos en el Object Pascal en relación a sus predecesores son el Exceptión – Handling(tratamiento y canalización de errores de run-time), un manejo más sencillo de los punteros conreconocimiento automático y referenciación, las llamados propiedades de objetos que puedenser asignados como las variables, etc.DELPHI clic ejemploEs una potente herramienta de desarrollo de programas que permite la creación de aplicacionespara Windows 3.x, Windows 95 y Windows NT. De hecho, aunque el programa ANÁLOGA.EXEcorre perfectamente en cualquier tipo de Windows, fue desarrollado sobre una plataformaWindows NT Wokstation. Dispone de un compilador muy rápido (más que la mayorìa de loscompìladores de C++, como ya era tradicional en Turbo Pascal), y potentes herramientas parala creación visual de aplicaciones, completas herramientas para la creación y manejo de basesde datos, aplicaciones multimedia, enlace DDE, creación de DLLs, VBX,etc. Cubre muchostemas de programación bajo Windows: se incluye entre los mismos un completo centro decontrol para la creación de aplicaciones multimedia, así como una gran variedad decomponentes que actúan “debajo” del entorno, como tipos de listado muy variados ycontenedores generales de datos. Las aplicaciones terminadas están disponibles en archivosejecutables (EXE) que peden utilizarse sólo con bibliotecas adicionales.
    • 21JAVA clic ejemploJava es un lenguaje de programación orientado a objetos desarrollado por Sun Microsystems,una compañía reconocida por sus estaciones de trabajo UNÍS de alta calidad en 1991 comoparte de un proyecto de investigación para desarrollar software para dispositivos electrónicos(televisiones, video casseteras, tostadores y otros de aparatos que se pueden comprar encualquier tienda departamental). Fundamentado en C++, el lenguaje Java se diseño para serpequeño, sencillo y portátil a través de plataformas y sistemas operativos, tanto a nivel decódigo fuente como binario, lo que significa que los programas en Java (apples y aplicaciones)pueden ejecutarse en cualquier computadora que tenga instalada una maquina virtual de Java .Es un lenguaje ideal para distribuir programas ejecutables vía World Wide Web, además de unlenguaje de programación de propósito general para desarrollar programas que sean fáciles deusar y portables en una gran variedad de plataformas.” [1]“C clic ejemploLenguaje de programación desarrollado en 1972 por el estadounidense Dennis Ritchie en losLaboratorios Bell. Debe su nombre a que su predecesor inmediato había sido llamado lenguajede programación B. Aunque muchos consideran que C es un lenguaje ensamblador másindependiente de la máquina que un lenguaje de alto nivel, su estrecha asociación con elsistema operativo UNIX, su enorme popularidad y su homologación por el American NationalStandards Institute (ANSI) lo han convertido quizá en lo más cercano a un lenguaje deprogramación estandarizado en el sector de microordenadores o microcomputadoras yestaciones de trabajo. C es un lenguaje compilado que contiene un pequeño conjunto defunciones incorporadas dependientes de la máquina. El resto de las funciones de C sonindependientes de la máquina y están contenidas en bibliotecas a las que se puede accederdesde programas escritos en C. Estos programas están compuestos por una o más funcionesdefinidas por el programador.C++.Una versión orientada a objetos derivada del lenguaje de programación de aplicación generaldenominado C, desarrollada por Bjarne Stroustrup en los Bell Laboratories de la compañíaAmerican Telephone and Telegraph (AT&T); en un principio también fue conocido como C withClasses (C con clases, alusión a las clases de la programación orientada a objetos). Comenzó adesarrollarse en 1980 y se nombró C++ en 1983; el primer manual y su primera implementacióncomo producto comercial aconteció en 1985. Versiones sucesivas se publicaron en 1989 y1990, siendo sus referencias oficiales, además de las publicaciones de su versiónestandarizada, las obras The C++ Programming Language (El lenguaje de programación C++,1985) y Annotated C++ Reference Manual (Manual de referencia comentado de C++, 1990).” [2]Y por supuesto todos los lenguajes visuales como Visual Basic, Visual Fox; también las ultimastendencias como los .net y lenguajes libres como PhP, entre otros
    • 221.3.2 La lógica de la programaciónUno de los aspectos importantes en la programación de computadoras, es lalógica de la programación, es por eso que esta actividad pretende, a parte derelajar, activar la capacidad de analizar y encontrar los métodos adecuados desolucionar diferentes problemas ! "# $ % & & & ( " " " " # ) * "+ ) $ & ) ( (" ! " (" " ! " "
    • 23 , "- - . / $ ) 0 $ 0 "1 0 " - " ! " 2 $ . 3 , 4 5 6 $ ! 78 9 $ : $ 0 9 ": $ & ; ! < $ . =Si usted es un apasionado de los acertijos o los juegos de lógica, lo invito a queingrese a la página www.markelo.f2o.org, de pronto se convierta en un adicto aeste tipo de juegos.1.3.3 Técnicas de ProgramaciónA partir de este momento nos adentramos en el mundo de la programación,para tal objeto, se propone la realización de la lectura # 3 referente a lasdiferentes técnicas de programación, propuesta por Justo Méndez(camus_x@yahoo.com),Lectura #3“El estudio de los lenguajes de programación agrupa tres intereses diferentes;el del programador profesional, el del diseñador del lenguaje y delImplementador del lenguaje.Además, estos tres trabajos han de realizarse dentro de las ligaduras ycapacidades de la organización de una computadora y de las limitacionesfundamentales de la propia "calculabilidad". El termino "el programador" es untanto amorfo, en el sentido de que camufla importantes diferencias entredistintos niveles y aplicaciones de la programación. Claramente el programador
    • 24que ha realizado un curso de doce semanas en COBOL y luego entra en elcampo del procesamiento de datos es diferente del programador que escribe uncompilador en Pascal, o del programador que diseña un experimento deinteligencia artificial en LISP, o del programador que combina sus rutinas deFORTRAN para resolver un problema de ingeniería complejo, o delprogramador que desarrolla un sistema operativo multiprocesador en ADA.En esta investigación, intentaremos clarificar estas distinciones tratandodiferentes lenguajes de programación en el contexto de cada área de aplicacióndiferente. El "diseñador del lenguaje" es también un termino algo nebuloso.Algunos lenguajes (como APL y LISP) fueron diseñados por una sola personacon un concepto único, mientras que otros (FORTRAN y COBOL) son elproducto de desarrollo de varios años realizados por comités de diseño delenguajes.El "Implementador del lenguaje" es la persona o grupo que desarrolla uncompilador o interprete para un lenguaje sobre una maquina particular o tiposde maquinas. Mas frecuentemente, el primer compilador para el lenguaje Ysobre la maquina X es desarrollada por la corporación que manufactura lamaquina X . Por ejemplo, hay varios compiladores de Fortran en uso; unodesarrollado por IBM para una maquina IBM, otro desarrollado por DEC parauna maquina DEC, otro por CDC, y así sucesivamente. Las compañías desoftware también desarrollan compiladores y también lo hacen los grupos deinvestigación de las universidades. Por ejemplo, la universidad de Waterloodesarrolla compiladores para FORTRAN Y PASCAL, los cuales son útiles en unentorno de programación de estudiantes debido a su superior capacidad dediagnostico y velocidad de compilación.Hay también muchos aspectos compartidos entre los programadores,diseñadores de un lenguaje implementadores del mismo. Cada uno debecomprender las necesidades y ligaduras que gobiernan las actividades de losotros dos.Hay, al menos, dos formas fundamentales desde las que pueden verse oclasificarse los lenguajes de programación: por su nivel y por principalesaplicaciones. Además, estas visiones están condicionadas por la visión históricapor la que ha transcurrido el lenguaje. Además, hay cuatro niveles distintos delenguaje de programación.Los "Lenguajes Declarativos" son los más parecidos al castellano o ingles en supotencia expresiva y funcionalidad están en el nivel más alto respecto a losotros. Son fundamentalmente lenguajes de ordenes, dominados por sentenciasque expresan "Lo que hay que hacer" en ves de "Como hacerlo". Ejemplos deestos lenguajes son los lenguajes estadísticos como SAS y SPSS y loslenguajes de búsqueda en base de datos, como NATURAL e IMS. Estoslenguajes se desarrollaron con la idea de que los profesionales pudieranasimilar mas rápidamente el lenguaje y usarlo en su trabajo, sin necesidad deprogramadores o practicas de programación.
    • 25Los lenguajes de " Alto Nivel" son los mas utilizados como lenguaje deprogramación. Aunque no son fundamentalmente declarativos, estos lenguajespermiten que los algoritmos se expresen en un nivel y estilo de escriturafácilmente legible y comprensible por otros programadores. Además, loslenguajes de alto nivel tienen normalmente las características de "Transportabilidad". Es decir, están implementadas sobre varias maquinas deforma que un programa puede ser fácilmente " Transportado " (Transferido) deuna maquina a otra sin una revisión sustancial. En ese sentido se llama"Independientes de la maquina". Ejemplos de estos lenguajes de alto nivel sonPASCAL, APL y FORTRAN (para aplicaciones científicas), COBOL (paraaplicaciones de procesamiento de datos), SNOBOL (para aplicaciones deprocesamiento de textos), LISP y PROLOG (para aplicaciones de inteligenciaartificial), C y ADA (para aplicaciones de programación de sistemas) y PL/I(para aplicaciones de propósitos generales).Los "Lenguajes Ensambladores" y los "Lenguajes Maquina" son dependientesde la maquina. Cada tipo de maquina, tal como VAX de digital, tiene su propiolenguaje maquina distinto y su lenguaje ensamblador asociado. El lenguajeEnsamblador es simplemente una representación simbólica del lenguajemaquina asociado, lo cual permite una programación menos tediosa que con elanterior. Sin embargo, es necesario un conocimiento de la arquitecturamecánica subyacente para realizar una programación efectiva en cualquiera deestos niveles lenguajes.Los siguiente tres segmentos del programa equivalentes exponen lasdistinciones básicas entre lenguajes maquina, ensambladores de alto nivel:Como muestra este ejemplo, a más bajo nivel de lenguaje más cerca esta delas características de un tipo e maquina particular y más alejado de sercomprendido por un humano ordinario. Hay también una estrecha relación(correspondencia 1:1) entre las sentencias en lenguaje ensamblador y susformas en lenguaje maquinan codificada. La principal diferencia aquí es que loslenguajes ensambladores se utilizan símbolos (X,Y,Z,A para " sumar", M para"multiplicar"), mientras que se requieren códigos numéricos (OC1A4, etc.) paraque lo comprenda la maquina.La programación de un lenguaje de alto nivel o en un lenguaje ensambladorrequiere, por tanto, algún tipo de interfaz con el lenguaje maquina para que elprograma pueda ejecutarse. Las tres interfaces mas comunes: un"ensamblador”, un "compilador" y un "interprete". El ensamblador y elcompilador traduce el programa a otro equivalente en el lenguaje X de lamaquina "residente" como un paso separado antes de la ejecución. Por otraparte, el intérprete ejecuta directamente las instrucciones en un lenguaje Y dealto nivel, sin un paso de procesamiento previo.La compilación es, en general, un proceso mas eficiente que la interpretaciónpara la mayoría de los tipos de maquina. Esto se debe principalmente a que lassentencias dentro de un "bucle" deben ser reinterpretadas cada vez que seejecutan por un intérprete. Con un compilador. Cada sentencia es interpretada yluego traducida a lenguaje maquina solo una vez.
    • 26Algunos lenguajes son lenguajes principalmente interpretados, como APL,PROLOG y LISP. El resto de los lenguajes -- Pascal, FORTRAN, COBOL, PL/I,SNOBOL, C, Ada y Modula-2 – son normalmente lenguajes compilados. Enalgunos casos, un compilador estará utilizable alternativamente para unlenguaje interpretado (tal como LISP) e inversamente (tal como el interpreteSNOBOL4 de los laboratorios Bell). Frecuentemente la interpretación espreferible a la compilación en un entorno de programación experimental o deeducación, donde cada nueva ejecución de un programa implicado un cambioen el propio texto del programa. La calidad de diagnosis y depuración quesoportan los lenguajes interpretados es generalmente mejor que la de loslenguajes compilados, puesto que los mensajes de error se refierendirectamente a sentencias del texto del programa original. Además, la ventajade la eficiencia que se adjudica tradicionalmente a los lenguajes compiladosfrente a los interpretados puede pronto ser eliminado, debido a la evolución delas maquinas cuyos lenguajes son ellos mismos1lenguajes de alto nivel. Comoejemplo de estos están las nuevas maquinas LISP, las cuales han sidodiseñadas recientemente por Symbolics y Xerox Corporations.Los lenguajes de Programación son tomados de diferentes perspectivas. Esimportante para un programador decidir cuales conceptos emitir o cuales incluiren la programación. Con frecuencia el programador es osado a usarcombinaciones de conceptos que hacen al lenguaje "DURO" de usar, deentender e implementar. Cada programador tiene en mente un estilo particularde programación, la decisión de incluir u omitir ciertos tipos de datos quepueden tener una significativa influencia en la forma en que el Lenguaje esusado, la decisión de usar u omitir conceptos de programación o modelos.Existen cinco estilos de programación y son los siguientes: 1. Orientados a Objetos. 2. Imperativa: Entrada, procesamiento y salidas de Datos. 3. Funcional: "Funciones", los datos son funciones, los resultados pueden ser un valor o una función. 4. Lógico: {T,F} + operaciones lógicas (Inteligencia Artificial). 5. Concurrente: Aún esta en proceso de investigación. El programador, diseñador e implementador de un lenguaje de programacióndeben comprender la evolución histórica de los lenguajes para poder apreciarpor que presentan características diferentes. Por ejemplo, los lenguajes "masjóvenes" desaconsejan (o prohiben) el uso de las sentencias GOTO comomecanismo de control inferior, y esto es correcto en el contexto de las filosofíasactuales de ingeniería del software y programación estructurada. Pero hubo untiempo en que la GOTO, combinada con la IF, era la única estructura de controldisponible; el programador no dispone de algo como la construcción WHILE oun IF-THEN-ELSE para elegir. Por tanto, cuando se ve un lenguaje comoFORTRAN, el cual tiene sus raíces en los comienzos de la historia de loslenguajes de programación, uno no debe sorprenderse de ver la antiguasentencia GOTO dentro de su repertorio.
    • 27Lo más importante es que la historia nos permite ver la evolución de familias delenguajes de programación, ver la influencia que ejercer las arquitecturas yaplicaciones de las computadoras sobre el diseño de lenguajes y evitar futurosdefectos de diseño aprendido las lecciones del pasado. Los que estudian sehan elegido debido a su mayor influencia y amplio uso entre los programadores,así como por sus distintas características de diseño e implementacion.Colectivamente cubren los aspectos más importantes con los que ha deenfrentarse el diseñado de lenguajes y la mayoría de las aplicaciones con lasque se enfrenta el programador. Para los lectores que estén interesados enconocer con más detalle la historia de los lenguajes de programaciónrecomendamos las actas de una recién conferencia (1981) sobre este tema,editadas por Richard Wexelblat. Vemos que FORTRAN I es un ascendentedirecto de FORTRAN II, mientras que FORTRAN, COBOL, ALGO 60, LISP,SNOBOL y los lenguajes ensambladores, influyeron en el diseño de PL/I.También varios lenguajes están prefijados por las letras ANS. Esto significa queel American National Standards Institute ha adoptado esa versión del lenguajecomo el estándar nacional. Una vez que un lenguaje esta estandarizado, lasmaquinas que implementan este lenguaje deben cumplir todas lasespecificaciones estándares, reforzando así el máximo de transportabilidad deprogramas de una maquina a otra. La policía federal de no comprar maquinasque no cumplan la versión estándar de cualquier lenguaje que soporte tiende a"fortalecer" el proceso de estandarizacion, puesto que el gobierno es, conmucho, el mayor comprador de computadoras de la nación.Finalmente, la notación algebraica ordinaria, por ejemplo, influyo fuertemente enel diseño de FORTRAN y ALGOL. Por otra parte, el ingles influyo en eldesarrollo del COBOL. El lambda cálculo de Church dio los fundamentos de lanotación funcional de LISP, mientras que el algoritmo de Markov motivo el estilode reconocimiento de formas de SNOBOL. La arquitectura de computadoras deVon Neumann, la cual fue una evolución de la maquina mas antigua de Turing,es el modelo básico de la mayoría de los diseños de computadoras de lasultimas tres décadas. Esta maquina no solo influyeron en los primeros lenguajessino que también suministraron el esqueleto operacional sobre el queevoluciono la mayoría de la programación de sistemas.Una discusión más directa de todos estos primeros modelos no están entre losobjetivos de este texto. Sin embargo, es importante apuntar aquí debido a sufundamental influencia en la evolución de los primeros lenguajes deprogramación, por una parte, y por su estado en el núcleo de la teoría de lacomputadora, por otra. Mas sobre este punto, cualquier algoritmo que puedadescribirse en ingles o castellano puede escribirse igualmente como unamaquina de Turing (maquina de Von Neumann), un algoritmo de Markov o unafunción recursiva. Esta sección, conocida ampliamente como "tesis de Church",nos permite escribir algoritmos en distintos estilos de programación (lenguajes)sin sacrificar ninguna medida de generalidad, o potencia de programación, en latransición.
    • 281.4 TIPOS DE DATOS Y OPERADORESComo se ha podido ver a lo largo de las lecturas, para que una computadoratenga una razón de ser, se hace necesario la programación de las mismas, esdecir realizar software que permita el ingreso de datos (estos datos serepresentan a nivel de maquina como una secuencia de dígitos binarios (0 o 1)denominados bits) para ser transformada en información. Los datos que seingresan a una computadora pueden ser:Numéricos (enteros y reales)Lógicos (boléanos – verdazo / falso)Carácter (Char y cadena de caracteres)Existen lenguajes de programación que admiten una serie de datos complejos,pero para nuestro caso estos van a ser los tipos principales.Datos Numéricos: están representados por dos tipos principales Enteros: Representan los números que no posee componente fraccionaria y pueden ser tanto positivos como negativos Reales: Representan todos los números que poseen componente fraccionaria y también pueden positivo o negativoDatos Lógicos (booleano), este tipo de dato solo puede tomar uno de dosvalores (verdadero o falso)Datos tipo Carácter: Representan datos alfanuméricos que pueden ser Cadena de caracteres (string), que es una sucesión de caracteres numéricos, letras, símbolos, etc; esta cadena inicia y termina con apostrofes o comillas, dependiendo del lenguaje que se este utilizando, para este caso la representaremos con comillas “Este es un Ejemplo.” Carácter: (char), contiene solo un carácter y también se incluye las comillas para su asignación “I”1.4.1. Variables Y ConstantesUna variable es un espacio reservado en el computador para contener valoresque pueden cambiar durante el desarrollo del algoritmo. Los tipos de variables(Numéricas, carácter, lógicas) determinan cómo se manipulará la informacióncontenida en esas. Una variable que se ha definido de un cierto tipo solo puedetomar valores de ese tipo, es el caso de la variable entera x, solo podrá recibirnúmero enteros,Una Constante: es un espacio reservado para contener valores que no cambiana lo largo de la ejecución de un algoritmo,
    • 29Es necesario distinguir que existen variables locales y variables globales:Variables locales: es aquella que afecta únicamente el subprograma (versemana: 9)Variable Global: variable que afecta a un programa en todo su contexto,programa principal y modulo (ver semana 9)En ambos casos existen una serie de reglas, las características de los nombresde las variables o constante, entre estas están: Normalmente deben iniciar con una letra No deben contener símbolos ni signos de puntuación (#,(,?...) Do deben contener espacios en blancoEjemplo: Contador correcto 44444 in correcto Mi contador in correcto Pedro correcto #k incorrecto K CorrectoComo podemos observar las variables o constantes se declaran utilizandonombres o letrasLas operaciones que se realicen sobre estas variables y/o constantes, estándefinidas por una serie de operadores, entre los cuales se encuentran:Operadores: Aritméticos.•Potencia. ^ **•Producto. *•División. / Div Mod•Suma. +•Resta. -
    • 30Operadores: Alfanuméricos.•Concatenación. + Ejm. ‘UN’ + ’AD’ ‘UNAD’Operadores: Relacionales.•Igual a. =•Menor que. <•Menor o igual que. <=•Mayor que. >•Mayor o igual que. >=•Distinto a. <>Operadores: Lógicos.•Negación. Not no•Conjunción/producto. And y•Disyunción/suma. Or oOperadores: Paréntesis.•El paréntesis Permite alterar el orden en que realizan las diferentesoperaciones Ejm. A / (2 * B)En la ejecución de un programa o algoritmo se hace cumplir una serie de reglasde prioridad que permiten determinar el orden de las operacionesOrden de evaluación de los operadores•Paréntesis.•Cambio de signo.•Potencias.•Productos y divisiones.•Sumas y restas.•Concatenación.•Relacionales.•Negación.
    • 31•Conjunción.•Disyunción.ObservaciónEl operador MOD, permite obtener el residuo de una divisiónEl operador DIV, Permite obtener la parte entera de una división1.3.2 Ejercicios de VerificaciónEjercicio 1.0 Asociar la definición con el termino adecuado 1. Computador a)Scanner 2. Informática b)Maquina Electrónica 3. Unidad de Entrada d)Sistema Operativo 4. Unix e)SAS 5. Pascal e)Compiladores 6. Hardware f) Tratamiento Automático de la información 7. Lenguajes declarativos g)Lenguaje de Programación 8. Software g)Disco DuroEjercicio 2.0 Definir los Siguientes Términos 1. Lenguaje de maquina 2. Interprete 3. Compilador 4. Lenguaje de Alto Nivel 5. ProgramadorEjercicio 3.0 1. ¿Porque el procesador es una parte importante del computador? 2. ¿Cuales son las funciones que debe cumplir la memoria Ram? 3. Si usted va a adquirir una computadora en este momento, Cuales serán los criterios necesarios para su elección 4. Considera que es necesario el conocimiento hardware, para poder desarrollar Programas informáticos. por que? 5. Linux es un sistema operativo libre, esto quiere decir que no hay que pagar para su uso, que conoce acerca de este tipo de software? 6. Es usted partidario del software con licencia GNU 7. Los estudiantes del programa de Ingeniería de Sistemas de la Unad, realizan variedad de productos (software), como proyecto de curso o de grado, lo invito a que se acerque a la biblioteca y revise dos proyectos, luego haga un breve comentario de su usabilidad.
    • 32Ejercicio 4.0 De los siguientes identificadores de variables cuales no son validos, y cual seria la opción correcta a) Pedro si__ no___ Porque? b) Xpedro si__ no___ Porque? c) Contador5 si__ no___ Porque? d) 8contador si__ no___ Porque? e) #suma si__ no___ Porque? f) Con tador si__ no___ Porque?Ejercicio 5.0Obtener el resultado de la variable X a) X=5+3*2 d) A=5 X=? B=10 b) X=5+3*2 C=8 X=X+X X=A+B*C+(B-C) X=? X=X-A c) X=4+(3*2)+7 2 +4/2 X=? X=? e) X=35 DIV 4 X=X MOD 2 X= X+X X=?
    • 332. SEGUNDA UNIDAD:Estructura General de un AlgoritmoIntroducciónEn la segunda unidad nos enfocaremos ya a la solución de supuestosproblémicos, a pesar de que el curso esta enfocado esencialmente en el trabajoa través de algoritmos, es importante que los estudiantes conozcan de manerasintetizada la importancia que tienen, la solución de estos problemas, utilizandodiagramas de flujo, pues esta herramienta no solo es utilidad en ingeniería desistemas, si no en muchos actividades profesionales, donde se requierenrepresentar problema estructurales mediante diagramas, es por ello, laimportancia que los estudiantes de ingeniería de sistemas, conozcan yprofundicen en este tipo de instrumentos de análisis y representación grafica.Esta unidad contiene gran cantidad de talleres con ejercicios que ayudarán alestudiante a desarrollar habilidades para saber cuando y como se debenemplear las estrategias de la solución de los mismos; cada planteamientodemostrativo, esta seguido por un pequeño análisis, la solución al mismo y unadescripción de la manera como fue solucionadoSe sugiere que los estudiantes no solucionen únicamente los ejerciciospropuestos en cada uno de los talleres, sino que traten de solucionar diversidadde ejercicios presentados en los textos que se sugieren como bibliografía2.1 INTENCIONALIDADES FORMATIVAS:Propósitos de la unidadRealizar lecturas y ejercicios que permitan el desarrollo de ejerciciosConocer dos herramientas que permiten solución de problemas de información,los diagramas y los algoritmosObjetivos de la unidadRealizar ejercicios que permitan adquirir habilidades, utilizando diagramas deflujoRealizar ejercicios que permitan adquirir habilidades, utilizando diagramas dealgoritmosIdentificar, variables, constantes, prioridades y reglas de su usoIdentificar los proceso y/o toma de dediciones con diagramas de flujoAprender a escribir instrucciones sencillas de toma de decisiones y ciclos
    • 34Competencias de la unidad:El estudiante desarrolla ejercicios básicos utilizando diagramas de flujo yalgoritmosMetas de aprendizajeEl estudiante mediante lecturas y acompañamiento tutorial mediado es capazde comprender, analizar, desarrollar y proponer ejercicios que permitenevidenciar su aprendizajeUnidades Didácticas:Palabras claves:Diagramas de flujoAlgoritmosToma de decisiónCiclosFunciones2.2 DIAGRAMAS DE FLUJOAntes de iniciar en el análisis y la construcción de algoritmos es importanteapoyarnos en una herramienta útil en la programaciónde computadoras como lo es el diagrama de flujo, INICIOcuyas características, hace que se aplique no solo enla informática si no en todos los procesos que llevanuna secuencia lógica, entre sus aspectosfundamentales están: SI NO • Sencillez. Construcción fácil. • Claridad. Fácil reconocimiento de sus elementos. • Utilización de normas en la construcción de algoritmos. • Flexibilidad. Facilidad en las modificaciones.Entonces un diagrama Un diagrama de flujo es larepresentación gráfica del flujo de datos o de FINoperaciones de un programa.
    • 35Los símbolos de mayor utilización en la representación grafica por medio dediagramas son: Inicio y Final Entrada y Salida (Lea y Escriba) Operaciones Generales Decisión Símbolos de Conexión Líneas de FlujoPara realizar estos gráficos existen plantillas o herramientas que mejoran lapresentaciónTambién se pueden encontrar en los procesadores de texto barras quepermiten realizar estos gráficos
    • 36Este es uno de los cursos en los que se necesita realizar muchos ejerciciospara poder lograr un aprendizaje exitoso.Algunos ejemplos !
    • 37Ejemplo 1: realizar un diagrama que permita leer dos números, sumarlos ymostrar el resultadoAnálisis1.- leer cuidadosamente el planteamiento del ejercicio2.-Análisis del Problema3.-Que información debe ser necesaria para la solución del problema3.-Que datos no conocemos y son necesarios para darle solución.Para el ejercicio que nos compete, debemos prestar mucha atención en lasvariables necesarias para su solución, en este caso no conocemos los dosnúmeros y tendremos que captarlos en variables, luego sumarlas (lasvariables), para luego mostrar el resultado, Inicio Lea Lectura de las variables (a,b) a ,b x=a+b Proceso de suma de los valores ingresados a y b Escriba x Mostrar el resultado de la suma, el valor es almacenado en la Variable X Fin
    • 38Ejemplo # 2Encontrar el área de un triangulo y mostrar su resultadoAnálisisPara la realización de este ejercicio es indispensable conocer la formula de untriangulo (b*h)/2, si nos damos cuenta en la formula, existen dos valores que noconocemos, la base y la altura (b, h), por lo tanto esas dos variables se debenpedir y el dos es una constante que no se debe leer, simplemente aplicar en laformula así: Inicio Prueba de Escritorio La prueba de escritorio se realiza para Lea verificar con datos reales, la correcta construcción del diagrama, para este caso: b ,h b h area area=(b*h)/2 5 2 (5*2)/2=5 Escriba Otros valores area b h area 20 4 40 Fin -4 -1 ?AvancemosAhora vamos a utilizar condicionales, un condicional es un parámetro quepermite tomar una decisión, para el caso de la programación estructurada soloexiste dos alternativas, un Si o un NoPara entender mejor el concepto lo haremos mediante un ejercicioEjemplo # 3Realizar un diagrama que permita determinar cual es el mayor de 2 númerosAnálisisPara determinar cual es el mayor de dos números, debemos primero conocerlos números, para el caso se deben leer (A,B), luego realizar la comparación, sia> b, entonces el mayor es A, en caso contrario el mayor es B:
    • 39 Inicio Lea Decisión a ,b Escriba si no Escriba “El mayor es a>b “El mayor es a” b” Las comillas(“..”), se emplean para mostrar mensajes FinUna pregunta que nace del ejercicio anterior es, ¿qué pasa cuando soniguales?Para ese caso necesitamos de un segundo condicional que verifique si las dosvariables son iguales (a=b) Inicio Lea a ,b si Escriba a=b “Los números fin son iguales ” no Escriba si no Escriba “El mayor es a>b “El mayor es a” b” FinSe recomienda utilizar la herramienta dfd, desarrollada por el grupo Smart dela universidad del Magdalena, la cual la puede descargar de:http://www.programas-gratis.net/php/descarga.php?id_programa=1808&descargar=DFD%201.0, estaherramienta permite desarrollar y ejecutar los diagramas.A demás de consultar el anexo “Tutorial de DFD” propuesto por el ingenieroFélix Javier Villero Maestre4 y desarrollado en Unicesar4 Coordinador Zona Caribe FCBI - UNAD
    • 402.2.1 ejercicios de verificaciónRealizar el análisis, diagrama de flujo y prueba de escritorio, para los siguientesplanteamientos1.-Realizar un diagrama de flujo que permita determinar lo pasos para ir al cinecon el novio o la novia2.-Realizar un diagrama donde se indique los pasos para realizar un plato típicode la Región3.-Realizar un diagrama que permita esquematizar los pasos para bañar unelefante4-determinar cual es el cuadrado, de un determinado número5.-Elaborar un diagrama de flujo que permita determinar si un número esPositivo o Negativo6.-Ejercicio de conversión, desarrollar un diagrama, que perita ingresar unacantidad en metros y la convierta a Centímetros, Kilómetros, Pies, pulgadas..7.-Leer una determinada temperatura en grados centígrados y convertirla aFahrenheit8.-una persona es apta para prestar el servicio militar obligatorio (presente),cuando: es mayor de 18 años, menor de 25 años, nacionalidad Colombiana ygénero masculino. Realizar un diagrama que permita determinar si una personaes apta o no par prestar el servicio militar9.- Elabore un diagrama de flujo que teniendo como datos de entrada el radio yla altura de un cilindro calcule el área total y el volumen del cilindro10 Una persona recibe un préstamo de un banco por un año y desea sabercuánto pagará de interés al terminar el préstamo si se sabe que el banco lecobra una tasa del 1.8% mensual.Realice un diagrama de flujo que permita determinar este monto11.- Elaborar un diagrama de flujo, que permita ingresar 3 valores y los imprimaen forma descendente12.- Una empresa desea conocer el monto de comisión correspondiente a unaventa realizada por un vendedor bajo las siguientes condiciones. Si la venta esmenor a $1,000.00, se le otorga el 3% de comisión. Si la venta es de$1,000.00 o más, el vendedor recibe el 5% de comisión
    • 4113.-Una empresa ha decidido, realizar aumentos de salario a sus trabajadoresde acuerdo a las siguientes categoríasSindicalizado 20%De confianza 10%Alto directivo 5%Ejecutivo 0%Usted debe desarrollar un diagrama que perita ingresar la categoría, el salarioactual y calcular el nuevo salario.14.-Desarrollar una diagrama que permita con dos números, simular unacalculadora (+,-,/,*), se debe leer los números y la operación a realizar15.- Dado un valor de x calcular el valor de y según la siguiente función: 3x + 36 si x ≤11 x 2 −10 si 11< x ≤ 33 y = f ( x) = x+6 si 33 < x ≤ 64 0 para los demás valores de x16. Se recomienda realizar ejercicios básicos planteado en los textos, utilizadoscomo bibliografía de este módulo, a demás de los propuestos por el tutor delcurso
    • 422.3 ALGORITMOSComo podemos observar en las actividades anteriores, los diagramas seconvierten en una herramienta básica fundamental, el la resolución deproblemas informáticos, pero este modulo lo que pretende es dar a conocerlos,sin profundizar mucho sobre ellos, es trabajo del estudiantes ahondar en losconceptos y técnicas en el desarrollo de diagramas.Lectura #4 Sobre el origen de la palabra algoritmo “ : MUHAMMAD BIN MUSA AL-KHWARIZMI (Algorizm) (770 - 840 C. E.) A Portrait of Al-Khwarizmi by Dr. A. ZahoorAbu Abdullah Muhammad Ibn Musa al-Khwarizmi was born at Khwarizm(Kheva), a town south of river Oxus in present Uzbekistan. (Uzbekistan, aMuslim country for over a thousand years, was taken over by the Russians in1873.) His parents migrated to a place south of Baghdad when he was a child.The exact date of his birth is not known. It has been established from hiscontributions that he flourished under Khalifah (Calif) Al-Mamun at Baghdadduring 813 to 833 C.E. and died around 840 C.E. He is best known forintroducing the mathematical concept Algorithm, which is so named after his lastname.Al-Khwarizmi was one of the greatest mathematicians ever lived. He was thefounder of several branches and basic concepts of mathematics. He is alsofamous as an astronomer and geographer. Al-Khwarizmi influencedmathematical thought to a greater extent than any other medieval writer. He isrecognized as the founder of Algebra, as he not only initiated the subject in asystematic form but also developed it to the extent of giving analytical solutionsof linear and quadratic equations. The name Algebra is derived from his famousbook Al-Jabr wa-al-Muqabilah. He developed in detail trigonometric tablescontaining the sine functions, which were later extrapolated to tangent functions.Al-Khwarizmi also developed the calculus of two errors, which led him to theconcept of differentiation. He also refined the geometric representation of conicsections
    • 43The influence of Al-Khwarizmi on the growth of mathematics, astronomy andgeography is well established in history. His approach was systematic andlogical, and not only did he bring together the then prevailing knowledge onvarious branches of science but also enriched it through his originalcontributions. He synthesized Greek and Hindu knowledge and also containedhis own contribution of fundamental importance to mathematics and science. Headopted the use of zero, a numeral of fundamental importance, leading up to theso-called arithmetic of positions and the decimal system. His pioneering work onthe system of numerals is well known as "Algorithm," or "Algorizm." In addition tointroducing the Arabic numerals, he developed several arithmetical procedures,including operations on fractions.In addition to an important treatise on Astronomy, Al-Khwarizmi wrote a book onastronomical tables. Several of his books were translated into Latin in the earlyl2th century by Adelard of Bath and Gerard of Cremona. The treatises onArithmetic, Kitab al-Jam wal-Tafreeq bil Hisab al-Hindi, and the one on aAlgebra, Al-Maqala fi Hisab-al Jabr wa-al-Muqabilah, are known only from Latintranslations. It was this later translation which introduced the new science to theWest "unknown till then." This book was used until the sixteenth century as theprincipal mathematical text book of European universities. His astronomicaltables were also translated into European languages and, later, into Chinese.The contribution of Al-Khwarizmi to geography is also outstanding. He not onlyrevised Ptolemy views on geography, but also corrected them in detail. sSeventy geographers worked under Khwarizmi leadership and they produced sthe first map of the globe (known world) in 830 C.E. He is also reported to havecollaborated in the degree measurements ordered by khalifah (Caliph) Mamunal-Rashid were aimed at measuring of volume and circumference of the earth.His geography book entitled "Kitab Surat-al-Ard," including maps, was alsotranslated. His other contributions include original work related to clocks,sundials and astrolabes. He also wrote Kitab al-Tarikh and Kitab al-Rukhmat (onsundials). “Existen muchas definiciones referentes a algoritmos, entre las cuales tenemos: 1. un algoritmo es un conjunto de instrucciones las cuales le dicen a la computadora cómo ejecutar una tarea específica 2. Un algoritmo es un conjunto ordenado y finito de instrucciones que conducen a la solución de un problema 3. “Una lista de instrucciones donde se especifica una sucesión de operaciones necesarias para resolver cualquier problema de un tipo dado”.Un algoritmo esta compuesto por tres elementos esenciales a- Cabecera ->donde se da el nombre del algoritmo y se declaran las variables b- Cuerpo -> donde se realizan todas las acciones del programa c- Final ->donde se da finalización, porque debe ser finito
    • 44Ejemplo:Retomado el primer ejercicio de los diagramas, Leer dos números, sumarlos yobtener su resultadoComo el análisis del ejercicio ya se realizo, pasamos a su solución mediante unalgoritmo 1. Algoritmo Suma; Prueba de escritorio 2. Var a b suma 3. a,b,suma: entero; 4 4 8(4+4) 4. inicio 5. escriba(“por favor ingrese un número”); a b suma 6. lea (a); 20 5878 5898(20+5878) 7. escriba(“por favor ingrese otro número”); 8. lea (b); a b suma 9. suma = a+b; -3587 -4578 ?____ 10. escriba (“el resultado es: ”,suma) 11. finExplicaciónSección encabezado (líneas 1,2,3)Línea 1 ->definición del nombre, todo algoritmo debe ser identificado con unnombreLínea 2 -> Palabra para identificar las variables a utilizarLínea 3 -> variables utilizadas y el tipo de las mismas, para este caso de tipoentero (recordemos que los datos numéricos se dividen en enteros y reales)Línea 4 -> Damos inicio al cuero del algoritmoLínea 5 ->La palabra escriba es una directiva de salida, es decir todo lo que seingresa dentro de esta instrucción son comentarios o valores, que seránvisualizados por el usuario, para este caso, estamos solicitando que ingrese unnúmero.Línea 6 -> La palabra lea es una directiva de entrada, significa que todo lo quese escriba dentro, será ingresado, en este caso estamos ingresando un númerocualquieraLínea 7 y 8 -> repite la secuencia de las líneas 5 y 6Línea 9 -> Proceso, en este segmento se le asigna el valor de la suma de dosvariables a una tercera (suma)Línea 10 -> podemos observar una salida doble, es decir la primera parte uncometario y luego la variable de resultadoLínea 11-> final del algoritmoPara tener en cuentaCon los algoritmos, resulta más cómodo, presentar mensajes de claridad alusuario, por ejemplo cundo decimos (“por favor ingrese un número”), en esemomento somos explícitos con lo que queremos hacer,ResumiendoEscriba ->sirve para dar a conocer mensajes o resultadosLea -> permite capturara información
    • 45Entrada ------ proceso----- SalidaLea Escriba2.3.1 Estructuras de SelecciónLas estructuras de selección son estructuras de control utilizadas para la tomadecisiones dentro de un programa. A estas estructuras se conocen tambiéncomo estructuras selectivas o estructuras de decisión y son las siguientes:• La estructura de selección simple (SI).• La estructura de selección doble (SI-SINO).• Estructura de Selección doble en Cascada SI-SINO-SILa estructura de selección simple permite ejecutar una acción o un grupo deacciones sólo si se cumple una determinada condición. Si (condicional) Sentencia 1 Sentencia 2 … Fin _siLa estructura de selección doble permite seleccionar una ruta de dos rutasposibles en base a la verdad o falsedad de una condición. Si (condicional) Sentencia 1 Sentencia 2 … Si_no Sentencia 1 Sentencia 2 … Fin_fiLa estructura de selección doble en cascada esta formada por variasestructuras de selección doble SI-SINO puestas una a continuación de otra deforma que a un SI-SINO le sigue otro SI-SINO.En la estructura de selección doble en cascada, las condiciones se evalúanorden descendente, pasando de una condición a otra si la condición anteriorresulta falsa. En el momento que se encuentra una condición verdadera, seefectúa acción correspondiente a dicha condición se corta el resto de laestructura. Si todas las condiciones resultan falsas, se efectuará accionescorrespondientes al SINO, que se considera como la acción por defecto. SI( condicional1 ) accion1 SINO SI( condicional2 ) accion2
    • 46 SINO SI( condicional3 ) accion3 . . . SINO ….El siguiente ejemplo ilustra el manejo de condicionalesEjemplo 2Determinar cual de 2 números es mayor1. algoritmo mayor2. var3. a,b: entero;4. inicio5. Escriba(“Por Favor entre un número”);6. Lea(a);7. Escriba(“por favor entre el segundo número”);8. lea (b);9. si (a>b)10. escriba(“El mayor de los números es: ”,a);11. sin_no12. escriba(“El mayor de los números es: ”,b);13. fin_si14. finComentariosLínea 9: los condicionales que se representaban como, ahoralo expresamos como un SI(),Línea 11: para este ejerció, la sentencia si_no representa caso contrarioLínea 13: Toda instrucción Si, debe terminar con un fin_si, para indicar hastadonde va ese condicional.Ejemplo 3Variación del ejercicio anterior, que pasa si los números son igualesEntonces una posible solución es la siguiente1. Algoritmo mayor_v12. var3. a,b:entero4. inicio5. Escriba(“Por Favor entre un número”);6. Lea(a);7. Escriba(“por favor entre el segundo número”);8. Lea (b);9. Si (a=b)
    • 4710. escriba (“los Números son Iguales”);11. fin_si12. Si (a>b)13. escriba (“El mayor es :”, a);14. fin_si15. Si (a<b)16. escriba(“el mayor es :”,b);17. fin_si18. finPor favor discuta y analice con su compañeros de grupo, porque en esteejercicio se emplearon 3 condicionales?, Existen otras formas de resolverlo?___________2.3.1.1 Ejercicios de Verificación1. desarrollar mediante algoritmos los ejercicios propuestos en el ítem. 2.2(Ejercicios de Verificacióncon diagramas de fluido)2. Profundización en los temas : Tipos de instrucciones Instrucciones de Asignación Instrucciones de Entrada Instrucciones de Salida Instrucciones de Decisión
    • 482.3.2 Estructuras de secuencia Ciclos o BuclesEste tipo de estructuras marcan como orden de ejecución la reiteración de unaserie de acciones basándose en un bucle.“Un BUCLE (loop, en inglés) es un trozo de algoritmo cuyas instrucciones sonrepetidas un cierto número de veces, mientras se cumple una cierta condiciónque ha de ser claramente especificada. La condición podrá ser verdadera ofalsa, y se comprobará en cada paso o iteración del bucle.Básicamente, existen tres tipos de estructuras repetitivas:Desde o Para: este tipo de ciclo es ideal cuando se conoce la cantidad de vecesque se desea ejecutar una acción...Para (Contador=ValorInicial Hasta ValorFinal) .... Instrucción(es) ....Fin para...Mientras que: este tipo de ciclo se ejecuta mientras se cumpla una determinadacondición, en este caso la condición se evalúa al inicio del ciclo...Mientras (Exp. booleana) hacer .... Instrucción(es) ....Fin mientras....Repita... hasta que: este ciclo es similar al anterior, solo que, en este tipo deciclo, la condición se evalúa al final, permitiendo que el bucle se ejecute por lomenos una vez....Repita .... Instrucción(es) ...Hasta que (exp. Booleana)...
    • 49 También se hace necesario conocer otros conceptos que se manejan muchocuando hablamos de ciclos o bucle ellos son: • Decisión: donde se evalúa la condición y, en caso de ser cierta, se ejecuta. • Cuerpo del bucle: son las instrucciones que queremos ejecutar repetidamente un cierto número de veces. • Salida del bucle: es la condición que dice cuándo saldremos de hacer repeticiones (caminar mientras encuentro un sillón, en el momento de encontrar un sillon dejo de caminar y he salido del ciclo).Una forma de controlar un bucle es mediante una variable llamadaCONTADOR, cuyo valor se incrementa o decremento en una cantidadconstante en cada repetición que se produzca.También, en los bucles suele haber otro tipo de variables llamadasACUMULADOR, cuya misión es almacenar una cantidad variable resultante deoperaciones sucesivas y repetidas. Es como un contador, con la diferencia queel incremento/decremento es variable.2.3.2.1 Ciclo para o desdeLa estructura repetitiva PARA ó DESDE permite que las instrucciones lascuales contiene en su ámbito, se ejecuten un número de veces determinadoUna variable de control, que llamamos contador, se incrementa o decrementadesde un valor inicial hasta un valor final. Supondremos un incremento de unoen uno y decrementos de menos uno en menos uno.Bueno para ser explicito, lo mejor es realizar un ejercicio donde se comprendatodos los conceptos mencionados hasta el momento.EjercicioRealizar un algoritmo que sume los 10 primeros números naturales e imprimasu resultado.Análisis 1. los números naturales se tomaran del 1 al 10 2. como se conoce la cantidad de veces que hay que sumar los números, lo mejor es utilizar el ciclo desde o para 3. como se necesita sumar los números, lo mejor es utilizar un acumulador 4. En este caso, los números se conocen, por lo tanto no habría que capturar ningún valor
    • 50Solución Prueba de escritorio 1. algoritmo suma10 k suma - 0 2. var 1 1 3. k,suma : entero; 2 3 4. inicio 3 6 5. suma=0; 4 10 6. Para (k=1 hasta 10 hacer) 5 15 7. suma=suma+k; 6 21 8. fin_para 7 28 8 36 9. Escriba(“la suma es: ”,suma); 9 45 10. fin 10 55ExplicaciónLínea 5 -> es importante inicializar las variables que serán utilizadas comoacumuladoresLínea 6 -> instrucción del ciclo básico desde el número 1 hasta el 10, en estecaso la variable k se comporta como un contadorLínea 7-> Al valor anterior que tiene la variable suma, le acumulamos un nuevovalor, como puede observarse en la prueba de escritorioLínea 8-> todo ciclo al igual que todo condicional se debe cerrarLínea 9-> esta línea, se hubiese podido colocar antes de cerrar el ciclo, pero seimprimiría 10 un resultadoEjercicio 2Una pequeña variación al ejercicio anteriorRealizar la suma de 10 números cualesquiera e imprimir su resultadoAnálisis1.- Para este caso se saben cuantos números serán los sumados, por lo cualse recomienda utilizar nuevamente el ciclo para2.- No se sabe cuales son los números, por lo tanto hay que capturarlos3.- se aumentará una variable, la que captura los números
    • Variable para Contador 51 capturar Acumulador númerosSolución Prueba de escritorio k numero suma 1. algoritmo suma10_1 - 0 2. var 1 8 8 3. k, numero, suma : entero; 2 2 10 4. inicio 3 7 17 5. suma=0; 4 100 117 5 -5 112 6. Para (k=1 hasta 10 hacer) 6 10 122 7. Escriba(“por favor ingrese el 7 20 142 número”); 8 15 157 8. lea(numero) 9 2 159 9. suma=suma+numero; 10 80 239 10. fin_para 11. Escriba(“la suma es: ”,suma); Realizar prueba de 12. fin escritorio con otros valoresExplicaciónLínea 7-> Es un mensaje para que el usuario sepa que tiene que hacerLínea 8-> Es necesario capturar el número, en este caso 10 veces porque son10 números diferentes (ver prueba de escritorio)1ínea 9-> En este caso no acumulamos k a la variable suma, por k essimplemente un contador y lo que piden es sumar los números, por lo que hayque acumular es el valor de la variable numeroEjercicioRealizar un algoritmo que permita ingresar 10 números, de los cuales se debesumar aquellos que son positivos y contar los que son negativos, imprimir losresultadosAnálisis1.-Al igual que los ejercicios anteriores, se sabe cuantos números son2.-Nuevamente el ciclo recomendado es el ciclo para o desde (desde i=1 hasta10)3.-Se complica un poco, pues se pide sumar y contar dependiendo el número4.-Tendremos que utilizar una variable para contar y otra para acumular5.-es necesario dentro del ciclo tomar una decisión
    • 52Solución Prueba de escritorio 1. algoritmo suma10_2 k kp numero suma 2. var - 0 0 3. k, numero, suma, kn : entero; 1 8 8 4. inicio 2 2 10 3 1 -7 5. suma=0; 4 100 110 6. kn=0; 5 2 -5 7. Para (k=1 hasta 10 hacer) 6 10 120 8. Escriba(“por favor ingrese el número”); 7 3 -20 9. lea(numero) 8 15 135 10. si (numero >= 0) 9 4 -2 10 80 215 11. suma=suma+numero; 12. si_no 13. kn=kn+1; 14. fin_si 15. fin_para 16. Escriba(“la sumatoria de positivos es: ”,suma); 17. Escriba (“la cantidad de # negativos es: ”,kp); 18. finExplicaciónLínea 6-> inicializamos en cero la variable que utilizamos como contador denúmeros negativosLínea 10-> condicionamos el número leído, par determinar si es positivo onegativo, en el caso de ser positivos lo sumamos en la línea 11, en el caso deser negativo lo contamos en la línea 132.3.2.1.1 EJERCICIOS DE VERIFICACIÓNDesarrollar el siguiente taller1.-Realizar un algoritmo que permita leer 20 temperaturas (grados Cº)diferentes durante un día, se debe indicar cual fue la temperatura el promediode ese día2.-Una empresa que cuenta con n empleados desea realizar algunos cálculospara la nueva nómina. Los datos con que cuenta son los sueldos de los nempleados: n, s1, s2, s3, ..., sn. Elabore un algoritmo de para leer los datos y contestar a las siguientes preguntas:
    • 53 a) ¿Cuál es el aumento correspondiente a cada empleado según el siguiente criterio? 17% si el sueldo es inferior a $5,000 10% si el sueldo está entre $5,000 y $15,000 5% si el sueldo es superior a $15,000 b) ¿Cuál es el nuevo sueldo para cada empleado? c) ¿Cuál es el total de la nueva nómina? d) ¿Cuál es el incremento en la nómina? e) ¿Cuál es el máximo sueldo nuevo? f) ¿Cuál es el mínimo sueldo nuevo?Se sugiere leer la variable k para determinar la cantidad de empleados antes dehincar el ciclo3.-se desea desarrollar un algoritmo que permita, desarrollar la tabla demultiplicar de un determinado número (la tabla básica va de 1 a9);4.-Variación del ejercicio anterior, se debe desarrollar un algoritmo que permitamostrar las tablas del 1 al 95.-Se desea construir un algoritmo que permita imprimir el resultado del factorialde un número dado (factorial =n!);6.- una empresa con 20 empleados desea saber cuantos ganan menos de unsalario mínimo, cuantos tienen un salario entre uno y dos salarios mínimos ycuantos ganan más de tres salarios mínimos, además cual es el valor actual dela nomina de la empresa, cuanto aumentará la nomina mensual si se haceincrementos así; 20% a aquellos que gana menos de un salario mínimo, 10% alos que ganan entre 1 y dos salarios mínimos y 5% a quienes gana más de 3salarios mínimos.Se deben realizar los cálculos, teniendo en cuenta el valor del salario mínimolegal vigente7.-Se desea desarrollar un algoritmo que permita determinar e imprimir elpromedio de las edades de los alumnos de el curso algoritmos de este Cead, además se debe aprovechar la consulta para determina cuantos son casados,cuanto viven en unión libre, cuantos solteros, cuantos son viudos, cuantosvienen de otras ciudades, cuantos conocen la misión de la Unad, si lo desean lopueden clasificar por géneros.La realización de este ejercicio con datos reales podrá conocer un poco más asus compañeros de curso8.-Consultar información referente a los ciclos mientras y el ciclo Repita
    • 542.3.2.2 Ciclo MientrasControla la ejecución de un conjunto de instrucciones de tal forma que éste seejecuta mien-tras se cumpla la condición de control que aparece al comienzo dela instrucción. Es decir funciona siempre y cuando la condición sea verdadera.EjemploSe debe desarrollar un algoritmo que este permita ingresar las notas del cursode algoritmos, el programa debe terminar cuando la nota ingresada es cero(cero), luego mostrar el promedio de las notas ingresadasAnálisis1. En este ejercicio no se sabe la cantidad de notas2.-Se sabe que se termina cuando una de las notas ingresada es cero3.-Se debe utilizar un contador, para determinar el número de notas ingresadas4.-también se debe utilizar un acumulador para sumar cada nota5.-se utilizara una variable extra si es del caso para obtener el promedio.Solución Prueba de escritorio1. Algoritmo notas k suma nota promedio2. Var 0 0 - -3. k : entero 1 3.5 3.54. suma, nota, promedio: real;5. inicio 2 7.5 4.06. suma=0;k=0; 3 9.5 2.07. mientras (nota <>0) 4 14.5 5.08. escriba(“entre la nota”); - - 0 3.6259. lea (nota)10. si (nota >0 )11. suma=suma+nota;12. k=k+1;13. fin_si14. fin_mientras15. promedio=suma/k;16. escriba(“la cantidad de notas ingresadas son: ”,k);17. escriba(“el promedio de las notas es de :”,promedio);18. fin.ExplicaciónLínea 4-> no olvidemos que en algunos casos no se debe emplear númerosenerosLínea 6 -> se pude emplear una línea para realizar varias actividadesLínea 7 -> se da inicio al ciclo con el condicional, para este caso que la nota seadiferente a 0, la sentencia diferente también se puede representar como (!=)Línea 10. Es importante el condicional para controlar que solo recibamosnúmeros positivos;
    • 55Línea 14->todo ciclo se debe cerrar2.3.2.3 Ciclo Repita hasta queControla la ejecución de un conjunto de instrucciones de tal forma que éste seejecuta hasta que se cumpla la condición de control que aparece al final de lainstrucción.EjercicioSe realza una variación al ejercicio anteriorLas notas permitidas son únicamente, números positivos comprendidos entre0.1 y cinco.Con este ejercicio se pretende abordar un tema de mucha importancia, comoson los filtros, los cuales solo permiten el ingreso de unos determinadosvalores, en caso de que esos valores no sean validos se generara mensajes deerror,Con este planteamiento, podemos involucrar los dos ciclosAnálisis1.-El análisis prácticamente es el mismo anterior, solo que se debe tener encuenta las notas permitidas (0.1 a 5.0)2.-En caso de no ser una nota permitida el algoritmo emitirá un mensaje ypedirá un nuevo número1. Algoritmo notas_v12. Var3. k : entero4. suma, nota, promedio: real;5. inicio6. suma=0; k=0;7. mientras (nota <>0)8. repita9. escriba("entre la nota");10. lea(nota);11. si (nota <0) o (nota >5)12. escriba("Error. intentelo nuevamente");13. fin_si14. hata que (nota<0 ) o (nota >5);15. if (nota <>0 )16. suma=suma+nota;17. k=k+1;18. fin_si19. fin_mientras20. promedio=suma/k;21. escriba("la cantidad de notas ingresadas son: ”,k);22. escriba(“el promedio de las notas es de :”,promedio);23. fin
    • 56ExplicaciónDe la línea 8 a la 14 esta controlada por el ciclo repita ..hasta queLínea 11-> este condicional permite generar un mensaje de error, si la nota estafuera del rango establecidoLínea 14, termina el ciclo repita con una condición de verificaciónLínea 15->, por qué validar que la nota sea diferente de 0,?. Bueno la respuestaes que el cero es nuestro valor CENTINELA o BANDERA y no lo estamosteniendo en cuenta dentro del ciclo repita ni en el condicionalObservación importante, en este ejercicio, hemos empleado los conectoreslógicos, para este caso el conector o lo podemos observar en las líneas 11 y14, se sugiere consultar más referente a estos conectores.2.2.3.4 ejercicios de verificaciónEvidencia: documento con informe de la actividad, y registro en el portafolio1.-determine cual es la diferencia entre: a) contador y acumulador b) ciclo para y ciclo mientras d) ciclo mientras y ciclo repita e) condicional y ciclo2.-Realizar los siguientes ejercicios a) Los cubos de Nicómaco. Considera la siguiente propiedad descubierta por Nicómaco de Gerasa: Sumando el primer impar, se obtiene el primer cubo. Sumando los dos siguientes se obtiene el segundo cubo. Sumando los tres siguientes, se obtiene el tercer cubo y así sucesivamente Es decir: 1 = 13, 3 + 5 = 23 = 8, 7 + 9 + 11 = 33 = 27, 13 + 15 + 17 + 19 = 43 = 64. Elabore un algoritmo que dado un número n entero positivo, imprima los n primeros cubos utilizando esta propiedad. b)la serie fibonacci es un ejercicio interesante, el cual se construye a partir de los dos primeros números que son el 0 y 1, y apartir de ahí se construye la serie ejemplo: 0,1, 0, 1, 1, 2, 3, 5, 8, 13, 21, 34.55.. Desarrollar un algoritmo que permita, calcular n números de esta serie
    • 57c) En un periodo académico existen 45 alumnos y cada uno de ellos tiene4 calificaciones, correspondientes a 5 diferentes cursos. Se requiereencontrar: El promedio de cada estudiante. el promedio general del curso (=promedio de los promedios).d) se debe realizar una mejora al algoritmo anterior, permitiendo controlarpara cada alumno n cursos, se debe imprimir los mismos ítemse) Para las elecciones presidenciales que se realizarán en Colombia,existen tres partidos políticos aspirando con sus candidatos (1, 2,3).Uno de estos ha decidido realizar una consulta (encuesta) a un ciertonúmero de personas, para determinar las preferencias de los electoresA cada persona se le pregunta: Si va a votar, En caso de que la respuesta se afirmativa, se le preguntará por qué partido votará.Elaborar un algoritmo, para llevar un control de la información y asíobtener unos resultados con prontitudNota: el dato partido solamente se lee si la persona entrevistada hacontestado que sí votará.El algoritmo imprimirá la siguiente información: ¿Cuál es el partido que esta repuntando? ¿cuál es % de abstención? ¿Cuál es % a favor de cada partido, teniendo en cuenta, las entrevistas validas? ¿cual es el % de personas que SI votaran?f) Realizar un algoritmo que permita determinar si un número es par oimpar, teniendo en cuenta las siguientes condiciones: Solo se admiten números positivos Solo se evalúan números entre 1000 y 147890, cualquier otro número genera una advertencia de error El algoritmo, termina cuando el usuario decide no ingresar más números (“Desea continuar S/N”)g) Un almacén desea obtener una serie de informes diarios a partir de lasventas realizadas en un día. Elabore un algoritmo que: Solicite el código del artículo El valor unitario La cantidad de artículosEl código para terminar es -999
    • 58 Se desconoce el número de ventas que se realizan en un día, por lo que el final de los datos se indica con un –1. Suponga que el IVA es del 15%.2.3.3 SUBPROGRMA O MODULOHay una expresión que dice “Divide y Vencerás”, precisamente los módulos loque permiten es dividir los programas grades, en fragmentos pequeños. • Un subprograma o modulo es un trozo de código que tiene – Entradas – Salidas – Instrucciones – Es otro programa “prendido” al programa principal • Un subprograma puede ser utilizado por el programa principal o por otros subprogramasAl dividir un programa en módulos este permite • Permite mayores niveles de abstracción, por ende capacidad de abordar problemas más complejos • Diseñar programas más claros, y por ende más fáciles de mantener • Permite la reutilización de código, y por ende evita duplicidad de trabajo y aumenta productividad • La detección de errores y corrección se hace fácilEn esquema un programa dividido en módulos será: Programa Principal Retorna información Envía datos Modulo Modulo Modulo Interactúa entre Solicita módulos Información Retorna información Otro ProgramaPuesto que nuestra herramienta de programación va a ser el lenguaje C o C++,se hará énfasis en el uso de funciones.
    • 59Para comprende mejor el concepto, lo realizaremos a través de un ejemplo,prácticoEjercicio: Realizar un algoritmo que mediante un menú, permita realizar lacuatro operaciones básicas, suma, resta, división y multiplicación, terminando,permitiendo salir con el numero 0.Análisis1.- ya sabemos como se hacen cada una de las operaciones,2.-sabemos como se comportan los ciclos3.-manos a la obra con funcionesSe pide un menú5 Menú principal 1....Suma 2....Resta 3....División 4....Multiplicación 0....SalirSolución1 Algoritmo menú2 Var3 dato1, dato2, op: entero;4 inicio5 op=1;6 Mientras (op<>0)7 Escriba (“1...Suma”); Llamado a la8 Escriba (“2....Resta”); función suma, a9 Escriba (“3....División”); la cual se le10 Escriba (“4....Multiplicación”) pasan dos11 Escriba (“0....Salir”)12 Lea (op); parámetros13 Si (op=1)14 Escriba (“Entre el primer numero”);15 Lea (dato1);16 Escriba (“Entre el segundo número”);17 Lea (dato2); El resultado18 Escriba (“El resultado de la suma es”, suma (dato1, dato2); viene en el19 Fin _ si nombre de la20 Si (op=2) función y se21 Escriba (“Entre el primer numero”); imprime de22 Lea (dato1); unas ves23 Escriba (“Entre el segundo número”);24 Lea (dato2);5 Menú:
    • 6025 Escriba (“El resultado de la resta es”, resta (dato1, dato2);26 Fin _ si27 Si (op=3)28 Escriba (“Entre el primer numero”);29 Lea (dato1);30 Escriba (“Entre el segundo número”);31 Lea (dato2);32 Escriba (“El resultado de la división es”, div(dato1,dato2);33 Fin _ si34 Si (op=4)35 Escriba (“Entre el primer numero”);36 Lea (dato1);37 Escriba (“Entre el segundo número”);38 Lea (dato2);39 Escriba (“El resultado de la multiplicación es”, mult (dato1, dato2);40 Fin _ si41 Fin _ mientras42 Fin43 Entero función Suma (entero: dato1, dato2)44 Var45 Respuesta: entero; Se crea la función suma, esta es de46 Inicio47 Respuesta= (dato1+dato2); tipo entero por que devuelve, un48 Devolver (respuesta); valor entero; recibe 2 datos, también49 Fin. de tipo entero que son los que se50 Entero función resta (entero: dato1, dato2) envían del programa principal, estos51 Var pueden tener o no el mismo nombre52 Respuesta: entero;53 Inicio54 Respuesta= (dato1-dato2); Retorna la respuesta al55 Devolver (respuesta); programa principal56 Fin.57 Entero función div (entero: dato1, dato2)58 Var59 Respuesta: entero;60 Inicio61 Respuesta= (dato1 div dato2);62 Devolver (respuesta);63 Fin.64 Entero función Mult (entero: dato1, dato2)65 Var66 Respuesta: entero;67 Inicio68 Respuesta= (dato1 * dato2);69 Devolver (respuesta);70 Fin.1.-Nota importante: hay dos tipos de paso de parámetros entre el programa y lasfunciones o entre las funciones: por parámetro o por valor
    • 612.-Nota: en muchos lenguajes de programación existen funciones y procedimientos,invitamos a los estudiantes a que profundicen más en estos conceptos , medianteconsulta en biblioteca o en sitios web,3. TERCERA UNIDADLenguaje de Programación C++IntroducciónPara finalizar el curso de algoritmos es importante llevar la teoría a la práctica,es decir convertir los algoritmos en verdaderos programas de computador, paralo cual se utilizará C++ como lenguaje base de nuestro trabajo. Para estaunidad es necesario que el estudiante tenga presente todos los conceptostratados, a demás que los ejercicios realizados hasta el momento. Se hatomado el lenguaje C++ por que? Porque incluye al lenguaje C y muchas otrasfunciones, a demás c++ permite el trabajo orientado a objetos, que setrabajarán en otros cursos del mismo programa, a demás se encuentran todaslas estructuras de los demás lenguajes de programación, y se queda listo paramigrar a programas basados en el mismo C++ como lo es Java. Para abordaresta unidad es importante que el estudiante ya haya tenido contacto con lacomputadora, sobretodo con editores de texto, lo que permitirá utilizar accionesde borrado, búsqueda, copias, pegar, que hacen que la digitación de losprogramas sean más rápidas y en consecuencia se dedicará más tiempo parael análisis de los mismos.Los temas tratados a lo largo de esta unidad son:1. Conceptualización2. Ejecución3. Estructura de un programa4. Estructuras recontrol5. Funciones3.1. INTENCIONALIDADES FORMATIVAS:Propósitos de la unidadDesarrollar habilidades para realizar programas utilizando C++ como lenguajede programaciónObjetivos de la unidaEntender el desarrollo de un programa en C++Aprender a codificar programas en C++Manejar instrucciones básicas como condicionales, bucles y funciones
    • 62Competencias de la unidad:El estudiante desarrolla habilidades de análisis, deducción, corrección deerrores entre otrasMetas de aprendizajeEl estudiante es capaz de resolver pequeños problemas utilizando C++ comolenguaje de programación.Motivar al estudiante para que explore nuevos entornos de programación3.2 LENGUAJE DE PROGRAMACIÓN C++Conceptualización: Para esta unidad se selecciono el lenguaje deprogramación C++, por ser uno de los más difundidos, a demás por su granbibliografía, esto no quiere decir que no se pueda utilizar otros compiladores,como es el caso de C estándar , o turbo C; a demás se trabajará, bajo elsupuesto que el sistema operativo es Windows 9x ; lo que no significa que nose puede trabajar bajo Linux, (C++ bajo Linux), donde se darán unas pautaspara su trabajo.Para iniciar tomaremos la siguiente lectura que servirá de base para estaunidad: lectur“Desde 1980 se utilizaron versiones anteriores del lenguaje C++ que sedenominaban a sí mismas ‘C con clases’. Estas primeras versiones surgierondebido a que Bjarne Stroustrup6 tuvo necesidad derealizar simulaciones manejadas por eventos y ellenguaje con el que podría haber resuelto su problema(Simula 67) no era lo suficientemente eficiente por loque decidió crear un lenguaje ad hoc con susnecesidades.En este punto el diseñador tuvo que elegir cuál sería lamanera de generar el nuevo lenguaje de programación:Si utilizando como base un lenguaje conocido o empezando desde cero laimplementación del mismo, por lo que decidió utilizar como base el lenguaje Cdebido a las siguientes características que lo hicieron atractivo: Es un lenguajeversátil, conciso y de nivel relativamente bajo, lo que lo hace adecuado para lamayoría de las tareas de desarrollo de sistemas además de que es un lenguajemuy portable y tiene cabida en el ambiente de programación UNIX; el C era unlenguaje ampliamente utilizado por muchos programadores y ya existíanmuchísimos sistemas implementados en él, además de que era un lenguaje losuficientemente estudiado para que en ese momento se tuviese unconocimiento amplio sobre sus fortalezas y debilidades. Al mismo tiempo, comodebía ser un lenguaje que pudiese utilizarse para la simulación de sistemas,incorpora muchas características de Simula 67 como el concepto de clase, lasclases derivadas y las funciones virtuales.6 Consultar más sobre Bjarne Stroustrup : http://www.research.att.com/~bs/homepage.html
    • 63C++, no solamente incorpora características de C y Simula 67. Por ejemplo:De Algol68: se copia la capacidad para sobrecargar operadores y la libertadpara poder hacer declaraciones en cualquier parte del código.De Ada y parcialmente de ML se tomó el mecanismo para resolver excepcionesy el recurso de patrones.Por otra parte, el lenguaje C++ incorpora la reutilización de código, la cualconsiste en que teniendo bloques de código (clases), estos pueden utilizarse envarias partes de un sistema o en distintos sistemas. Esto lo hace mucho masconveniente que el lenguaje C y a su vez posibilita a los programadores elpoder realizar sistemas de mayor tamaño y complejidad con menor esfuerzo.Inicialmente C++ nace como una herramienta generada para que el autor y susamigos no tuviesen que programar en ensamblador o C, la cual debíapermitirles hacer mas fácil y agradable la escritura de programas de buenacalidad para el programador individual. De tal manera que no surge como unproyecto en forma, ni se generó un grupo de trabajo para diseñar C++,básicamente el lenguaje se enriquecía y se transformaba de acuerdo a lasnecesidades y sugerencias que los amigos del autor y algunos usuarios lehacían llegar.Al inicio existieron muchas versiones ‘no oficiales’ del C++ y no fue sino hasta1987 que se advirtió la necesidad de estandarizarlo de manera formal y paraello se hizo un esfuerzo de establecer comunicación entre los realizadores decompiladores de C++ y lo principales usuarios mediante correo electrónico,correo convencional y reuniones en conferencias a cerca de C++. Dichoesfuerzo culmina con la creación del grupo X3J16 de ANSI que en 1989 sereunió para crear el estándar de C++ tal y como lo conocemos hoy en día. Características Del Lenguaje C++El lenguaje C++ incorpora todas las características de C en cuanto a: • Tipos de datos básicos • Estatutos de control • Arreglos • Apuntadores • Estructuras y Uniones • Funciones definidas por el usuario • Funciones integradas que permiten el fácil manejo de los recursos del sistema en bajo • Y además incorpora las siguientes características que permiten la programación orientada a objetos: • Abstracción de datos: • Encapsulamiento: • Herencia • Polimorfismo • Sobrecarga de funciones y operadores” 77 Articulo completo: http://www.itlp.edu.mx/posgrado/lengprog/c.htm
    • 643.2.2 Ejecución del programaUna vez el programa este instando en su computadora, la ejecución es sencilla:1. Desde Windows Cambiar el2. directorio Editoer de turbo C++ ver. 3.03.Si desean utilizar un compilador con múltiples funciones visuales, serecomienda visitar la página http://www.lcc.uma.es/~pedre/LP_DevC.htm ydescargar el compilador Dev-c++
    • 65El Editor de turbo C++ 10 1 2 3 4 5 6 7 8 9 11 12 13 14 15 .- procesos de apertura cierre grabado….2.- Procesos de edición Copiar, cortar, pegar….3.-realizar búsquedas por diferentes criterios en un texto de programa4.-opciones para correr los programas5.-opciones para compilar los programas, una de las más importantes6.-permite tener diversidad de parámetros para depurar programas7.-opciones necesarias para crear proyectos desde cero8.-permite configurar todo el entorno e inclusive opciones de trabajo en modografico9.-cada programa se puede trabajar en ventanas independientes10.-importante toda una ayuda de comando, funciones con ejemplos11.-barra de menús12.-espacio para escribir los programas, el editor propiamente dicho13.-espacio donde aparecen o se configuran diversidad de ventas de apoyo alprograma14.-barra de ayudas y accesos rápidos15.-nombre que toman los archivosMás información ver anexo 10
    • 66Manos a la obraVamos a realizar un ejercicio practico y sobre el se explicaran cada una de lasaccionesEjercicio: tomaremos como base nuestro ejercicio clásico de la suma de dosnúmeros e imprimir su resultadoEl análisis de este ejercido y se conoceProcedemos Se carga el editor del C++, para proceder a ingresar el programa, tomando como referente el algoritmo Llamado a las Librerías Llamado a la funcion Principal Main() Declaración de variables, en este caso de tipo entero Función para limpiar o clarear pantalla Cut<< = Escriba Cin>> = lea Función de tipo carácter que espera se presione una tecalaPasó 2: ejecución del programa:Procedemos a compilar (ver su Glosario detérminos), para este caso, hacemos clic en el menúcompile y damos clic, si el programa no contieneerrores, presionamos una tecla y precedemos aejecutarlo (ver su Glosario: Interprete)Para lo cual damos clic en el menú Run y
    • 67seleccionamos la primera opción y ya podemos ingresar los datos solicitados Explicación: Como se puededar cuenta, una vez el algoritmo estebien diseñado es fácil llevarlo a un lenguaje de programación,Cambios a tener en cuenta:1.- en C++ es necesario hacer llamado a librerías o cabeceras de programa,para este caso se utilizan dos <iostream.h>, que permite el manejo de entraday/o salida mediante dos objetos de flujo de datos cout<<8 y cin>>9 y <conio.h>,quien trae las funciones básicas como posicionamiento o limpieza de pantallaentre otras2.- En el lenguaje de programación C++, trabaja de manera modular, es decir elprograma principal también es un modulo, que inicia con la instrucción elllamado a la función main()10; en este caso utilizamos la directiva void paraespecificar que esta función no retorna valor, en caso que se la coloque esteparámetro , al finalizar el programa tenemos que utilizar la directiva de retornoreturn 0.3.-int palabra reservada que indica que las variables son de tipo entero, otrosrangos utilizados comúnmente son: Cuadro tipo de datos simples en C++ Tipo Rango mínimo Rango máximo Char 0 255 Short -128 127 Int -32768 32767 Unsigned int 0 65535 Long -2147483648 2147483637 Float 3.4*(10-38) 3.4*(1038) Double 1.7*(10-308) 1.7*(10308) Long double 1.7*(10-308) 1.7*(10308)4.-clrscr()11, llamado a función que permite limpiar pantalla5.-cout<< y cin >>, mirar pie de pagina6.-getch(): captura una entrada de tipo carácter, en el caso de emplearse solapermite realizar una espera, por eso el mensaje de presione una tecla paracontinuar8 <<console output>> Objeto de flujo estándar de salida, que normalmente es por la pantalla de lacomputadora9 cin>>: objeto de flujo de captura de datos10 Función principal de todo programa en c++11 Clrscr: (clear scream )
    • 687.-Existe una serie de códigos secuenciales o de escape, por ejemplo elutilizado en la línea cout<<”n Presione una tecla para continuar”; en estecaso indica que esa línia se ubica en una nueva posición, es decir una nuevalínea Otros caracteres secuénciales12 Código Significado n Nueva Línea r Retorno de carro t Tabulación v Tabulación vertical a Alerta sonora b Retroceso de espacio f Avance de pagina Barre inclinada inversa ’ Comillas simple ” Comillas dobles ? Signo de interrogación 000 Número octal xhh Número hexadecimal8.- Las llaves permiten abrir y cerrar segmentos de programas,9.- Se emplea punto y coma al finalizar cada línea, para indicarle al compilador,que ahí termina la instrucción, se aconseja no emplear punto y coma, al iniciode las funciones, ni en los condicionales y tampoco en los ciclos10.- es muy común que al momento de compilar el ejercicio, genere una seriede errores, el indica la línea y el tipo de error, el más común es el olvido delpunto y coma/***************Ejercicio 2Ahora vamos a realizar un ejercicio que involucre condicionalesRetomemos nuestro viejo compañero: realizar un programa que lea dosnúmeros y determine cual de ellos es mayor.Análisis: el análisis de este ejercicio ya lo hemos realizado en temas anterioresSolución#include<iostream.h>#include<conio.>void main(){ int a,b; clrscr(); cout <<”por favor ingrese un número “; cin>>a;12 Es necesario que se de una mirada a los codigos ASCII
    • 69 cout<<”por favor entre otro número” cin>>b; if (a>b) cout<<”el número Mayor “<<a else cout<<”El número mayor es “<<b; getch();}Explicación1.-los condicionales se determinan por la palabra if que significa si y lainstrucción else que significa en caso contrario, en este caso bajo elcondicional solo existe una línea, por consiguiente no se hace necesario ni abrirni cerrar la instrucción { }, lo que pasaría en el caso de que hubiera, mas de unainstrucción ej:If (a>b){ .... ..... ...}/*******************Ejemplo 2Tomamos es mismo ejemplo pero agregamos la condición en el caso de quesean igualesSolución#include<iostream.h>#include<conio.>void main(){ int a,b; clrscr(); cout <<”por favor ingrese un número “; cin>>a; cout<<”por favor entre otro número” cin>>b; if (a==b) cout<<” Los números son Iguales”; if (a>b) cout<<”el número Mayor “<<a; if (a<b) cout<<”El número mayor es “<<b; getch();}
    • 70ExplicaciónPara comparar una igualdad hacemos uso del doble signo de igualdad (==), enel ejemplo if(a==b), Razón: un solo signo de igualad significa asignación.Si es del caso determinar un diferente lo hacemos if(a!=b) con el signo deadmiración//*******Ejemplo 3Leer dos número (a,b), si el número a es mayor que b, realizar la división de aentre b, y mostrar su resultado, en el caso de que sea el número a menor que b,entonces realizar su producto y mostrar su resultado, y en el caso de que seaniguales simplemente indicar que son igualesSolución#include<iostream.h>#include<conio.>void main(){ int a,b,r; clrscr(); cout <<”por favor ingrese un número “; cin>>a; cout<<”por favor entre otro número” cin>>b; if (a==b) cout<<” Los números son Iguales”; if (a>b) { r=a/b; cout<<”El número mayor es a y el resultado de la división es “<<r; } if (a<b) { r=a*b; cout<<” El número mayor es b y el resultado del producto la es “<<b; } getch();}ComentariosPara este caso en los condicionales que tienen más de una línea se empleallaves de apertura y de cierre lo que indica hasta donde va el condicional
    • 713.2.3 ejercicios de verificación1.-consultar: en sitios Web o en la bibliografía sugerida para este modulo, lossiguientes ítems: o Palabras reservadas(que son y para que se utilizan) Mínimo 20 palabras reservadas o Signos de Puntuación o Librerías o archivos de cabecera Mínimo 6 o Sentencias de control switch o Errores frecuentes de Programación2.- Analizar y codificar en C++ los siguientes ejercicios Diseñe un programa para la conversión una medida de metros a pies y pulgadas. Dado un carácter alfabético en mayúsculas, elabore un aprograma que imprima en pantalla su equivalente en minúscula (consulte el código ASCII). Hacer un programa para calcular el IVA de un valor digitado por el teclado, mostrar este resultado y el de sumar el IVA al valor digitado. Un banco ha solicitado se diseñe un programa que permita encriptar la información de las contraseñas (4 números ) digitada por teclado hasta el servidor principal, utilizando el siguiente criterio, el primer numero se envía de ultimo, el segundo, de penúltimo, el tercer numero pasa a la segunda posición, el último pasa a ser primero: ejemplo Ejemplo: Sea 7458, se debe enviar como 8547 Haga un programa que convierta una medida de longitud en kilómetros a metros, centímetros, milímetros, pulgadas, yardas, millas y pies. Elabore un programa que convierta una medida de masa en toneladas a kilogramos, quintales, gramos, libras. Realice un programa que convierta unidades de fuerza en newtons a dinas. Elabore un programa que convierta una unidad de presión en pascales a bares. diseñe un programa que calcule el área de una cara de un cubo y su volumen. Elabore un programa que convierta una unidad de volumen en metros cúbicos m3 a litros y centímetros cúbicos. Diseñe un programa que Lea dos puntos (x, y) y calcule la distancia entre ellos
    • 72Elabore un preprograma que lea la hora y muestre por pantalla lahora un segundo después ejemplo1:20:21 debe mostrar 1:20:221:59:59 debe mostrar 2:00:00Elabore un programa que lea tres valores diferentes y determine elmayor, el menor y el promedio.Elabore un programa que valide mediante un mensaje si unapareja (x, y) pertenece o no a la siguiente función: y = 3x - 4.Ejemplo: la pareja (2,2) si pertenece a esta función.Escribir un programa que permita determinar cuál es el ganadorde la matricula de honor de entre 4 estudiantes. El algoritmodeberá hallar la nota definitiva de c/u de ellos (4 materias.) Si esmayor que 4.5 el alumno podrá aspirar a la matricula de honor, delo contrario no.Diseñe un programa que determine si un año leído por el tecladoes o no bisiesto.Escribir un programa para calcular la fecha del siguiente día apartir de una fecha digitada desde el teclado por el usuario ( dd,mm, aaaa ) e imprimirla. (tenga en cuenta los años bisiestos.)Escriba un algoritmo para la resolución de una ecuación de primergrado (ax + b = 0).Lea dos números por teclado y determine si uno es divisor delotro.Se lee un número de máximo tres dígitos (verifique queefectivamente sea de máximo tres dígitos) y se debe determinar sies un número capicúa, es decir, que leído de izquierda a derechaes igual que leído de derecha a izquierda. Por ejemplo: 727, 343,etc.Usted debe realizar un programa para un cajero automático, quedispone de billetes de todas las denominaciones existentes (2000,5000, 10000, 20000,50000), de forma que se le indique unacantidad a pagar y determine cual es la combinación apropiada debilletes para formarla. Las cantidades que no se puedan lograr conestos billetes deben aproximarse adecuadamente.En un colegio se ha variado el sistema de calificaciones, por tantose requiere un algoritmo que indique la valoración en letrascuando se tiene la nota en números, siguiendo la tabla mostrada acontinuación Nota Valoración en Numérica letras 0.0 – 5.9 E 6.0 – 6.9 D
    • 73 7.0 – 7.9 C 8.0 – 8.9 B 9.0 – 10.0 AEn una multinacional se cuenta con tres departamentos de ventas,en los cuales los empleados devengan el mismo salario, sinembargo se tiene un incentivo de acuerdo al cual, si undepartamento vende más del 50% del total de ventas se da unabonificación del 20% del salario a los empleados. Considerando eltotal de ventas como la suma de las ventas de los tresdepartamentos, indique cuánto devengarán los empleados decada uno de los tres departamentos este mes.En una organización se tiene a los empleados agrupados porcategoría, los de categoría 1 ganan $20.000, los de categoría 2,$15.000, los de categoría 3, $10.000 y los de categoría 4, $7.500.Se quiere un algoritmo que permita determinar cuanto debepagarse a un empleado si se conoce el número de horas quetrabajó durante el mes y la categoría a la que pertenece. Se sabeque a todos se les descuenta un 7.2% por concepto de salud, y siel salario total devengado (mensual) es menos de 1´ 000.000, se leda un subsidio del 15% sobre su salario mensual (sin descuentos).Se debe leer un número y determinar en que categoría seencuentra; se sabe que la categoría A, son los números entre 0 y2 inclusive, la categoría B son los números entre 3 y 6 inclusive, lacategoría C, los números 7 y 8, y la categoría D el número 9.(Adivinó, los números validos son entre 0 y 9).Se quiere determinar el valor de depreciación de un artículo enuna empresa, se sabe que el valor de depreciación anual sedetermina dividiendo el valor de compra del mismo, entre elnúmero de años de vida útil; la vida útil se determina de acuerdo ala clase de artículo, los edificios tienen 20 años, la maquinaria,muebles y enseres, 10 años, los vehículos 5 años y loscomputadores 3.En un concesionario de vehículos, se pagan las comisiones a losvendedores según el valor de la venta (ver tabla). Al final del messe desea saber ¿Cuánto ganó un vendedor en total por todas lascomisiones, si se sabe que hizo 4 ventas?Valor de Venta Comisión para el VendedorHasta 10.000.000 2%Más de 10 y Menos de 15 millones 4%Mas de 15 millones 10%El encargado del planetario desea que se diseñe un programapara que al digitar el nombre del día indique el astro que dioorigen a ese nombre. Recuerde los astros:
    • 74 Nombre del Astro día Domingo Sol Sábado Saturno Viernes Venus Jueves Júpiter Miércoles Mercurio Martes Marte Lunes LunaRealice un programa que calcule si un triángulo es isósceles,equilátero o escaleno dados sus tres lados A, B y C o Isósceles => dos lados iguales o Escaleno => A ≠ B ≠ C o Equilátero => A = B = CCon relación a sus ángulos un triángulo puede ser: o Rectángulo => Un ángulo recto o Acutángulo => 3 ángulos agudos o Obtusángulo => 1 ángulo obtusoElabore un programa que calcule si un triángulo es rectángulo,acutángulo u obtusángulo.Elabore un algoritmo que seleccione personal para un empleo conlas siguientes características: mujeres adultas, solteras y quepractiquen algún deporte.Elabore un programa que muestre el dígito que más se repite enun número de 5 cifras, en caso de no repetirse ninguno imprimirun mensaje que diga "no hay dígitos repetidos".El recargo por trabajar horas nocturnas en una empresa es del70%, el recargo por trabajar festivos es del 100%, haga unprograma que lea los días laboradas por un empleado, las horasnocturnas el valor de la hora normal laborada y calcule e imprimael sueldo a pagar junto con el nombre del empleado.Elabore un programa que tenga cuatro niveles de seguridad paraun programa, si el usuario logra ingresar imprimir el mensaje"Bienvenido", en caso contrario imprimir "Error clave" y el nivel delerror.A los profesores de cierta universidad se les paga por horascátedra dictadas de 50 minutos, elabore un programa que lea elnúmero de horas dictadas en un semestre siendo estas horas de60 minutos y calcule el pago del semestre para el profesor
    • 75 teniendo en cuenta que a los profesores se les cancela según su categoría: A $12.400= B $11.200= C $10.000= D $ 8.500= Al final al profesor se le resta el 10% de retención en la fuente. El pago debe tomar en cuenta las fracciones de hora3.2.4 c++, ciclosEs necesario dar una al capitulo anterior donde se trabaja los algoritmos3.2.4.1 Ciclo forMediante un ejercicio se explicara el funcionamiento del ciclo for,EjercicioRealizar un programa que sume los 10 primeros números naturales e imprimasu resultado.Este ejercicio, esta resuelto en algoritmo, por ende no se realiza el análisiscorrespondienteSolución#include<iostream.h>#include<conio.>void main(){ Int k,suma=0; clrscr(); for (k=1;k<=10;k++) suma=suma+k; cout<<”el resultado de la suma de los 10 números es “ << suma; gtch();}Explicaciónfor(k=1;k<=10;k++)- este ciclo se divide en res partes principales 1.-la variable k tomoa un valor inicial de arranque, aunque c++, permite definir las variables en el mismo ciclo.
    • 76 2.-k<=10; condición, de parada, para este caso que llegue a 10 3.-k++; incremento, decimos que queremos incrementar la variable k en pasos de 1; se puede utilizar en sentido inverso k--, es decir decrementos 4. Como dentro del ciclo, no hay sino una instrucción, entonces no se requiere apertura ni cierre de llavesEjercicio 2Una pequeña variación al ejercicio anteriorRealizar la suma de 10 números cualesquiera e imprimir su resultado#include<iostream.h>#include<conio.>void main(){ Int k, numero, suma=0; clrscr(); for (k=1;k<=10;k++) { cout<<”Por favor entre un número”; cin>>numero; suma=suma+numero; } cout<<”el resultado de la suma de los 10 números es “ << suma; gtch();}Explicación:En este caso, el ciclo si abre llaves, por tener más de una instrucciónEjercicioRealizar un programa que permita ingresar 10 números, de los cuales se debesumar aquellos que son positivos y contar los que son negativos, imprimir losresultados#include<iostream.h>#include<conio.>void main(){ Int k, numero, suma=0, kn=0; clrscr(); for (k=1;k<=10;k++) { cout<<”Por favor entre un número”; cin>>numero;
    • 77 if (numero >=0) suma=suma+numero else kn++; } cout<<”el resultado de la suma de los números positivos es : “<< suma <<”n”; cout<<”la cantidad de números negativos ingresados es : “<<kn; gtch();}ExplicaciónLa sentencia kn++, remplaza a k=k+1;/******3.2.4.1.1 ejercicios de verificación1.-codificar los algoritmos del taller propuesto en el ítem 2.3.2.1.12.-Profundizar y realizar ejemplos con sentencias de incrementos ydecrementos3.-Consultar la directiva de posicionamiento gotoxy(x,y), para darle ubicación ypresentación a los programas3.2.4.2 Ciclos while y do whileSentencia while: esta sentencia de ciclo o bucle es muy sencilla pero muypotente, su estructura.while (<condición>) <sentencia>Puede ser tambiénWhile (condición){ ----- ----}Sentencia do while, este ciclo es muy utilizado cundo queremos realizar filtros13y cuando deseamos que se permita el ingreso al ciclo al menos una vezEjemplo13 Filtro: permitir el ingreso de datos dentro de un rango especificado
    • 78Se debe desarrollar un programa que permita ingresar las notas del curso dealgoritmos, el programa debe terminar cuando la nota ingresada es cero (0),luego mostrar el promedio de las notas ingresadas, las notas ingresadas nodeben ser negativos ni superiores a cincoAnálisis:Mucho de análisis se realizo en la semana referente a ciclos, trabajado conalgoritmos.Con este ejemplo se utilizaran dos tipos de ciclos, uno para controlar lasentradas de datos hasta que estas sean diferentes de cero y el otro ciclo quepermita entrar únicamente valores mayores a cero y menores o iguales a cinco#include<iostream.h>#include<conio.>void main(){ int k; float suma, nota, promedio; clrscr(); suma=0; k=0; while (nota ¡=0) { do { cout<<"entre una nota"; cin>>nota; if (nota <0) || (nota >5) { cout<<"Error. Inténtelo nuevamente"; } } while (nota<0 ) || (nota >5); if (nota !=0 ) { suma=suma+nota; k++; } } promedio=suma/k; cout<<"la cantidad de notas ingresadas son: ”<<k<<”n”; cout<<“el promedio de las notas es de : ”<<promedio; getch();}Explicación1.- Los conectores lógicos en c++ se representan así o El conecto O con || o El conector Y con &&
    • 792.-al finalizar el ciclo do se cierra llaves l con un while, el cual termina conpunto y coma3.2.4.2.1 ejercicios de verificación1.-Cada grupo debe codificar el taller número 4, propuesto para ser resueltomediante algoritmos2.-la siguiente es una recopilación de ejercicios para ser codificados por losgrupos colaborativos Realice un programa que imprima en pantalla el conjunto de los (n) múltiplos de un número entero (x) digitado por el usuario. Haga un programa que imprima en pantalla el conjunto de los divisores de un número entero (x) digitado por el usuario. Elabore un programa que calcule el mínimo común múltiplo (m.c.m) de dos números A y B, recuerde el m.c.m. como su nombre lo indica es el menor múltiplo común de dos o mas números. Ejemplo: sean los números 8 y 6. m.c.m. (8, 6) = 24 Al divisor común que es mayor que todos los divisores comunes de dos números (A, B) se le llama máximo común divisor (m.c.d.). Elabore un programa para calcular el m.c.d. de dos números. Ejemplo: sea 8 y 12 (investigue el algoritmo de Euclides). m.c.d. (8,12) = 4 Dos números son amigos, si cada uno de ellos es igual a la suma de los divisores del otro. Ejemplo: 220 y 284 son amigos por que, 284 220 1 1 2 2 4 4 71 5 142 10 11 20 22 44 55 110 220 284
    • 80Elabore un programa que calcule si dos números son amigos o no.Elabore un programa que calcule el número de días que existen entre dosfechas. Tenga en cuenta que existen meses de 30 y 31 días y los añosbisiestos.Calcular usando cada uno de los tres ciclos el valor de Xn.Calcule e imprima las tablas de multiplicar del 1 al 9 usando el ciclo while ().Calcule e imprima las tablas de multiplicar del 1 al 9 usando el ciclo haga..do.. while().Calcule e imprima las tablas de multiplicar del 1 al 9 usando el ciclo for(.....).Desarrolle un programa que impriman las siguientes series: o 1, 4, 8, 12, 16, 20, 24, 28, 32, 36, 40, 44. o 1, 4, 9, 16, 25, 36, 49, 64, 81. o 2, 4, 6, 8, 10, .....100. o -2, +4, -6, +10, ....100.Escriba un programa para calcular si un número es primo o no, recuerde quelos números primos son aquellos que solo son divisibles por la unidad y porellos mismos: ejemplo 5, 11, 17, etc..Calcular mediante un programa cuantos números primos existen entre 1 yun número M dado por el usuario.Escriba un programa que muestre el cuadrado de los números del 1 al n.Diseñar un programa para determinar la cantidad de mujeres y hombres quehay en un grupo de N estudiantes. Además se debe hallar el promedio deedad y de estatura del grupo. (el usuario digitará para cada integrante delgrupo, su sexo, edad y estatura).Desarrolle un programa que permita seleccionar personal para un empleo deun total de N aspirantes. Los aspirantes deben cumplir las siguientescondiciones para ser aceptados: Mayores de edad Ser ingeniero titulado Tener experiencia laboral Al final el programa debe mostrar el total de aspirantes aceptados.Desarrolle un programa que permita calcular el valor de la tangente de unángulo dado en grados usando la serie de Taylor del seno y del coseno.Diseñe un programa que calcule e imprima la suma de los números pares eimpares comprendidos entre 1 y N.Leer N números y calcular el mayor sin importar que se repita.Leer N números y calcular el menor sin importar que se repita.Leer una serie de M números y mostrar al final cuantos son positivos.Calcular la suma de los cuadrados de los números comprendidos entre 1 yN.Leer N números y al final imprimir el promedio de estos.El número de términos debe ser dado por el usuario (entre mayor sea elCalcular suma de los primeros 100 términos de la serie de Fibonacci.
    • 81Elaborar un programa que convierta un número entero positivo, menor a 257a sistema binarioElabore un programa que permita convertir un número entero positivo(máximo cuatro cifras) en su equivalente en sistema octal.Escribir un programa que halle el número de años bisiestos en un intervalodado por el usuario (año bisiesto – sí es múltiplo de 4, pero sí es múltiplo de100 deberá ser también múltiplo de 400).Dada tu fecha de nacimiento (mes, día, año) indicar cuantos días (exactos)han transcurrido desde ese año.Se deben leer números hasta que se digite 99 (el 99 no se debe contar), ydeterminar cuantos primos hay, y cuantos pares. (recuerde que estas doscondiciones no son exclusivas).Elabore un programa que genere un número aleatorio y que les dé laposibilidad a dos jugadores de adivinar dicho número, el algoritmo debepedir el número de partidas, intercalar los turnos para adivinar, mostrar elganador por partida y el ganador final. El número debe estar entre 0-100.(Use la función random.)Elabore un programa que lea las ventas de (n) número de vendedores, paralos productos (A, B, C, D y C), si los precios de los productos son ($1000,$2345, $3876, $1235 y $550) respectivamente, calcule el número individualy total de productos vendidos, las ventas totales por producto, el promediototal de ventas, el producto mas vendido, el menos vendido, el vendedor quemás ventas realizó.Realice un programa que calcule la suma de (n) números, el producto deestos y cuantos de estos son negativos y cuantos positivos. Estos datosdeben ser mostrados por pantalla.
    • 823.1.5. Funciones3.1.5.1 Funciones incorporadasLas Funciones se incorporan al lenguaje de programación C o C++ por mediode la Librerías: La principal estrategia de la programación estructurada alresolver un problema complejo es la de dividirlo en subproblemas (divide yvencerás) cuya resolución sea mucho más sencilla. Estos subproblemas sepueden dividir a su vez en otros más pequeños, y así sucesivamente, según laconveniencia. Esta estrategia también se llama diseño descendente, debido aque se parte de lo general y se diseñan soluciones específicas para sussubproblemas. Estos subproblemas los podemos implementar en el lenguaje Co C++ mediante la codificación de funciones. (ver anexo índice de Funciones),El siguiente programa emplea funciones trigonométricas contenidas en elarchivo de cabecera "math.h"#include <iostream.h>#include <conio.h>#include <math.h>void main(){ double angulo = 0.0; //real de doble precisión, 8 bytes = 64 bits cout << "Pi = " << M_PI; cout.precision(7); // se formatean los números con 7 decimales cout.setf(ios::fixed); // se utiliza notación fija en números cout << "nnSeno ( " << angulo <<"° ) = " << sin(angulo * M_PI/180); angulo += 30.0; cout << "nCoseno (" << angulo <<"° ) = " << cos(angulo * M_PI/180); angulo += 30.0; cout << "nTangente (" << angulo << "° ) = " << sin(angulo*M_PI/180) / cos(angulo*M_PI/180); angulo += 30.0; cout << "nCotangente(" << angulo << "° ) = " << cos(angulo*M_PI/180)/sin(angulo*M_PI/180); angulo -= 30.0; cout << "nSecante (" << angulo << "° = " << 1/cos(angulo* M_PI/180); ) angulo -= 30.0; cout << "nCosecante (" << angulo << "° = " << 1/sin(angulo * M_PI/180); ) cout << "nPi = " << M_PI; cout.precision(1); // se formatean los números con 1 decimal cout.setf(ios::scientific); // se utiliza notación científica cout << "nPi = " << M_PI; cout << "nn Digite cualquier tecla y terminar..."; getch();}El siguiente programa permite oír notas musicales entre 260 Hz y 520 Hz, através de la utilización de funciones incorporadas en <dos.h>: sound() ynosound().#include <iostream.h>#include <dos.h>
    • 83const Tempo=1000; // aproximadamente 1000 milisegundosvoid main(){ sound(260); cout << "Do "; delay(Tempo); sound(290); cout << "Re "; delay(Tempo); sound(322); cout << "Mi "; delay(Tempo); sound(342); cout << "Fa "; delay(Tempo); sound(390); cout << "Sol "; delay(Tempo); sound(440); cout << "La "; delay(Tempo); sound(494); cout << "Si "; delay(Tempo); sound(520); cout << "Do "; delay(Tempo); nosound(); cout << "nSilencion"; delay(Tempo); sound(260); cout << "Do "; delay(Tempo/2); sound(290); cout << "Re "; delay(Tempo/2); sound(322); cout << "Mi "; delay(Tempo/2); sound(342); cout << "Fa "; delay(Tempo/2); sound(390); cout << "Sol "; delay(Tempo/2); sound(440); cout << "La "; delay(Tempo/2); sound(494); cout << "Si "; delay(Tempo/2); sound(520); cout << "Do "; delay(Tempo/2); nosound(); cout << "nSilencion"; delay(Tempo/2); sound(520); cout << "Do "; delay(Tempo/4); sound(494); cout << "Si "; delay(Tempo/4); sound(440); cout << "La "; delay(Tempo/4); sound(390); cout << "Sol "; delay(Tempo/4); sound(342); cout << "Fa "; delay(Tempo/4); sound(322); cout << "Mi "; delay(Tempo/4); sound(290); cout << "Re "; delay(Tempo/4); sound(260); cout << "Do "; delay(Tempo/4); nosound();}Observación: funciona con el speaker del computador, no con la tarjeta desonido3.1.5.2.-Nuestras Propias FuncionesLas funciones son bloques de instrucciones que tienen por objeto el alcanzar unresultado que sustituirá a la función en el punto de invocación (las funcionesdevuelven un resultado).Cada función se evoca utilizando su nombre en una expresión con losargumentos actuales o reales encerrados entre paréntesis.Para hacer una referencia a una función se invoca mediante un nombre y encaso de existir, una lista de parámetros actuales necesarios (argumentos). Los
    • 84argumentos deben coincidir en cantidad, tipo y orden con los de la función quefue definida. La función devuelve un valor único.Las funciones a que se hace referencia, se conocen como funciones de usuariopuesto que son definidas por él mismo y permiten su uso en forma idéntica a lasfunciones estándares. Para coordinar e iniciar el procesamiento, se utiliza unmódulo principal que es colocado al final del algoritmo.Para entender mejor la construcción de funciones, se propone un ejemploprácticoEjercicioRealizar un menú que permita el manejo de submenú, para lo cual se realizarala primer parte del ejercicio y usted debe complementar el resto, para tener unaidea de lo que se pretende, se visualizara los menús así Menú Principal 1...Operaciones Matemática Menú Opción 1 2...Opciones tipo carácter 3...Opciones Institucionales 1... Exponente 4...Librerías C++ 2...Raíz cuadrada 5...Salir 3...Seno 4...Coseno Opción___ 5...Menú Principal Menú Principal 1...Operaciones Matemática 2...Opciones tipo carácter 3...Opciones Institucionales Menú Opción 2 4...Librerías C++ 1... Concatenar 5...Salir 2...Invertir 3...Menú Principal Opción___
    • 85 Menú Principal Menú Opción 3 1...Operaciones Matemática 2...Opciones tipo carácter 1... Misión Unad 3...Opciones Institucionales 2...Visión Unad 4...Librerías C++ 3...Misión Facultad 5...Salir 4...Visión Facultad Opción___ Menú Principal 1...Operaciones Matemática Menú Opción 4 2...Opciones tipo carácter Matemáticas 1... Matemáticas 3...Opciones Institucionales 1...ceil(x) 2...De fecha y hora 4...Librerías C++ 2...fabs(x) 3...Trigonometriítas 5...Salir 3...floor(x) 4...Aleatorias 5...Menú Principal 4...otras Opción___ 5...Menú anteriorAnálisisSe pude observar que es un programa con un mayor grado de complejidad, pormanejar una serie de menús y submenús1.-a simple vista se puede observar que cada uno de los menús y submenúsesta contenido dentro de un marco, por consiguiente se puede pensar que unade las primeras funciones a realizar es el cuadro o marco contenedor, par locual se debe tener en cuenta que: Un monitor normal en formato texto esta dividido en filas y columnas, 24 filas por 80 columnas, por consiguiente es importante saber posicionar el cursor en estos rangos 80 columnas 24 filas
    • 862.-En el programa principal únicamente se controlara el menú principal3.-que cada función de acuerdo a lo establecido en el estándar c++, se debedeclarar como prototipo (en la cabecera se declara igual a como se realizara)Para este ejemplo se creará únicamente la función de cuadro, el menú principaly el submenú 1, para que se pueda posicionar en cualquier lado de la pantallaSolución#include<iostream.h>#include<conio.h>void cuadro(int,int,int,int);//Prototipo función cuadrovoid opciones1();//prototipo primer submenúvoid main(){int op=0;while (op!=5)// condicional menú principal{ clrscr(); cuadro(5,5,40,15);//llamado a la función cuadro en determinadas posiciones gotoxy(12,6); cout<<"MENU PRINCIPLA"; gotoxy(6,8); cout<<"1...Operaciones Matematicas"; gotoxy(6,9); cout<<"2.. Opciones tipo carácter"; gotoxy(6,14); cout<<"5...Salir"; cin>>op; if (op == 1) { opciones1 ();// llamado a la opción del primer submenú } Variables que toman los valores} constantes enviados de diferentes lugares del programa}// Final programa o función principalvoid cuadro(int x,int y,int x1,int y1) //Construcción de la funcion cuadro{ int i,j; for(i=x; i <=x1;i++)// ciclo para mover el eje de las x { gotoxy(i,y); cout<<" "; // carácter ASCII 205 gotoxy(i,y1); cout<<" "; }for(i=y; i<=y1;i++)// ciclo para mover ele eje de las y{ gotoxy(x,i); cout<<" "; //carácter ASCII 186 gotoxy(x1,i); cout<<" ";}
    • 87}void opciones1(){ int op1; while (op1!=5) { cuadro(45,10,70,19); gotoxy( 50,11); cout<<"Menú opción 1"; gotoxy(46,12); cout<<"1...Exponente"; gotoxy(46,13); cout<<"Raiz cuadrada"; if (op1==1) { //sentencias para ser complementadas por usted. }} getch();}Explicación1.-Es importantes que se lean los comentarios que se escriben al frente de cadalínea del programa, estos comentarios enastan resaltados con negrita2.- Con un poco de ingenio se puede mejorar el cierre de la líneas de loscuadros (utilizar códigos ASCII)3.1.5.3 ejercicios de verificación1- Complementar el ejercicio Posible salida2.- Diseñe una función para calcular Xn donde X sea un número real y n un número entero positivo o negativo. Desarrolle un programa que mediante funciones pueda calcular la suma, resta, multiplicación y división de dos números reales A, B y C. El algoritmo debe tener el siguiente menú de opciones.
    • 88 Menú 1. Suma 2. Resta 3. Multiplicación 4. División 5. Salir Cada función debe tener como parámetros tres números reales y debe retornar el resultado en un número real. Elabore un programa que calcule mediante dos funciones el seno y el coseno de un ángulo dado en grados usando la serie de Taylor. Diseñe una función que lea N notas y que calcule el promedio de estas. (el parámetro que se pasa a la función es N y regresa el promedio). Desarrolle un algoritmo que use una función para calcular el mayor de tres números. Diseñe un programa para calcular el volumen de un cilindro usando una función que recibe como parámetros el valor del radio y la altura y retorna el volumen. Diseñe un programa que tenga un menú de opciones para realizar conversiones de monedas usando funciones para efectuar los cálculos. Menú 1. Pesos a Bolívares 2. Pesos a Dólares 3. Dólares a Euros 4. Pesos a Euros 5. Salir Diseñe un Programa para calcular el máximo común divisor de dos números enteros positivos usando una función que reciba como parámetros los dos números enteros y que retorne el mcd. Determine en una función el valor de PI, donde la función recibe el número de términos deseados. . Empleando el combinatorio para realizar un programa que genere el triángulo de Pascal3.- Si el grupo colaborativo así lo desea puede consultar a cerca de lasfunciones graficas en C++, (es un buen momento para hacerlo)Evidencia: el proyecto se sustentará en la semana 18
    • 89 FUENTES DOCUMENTALESINSUASTY R, Luis Delfín, Guia “A”,”B”,”C”,”D” de aprendizaje autonomo.Bogotá Colombia, UNAD- CafanMAURREN, Priestley . Tecnicas y estrategias del pensamiento critico. MexicoD.F. 1996 (reimp .2000). Trillas.ARCEO B, Frida y Otro. Estrategias Decentes Para un Aprendizaje Significativo.Mexico D,F 1999. McGRAW-HILLKENNETH C, louden . Lenguajes de programación (segunda edición). MexicoD.F 2004. ThomsonAGUILAR, Luis. Fundamentos de programación, algoritmos y estructura dedatos (segunda edición). España. McGRAW-HILL.AGUILAR, Luis. Fundamentos de programación, algoritmos, estructura de datosy Objetos (tercera edición). España. 2003. McGRAW-HILL.DEYTEL Y DEYTEL. Como programa C++(segunda Edición). Mexico D.F.1999. Prentice Hall. McGRAW-HILLFARREL, Joyce, introducción a la programación lógica y diseño. Mexico D.F2000. ThomsonBROOKSHEAR, J. Glenn , Introducción a las ciencias de la Computación(Cuarta Edicón). Edición Española 1995. Addison-Wesley IberoamericanaSitios WEBhttp://www.geocities.com/david_ees/Algoritmia/curso.htm (Curso de algoritmia)http://www.ilustrados.com/publicaciones/EpZVVEZpyEdFpAKxjH.php(Lenguajes de Programación)http://www.ilustrados.com/buscar.php (Algoritmos)http://www.inf.utfsm.cl/~mcloud/iwi-131/diapositivas.html (Algoritmos)http://www.ucsm.edu.pe/rabarcaf/vonuep00.htm (Diccionario académico)http://www.funlam.edu.co/bired/index.asp-offset=0.htm (Aprendizaje Autonomo)www.markelo.f2o.org (acertijos)
    • 90http://www.programas-gratis.net/php/descarga.php?id_programa=1808&descargar=DFD%201.0,(Descargade dfd)http://www.itq.edu.mx/vidatec/espacio/aisc/ARTICULOS/leng/LENGUAJESDEPROGRAMACI%D3N.htmwww.microsoft.com (Productos de programación)www.borland.com (Productos de programación)
    • 91ANEXOS
    • 92 ANEXO 1 – MAPA CONCEPTUALEl Mapa Conceptual es una herramienta cognitiva que permite representar elconocimiento (ideas y asociaciones) de una manera gráfica y sintética,orientado al aprendizaje eficiente y Significativo.Este instrumento educativo fue ideado por Joseph Novak en la década del 60,como una forma de poner en práctica las teorías de David Ausubel sobreAprendizaje Significativo, es por ello que en la construcción de mapasconceptuales se enfatiza la importancia del conocimiento anterior para sercapaz de aprender nuevos conceptos en forma de proposiciones. Novakconcluyó que "el aprendizaje Significativo implica la asimilación de nuevosconceptos y proposiciones en las estructuras cognitivas existentes".La elaboración de mapas conceptuales permite la utilización de amboshemisferios del cerebro, potenciando con ello los procesos del pensamientoabstracto y los psicomotrices, de manera que se complementan, sin olvidar queéstos fomentan también el desarrollo de la memoria, la reflexión, el espíritucrítico y la creatividad.La construcción de mapas conceptuales permite diseñar un ambiente deaprendizaje donde se estimula no sólo la representación del conocimiento, sinotambién información textual y / o adicional que se organiza jerárquicamente. Deesta forma el mapa conceptual puede ser utilizado con diferentes propósitos14Como hacer un mapa conceptuales151. – En la medida que se lea debe identificarse las ideas o conceptos principalese ideas secundarias y se elabora con ellos una lista.14 http://www.educarchile.cl/eduteca/todounmundo/acti/mapa.htm15 http://www.monografias.com/trabajos10/mema/mema.shtml
    • 932. - Esa lista representa como los conceptos aparecen en la lectura, pero nocomo están conectadas las ideas, ni el orden de inclusión y derivado que llevanen el mapa. Hay que recordar que un autor puede tomar una idea y expresarlade diversas maneras en su discurso, para aclarar o enfatizar algunos aspectos yen el mapa no se repetirán conceptos ni necesariamente debe seguirse el ordende aparición que tienen en la lectura.3: - Seleccionar los conceptos que se derivan unos de otros.4. - Seleccionar los conceptos que no se derivan uno del otro pero que tienenuna relación cruzada5.- Si se consiguen dos o más conceptos que tengan el mismo peso oimportancia, estos conceptos deben ir en la misma línea o altura, es decir almismo nivel y luego se relacionan con las ideas principales.6. - Utilizar líneas que conecten los conceptos, y escribir sobre cada línea unapalabra o enunciado (palabra enlace) que aclare porque los conceptos estánconectados entre sí.7. _ Ubicar las imágenes que complementen o le dan mayor significados a losconceptos o proposiciones8. -. Diseñar ejemplos que permitan concretar las proposiciones y /o conceptos9- Seleccionar colores, que establezcan diferencias entre los conceptos que sederivan unos de otros y los relacionados ( conexiones cruzadas)10. - Seleccionar las figuras (óvalos, rectángulos, círculos, nubes) de acuerdo ala información a manejar.11. - El siguiente paso será construir el mapa, ordenando los conceptos encorrespondencia al conocimiento organizado y con una secuencia instruccional.Los conceptos deben ir representados desde el más general al más especifico enorden descendente y utilizando las líneas cruzadas para los conceptos oproposiciones interrelacionadas.
    • 94Observación: Exciten también software que permite desarrollar mapas conceptuales, quepermiten explorara nuevas alternativas, se sugiere visitar realizar consultas en Internet ydescargar, diferentes versiones.
    • 95 ANEXO2 GUIA PARA LA CONSTRUCCION DE PORTAFOLIOSe tomará compilación realizada por Julio Roberto Sanabria. De la universidadCatolica del norte www.ucn.edu.co1. Concepto:16El Portafolio ha sido concebido como la colección sistemática y organizada delmaterial que un estudiante produce durante la semana de acuerdo con lasmetas establecidas por él y las especificaciones propias del curso que estérealizando, con el propósito de monitorear su progreso en cuanto aconocimientos, habilidades cognitivas e interpersonales, actitudes ymotivaciones; de poner en evidencia la calidad de los procesos, losaprendizajes y los productos realizados; y, de evaluar tanto los procesos, losaprendizajes y los productos llevados a cabo como los materiales producidoscon el fin de identificar avances y necesidades, y proponer las acciones deseguimiento pertinentes.17En síntesis el Portafolio es una carpeta personal, dedicada al archivo de todaslas evidencias de aprendizaje, referidas a las facilidades, dificultades osimplemente el registro de experiencias asociadas al acto de aprender(resúmenes, mapas conceptuales, cuadros, gráficas). Es una técnica quepermite a la persona aprender a evaluar su desempeño en término deprogresos o errores.Los OBJETIVOS del Portafolio son: Facilitar el ejercicio de sistematización deexperiencias. Aumentar la capacidad de reflexión sobre los textos leídos, asícomo un monitoreo de su trayectoria como estudioso(a). Desarrollar habilidadesde escritura. Abrir un lugar para ejercitar su creatividad.2. Atributos: “Es un regulador de procesos de aprendizaje”. “Contiene material básico para la Investigación Formativa”. “Permite la autoevaluación como elemento fundamental en el proceso formativo del aprendizaje autónomo”.16 . Ideas tomadas de la documentación orientadora para la Especialización en Pedagogíapara el Desarrollo de Aprendizaje Autónomo y los aportes de los miembros del GrupoMedellín 2. (25-Jun-00)17 . Guía de Aprendizaje Autónomo “A”. UNAD-CAFAM. Pág. 31.
    • 96 “Es un dispositivo pedagógico de acompañamiento y regulación de disciplina”. “Es una herramienta de reflexión sobre los logros y los aspectos a mejorar en un proceso de aprendizaje”. “Evidencia el crecimiento personal e intelectual de su autor”. “Permite precisar y jerarquizar el conocimiento”. “Como dispositivo pedagógico facilita el proceso de metacognición y la construcción de conocimientos”. “Es un espacio para la articulación de la teoría y la práctica”. “Sirve como medio para realizar la evaluación del cambio cognitivo del estudiante”. “Permite obtener conciencia del proceso metacognitivo realizado por el estudiante”. “Es un elemento de consulta permanente que facilita la reflexión sobre los procesos de aprendizaje”. “Es la evidencia de la investigación educativa centrada en la experimentación, evaluación y planes de acción como resultado de la práctica”. “Permite establecer conductas de trabajo individual y cooperativo a partir de las actitudes individuales” “Es facilitador del aprendizaje a través de procesos formativos que posibilitan construcciones propias del aprendizaje”. “Es un medio integrador de la teoría y la práctica pedagógica en el escenario particular del aprendiente”3. Organización del Portafolio:La organización del portafolio comprende cuatro tareas, a saber: La definición del propósito del mismo. La selección del material de acuerdo con el propósito. La reflexión de los resultados intrínsecos y extrínsecos del trabajo de la semana y La proyección de metas futuras de aprendizaje.La decisión sobre el material que se ha de coleccionar depende en gran medidade la claridad con que se defina su propósito.4. ¿Qué guardar en el Portafolio?- Los registros de lectura de cada semana.- El Proyecto Personal de Aprendizaje (PPA) desarrollado para cada ocasión que deba ejercer el papel de SUSTENTADOR.- Las notas de lo que discuta con sus compañeros en el Pequeño grupo.- La página de autoevaluación que realizará cada semana. Es un pequeño texto con su respectivo título.
    • 97- Los trabajos o pruebas que se hagan en individualmente o en Pequeño Grupo.- Anotaciones opcionales a manera de Diario de Procesos.- Las observaciones del asesorEl Portafolio promueve un clima de reflexión. Surgirá el conflicto entre lo que vey lo que realmente desearía que fuera. Piense, escoja y tome el riesgo derealizar preguntas sobre lo que ha causado una disonancia cognoscitiva.Realice preguntas que no haya podido resolver sobre el tema de la semanasobre sus procesos de aprendizaje o de todo lo que crea que permite unamayor comprensión de los procesos, someta todas estas inquietudes al trabajoen el pequeño grupo.Es recomendable diligenciar un Portafolio por cada asignatura que se estécursando, con el claro propósito de: Compilar los materiales producidos individualmente o en forma colectiva. Poner en evidencia el progreso en términos de calidad de los materiales producidos. Demostrar el avance en su desarrollo personal e interpersonal.En principio se seleccionarán y archivarán: Los materiales que el autor del Portafolio produce semanalmente como requisito del curso o actividad académica en que se encuentre. Estos pueden ser manuscritos, pero claros. Los materiales que resulten de la acción pedagógica del autor durante la aplicación y el ensayo del aprendizaje autónomo. Los exámenes y otras pruebas. Las instrucciones relacionadas con los trabajos especiales de la semana.La esencia de un portafolio es la reflexión que hace su autor sobre cadaelemento que lo constituye. “Una compilación de materiales sin reflexión es unarchivo, más no un Portafolio”18La preparación de un Portafolio, tal como se acaba de describir, se convierte enuna valiosa estrategia de desarrollo de la metacognición, por cuanto losparticipantes toman conciencia de sus propios procesos de pensamiento yaprendizaje y se convierten en gestores de su propio desarrollo personal yprofesional.Varios autores sugieren que la organización del Portafolio, refleja hasta ciertogrado la personalidad y carácter de su autor. Una tabla de contenido, alcomienzo de cada semana, le ayudará a poner las cosas en orden.18 . Ibid. Pág. 32
    • 98El éxito del Portafolio depende del cuidado con que se produzcan, organicen,consulten y comparen los materiales semana tras semana, a fin de descubrirpatrones de desarrollo y de proyectar líneas de acción para aprendizajesfuturos.Cuando los procesos de aprendizaje, se acompañan de un dispositivopedagógico como el Portafolio se permite el monitoreo del curso de accióndel pensamiento y resultan mejores posibilidades para facilitar la reflexión y laautorregulación de la experiencia.5. Valoración del Portafolio:La evaluación y calificación del Portafolio es responsabilidad de su autor. Loimportante no es calificar la compilación, sino la dedicación y calidad con quese ha procedido en cada semana. En verdad, lo que el participante debe valoraren el Portafolio es la responsabilidad consigo mismo y el respeto por lo demás,antes que el número de páginas archivadas.La calificación del Portafolio depende de tres criterios: ¿Está completo? Es decir, ¿contiene todos los materiales y artefactos que deben coleccionarse? ¿Está organizado? Es decir, ¿tiene una estructura y todos sus componentes están debidamente identificados, ordenados, categorizados y limpios, de suerte que un lector pueda recorrer fácilmente todas sus secciones y obtener la información que necesita? Al observar los contenidos de la semana actual y compararlos con los de la semana anterior, ¿ayudó a medir su progreso y a producir materiales más imaginativos y más creativos? ¿Cuáles?Cada estudiante es el veedor del Portafolio de un Compañero quien a su vezserá el veedor del primero. Esta función es coevaluar el Portafolio de sucompañero y corresponsabilizarse de la calificación que se asigne.6. Una Guía para autoevaluar el Portafolio:19El Portafolio puede ser autoevaluado de muchas maneras: con guíasestructuradas o semiestructuradas, con esquemas que preguntan qué tiene ode qué carece.19 . Un aporte de Jairo Gutiérrez, Emerson Mosquera y Julio Roberto Sanabria. UNAD.Medellín. 1999
    • 99Para efectos de este documento se presentan algunas preguntas quepretenden propiciar la reflexión alrededor de dos grandes inquietudes para suautor: “Para qué se hace” y “Para quién se hace”. Suponemos que de susrespuestas dependen las características del “Cómo hacerlo”.Consideremos entonces, los siguientes cuestionamientos:1. ¿En qué forma el Portafolio ha sido útil para el ejercicio práctico y pedagógico del Aprendizaje Autónomo?2. ¿Qué enseñanzas le han aportado los Portafolios de otros compañeros?3. ¿En qué consisten los registros que Usted ha llevado al Portafolio y para qué?4. ¿Cómo podría demostrar su capacidad para articular sus experiencias y las teorías mediante el uso y diligenciamiento del Portafolio?5. ¿Cómo se presenta o se desarrolla la reflexión que usted hace sobre los contenidos de su Portafolio?6. ¿En qué forma ha realizado las llamadas “Biografías de los trabajos”, para su Portafolio?7. ¿Cómo se ve reflejado el Portafolio en su proyecto de vida?8. ¿Cómo se evidencia la continuidad y la pertinencia temática del Portafolio?9. ¿Qué nuevos significados se han derivado a partir de la elaboración del Portafolio?10. ¿Cómo ha contribuido la elaboración del Portafolio a su crecimiento Intelectual y Pedagógico?De acuerdo con las respuestas a los anteriores cuestionamientos, usted puedecalificar la calidad de su Portafolio utilizando la escala de 0 a 5 y explicando lascausas, motivos o justificaciones.FUENTES DE CONSULTA:UNAD-CAFAM. Especialización en Pedagogía para el desarrollo de AprendizajeAutónomo. Guía de aprendizaje “A”.GRUPO MEDELLIN 02. Principios Teóricos alrededor del Portafolio. AportesEscritos de los asistentes al Encuentro Mensual de Semana 24. Medellín. 25-Jun-2000
    • 100 ANEXO 3 FICHA DE SEGUIMIENTOSegún la metodología a distancia y el sistema de créditos académicos,Comprende el Estudio independiente y el Acompañamiento tutorial.Estudio independienteEs el fundamento de la formación y del aprendizaje. Se desarrolla a través delTrabajo personal y del trabajo en pequeños grupos colaborativos deAprendizaje. Por cada crédito académico el estudiante debe dedicar enPromedio 32 horas al trabajo académico en estudio independiente.Trabajo personalEs la fuente básica del aprendizaje y de la formación e implicaResponsabilidades específicas del estudiante con respecto al estudio en cadaCurso académico del plan analítico, guía didáctica, módulo, lecturasComplementarias, consultas en biblioteca, consultas de sitios especializados aTravés de Internet, desarrollo de actividades programadas en la guía didáctica,Elaboración de informes, realización de ejercicios de autoevaluación,Presentación de evaluaciones20.Se presenta una guía que permite reflexionar sobre la tareaNombre:Grupo: _______________ Semana(1..18)____________Curso Académico:_____________________________________fecha:________________ 1. Puntos de de referencia para reflexionar a. Claridad en la concepción de la actividad propuesta (¿lo que estoy asiendo es lo que piden las instrucciones?) b. Duración: ¿El tiempo empleado es el adecuado? Si / no me donde me excedí, con que rapidez debí hacerla c. ¿Tenia claridad en los conocimientos y habilidades necesarios para llevar a cabo la tarea? d. ¿Conocía los métodos requeridos para realizar el trabajo?, ¿comprendía las reglas del juego pertinentes?20 EL MATERIAL DIDÁCTICO y el acompañamiento tutorial en el contexto de la formación a distanciay el sistema de créditos académicos Roberto J. Salazar Ramos
    • 101 e. ¿Visualicé la complejidad de la tarea?, ¿Cuáles eran los puntos difíciles? f. ¿Preví los recursos necesarios para el desarrollo de la actividad? g. ¿tuve claro de exactitud y precisión con que debía realizar la tarea? h. ¿Preparé un plan de la tarea con el fin de distribuir el trabajo en el tiempo y ejercer el control?2. complete los siguientes núcleos de conclusiones de acuerdo a sus reflexiones a. La tarea fue significativa para mí porque:______________ b. La tarea demuestra mi comprensión sobre:_____________ c. Estoy muy orgulloso de está tarea porque:________________ d. No estoy satisfecho con esta tarea porque :_______________ e. Algo que yo quiero que los demás vean en está tarea es:_____________ f. Una cuestión que quiero profundizar como resultado de esta tarea es:________ g. Esta tarea muestra mi progreso hacia el logro de mi meta porque:__________ h. Esta tarea demuestra un desafío porque:________________
    • 102ANEXO 4 FORMATO PARA LA AUTOEVALUACIÓN DEL GRUPO 21COLABORATIVO SI NO1 Trabajamos siguiendo un plan2 Trabajamos todos juntos3 Intentamos resolver la actividad de diferentes maneras4 Resolvimos la actividad5 Repasamos nuestro trabajo para asegurarnos que todos Estamos de acuerdo6 Le asignamos responsabilidades a cada miembro Responsabilidad Responsable7 Usamos los siguiente materiales o bibliografía8 Aprendimos:9 Resolvimos la actividad con la siguiente estrategia:10 Lo aprendido lo podemos aplicar en los siguientes contexto21 Técnicas y estrategias del pensamiento critico pag.166-168
    • 103 ANEXO 5 COMAPAR Y CONTRASTAR“Consiste en examinar los objetos con la finalidad de reconocer los atributosque los hacen tanto semejantes como diferentes. Contrastar es oponer entre silos objetos o compáralos haciendo hincapié en sus diferencias. “22 • “Determine las características intrínsecas o criterios externos alrededor de los cuales los dos o mas elementos se van a compara de acuerdo con el pensamiento del auto o de acuerdo con su pensamiento, si discrepa del pensamiento del autor • En una matriz de tres o más columnas, presente los resultados de la evaluación de cada elemento o conjunto de cada elemento o conjunto de elementos de acuerdo con los criterios o características y determine en qué son semejantes y en qué son diferentes los elementosCARACTERISTICAS ELEMENTO A ELEMENTO B ....1 Si la posee (+) No la posee (+)23CONCLUSION • Existen otras formas de presentar los resultados de la comparación y contraste. Consúltelas y ensáyelas”2322 Técnicas y estrategias del pensamiento critico pag.11623 Especialización APRA el desarrollo del aprendizaje autónomo, guía C pag 80
    • 104 ANEXO 7 HABILIDAD DE OBSERVARObservar se entiende en el sentido de advertir o estudiar algo con atención,cualquiera que sean los sentidos que en ello se emplean, Es lo que nos permiteobtener información para identificar la cualidad, cantidad, textura, color, forma,número, Posición, entre otras.Con esta habilidad es importante que usted se convierta en un detectives yobserve todo aquello que lo rodea, preferiblemente, teniendo como referente losprogramas informáticos que utilizan las computadoras de diferentes entidades,teniendo en cuenta diseño, facilidad, usted pude diseñar un cuadro conanotaciones sobre cada una de la observaciones.
    • 105 ANEXO 8 Índice de funciones -A-Función Librería Fichero de cabecera Carc graphics graphics.h -B-Función Librería Fichero de cabecera Cbar graphics graphics.hbar3d graphics graphics.h -C-Función Librería Fichero de cabecera Ccgets conio conio.hcircle graphics graphics.hcleardevice graphics graphics.hclearviewport graphics graphics.hclosegraph graphics graphics.hclreol conio conio.hclrscr conio conio.hcprintf conio conio.hcputs conio conio.hcscanf conio conio.h -D-Función Librería Fichero de cabecera Cdelline conio conio.hdetectgraph graphics graphics.hdrawpoly graphics graphics.h -E-Función Librería Fichero de cabecera Cellipse graphics graphics.h -F-Función Librería Fichero de cabecera Cfillellipse graphics graphics.hfillpoly graphics graphics.hfloodfill graphics graphics.h -G-Función Librería Fichero de cabecera Cgetarccoords graphics graphics.hgetaspectratio graphics graphics.hgetbkcolor graphics graphics.hgetch conio conio.hgetche conio conio.hgetcolor graphics graphics.hgetdefaultpalette graphics graphics.hgetdrivername graphics graphics.hgetfillpattern graphics graphics.hgetfillsettings graphics graphics.hgetgraphmode graphics graphics.h
    • 106getimage graphics graphics.hgetlinesettings graphics graphics.hgetmaxcolor graphics graphics.hgetmaxmode graphics graphics.hgetmaxx graphics graphics.hgetmaxy graphics graphics.hgetmodename graphics graphics.hgetmoderange graphics graphics.hgetpalette graphics graphics.hgetpalettesize graphics graphics.hgetpass conio conio.hgetpixel graphics graphics.hgettext conio conio.hgettextinfo conio conio.hgettextsettings graphics graphics.hgetviewsettings graphics graphics.hgetx graphics graphics.hgety graphics graphics.hgotoxy conio conio.hgraphdefaults graphics graphics.hgrapherrormsg graphics graphics.hgraphfreemem graphics graphics.hgraphgetmem graphics graphics.hgraphresult graphics graphics.h -H-Función Librería Fichero de cabecera Chighvideo conio conio.h -I-Función Librería Fichero de cabecera Cimagesize graphics graphics.hinitgraph graphics graphics.hinport conio conio.hinsline conio conio.hinstalluserdriver graphics graphics.hinstalluserfont graphics graphics.h -K-Función Librería Fichero de cabecera Ckbhit conio conio.h -L-Función Librería Fichero de cabecera Cline graphics graphics.hlinerel graphics graphics.hlineto graphics graphics.hlowvideo conio conio.h -M-Función Librería Fichero de cabecera Cmoverel graphics graphics.hmovetext conio conio.h
    • 107moveto graphics graphics.h -N-Función Librería Fichero de cabecera Cnormvideo conio conio.h -O-Función Librería Fichero de cabecera Coutport conio conio.houttext graphics graphics.houttextxy graphics graphics.h -P-Función Librería Fichero de cabecera Cpieslice graphics graphics.hputch conio conio.hputimage graphics graphics.hputpixel graphics graphics.hputtext conio conio.h -R-Función Librería Fichero de cabecera Crectangle graphics graphics.hregisterbgidriver graphics graphics.hregisterbgifont graphics graphics.hrestorecrtmode graphics graphics.h -S-Función Librería Fichero de cabecera Csector graphics graphics.hsetactivepage graphics graphics.hsetallpalette graphics graphics.hsetaspectratio graphics graphics.hsetbkcolor graphics graphics.hsetcursortype conio conio.hsetfillpattern graphics graphics.hsetfillstyle graphics graphics.hsetgraphbufsize graphics graphics.hsetgraphmode graphics graphics.hsetlinestyle graphics graphics.hsetpalette graphics graphics.hsetrgbpalette graphics graphics.hsettextjustify graphics graphics.hsettextstyle graphics graphics.hsetusercharsize graphics graphics.hsetviewport graphics graphics.hsetvisualpage graphics graphics.hsetwritemode graphics graphics.h -T-
    • 108Función Librería Fichero de cabecera Ctextattr conio conio.htextbackground conio conio.htextcolor conio conio.htextheight graphics graphics.htextwidth graphics graphics.h -U-Función Librería Fichero de cabecera Cungetch conio conio.h -W-Función Librería Fichero de cabecera Cwherex conio conio.hwherey conio conio.hwindow conio conio.h
    • 109 Anexo 9 Tutorial de DFD ! UNICESAR 20051. Conceptos básicos para trabajar en DFD:a. Que es DFD:Dfd es un software diseñado para construir y analizar algoritmos . Usted puede crear diagramas de flujo de datos para la representación de algoritmos de programación estructurada a partir de las herramientas de edición que para éste propósito suministra el programa. Después de haber ingresado el algoritmo representado por el diagrama, podrá ejecutarlo, analizarlo y depurarlo en un entorno interactivo diseñado para éste fin. La interfaz gráfica de Dfd, facilita en gran medida el trabajo con diagramas ya que simula la representación estándar de diagramas de flujo en hojas de papel.b. Que es un algoritmo:Un algoritmo es un procedimiento para la resolución de problemas de cualquier tipo por medio de determinada secuencia de pasos simples y no ambiguos. El concepto fue utilizado originalmente para el cálculo matemático pero ahora es ampliamente usado en programación de computadoras.c. Diagrama de Flujo de DatosUn diagrama de flujo de datos es una descripción gráfica de un procedimiento para la resolución de un problema. Son frecuentemente usados para describir algoritmos y programas de computador. Los diagramas de flujo de datos están conformados por figuras conectadas con flechas. Para ejecutar un proceso descrito por un diagrama de flujo de datos se comienza por el INICIO y se siguen las flechas de figura a figura, ejecutándose las acciones indicadas por cada figura; el tipo de figura indica el tipo de paso que representa.Los diagramas de flujo son frecuentemente usados debido a que pueden suprimir detalles innecesarios y tener un significado preciso, si son usados correctamente.d. Tipos de DatosReal: Valores numéricos que van desde –1*10 ^ 2000 hasta 1*10 ^ 2000 . Los valores más cercanos a 0 que se pueden manejar son 1*10 ^ -2000 y –1*10 ^ -2000.Ejemplo: 1998, 1.0007, 0, 328721, -3242781Cadena de Caracteres: Secuencia de caracteres encerrada entre comillas simples.Ejemplo: ‘Diagramar es fácil’ , ‘París’ , ‘1955’Lógico: La letra V ó F encerrada entre puntos, para indicar verdadero ó falso respectivamente.Ejemplo: .V. , .F. , .v. , .f.e. Campos de DatosConstantes: Con su nombre muestran su valor y éste no se puede cambiar.
    • 110Ejemplo: 1996 , ‘Los algoritmos son útiles’ , .V.Variables: Es posible modificar su valor. El nombre de una variable debe comenzar por una letra seguida de letras, números o el caracter ( _ ).Ejemplo: Valor , Contador , año , Valor_1No se tiene en cuenta la diferencia entre mayúsculas y minúsculas para el nombre de una variable; es decir, CASA equivale a casa. Cuando una variable recibe un valor por primera vez, el tipo de dato de ésta será igual al tipo de dato del valor.f. ArreglosDfd soporta arreglos n-dimensionales de cualquier tipo de dato. El nombre de un arreglo debe comenzar por una letra seguida de letras, números o el caracter ( _ ).Ejemplo: Vector ( 2 ) , Matriz ( i , j ) , v ( 1, j, ñ, p )No se tiene en cuenta la diferencia entre mayúsculas y minúsculas para el nombre de un vector; es decir, VECTOR(2) equivale a vector(2).g. Interfaz de UsuarioDfd posee una ventana principal que proporciona el ambiente de trabajo en donde se pueden construir y analizar algoritmos. Los componentes básicos de la ventana principal son: La barra de menú, barras de herramientas, barras de desplazamiento y el área de trabajo.h. Acción ActualEs el estado en el que se encuentra Dfd.La acción actual puede ser:Edición: Es el estado en el que un diagrama de flujo puede ser creado o modificado utilizando las herramientas de edición de Dfd. En este modo el diagrama también se puede imprimir, guardar y abrir.Ejecución: Es la ejecución del algoritmo representado por el diagrama con el que se esta trabajando. En tiempo de Ejecución pueden presentarse errores en el algoritmo, en tal caso se suspende la ejecución y se muestra el mensaje de error correspondiente.Depuración: En este estado se puede observar con detalle el comportamiento del algoritmo, facilitando la detección y eliminación de errores. En Dfd las herramientas de depuración permiten realizar depuración /paso a paso y depuración/ejecutar hasta.En depuración/paso a paso, la ejecución del algoritmo se realiza objeto por objeto haciendo uso del comando Paso simple.En depuración/Ejecutar hasta, la ejecución del algoritmo se realiza deteniéndose en el objeto seleccionado haciendo uso del comando Ejecutar Hasta. Después de esto la acción actual será depuración/Paso a paso.La barra de estado ubicada ubicada en la parte inferior de la ventana de Dfd muestra la acción actual.i. Subprograma ActualEn Dfd, solo un subprograma (incluyendo el principal) puede ser visualizado a la vez, considerándose éste el Subprograma Actual.j. Errores de SintaxisEstos errores son detectados en tiempo de revisión cuando se intenta ejecutar un algoritmo que contiene expresiones incorrectas. El mensaje de error correspondiente será mostrado y se indicara el objeto en el que se produjo el error.
    • 111Revisión del Diagrama:Cuando se intenta cambiar la acción actual de edición a cualquier otro modo, se realiza primero una revisión del diagrama para detectar errores de sintaxis, errores en los atributos de los objetos, entre otros.Si un error es detectado se muestra el mensaje de error correspondiente y se resalta el objeto en el cual se produjo el error.2. Sistema de menus:a. Archivo | NuevoEl comando Nuevo inicia la sesión de trabajo con un nuevo diagrama.Otras formas de acceder al comando:Teclado: CTRL + NDfd da como nombre temporal al nuevo diagrama “Sin nombre.dfd”, hasta que éste sea guardado con un nombre de archivo único. Al ejecutar este comando quedará seleccionada la opción Angulos en Grados del menú Opciones.b. Archivo | AbrirInicia la sesión de trabajo con un diagrama ya existente, con este comando puede abrir un archivo de Dfd y comenzar a trabajar sobre él.Otras formas de acceder al comando:Teclado: CTRL + AAl abrir un archivo de Dfd, las opciones del menú Opciones, tomarán el estado que tenían en el momento en que fue guardado el archivo.c. Archivo | GuardarGuarda en disco el diagrama que se está editando(principal y subprogramas) y el estado del menú Opciones, como un archivo de extensión “dfd”.A medida que Usted trabaja va haciendo cambios en el diagrama original, por lo cual es conveniente guardar con frecuencia el diagrama.Otras formas de acceder al comando: Teclado: CTRL + G.d. Archivo | Guardar ComoEl comando Guardar Como guarda en disco permite colocar un nombre al diagrama en edición. Se despliega un cuadro de diálogo donde se selecciona el nombre y la ubicación (unidad y directorio) del archivo en cual se va a guardar el diagrama.Otra forma de acceder el comando:Teclado: ALT + A , Ce. Archivo | ImprimirEste comando despliega el cuadro de diálogo de impresión del sistema, el tamaño del diagrama a imprimir será proporcional al tamaño del diagrama que se visualiza en pantalla.Otras formas de acceder al comando:Teclado: CTRL + Pf. Archivo | SalirEl comando Salir termina una sesión de trabajo con Dfd .Otras formas de acceder al comando:Teclado: ALT + A , SSi el diagrama en edición no ha sido guardado desde la última modificación, Dfd le preguntará si desea guardar antes de salir.g. Edición | CortarEste comando se usa para eliminar un objeto seleccionado de un diagrama y colocarlo en el portapapeles de Dfd . El comando Cortar estará disponible cuando un objeto eliminable se encuentre seleccionado y la acción actual sea Edición.
    • 112Otras formas de acceder el comando:Teclado: CTRL + XCuando se cortan objetos, estos reemplazan el contenido del portapapeles de Dfd . Los objetos que conforman estructuras de control serán cortados junto con su cuerpo.h. Edición | CopiarEste comando se usa para obtener una copia del objeto seleccionado en el portapapeles de Dfd. El objeto seleccionado queda intacto; es decir, no se remueve del diagrama. El comando Copiar estará disponible cuando exista un objeto eliminable seleccionado y la acción actual sea Edición.Otras formas de acceder el comando:Teclado: CTRL + CCuando se copian objetos, estos reemplazan el contenido del portapapeles de Dfd. Los objetos que conforman estructuras decontrol serán copiados juntos con su cuerpo.i. Edición | PegarUse este comando para insertar una copia del contenido del portapapeles de Dfd a continuación del objeto seleccionado. El comando Pegar estará disponible cuando el portapapeles de Dfd no esté vacío, exista un objeto seleccionado y la acción actual sea Edición.Otras formas de acceder al comando:Teclado: CTRL + VDespués de haber sido pegado, el objeto permanece en el portapapeles de Dfd, de manera que puede pegarlo las veces que desee.j. Edición | EliminarEste comando elimina el objeto seleccionado del diagrama sin colocarlo en el portapapeles de Dfd . Se encontrará disponible cuando un objeto eliminable se encuentre seleccionado y la acción actual sea Edición.Otras formas de acceder al comando:Teclado: SUPRLos objetos que conforman estructuras de control (Son estructuras que ejercen control sobre la ejecución de bloques de objetos de acuerdo a una condición.) serán eliminados junto con su cuerpo. En caso de que el objeto seleccionado sea de tipo subprograma, entonces se ejecutará el comando Eliminar Subprograma.k. Edición | Eliminar SubprogramaEste comando se usa para eliminar todos los objetos que conforman un subprograma. El comando estará disponible cuando esté visualizado un subprograma (no el principal) y la acción actual sea Edición.Otras formas de acceder el comando:Teclado: ALT + E, Sl. Edición | Insertar ObjetoEste comando se utiliza para insertar a continuación del objeto seleccionado un objeto del tipo que indique el ítem seleccionado en el menú Objeto; es decir, el último objeto seleccionado en la barra de herramientas.El comando estará disponible cuando exista un objeto seleccionado, el ítem seleccionado en el menú Objeto sea diferente de Cursor y la acción actual sea Edición.Otra forma de acceder al comando:Teclado: INS
    • 113Mouse : Clic sobre la zona de inserciónm. Edición Objeto | EditarEste comando se utiliza para editar el contenido de un objeto seleccionado. Estará disponible cuando se encuentre seleccionado un objeto editable y la acción actual sea Edición.Otra forma de acceder al comando:Teclado: ENTERMouse : Doble clic sobre el objeton. Objeto | CursorEste comando selecciona el cursor normal del Mouse, el cual se puede usar para:- Seleccionar y quitar la selección de objetos.- Abrir los cuadros de diálogo para la edición de objetos.Otras formas de acceder al comando:Teclado: ALT + O, CCuando la acción actual es diferente de Ejecución, el cursor normal puede cambiar dependiendo de la posición del apuntador del Mouse.Es la flecha de cursor que se presenta cuando el apuntador del Mouse no está sobre ningún objeto. La forma de este puntero depende de las propiedades del Mouse que maneja el sistema.El cursor en forma de mano señalando se presenta cuando el apuntador del Mouse se sitúa sobre un objeto que se puede seleccionar, éste indica que se puede seleccionar, quitar la selección de otro objeto ó editar el objetoHacer clic con el botón izquierdo del Mouse dentro de un objeto selecciona el objeto y quita la selección a cualquier otro que se encuentre seleccionado en el subprograma actual. Hacer clic con el botón izquierdo del Mouse sobre un área vacía del diagrama quita la selección del objeto. Hacer doble clic con el botón izquierdo del Mouse sobre un objeto editable invoca al correspondiente cuadro de diálogo para la edición.o. Objeto | AsignaciónEste comando se utiliza para indicar que el siguiente objeto a ser insertado en el diagrama es de tipo Asignación.Otras formas de acceder al comando:Teclado: ALT + O, Ap. Objeto | Ciclo MientrasEste comando se utiliza para indicar que el siguiente objeto a ser insertado en el diagrama es de tipo Ciclo Mientras.Otras formas de acceder al comando:Teclado: ALT + O, Mq. Objeto | Ciclo ParaEste comando se utiliza para indicar que el siguiente objeto a ser insertado en el diagrama es de tipo Ciclo Para.Otras formas de acceder al comando:Teclado: ALT + O, Pr. Objeto | DecisiónEste comando se utiliza para indicar que el siguiente objeto a ser insertado en el diagrama es de tipo Decisión.Otras formas de acceder al comando:Teclado: ALT + O, Ds. Objeto | Lectura
    • 114Este comando se utiliza para indicar que el siguiente objeto a ser insertado en el diagrama es de tipo Lectura.Otras formas de acceder al comando:Teclado: ALT + O, Et. Objeto | LlamadaEste comando se utiliza para indicar que el siguiente objeto a ser insertado en el diagrama es de tipo Llamada.Otras formas de acceder al comando:Teclado: ALT + O, Lu. Objeto | SalidaEste comando se utiliza para indicar que el siguiente objeto a ser insertado en el diagrama es de tipo Salida.Otras formas de acceder al comando:Teclado: ALT + O, Sv. Objeto | Nuevo SubprogramaEl comando Nuevo Subprograma crea un nuevo subprograma y lo deja como el subprograma actual. Este comando estará disponible cuando la acción actual sea Edición.Otras formas de acceder al comando:Teclado: ALT + O, N3. Objetos que utiliza DFDa. Objeto InicioEs el primer objeto a ejecutar en cualquier algoritmo. Al ser ejecutado, el objeto Inicio transfiere el control al siguiente objeto.El cuadro de dialogo del objeto Inicio contiene un espacio para la descripción o comentarios acerca del algoritmo.b. Objeto AsignaciónEl objeto Asignación asigna valores a campos variables. Al ser ejecutado, puede realizar hasta tres asignaciones.
    • 115El cuadro de dialogo del objeto Asignación contiene espacio para tres asignaciones, cada asignación consta de un espacio para el campo variable situado siempre a la izquierda, el símbolo de asignación y un espacio para la expresión situada siempre a la derecha. Esto indica que al campo variable se le asigna el resultado de la evaluación de la expresión. Debe realizarse por lo menos una asignación.c. Objeto Ciclo MientrasEl objeto Ciclo Mientras tiene como función el ejecutar un bloque de objetos mientras que una condición sea verdadera. La condición debe ser siempre una expresión que al ser evaluada de como resultado un valor de tipo de dato Lógico.Ejemplo : 3<W , x >0 AND Sw = .V. , Valor*15 < 300*Contador.Si al evaluar la condición se obtiene el valor .F. la ejecución del algoritmo continuará a partir del objeto que sigue al Cierre.El cuadro de dialogo del objeto Ciclo Mientras contiene espacio para la expresión que conforma la condición.d. Objeto Ciclo ParaSu función es ejecutar un bloque de objetos mientras que la variable contadora no alcance el límite establecido por el valor final. El contador es siempre una variable de tipo de dato Real. Contiene además un valor inicial que será asignado al contador al iniciar la ejecución del ciclo, un valor final y un valor de incremento. Si el contador excede el valor final, la ejecución continuará a partir del objeto que sigue al Cierre. En caso contrario, se ejecutará el cuerpo del ciclo y el contador será incrementado en el valor indicado por el incremento.
    • 116El cuadro de diálogo del objeto Ciclo para contiene espacio para la variable contador, valor inicial, valor final y el valor de incremento en su respectivo orden.e. Objeto DecisiónEl objeto decisión selecciona el flujo a seguir de acuerdo al valor lógico de una condición. La condición debe ser siempre una expresión que al ser evaluada de como resultado un valor de tipo de dato Lógico.Ejemplo : 3<w , x >0 AND sw = .V. , valor*15 < 300*contador.El objeto Decisión esta asociado a dos bloques de objetos ubicados a lado y lado de este, y un objeto Cierre Decisión ubicado a continuación de ambos bloques.Si al evaluar la condición se obtiene el valor lógico .V., se ejecuta el bloque rotulado con la palabra Si, en caso contrario se ejecuta el bloque rotulado con No. En ambos casos la ejecución continua en el objeto Cierre Decisión.El cuadro de dialogo del objeto Decisión contiene espacio para la expresión que conforma la condición, y dos casillas por medio de las cuales se puede especificar por cual lado continuara el flujo en caso de que la condición sea verdadera.f. Objeto LecturaEl objeto Lectura permite la entrada de valores constantes desde el teclado y se los asigna a campos variables . Podrá ser leída cualquier cantidad de variables utilizando un objeto Lectura. Al ejecutarse, el objeto despliega un cuadro de diálogo por cada variable presente en la lista, este cuadro de diálogo espera que el usuario introduzca un valor constante que será asignado a la respectiva variable.
    • 117El cuadro de diálogo para la edición del objeto contiene un espacio para ingresar una lista de variables separadas por comas. Debe existir por lo menos una variable.g. Objeto SalidaEl objeto Salida muestra valores por pantalla. Puede ser visualizada cualquier cantidad de valores utilizando un objeto Salida. Al ejecutarse, este objeto evalúa cada una de las expresiones que contiene y despliega un cuadro de diálogo que muestra el valor obtenido en cada una de las expresiones en su respectivo orden.El cuadro de diálogo para la edición del objeto contiene un espacio para ingresar una lista de expresiones separadas por comas. Debe existir por lo menos una expresión.h. Objeto LlamadaLa función de este objeto es realizar una llamada a un subprograma, el cual debe encontrarse en el diagrama en edición. En la llamada deben encontrarse los argumentos que han de ser pasados al subprograma, la cantidad, el orden y el tipo de los argumentos deben coincidir con los parámetros del subprograma.Una vez que el subprograma haya sido ejecutado la ejecución continuará en el objeto siguiente a la llamada.El cuadro de diálogo para la edición de este objeto contiene el espacio para el nombre del subprograma a llamar y el espacio para la lista de argumentos. Dichos argumentos deben estar separados por comas.i. Objeto Subprograma
    • 118Es el primer objeto a ser ejecutado cuando un subprograma es llamado. Al ser ejecutado, el objeto Subprograma transfiere el control al siguiente objeto.El cuadro de diálogo del objeto Subprograma contiene un espacio para la descripción o comentarios acerca del mismo ; contiene un espacio para el nombre del subprograma y un espacio para los parámetros. Estos parámetros (si existen) deben estar separados por comas. El nombre de un subprograma debe comenzar por una letra seguida de letras, números ó el carácter ( _ ).Ejemplo: Factorial , Leer , Sub1 , sub_programa.No se tiene en cuenta la diferencia entre mayúsculas y minúsculas para el nombre de un subprograma, es decir , SUB equivale a sub.j. Objeto FinEste objeto junto con el objeto Inicio, delimita el cuerpo del procedimiento principal. Solo existe un objeto Fin en el diagrama ; la ejecución de este objeto finaliza la ejecución del algoritmo.k. Objeto Cierre CicloEste objeto delimita el cuerpo de un ciclo, al culminar la ejecución del ciclo el control se transfiere al objeto que sigue al objeto Cierre Ciclo.l. Objeto Cierre DecisiónEste objeto delimita el cuerpo de una estructura de decisión, al culminar la ejecución de dicha estructura el control se transfiere al objeto que sigue al objeto Cierre Decisión.m. Objeto RegreseEste objeto junto con el Objeto Subprograma,
    • 119delimita el cuerpo de un subprograma. La ejecución de este objeto transfiereel control al objeto que realizó la llamada.
    • 120 Anexo 10Elemento Opciones Muestra el número de versión, limpia o restaura la pantalla y ejecuta varios programas de= utilidades proporcionados por Turbo CFile Carga y graba archivos, gestiona directorios, invoca al DOS y sale de Turbo CEdit Realiza funciones de ediciónSearch Realiza diversas búsquedas y reemplazamientosRun Compila, enlaza y ejecuta el programa cargado actualmente en el entornoCompile Compila el programa actual del entorno Establece diversas opciones del depurador, incluido el establecimiento de puntos deDebug rupturaProject Gestiona proyectos con varios archivosOptions Establece diversas opciones del compilador, enlazador y del entornoWindow Controla la forma en la que se muestran diversas pantallasHelp Activa el sistema de ayuda sensible al contextoResaltando la opción File, se activa un menú desplegable con las opciones:Opción Descripción Pide un nombre de archivo y lo carga en el editor. Si el archivo no existe se crea. EstaOpen opción también muestra una lista de archivos entre los que se puede elegir. Abre otra ventana de edición y le permite crear un archivo nuevo. El archivo se llama porNew defecto NONAMEn.C, donde n es un valor entre 0 y 99. Se puede renombrar el archivo cuando se grabaSave Graba el archivo de la ventana activaSave as Le permite grabar el archivo con un nombre diferenteSave all Graba los archivos de todas las ventanas abiertasChange Cambia el directorio por defecto a uno que se especifiquedirGet info Muestra información sobre el archivo de la ventana activaDOS Carga el intérprete de órdenes de DOS y le permite ejecutar órdenes de DOS. Se debeshell escribir EXIT para volver a Turbo CQuit Sale de Turbo CResaltando la opción Edit, se activa un menú desplegable con las opciones:Opción DescripciónUndo Deshacer la última operación de ediciónRedo Rehacer la última operación de ediciónCut Corta el bloque seleccionadoCopy Copia el bloque seleccionado Pega en la ventana activa del editor, en la posición actual del cursor, el bloque másPaste recientemente copiado o cortadoClear Borra el bloque seleccionado Cuando se activa el sistema de ayuda y se pide información sobre una característicaCopy de C, se incluye con frecuencia un ejemplo. Si este es el caso, se puede copiarexample automáticamente el código del ejemplo seleccionando esta opción
    • 121Show Muestra los bloques anteriormente cortados o copiadosclipboardResaltando la opción Run, se activa un menú desplegable con las opciones:Opción Descripción Ejecuta el programa actual. Si el programa no ha sido compilado todavía, Run loRun compila y luego lo ejecutaProgram Termina el programa cuando se está ejecutando en modo de depuraciónreset Ejecuta el programa hasta que alcanza la línea de código donde está colocado elGo to cursor cursor Ejecuta el programa sentencia a sentencia. Si la siguiente sentencia incluye unaTrace into llamada a una subrutina, se traza la subrutina Ejecuta el programa paso a paso. Ejecuta la siguiente línea de código, pero no trazaStep over las subrutinas a las que pueda llamar Se usa para pasar argumentos de la línea de órdenes a un programa que se ejecutaArguments desde el entornoResaltando la opción Compile, se activa un menú desplegable con las opciones:Opción Descripción Compila el archivo actual del editor a un archivo .OBJ, un archivo .OBJ es un archivoCompile to de código objeto reubicable que está preparado para ser enlazado en un archivoOBJ .EXE que se pueda ejecutarMake EXE Compila directamente el programa en un archivo ejecutablefileLink EXE file Permite enlazar el programa actualBuild all Construir todo, recompila todos los archivos relacionados con el programa actualRemove Limpia la ventana de mensajesmessagesResaltando la opción Options, se activa un menú desplegable con las opciones:Opción DescripciónCompiler Permite cambiar aspectos sobre la forma en la que Turbo C genera el código Permite añadir programas al menú de sistema de Turbo C. Los programas mostradosTransfer en el menú de sistema de Turbo C pueden ejecutarse desde dentro de Turbo C sin dejar el IDEMake Cambia las opciones de cómo compilar el programaLinker Cambia las opciones de cómo enlazar el programaDirectories Permite establecer los directorios que usa Turbo C por defectoDebuger Permite establecer varias opciones de depuraciónEnvironment Permite cambiar la forma en la que opera el IDE Permite determinar cuántas opciones del IDE se graban para un uso futuro de TurboSave C
    • 122Resaltando la opción Window, se activa un menú desplegable con las opciones:Opción Descripción Se puede cambiar el tamaño de la ventana activa o moverla a otra posición de laSize/Move pantalla Aumenta el tamaño de la ventana activa de modo que llene completamente la pantalla.Zoom Una vez que una ventana ha sido ampliada, si se selecciona Zoom por segunda vez, la ventana vuelve a su tamaño normalTile A cada ventana se le da una parte reducida de la pantalla Cada vez que se crea una ventana nueva ésta queda parcialmente sobre una o más deCascade las otras ventanas Si se tienen varias ventanas abiertas, con esta opción se puede saltar progresivamenteNext de una a la siguienteClose Para cerrar una ventana de la pantallaMessage Ventana usada por Turbo C para dar informaciónOutput Muestra la salida generada cuando se ejecuta un programa dentro de la pantalla IDEWatch Se utiliza en depuraciónUser Muestra la pantalla completa de salida de un programa. Si se selecciona esta opción, sescreen debe pulsar F5 para volver a la pantalla del IDERegister Muestra el contenido de cada registro de la CPUProject Estas ventanas están relacionadas con los proyectos Para hacer un listado de todas las ventanas abiertas. Se puede activar una ventanaList all seleccionándola en esta listaResaltando la opción Help, se activa un menú desplegable con las opciones:Opción DescripciónContents Muestra la tabla de contenidos del sistema de ayuda Activa un índice de temas tratados por el sistema de ayuda. Para hacer una selección: 1. se mueve el resaltado al tema deseado y se pulsa <ENTER>. 2. se digita la palabraIndex relativa al tema deseado y se pulsa <ENTER>. Entonces se ve la información relativa al tema seleccionado. Para salir del sistema de ayuda se pulsa <ESC>Topic Se muestra información sobre la palabra clave en la que está colocado actualmente elsearch cursorPrevious Para ver el tema anteriortopicHelp on Para ver ayuda sobre el sistema de ayudahelp