Sie sind auf Seite 1von 127

1. CONCEPTOS BSICOS 1.

1 DESARROLLO DE LOS ELEMENTOS DE CLCULO


A lo largo de la historia, el ser humano ha realizado descubrimientos que le han permitido mejorar su forma de vida, desde el hombre de las cavernas que invent herramientas, como la flecha, el control del fuego y sus usos, el uso de materiales de metal, el baco, necesarias para satisfacer algunas necesidades bsicas, y miles de aos despus, el motor de combustin interna, el control y el dominio de la energa elctrica y nuclear, el telgrafo, el telfono, la televisin y las computadoras. El hombre en sus comienzos, experimento nuevas necesidades, que lo forzaron a inventar una forma de comunicarse, al principio con seales y sonidos, pero al iniciar esta nueva forma de comunicacin se tuvo la necesidad de usar un lenguajes un poco ms formal, es por eso, que en algn momento de la historia el hombre tuvo la idea brillante del lenguajes oral, y miles de aos despus invent la escritura, que surgi en la Mesopotamia, tambin denominada cuna de la civilizacin. Junto con el lenguaje y la escritura, el hombre tambin tena la necesidad de contar sus bienes u objetos o el nmero de animales, vacas, cerdos, etc., en un principio esto se realizaba con los elementos con los que se contaba a su alrededor, y uno de esto son las piedras, si las juntaba en pequeos cmulos, y esos cmulos de piedra representaban cantidades, pero a medida que aumentaba el comercio y la cantidad de seres humanos esta herramienta se vio reemplazada e imprctica, hasta que alguien con el nuevo invento de la escritura, empez a realizar formas, es decir signos, que le permitan representar un puado de piedras, en tan solo un signo en una tablilla de arcilla, y quizs cientos de aos despus el invento de un sistema de numeracin. El desarrollo de los sistemas de clculo est determinado por sucesos importantes, ocurridos en periodos ms o menos determinados que se detallan a continuacin.

1.1.1 EL ABACO
Aproximadamente en el ao 5000 a.C. surge el BACO que en su representacin ms remota consista en una tabla con hendiduras, en las cuales se colocaban piedras con las que representaban una cantidad en particular de acuerdo con su posicin, y posteriormente cambia su aspecto al que actualmente se conoce.

1.1.2 REGLA DE CLCULO


En 1617 el matemtico escocs Jhon Napie, invento un mtodo para multiplicar y dividir a travs de varillas de hueso o marfil; este mecanismo, al desarrollarse. Permite la llegada de la regla de clculo.

LA PASCALINA
La primera mquina de calcular mecnica, un precursor del ordenador digital, fue inventada en 1642 por el matemtico francs Blaise Pascal. (ENCARTA MICROSOFT , 2005)

Aquel dispositivo utilizaba una serie de ruedas de diez dientes en las que cada uno de los dientes representaba un dgito del 0 al 9.

SE MEJORA DE LA PASC ALINA


En 1670 el filsofo y matemtico alemn Gottfried Wilhelm Leibniz perfeccion esta mquina e invent una que tambin poda multiplicar.

EL TELAR MECNICO
El inventor francs Joseph Marie Jacquard, al disear un telar automtico, utiliz delgadas placas de madera perforadas para controlar el tejido utilizado en los diseos complejos.

LA TARJETA PERFORADA
Durante la dcada de 1880 el estadstico Estadounidense Herman Hollerith concibi la idea de utilizar tarjetas perforadas, similares a las placas de Jacquard, para procesar datos. Hollerith consigui compilar la informacin estadstica destinada al censo de poblacin de 1890 de Estados Unidos mediante la utilizacin de un sistema que haca pasar tarjetas perforadas sobre contactos elctricos.

LA MQUINA ANALTICA
Babbage, Charles, inventor y matemtico britnico que dise y construy mquinas de clculo basndose en principios que se adelantaron al moderno ordenador o computadora electrnica.

PRIMEROS ORDENADORES
Los ordenadores analgicos comenzaron a construirse a principios del siglo XX. Los primeros modelos realizaban los clculos mediante ejes y engranajes giratorios. Con estas mquinas se evaluaban las aproximaciones numricas de ecuaciones demasiado difciles como para poder ser resueltas mediante otros mtodos. Durante las dos guerras mundiales se utilizaron sistemas informticos analgicos, primero mecnicos y ms tarde elctricos, para predecir la trayectoria de los torpedos en los submarinos y para el manejo a distancia de las bombas en la aviacin. (ENCARTA MICROSOFT , 2005)

PRIMERA GENERACIN DE COMPUTADORAS

Durante la II Guerra Mundial, un equipo de cientficos y matemticos que trabajaban en Bletchley Park, al norte de Londres, crearon lo que se consider el primer ordenador digital totalmente electrnico: EL COLOSSUS.

EL ENIAC

Contena 18.000 vlvulas de vaco y tena una velocidad de varios cientos de multiplicaciones por minuto, pero su programa estaba conectado al procesador y deba ser modificado manualmente. Se construy un sucesor del ENIAC con un almacenamiento de programa que estaba basado en los conceptos del matemtico hngaro-estadounidense John Von Newman. Las instrucciones se almacenaban dentro de una llamada memoria, lo que liberaba al ordenador de las limitaciones de velocidad del lector de cinta de papel durante la ejecucin y permita resolver problemas sin necesidad de volver a conectarse al ordenador.

SEGUNDA GENERACIN DE COMPUTADORAS

A finales de la dcada de 1950 el uso del transistor en los ordenadores marc el advenimiento de elementos lgicos ms pequeos, rpidos y verstiles de lo que permitan las mquinas con vlvulas. Como los transistores utilizan mucha menos energa y tienen una vida til ms prolongada, a su desarrollo se debi el nacimiento de mquinas ms perfeccionadas, que fueron llamadas computadoras de segunda generacin. Los componentes se hicieron ms pequeos, as como los espacios entre ellos, por lo que la fabricacin del sistema resultaba ms barata.

TERCERA GENERACIN DE COMPUTADORAS

Entre 1963 y 1970 apareci el circuito integrado (CI), que posibilit la fabricacin de varios transistores en un nico sustrato de silicio en el que los cables de interconexin iban soldados. El circuito integrado permiti La reduccin del precio

El tamao Los porcentajes de error

Con esta generacin se inicio un proceso de miniaturizacin que conduce a una integracin de componentes en espacios casi microscpicos. (ENCARTA MICROSOFT , 2005) El microprocesador se convirti en una realidad a mediados de la dcada de 1970, con la introduccin del circuito de integracin a gran escala y, ms tarde, con el circuito de integracin a mayor escala, con varios miles de transistores interconectados soldados sobre un nico sustrato de silicio.

CUARTA GENERACIN DE COMPUTADORAS

Historia del microprocesador El primer microprocesador fue el Intel 4004, producido en 1971. Se desarroll originalmente para una calculadora, y resultaba revolucionario para su poca. Contena 2.300 transistores Trabajaba con 4 bit Realizaba hasta 60.000 operaciones por segundo.

En 179 se desarrollo el microprocesador de 8 bits fue el Intel 8008, para emplearse en terminales informticos. El Intel 8008 contena 3.300 transistores. El primer microprocesador diseado para uso general, desarrollado en 1974, fue el Intel 8080 de 8 bits, Contena 4.500 transistores Poda ejecutar 200.000 instrucciones por segundo. (ENCARTA MICROSOFT , 2005)

SUPERCOMPUTADORA MS PODEROSA DEL PLANETA JUNIO 2010

La entrada al primer puesto de Jaguar, un sistema Cray XT5 propiedad del Departamento de Energa de Estados Unidos. El Jaguar incluye 224.162 ncleos de procesamiento a base de procesadores AMD Opteron Istanbul de seis ncleos, cuenta con 300 Tbytes de memoria y 10 Petabytes de espacio en disco duro, para una potencia descomunal de 1.759 PetaFLOPS. Por uso de procesadores, los Xeon de Intel estn instalados en 402 sistemas de la lista, los Power IBM 52 y los Opteron de AMD en 42. Por fabricantes, 210 sistemas llevan la firma de HP y 186 de IBM. Sun, Cray, SGI, o Dell son otros de los fabricantes que mantienen equipos en el Top-500. Por regiones, Estados Unidos sigue dominando ampliamente, le sigue Europa con 153 y Asia con 50 (http://www.top500.org, 2010)

TECNOLOGAS FUTURAS

Se cree que el factor limitante en la potencia de los microprocesadores acabar siendo el comportamiento de los propios electrones al circular por los transistores. Puede que sean necesarios nuevos dispositivos y diseos de circuitos a medida que los microprocesadores se aproximan a dimensiones atmicas. Para producir las generaciones futuras de microchips se necesitarn tcnicas como la epitaxia por haz molecular, en la que los semiconductores se depositan tomo a tomo en una cmara de vaco ultra elevado, o la microscopa de barrido de efecto tnel, que permite ver e incluso desplazar tomos individuales con precisin. Epitaxia: mtodo para producir materiales cristalinos con una determinada estructura, como capas de silicio semiconductor de alta calidad para chips de ordenadores o computadoras. (ENCARTA, 2005)

LA COMPUTADORA DIGITAL

El siglo pasado ser recordado como siglo de los descubrimientos, ya que el ser humano nunca haba realizado tanto descubrimientos y tecnologa en el lapso de unos cuantos aos. El avance y desarrollo de toda esta tecnologa se dio en mucho por el desarrollo de diversos materiales, que se aplicaron en el rea de electrnica, por consiguiente se desarrollaron grandes y poderosas computadoras digitales, que facilitaron el camino para un avance acelerado de la tecnologa. Una computadora Digital es un dispositivo electrnico que se utiliza para el procesamiento de datos. 5

Ordenador o Computadora, dispositivo electrnico capaz de recibir un conjunto de instrucciones y ejecutarlas realizando clculos sobre los datos numricos, o bien compilando y correlacionando otros tipos de informacin. Caractersticas de una computadora: Realiza operaciones aritmticas y lgicas a gran velocidad y de manera confiable. Efecta comparaciones de datos con mucha rapidez y toma acciones diferentes dependiendo del resultado de la comparacin. Tiene una memoria donde puede almacenar tanto datos como instrucciones. Estas instrucciones le indican cmo procesar datos. Ejecuta una secuencia de instrucciones almacenadas en memoria para realizar el procesamiento de datos. Este conjunto de instrucciones recibe el nombre de PROGRAMA. Transfiere los resultados de las operaciones a dispositivos que permiten que el usuario de la computadora vea los resultados. Los resultados son vistos en vdeo, en papel, tambin los resultado se pueden almacenar en discos magnticos, todos esto dispositivos de llamas PERIFERICOS.

Las computadoras digitales son maquinas de propsito general, ya que pueden ser usadas para diferentes aplicaciones como: Sistemas administrativos Control de Procesos Diseos asistido por computadora Simulacin Clculos cientficos Comunicaciones Sistemas de Seguridad Otras Aplicaciones

MEMORIA PRIMARIA

Las caractersticas ms relevantes de la memoria primaria son: Tiempo de Escritura (es el tiempo que transcurre para leer o escribir algo en memoria) Tiempo de Transferencia (es el tiempo que transcurre en llegar los datos a quien los solicito)

Densidad de Informacin (es la cantidad de informacin que puede almacenar) Volatilidad (se refiere a que los datos estn en constante riesgo de perderse por fallas de energa elctrica) Capacidad (es muy limitada, ya que es algo cara) Alto costo

MEMORIA SECUNDARIA

Los medios de almacenamiento magnticos y los no magnticos se utilizan para el registro de la informacin y estos son considerados como elementos de almacenamiento masivo. A este tipo de memoria secundaria tambin se le conoce como memoria de masa, ya que pueden almacenar grandes cantidades de informacin. Caractersticas: Almacenan grandes cantidades de informacin Esta permanece a pesar de que se apague el equipo. Es ms econmica que la primera Almacena informacin de manera permanente.

El usuario dirige el funcionamiento de la mquina mediante instrucciones, denominadas genricamente entradas. Las entradas se introducen mediante diversos dispositivos, por ejemplo un teclado, y se convierten en seales electrnicas que pueden ser procesadas por la computadora. Una vez que la CPU ha ejecutado las instrucciones indicadas por el usuario, puede comunicar los resultados mediante seales electrnicas, o salidas, que se transmiten por el bus a uno o ms dispositivos de salida, por ejemplo una impresora o un monitor.

ELEMENTOS DE EXCEL
Microsoft Excel es una aplicacin para manejar hojas de clculo. Este programa es desarrollado y distribuido por Microsoft, y es utilizado normalmente en tareas financieras y contables. Excel es un programa que permite la manipulacin de libros y hojas de clculo. En Excel, un libro es el archivo en que se trabaja y donde se almacenan los datos. Como cada libro puede contener varias hojas, pueden organizarse varios tipos de informacin relacionada en un nico archivo. Utilice hojas de clculo para mostrar y analizar datos. Pueden introducirse y modificarse los datos 7

simultneamente en varias hojas de clculo y pueden ejecutarse los clculos basndose en los datos de varias hojas de clculo. Si se crea un grfico, ste puede colocarse en la hoja de clculo con sus datos correspondientes o en una hoja de grfico

LIBRO

El propio archivo .XLS, ej. Factura.xls. Es el contenedor de todas las hojas de un libro, tanto de los mdulos de VBA.

HOJA DE CLCULO
El libro contiene 1 o ms hojas (mximo 256). Por defecto, Excel te da 16 hojas al abrir un libro nuevo. No obstante, podrs cambiar este nmero en Herramientas Opciones. Adems, la hoja puede presentar filas/columnas de dos maneras- A1 o R1C1 (Herramientas Opciones General).

COLUMNAS

Cada hoja contiene 256 columnas, una cifra no variable.

FILAS Cada hoja contiene 65.536 filas, y no se puede alterar este nmero. Y qu pasa si suprimimos unas 10 filas? Pues, Excel nos aadir 10 nuevas al final de la columna. CELDAS Las intersecciones entre columnas y filas son las celdas. 256 col. x 65.536 lneas te dan 16.777.216 celdas en cada hoja. Es decir suficiente.

CONTENIDO DE CELDAS
Una celda puede contener 3 tipos de datos. texto nmeros (valores) frmulas (ecuaciones o funciones propias de Excel/usuario)

FORMATO DE CELDA
Aparte del contenido, la celda tambin guarda un formato. El formato dice, por ejemplo, que el valor de la celda se va a poner en negrita y cursiva. La distincin entre valor y formato es muy importante de entender.

Contenido = Green (texto) Formato = fondo verde Formato = fuente Arial Etcetera

FRMULAS Y FUNCIONES EN EXCEL


Las frmulas y funciones de Microsoft Excel son una parte fundamental de una hoja de clculo. Sirven para resolver todo tipo de clculo, desde sencillas frmulas aritmticas hasta calcular grandes rangos de datos estadsticos para informes econmicos. Una frmula o funcin Excel calcula un valor nuevo a partir de valores contenido en celdas nicas o en rangos de varias celdas de la hoja de clculo. Aparte de nmeros y valores, las frmulas Excel contienen operadores. Estos escpecifican qu operaciones usar.

UNA FRMULA EN EXCEL:


Las frmulas en Excel son expresiones que se utilizan para realizar clculos o procesamiento de valores, produciendo un nuevo valor que ser asignado a la celda en la cual se introduce dicha frmula. En una frmula, por lo general, intervienen valores que se encuentran en una o ms celdas de un libro de trabajo. Las frmulas estn conformadas por operadores de clculo, operandos y, con frecuencia, por funciones. Para introducir una frmula en una celda, se debe entrar como primer carcter el signo igual ( El signo igual = le indica a Excel que los caracteres que le siguen constituyen una frmula ). Cuando se escribe la frmula no se deben dejar espacios en blanco dentro de la misma. Componentes de una frmula: Una frmula en Excel puede contener cualesquiera de los siguientes elementos: referencias a celdas, constantes, operadores y funciones. Por ejemplo, la frmula que permite calcular el rea de la superficie que est dentro de una 2 circunferencia, A = r , se puede escribir en Excel como: =PI()*B1^2 En esta frmula podemos identificar los elementos nombrados anteriormente: - Referencias a celdas: B1. Se hace referencia al valor que contiene la celda B1. - Constantes: el valor 2. Nmeros o valores escritos directamente en una frmula. 9

- Operadores: ^ y *. El operador ^ (acento circunflejo) eleva un nmero a una potencia, y el operador * (asterisco) multiplica. - Funciones: la funcin PI(). Esta funcin al ser invocada devuelve el valor de pi: 3,141592...

OPERADORES
Los operadores especifican el tipo de operacin o procesamiento que se desea realizar con los elementos de una frmula. Microsoft Excel incluye cuatro tipos diferentes de operadores: aritmticos, de comparacin, texto y de referencia.

TIPOS DE OPERADORES

Operadores aritmticos: Se utilizan para realizar las operaciones matemticas bsicas como suma, resta o multiplicacin (combinando los valores numricos y generando resultados numricos). Se pueden utilizar los siguientes operadores aritmticos. Operador aritmtico + (signo ms) (signo menos) Significado Suma Resta Cambio de signo * / % ^ (asterisco) (barra diagonal o slash) (signo de porcentaje) (acento circunflejo) Multiplicacin Divisin Porcentaje Exponenciacin Ejemplo A3+3 B3-B1 -A1 B3*C3 D3/3 20% C3^2

Operadores de comparacin: Se utilizan cuando se requiere comparar entre si valores. Como operadores de comparacin tenemos los siguientes:

10

Operador de comparacin = > < >= <= <> ( igual ) ( mayor ) ( menor ) ( mayor o igual ) ( menor o igual) (distinto)

Significado Igual a Mayor que Menor que Mayor o igual que Menor o igual que Distinto de

Ejemplo A1=B1 A1>B1 A1<B1 A1>=B1 A1<=B1 A1<>B1

( Cuando se comparan dos valores utilizando estos operadores de comparacin, el resultado es un valor lgico: VERDADERO o FALSO ).

QUE ES UNA FUNCION EN EXCEL

Una funcin es una frmula predefinida por Excel que opera sobre uno o ms valores (argumentos) en un orden determinado (estructura). El resultado se mostrar en la celda donde se introdujo la formula. El tipo de argumento que utiliza una funcin es especfico de esa funcin. As, los argumentos pueden ser nmeros, texto, valores lgicos como VERDADERO o FALSO, matrices, valores de error como #N/A o referencias de celda. Un argumento puede ser una constante, una frmula o incluso otra funcin. Excel cuenta con una gran variedad de funciones dependiendo del tipo de operacin o clculo que realizan. Estas funciones pueden ser matemticas y trigonomtricas, estadsticas, financieras, de texto, de fecha y hora, lgicas, de base de datos, de bsqueda y referencia y de informacin. Estructura de una funcin La sintaxis de cualquier funcin es:
11

=nombre_funcion(argumento1;argumento2;;argumentoN) Esto es: Signo igual (=). Nombre de la funcin. Parntesis de apertura. Argumentos de la funcin separados por puntos y comas. Parntesis de cierre. Insertar funcin Cuando cree una frmula que contenga una funcin, el cuadro de dilogo Insertar funcin le ayudar a introducir las funciones de la hoja de clculo. A medida que se introduzca una funcin en la frmula, el cuadro de dilogo Insertar funcin ir mostrando el nombre de la funcin, cada uno de sus argumentos, una descripcin de la funcin y de cada argumento, el resultado actual de la funcin y el resultado actual de toda la frmula. Para introducir una frmula, cuenta con dos opciones: Puede escribir la formula directamente en la celda que mostrar el resultado. Si el nombre de la formula es correcto Excel indicar los argumentos de la misma. Puede utilizar la ayuda de Excel (cuadro de dilogo Insertar funcin), este asistente mostrar el nombre de la funcin, los argumentos, ademas una descripcin de la funcin y de cada argumento.

FUNCIONES ANIDADAS

Excel permite el utilizar funciones como uno de los argumentos de otra funcin, esto se conoce como funciones anidadad. Por ejemplo: =SI(PROMEDIO(A1:A10)>50;SUMA(B1:B10);0) La siguiente funcin SI compara con 50 el resultado producido por la funcin PROMEDIO (funcin anidada), si es mayor a 50, invoca a la funcin SUMA (funcin anidada). Resultados vlidos Cuando se utiliza una funcin anidada como argumento, sta deber devolver el mismo tipo de valor que el que utilice el argumento. Lmites del nivel de anidamiento Una frmula puede contener como mximo siete niveles de funciones anidadas.
12

TABLAS DINAMICAS
Una tabla dinmica combina y compara en forma rpida grandes volmenes de datos. Permitiendo el anlisis multidimensional de los datos al girar las filas y las columnas creando diferentes formas de visualizar reportes con los datos de origen. Llendo desde lo general a lo especfico. Las tablas dinmica solo sirven para resumir los datos segn la consulta realizada, pero no permiten modelar dentro de la tabla. La opcin posible sera tomar los datos de la Tabla Dinmica Excel con la funcin IMPORTAR DATOS DINAMICOS e incorporarlos a nuestro modelo Excel.Las tablas dinmicas, tambin llamadas pivot tables, son herramientas para el anlisis de bases de datos (BD). Se encargan de resumir y ordenar la informacin contenida en la BD. Permiten analizar slo una porcin de la BD, es decir, con una BD con gran cantidad de campos o columnas, ayudan a visualizar nicamente la informacin relevante, con lo que el anlisis se torna ms sencillo. Las pivot tables estn basadas en dos conceptos: sumarizacin y rotacin. Sumarizacin Se refiere a la capacidad de resumir datos del mismo tipo y con los mismos atributos. Rotacin Es la posibilidad de colocar, quitar y/o mover la cantidad de campos seleccionados a cualquier posicin que se requiera, siempre y cuando estos campos estn contenidos en la base de datos.

MACROS
Una macro (del griego ; significa grande), abreviatura de macroinstruccin, es una serie de instrucciones que se almacenan para que se puedan ejecutar de forma secuencial mediante una sola llamada u orden de ejecucin. Dicho de otra forma, una macroinstruccin es una instruccin compleja, formada por otras instrucciones ms sencillas. Esto permite la automatizacin de tareas repetitivas. Las macros suelen almacenarse en el mbito del propio programa que las utiliza y se ejecutan pulsando una combinacin especial de teclas o un botn especialmente creado y asignado para tal efecto.

13

La diferencia entre una macroinstruccin y un programa es que en las macroinstrucciones la ejecucin es secuencial y no existe otro concepto del flujo de programa, y por tanto, no puede bifurcarse. MACROS DE APLICACIONES Las macros son grupos de instrucciones que tienen un seguimiento cronolgico usadas para economizar tareas; una macro no es ms que un conjunto de instrucciones tales como borrar archivo, aadir registro, etc., y que se almacenan en una ubicacin especial por ejemplo en Microsoft Access observamos que hay una zona para crear macros, una macro en Access trabajando para una base de datos podra ser un archivo que al llamarse desde otra instruccin: borrara los registros de un cliente o accionista, luego borrara ciertos registros en otras tablas, extraer su informacin de un log, entre otras cosas. MACROS EN PROGRAMCION Con el fin de evitar al programador la tediosa repeticin de partes idnticas de un programa, los ensambladores y compiladores cuentan con macroprocesadores que permiten definir una abreviatura para representar una parte de un programa y utilizar esa abreviatura cuantas veces sea necesario. Para utilizar una macro, primero hay que declararla. En la declaracin se establece el nombre que se le dar a la macro y el conjunto de instrucciones que representar. El programador escribir el nombre de la macro en cada uno de los lugares donde se requiera la aplicacin de las instrucciones por ella representadas. La declaracin se realiza una sola vez, pero la utilizacin o invocacin a la macro (macrollamada) puede hacerse cuantas veces sea necesario. La utilizacin de macros posibilita la reduccin del tamao del cdigo fuente, aunque el cdigo objeto tiende a ser mayor que cuando se utilizan funciones. Es tan comn el empleo de macroinstrucciones que se les considera como una extensin de los lenguajes. De manera similar se considera al procesador de macroinstrucciones o macroprocesador como una extensin del ensamblador o compilador utilizado. El macroprocesador se encarga, en una primera pasada, de registrar todas las declaraciones de macros y de rastrear el programa fuente para detectar todas las macrollamadas. En cada lugar donde encuentre una macro llamada, el macroprocesador har la sustitucin por las instrucciones correspondientes. A este proceso de sustitucin se le denomina

14

expansin de la macro. El macroprocesador elabora dos tablas para el manejo de las macros.y as tambin poderlos ejecutar Ejemplos de lenguaje de macros son Visual Basic for Applications o el lenguaje de macros integrado en Microsoft Excel. MACROS OCULTOS Los macros ocultos son rdenes complejas de tipo macro que se han declarado en el cdigo fuente pero que permanecen ocultas por motivos de seguridad, acceso restringido, etc.

APLICACIONES
Aplicaciones de Excel para grficos: Utilizar grficos como marcadores de datos Puede agregar imgenes a grficos incrustados y a hojas de grficos, as como utilizar imgenes como marcadores de datos.

Utilizar grficos como hipervnculos Puede activar los grficos y los botones de forma que acten como hipervnculos. Al hacer clic en el grfico, ir a una ubicacin determinada del documento o de la pgina Web actual, a un libro de Microsoft Excel o a una pgina Web distinta, o bien a un archivo creado con un programa diferente. Por ejemplo, puede insertar un grfico que represente el smbolo de las acciones de su organizacin y utilizarlo como hipervnculo para abrir una pgina que contenga los precios actuales de las acciones.
15

Grfico hipervinculado

Utilizar macros con grficos Puede asignar una macro, es decir, un programa automatizado de Visual Basic para Aplicaciones, para que se ejecute al hacer clic en un grfico o botn. Incluso, puede usar grficos en hojas de clculo con el fin de crear una interfaz para el programa automatizado. Por ejemplo, puede crear un grfico que represente una calculadora y asignarle una macro que busque y muestre el presupuesto mensual de la compaa.

Grfico con macro asignada

Crear imgenes de celdas, grficos y otros objetos Puede crear imgenes de los datos, de los grficos y de otros objetos de la hoja de clculo, y utilizarlos como ilustraciones en una hoja de clculo o en un documento creado en otro programa. Puede cambiar el tamao de una imagen, moverla y modificarla como si se tratase de cualquier otro objeto de dibujo.
16

Tambin puede crear una imagen vinculada de datos de una hoja de clculo de forma que la imagen se actualice cuando cambien los datos de origen.

CLASIFICACIN DEL SOFTWARE DE: SISTEMAS Y APLICACIN DEFICION DE SOFTWARE

Probablemente la definicin ms formal de software sea la siguiente: Es el conjunto de los programas de cmputo, procedimientos, reglas, documentacin y datos asociados que forman parte de las operaciones de un sistema de computacin. Extrado del estndar 729 del IEEE. Considerando esta definicin, el concepto de software va ms all de los programas de cmputo en sus distintos estados: cdigo fuente, binario o ejecutable; tambin su documentacin, datos a procesar e informacin de usuario forman parte del software: es decir, abarca todo lo intangible, todo lo "no fsico" relacionado. El trmino software fue usado por primera vez en este sentido por John W. Tukey en 1957. En las ciencias de la computacin y la ingeniera de software, el software es toda la informacin procesada por los sistemas informticos: programas y datos. El concepto de leer diferentes secuencias de instrucciones desde la memoria de un dispositivo para controlar los clculos fue introducido por Charles Babbage como parte de su mquina diferencial. La teora que forma la base de la mayor parte del software moderno fue propuesta por Alan Turing en su ensayo de 1936, "Los nmeros computables", con una aplicacin al problema de decisin. (http://es.wikipedia.org/wiki/Software, 2010) Si bien esta distincin es, en cierto modo, arbitraria, y a veces confusa, a los fines prcticos se puede clasificar al software en tres grandes tipos: Software de Sistema Software de Programacin Software de Aplicacin

SOFTWARE DE SISTEMA

Su objetivo es desvincular adecuadamente al usuario y al programador de los detalles de la computadora en particular que se use, aislndolo especialmente del procesamiento referido a las caractersticas internas de: 17

memoria, discos, puertos y dispositivos de comunicaciones, impresoras, pantallas, teclados, etc. El software de sistema le procura al usuario y programador adecuadas interfaces de alto nivel, herramientas y utilidades de apoyo que permiten su mantenimiento. Incluye entre otros:

Sistemas operativos Controladores de dispositivos Herramientas de diagnstico Herramientas de Correccin y Optimizacin Servidores Utilidades

SOFTWARE DE PROGRAMACIN

Es el conjunto de herramientas que permiten al programador desarrollar programas informticos, usando diferentes alternativas y lenguajes de programacin, de una manera prctica. Incluye entre otros: Editores de texto Compiladores Intrpretes Enlazadores Depuradores

Entornos de Desarrollo Integrados (IDE): Agrupan las anteriores herramientas, usualmente en un entorno visual, de forma tal que el programador no necesite introducir mltiples comandos para compilar, interpretar, depurar, etc. Habitualmente cuentan con una avanzada interfaz grfica de usuario (GUI). (http://es.wikipedia.org/wiki/Software, 2010)

SOFTWARE DE APLICACIN
Es aquel que permite a los usuarios llevar a cabo una o varias tareas especficas, en cualquier campo de actividad susceptible de ser automatizado o asistido, con especial nfasis en los negocios. Incluye entre otros: Aplicaciones para Control de sistemas y automatizacin industrial Aplicaciones ofimticas

18

Software educativo Software empresarial Bases de datos Telecomunicaciones (por ejemplo Internet y toda su estructura lgica) Videojuegos Software mdico Software de Clculo Numrico y simblico. Software de Diseo Asistido (CAD) Software de Control Numrico (CAM) (http://es.wikipedia.org/wiki/Software#Etimolog.C3.ADa, 2010)

ALGORITMO
Para el siglo I, los matemticos hindes desarrollaron un nuevo sistema de numeracin DECIMAL (0 AL 9), pero son los rabes quienes lo adoptan e introducen al Europa, y es aceptado en esta hasta el siglo XII a travs de la obra del matemtico Al-Jwarizmi, quien explica el mecanismo del sistema hind y que al traducirse al latn se le conoci como ALGORITMO. Sus trabajos de lgebra, aritmtica y tablas astronmicas adelantaron enormemente el pensamiento matemtico y fue el primero en utilizar la expresin AL JABR (de la que procede la palabra lgebra) con objetivos matemticos. Su trabajo con los algoritmos (trmino derivado de su nombre) introdujo el mtodo de clculo con la utilizacin de la numeracin arbiga y la notacin decimal. Un algoritmo es un mtodo para resolver un problema mediante una serie de pasos precisos, definidos y finitos.

LENGUAJES DE PROGRAMACIN
En informtica, cualquier lenguaje artificial que puede utilizarse para definir una secuencia de instrucciones para su procesamiento por una computadora. Existe, por lo menos, dos formas fundamentales desde las que pueden verse o clasificarse los lenguajes de programacin: Por su nivel Por sus principales aplicaciones

Adems, estas visiones estn condicionadas por la evolucin histrica por la que ha transcurrido el lenguaje. 19

Adems, hay cuatro niveles distintos de lenguajes de programacin.

LENGUAJES DECLARATIVOS

Son los ms parecidos al castellano o ingles en su potencia expresiva y funcionalidad y estn en el nivel ms alto respecto a los otros. Son fundamentalmente lenguajes de rdenes, dominados por sentencias que expresan lo que hay que hacer en vez de cmo hacerlo. Ejemplos de estos lenguajes son los lenguajes estadsticos como SAS y SPSS y los leguajes de bsqueda de base de datos. Estos lenguajes se desarrollaron con la idea de que los profesionales pudieran asimilar ms rpidamente el lenguaje y usarlo en su trabajo, sin necesidad de programadores o prcticas de programacin. (TUCKER, 1988)

LENGUAJE MAQUINA
Vistos a muy bajo nivel, los microprocesadores procesan exclusivamente seales electrnicas binarias. Dar una instruccin a un microprocesador supone en realidad enviar series de unos y ceros espaciadas en el tiempo de una forma determinada. Esta secuencia de seales se denomina cdigo mquina. (TUCKER, 1988) Los lenguajes maquina son aquellos cuyas instrucciones son directamente entendibles por la computadora y no necesitan traduccin posterior para que el microprocesador pueda ejecutar el programa. Las instrucciones en lenguaje maquina se expresan en trminos de la unidad de memoria ms pequea, el bit ( digito binario 0, o bien 1), en esencia una secuencia de bits que especifican lo operacin y las celdas de memoria implicadas en una operacin. Una serie de instrucciones en lenguaje mquina son: 00100000 00000000 00001001 11101000 00001001 00000001 00001001 00001110 00110000 11100011 11010000 00110011 Como se puede observar, estas instrucciones sern fciles de leer por la computadora y difciles por un programador, y viceversa. (JOYANES, Programacion en Turbo Pascal, 1991)

LENGUAJES DE BAJO NIVEL


Los lenguajes de bajo nivel permiten crear programas muy rpidos, pero que son a menudo difciles de aprender. Ms importante es el hecho de que los programas escritos en un bajo nivel son prcticamente especficos para cada procesador. Si se quiere ejecutar el programa en otra mquina con otra tecnologa, ser necesario reescribir el programa desde el principio.

20

Algunos ejemplos de estos lenguajes son los lenguajes ensambladores y los lenguajes maquina que son dependientes de la maquina. Cada tipo de maquina., tiene su propio lenguaje maquina distinto y su lenguaje ensamblador asociado (TUCKER, 1988). El lenguaje ensamblador es simplemente una representacin simblica del lenguaje maquina asociado, los cual permite una programacin menos tediosa que con los lenguajes del siguiente nivel. Sin embargo, es necesario un conocimiento de la arquitectura de la maquina, es decir conocer la forma en que se realizan las operaciones pero a nivel del procesador, y esto cambiaria de un microprocesador, por ejemplo de Intel a uno de Motorola, es decir para cada procesador se tendra que escribir un programa distinto.

LENGUAJES DE ALTO NIVEL


Por lo general se piensa que las computadoras son mquinas que realizan tareas de clculos o procesamiento de textos. La descripcin anterior es slo una forma muy esquemtica de ver una computadora. Hay un alto nivel de abstraccin entre lo que se pide a la computadora y lo que realmente comprende. Existe tambin una relacin compleja entre los lenguajes de alto nivel y el cdigo mquina. Los lenguajes de alto nivel son normalmente fciles de aprender porque estn formados por elementos de lenguajes naturales, como el ingls. Los lenguajes de alto nivel son los ms utilizados como lenguajes de programacin. Aunque no son fundamentalmente declarativos, estos lenguajes permiten que los algoritmos se expresen en un nivel y estilo de escritura fcilmente legible y comprensible por otros programadores. Ademas los lenguajes de alto nivel tienen normalmente la caracterisitica d e transportabilidad. Es decir, estan implementados sobre varias maquinas, de forma que un programa puede ser facilmente transportado (transferido ) de una maquina a otra sin una revision sustanci al. En este sentido se llaman independientes de la maquina. (TUCKER, 1988) Ejemplos de estos lenguajes de alto nivel son Pascal, APL, Fortran, Cobol, SNOBOL, List, PROLOG, C, C++, Visual Basic, Java, C#, etc., todos estos lenguajes estan especializados en diferentes areas como las ciencias y las matematicas, operaciones comerciales , la simulacion, la inteligencia artifical y la programacion de grandes sistemas.

21

DEFINICION DE PROGRAMA
Un programa informtico es un conjunto de instrucciones que una vez ejecutadas realizarn una o varias tareas en una computadora. Sin programas, estas mquinas no pueden funcionar correctamente (STAIR, 2003). Al conjunto general de programas, se le denomina software y as, se refiere al equipamiento lgico o soporte lgico de una computadora digital. Al programa tambin se le conoce generalmente como cdigo fuente lo escriben profesionales conocidos como programadores. CARACTERSTICAS DESEABLES DE UN PROGRAMA Los programas deben tener ciertas caractersticas para ser catalogados, como programas bien escritos. Estas caractersticas se pueden aplicar a todo tipo de programa, en cualquier lenguaje de programacin. Pueden aportarnos una serie de normas generales muy tiles para cuando comencemos a escribir nuestros propios programas. 1. Integridad: Esto se refiere a la correccin de los clculos. Toda ampliacin del programa no tendr sentido si los clculos no se realizan de forma correcta, pues la integridad de los clculos no se realizan de forma correcta, pues la integridad de los clculos es absolutamente necesaria en cualquier programa de computadora. La claridad: se refiere a la facilidad de lectura del programa en conjunto, poniendo nfasis en la lgica subyacente. Si el programa es claro, ser posible para otro programador. Tambin el autor seguir mejor su programa por un periodo largo de tiempo. Sencillez: L a claridad y correccin de un programa se suelen ver favorecidas con hacer las cosas de forma tan sencilla como sea posible, consistente con los objetivos del programa en su conjunto. La eficiencia: est relacionada con la velocidad de ejecucin y la utilizacin eficiente de la memoria. Este es uno de los objetivos importantes, aunque no se debe conseguir a expensas de la prdida de la claridad o la sencillez. Modularidad: los programas se pueden dividir en pequeas subtareas. Es una buena prctica de programacin implementar cada una de estas subtareas como un mdulo separado del programa. En C estos mdulos son las funciones. Generalidad: Normalmente queremos que un programa sea los ms general dentro de ciertos lmites. (BYRON, 1999)

2.

3.

4.

5.

6.

22

PROGRAMACION DEFINICIN DE PROGRAMACIN Programacin es la accin y efecto de programar. Este verbo tiene varios usos: se refiere a idear y ordenar las acciones que se realizarn en el marco de un proyecto; al anuncio de las partes que componen un acto o espectculo; a la preparacin de mquinas para que cumplan con una cierta tarea en un momento determinado; a la elaboracin de programas para la resolucin de problemas mediante computadoras; y a la preparacin de los datos necesarios para obtener una solucin de un problema a travs de una calculadora electrnica, por ejemplo. En la actualidad, la nocin de programacin se encuentra muy asociada a la programacin en informtica. Este es el proceso por el cual un programador escribe, en un lenguaje de programacin, el cdigo fuente de un software. Este cdigo le indicar al programa informtico qu tiene que hacer y cmo realizarlo. El programador se encarga de escribir, probar, depurar y mantener el cdigo fuente. En este sentido, los modelos de desarrollo de software se enmarcan en una disciplina de la informtica conocida como ingeniera de software. La programacin se realiza mediante el uso de algoritmos, que son secuencias finitas, ordenadas y no ambiguas de instrucciones que deben seguirse para resolver un problema. Una vez que el programa informtico ya se encuentra escrito, es necesario compilar el cdigo para que pueda ser ejecutado por la computadora. PARADIGMA DE PROGRAMACIN Los trminos algoritmos y datos han permanecido invariables a lo largo de la corta historia de la informtica/computacin, pero la interrelacin entre ellos s que ha variado y continuara hacindolo. Esta interrelacin se le conoce como paradigma de programacin (JOYANES, 2003) Los paradigmas de programacin son una propuesta tecnolgica que es adoptada por una comunidad de programadores cuyo ncleo central es incuestionable en cuanto a que unvocamente trata de resolver uno o varios problemas claramente delimitados. La resolucin de estos problemas debe suponer consecuentemente un avance significativo en al menos un parmetro que afecte a la ingeniera de software. Tiene una estrecha relacin con la formalizacin de determinados lenguajes en su momento de definicin (http://es.wikipedia.org/wiki/Paradigma_de_programaci%C3%B3n, 2010) A lo largo de esta corta historia han existido varios paradigmas, que van desde la programacion lineal, la programacion mudular, la programacion estructurada y actualmente la programacion orientada a objetos. La programacion lineal se remonta a las primeras computadoras, a los primeros lenguajes de programacion que se disearon para realizar tareas relativamente simples. La mayoria de estos programas eran cortos, menos de 100 lineas de codigo fuente. A medida que aumentaba la potencia de las computadoras, se requerian programas cada ves mas complejos. Los lenguajes de programacion primitivos eran inadecuados para esas tareas de programacion. Los lenguajes de programacion lineal como BASIC, COBOL y FORTRAN, no tenian la facilidad de reutilizar el codigo exitente de programas. De hecho, se duplicaban grandes segmentos 23

de codigo, en muchos programas, ademas de que controlar el programa era dificil, ya que este podria terminar por varias salidas, ademas de que todas las variables tenian que ser globales, y en consecuencia ocupaban una gran cantidad de memoria, ya que no existia el concepto de variable local. Programacion Modular, es una tecnica de dividir el gran problemas, en pequeos problemas, que son mas faciles de manejar, en un pricipio, la solucion a estos problemas era evidente: romper los programas grandes en componenetes mas pequeos que pueden ser construidos idependientemente, a continuacion combinarlos para formar el sistema completo.Este paradigma de programacion es el que mas ha influido en la contruccion de software durante muchos aos. El soporte mas elemental para la programacion modular llego con la aparicion de la subrutina a principios de la decada de los cincuenta. Las subrutinas proporcionan una division natural de las tareas: diferentes programadores escriben las diferentes rutinas, se necesita mucha disciplina para crear softwarebien estructurado. En la decada de los sesenta y pricipios de los setenta, se produjo la primera gran revolucion: la introduccion de la programacion estructurada. Los programas estructurados se organizan de acuerdo a las operaciones que ellos ejecutan. En esencia, el programa se descomponen en procedimientos y funciones individuales cada uno de los cuales se descompone en subprocedimientos hasta llegar al nivel de procedimiento individual sencillo. Un concepto muy imortante que introdujo la programacion estructurada es la: abstraccion. Esta se pude definir como la capacidad de examinar algo sin preocuparse de los detalles internos.

ALGORITMOS
Haciendo una retroalimentacin, recordemos que, un algoritmo es un mtodo para resolver un problema mediante una serie de pasos precisos, definidos y finitos. Un algoritmo debe producir un resultado en un tiempo finito. Los mtodos que utilizan los algoritmos de denominan mtodos algortmicos, en oposicin a los mtodos que utilizan a un juicio o interpretacin que se denominan mtodos heursticos. Caractersticas de un algoritmo: Preciso (indicar el orden de realizacin en cada paso) Definido (si se sigue dos veces, obtiene el mismo resultado cada vez) Finito (tiene fin: un nmero determinado de pasos)

Los mtodos algortmicos se pueden implementar en computadora, sin embargo los procesos heursticos no ha sido convertidos fcilmente en las computadoras. Ejemplos de algoritmos son: Instrucciones para montar una bicicleta Hacer una receta de cocina 24

Obtener el mximo comn divisor de dos nmeros

Los algoritmos se pueden expresarse por formulas, diagramas de flujo o N-S y Pseudocdigo. Esta ltima representacin es la ms utilizada en lenguajes estructurados.

FASES EN LA RESOLUCIN DE PROBLEMAS


El proceso de resolucin de un problema con una computadora conduce a la escritura de un programa y a su ejecucin en la misma. Aunque el proceso de disear programas es esencialmente un proceso creativo, se puede considerar una serie de fases o pasos comunes, que generalmente deben seguir todos los programadores. Las fases de resolucin de un problema con una computadora son: Anlisis del problema Diseo del Algoritmo Codificacin Compilacin y Ejecucin Verificacin (JOYANES, Programacion en Turbo Pascal, 1991) Depuracin Mantenimiento Documentacin (JOYANES, Programacion en Turbo Pascal, 1991)

ESTAS ETAPAS CONSTITUYEN EL CICLO DE VIDA DEL SOFTWARE


Anlisis: El problema se analiza teniendo presente las especificaciones de los requisitos dados por el cliente de la empresa o por la persona que encarga el programa Diseo: Una vez analizado el problema, se disea una solucin que conducir a un algoritmo que resuelva el problema. Codificacin (Implementacin): La solucin se escribe en la sintaxis del lenguaje de alto nivel (por ejemplo, C ) y se obtiene un programa Ejecucin, verificacin y depuracin: El programa se ejecuta, se comprueba rigurosamente y se eliminan todos los errores que puedan aparecer. Mantenimiento: El programa se actualiza y modifica, cada vez que sea necesario Las dos primeras fases nos conducen a un diseo detallado escrito en forma de algoritmo. Durante la tercera etapa (codificacin) se implementar el algoritmo en un cdigo escrito en lenguaje de alto nivel reflejando todas las ideas en las fases de anlisis y diseo. 25

La fase de compilacin y ejecucin, traduce y ejecuta el programa. En las fases de verificacin y depuracin el programador busca errores de las etapas anteriores y las elimina. Comprobarn que mientras ms tiempo se gaste en la fase de anlisis y diseo menos se gastar en la depuracin del programa. Por ltimo se debe de revisar la documentacin del programa.

ANLISIS DEL PROBLEMA


La primera fase de la resolucin de un problema con computadora es el anlisis del problema. Esta fase requiere una clara definicin, donde se contemple exactamente lo que debe hacer el programa y el resultado o solucin deseada. Dado que se busca una solucin por computadora, se precisan especificaciones detalladas de estrada y salida. (JOYANES, Programacion en Turbo Pascal, 1991)

Resolucin de un problema

Anlisis de Problema

Diseo del Algoritmo

Resolucin del problema con la computadora

Para poder definir un problema es conveniente responder a las siguientes preguntas: Qu entradas se requieren? (tipo y cantidad) Cul es la salida deseada? (tipo y cantidad) Qu mtodo produce la salida deseada?

REPRESENTACIN DE ALGORITMOS: GRAFICAS Y PSEUDOCDIGO HERRAMIENTAS DE PROGRAMACIN


Las dos herramientas ms utilizadas comnmente para disear algoritmos son: Diagramas de Flujo Pseudocdigo

26

DIAGRAMA DE FLUJO
Diagrama secuencial empleado en muchos campos para mostrar los procedimientos detallados que se deben seguir al realizar una tarea, como un proceso de fabricacin. Tambin se utilizan en la resolucin de problemas, como por ejemplo en algoritmos. Un diagrama de flujo (flowchart) es un representacin grafica de un algoritmo. Los smbolos utilizados han sido normalizados por el Instituto Norteamericano de Normalizacin (ANSI), y los ms frecuentemente empleados se muestran a continuacin: Los diagramas de flujo se usan normalmente para seguir la secuencia lgica de las acciones en el diseo de programas de computadoras. En computacin los algoritmos se suelen representar en forma grfica y entonces reciben el nombre de diagramas de flujo. Los diagramas de flujo constituyen un mtodo que se puede usar para la construccin de programas y, como toda metodologa, dispone de unos convenios y de una simbologa especfica para su desarrollo. Con esta simbologa se indica el principio y el fin de un diagrama de flujo.

INICIO

FIN

Este smbolo se utiliza para dar entrada a los datos a la computadora, ya sea por teclado o desde otra computadora.

Este smbolo se utiliza indicar la realizacin de rdenes ejecutivas, tales como asignacin de datos a una variable, clculos con una variable u operacin con datos.

Este smbolo se utiliza para dar salida a los resultados atreves de la pantalla o monitor

27

Con esta figura sealamos cuestiones o preguntas. No son sino la representacin de puntos dentro del diagrama de flujo, en los que se pueden tomar varias decisiones segn sea la respuesta a la pregunta que se hace o a la condicin que se impone.

Resp No PREGUNTA A

Resp B

Si

Resp A

Resp B

Resp C

Estos signos son fundamentales, e indican la direccin de los pasos que hay que seguir en cada caso.

Los diagramas de flujo no solo se utilizan en computacin, sino que se emplean en muchos procedimientos de solucin de problemas, aunque para ello no se requiera el uso de una computadora.

DISEO DEL ALGORITMO


En la etapa del anlisis del proceso de programacin se determina qu hace el programa. En la etapa de diseo se determina como hace el programa la tarea solicitada. Los mtodos ms eficaces para el proceso de diseo de algoritmos se basa en el conocido divide y vencers. Es decir, la solucin de un problema complejo se realiza dividiendo el problema en su problemas y a continuacin dividir estos subproblemas en otros de nivel ms bajo, hasta que pueda ser implementadas una solucin en la computadora.

28

Este mtodo se conoce tcnicamente como diseo descendente (TOP-DOWN) o modular. El proceso de romper el problema en cada etapa y expresar cada paso en forma ms detallada se denomina refinamiento sucesivo. Cada subprograma es resuelto mediante un modulo (subprograma) que tiene un solo punto de entrada y un solo punto de salida. Cualquier programa bien diseado consta de un programa principal (el modulo del nivel ms alto) que llama a subprogramas (mdulos de nivel ms bajo) que su vez pueden llamar a otros subprogramas. Los programas estructurados de esta forma se dice que tienen un modelo modular y el mtodo de ser planeados, codificados, comprobados y depurados independientemente (incluso por diferentes programadores) y a continuacin combinarlos entre s. El proceso implica la ejecucin de los siguientes pasos hasta que el programa se termine. Programar un modulo Comprobar el modulo Si es necesario, depurarle modulo Combinar el modulo con los mdulos anteriores

El proceso que convierte los resultados del anlisis del problema en un diseo modular con refinamiento sucesivos que permitan una posterior traduccin a un lenguaje se denomina diseo del algoritmo. El diseo del algoritmo es independiente del lenguaje de programacin en el que se vaya a codificar posteriormente. (JOYANES, Programacion en Turbo Pascal, 1991)

DISEO DE ALGORITMOS DE FUNCIONES PROGRAMACIN MODULAR

Es uno de los mtodos de diseo ms flexibles y potentes para mejorar la productividad de un programa. En programacin modular el programa se divide en mdulos (partes independientes), cada una de las cuales ejecuta una nica actividad o tarea y se codifica independientemente en otros mdulos. Cada uno de estos mdulos se analiza, codifican y ponen a punto por separado.
RAIZ

MOD 1

MOD 2

MOD 3

MOD 4

29

MOD 1.1

MOD 1.2

MOD 3.1

MOD 3.2

Los mdulos son independientes en el sentido en el que ningn modulo puede tener acceso directo a cualquier otro modulo excepto el modulo al que llama y sus propios submodulos. Sin embargo, los resultados producidos por un modulo pueden ser utilizados por cualquier otro modulo cuando se transfiere a ellos el control. Si est familiarizado con lenguajes de programacin como BASIC, FORTRAN, la programacin estructurada significa tambin programacin sin GOTO . El termino programacin estructurada se refiere a un conjunto de tcnicas que han ido evolucionando desde los primeros trabajos de Edsgar Dijkstra. Esta tcnica aumente considerablemente la productividad para escribir, verificar, depurar y mantener los programas. La programacin estructurada utiliza un numero limitado de estructuras de control que minimizan la complejidad de los programas y por consiguiente reducen los errores; hace los programas mas fciles de escribir, verificar, leer y mantener. Los programas deben estar dotados de una estructura.

Programacin Estructurada Los trminos Programacin modular, Programacin descendente y Programacin estructurada se introdujeron en la segunda mitad de la dcada de los 60s y a menudo sus trminos se utilizan como sinnimo aunque no significan lo mismo. La programacin estructurada es una teora de programacin que consiste en construir programas de fcil comprensin. La programacin estructurada es especialmente til, cuando se necesitan realizar correcciones o modificaciones despus de haber concluido un programa o aplicacin. Al haberse utilizado la programacin estructurada, es mucho ms sencillo entender la codificacin del programa, que se habr hecho en diferentes secciones. La programacin estructurada se basa en una metodologa de desarrollo de programas llamada refinamiento sucesivos: Se plantea una operacin como un todo y se divide en segmentos ms sencillos o de 30

menor complejidad. Una vez terminado todos los segmentos del programa, se procede a unificar las aplicaciones realizadas por el programador. Si se ha utilizado adecuadamente la programacin estructurada, esta integracin debe ser sencilla y no presentar problemas al integrar la misma , y de presentar algn problema, ser rpidamente detectable para su correccin. La programacin estructurada propone segregar los procesos en estructuras lo ms simple posibles, las cuales se conocen como secuencia, seleccin e interaccin. Ellas estn disponibles en todos los lenguajes modernos de programacin imperativa en forma de sentencias. Combinando esquemas sencillos se pueden llegar a construir sistemas amplios y complejos pero de fcil entendimiento. La programacin estructurada significa escribir un programa de acuerdo a las siguientes reglas: El programa tiene un diseo modular Los mdulos son diseados de modo descendente Cada modulo se codifica utilizando las tres estructuras de control base: secuencial, seleccin y repeticin.

Pseudocdigo El Pseudocdigo es una herramienta de programacin en la que las instrucciones se escriben en palabras similares al ingles o espaol, que facilitan tanto la escritura como la lectura de programas. En esencia, el pseudocdigo se puede definir como un lenguaje de especificaciones de algoritmos. Para la escritura de algoritmos por medio de Pseudocdigo se deben establecer ciertas operacin que llamaremos primitivas o elementales, ya que los algoritmos requieren de valores de entrada, salida y estos necesitan ser asignados por medio de un smbolo. Asignacin Para asignar valores llmese numricos, alfabticos y alfanumricos, el signo que adaptaremos en el signo de Igual ( = ).

Ejemplo: Area=20 Edad=30 Radio=2.5 Nombre=Elizabeth Carcter= S

31

En el primer ejemplo se asigna un valor numrico de 20 a una identificador llamado Area, el segundo se asigna un valor numrico de 30 a un identificador llamado Edad. Observe que se pueden asignar tanto valores entero como con punto decimal, observe el tercer ejemplo. Tambin se pueden asigna cadenas de carcter, esta deber estar indicada entre comillas, si se trata de un solo carcter se indica entre apostrofes, como se observa en los ejemplos.

Salida de Datos (Escribir) Donde se entiende como valores de salida, a datos de tipo numrico, alfabtico y alfanumrico, estos son requeridos para mostrar, por lo tanto la palabra que utilizaremos para realizar esto es Escribir

Escribir significa que se puede dar salida a un mensaje, este mensaje deber estar entre dobles comillas ; tambin se puede mostrar en la pantalla el contenido de una variable, el dispositivo de salida estndar es un CTR o Monitor. Ejemplo: Escribir Nombre Escribir Este es un mensaje en la Pantalla Escribir Area Escribir Edad Escribir Radio

La ultima de las operaciones es con la cual se le puede dar entrada a datos para que sean almacenados en la memoria de la computadora. Los datos de entrada se necesita para poder empezar las tareas, no necesariamente todos los algoritmos necesitan datos de entrada.

Donde se entiende como valores de entrada, a datos de tipo numrico, alfabtico y alfanumrico, estos son requeridos para poder empezar a realizar una tarea, por lo tanto la palabra que utilizaremos para realizar esto es Leer

Ejemplo: Leer Radio

32

La lnea anterior significa que el usuario por medio del teclado da entrada a un valor numrico, en este caso, pero puede ingresar valores alfabticos, alfanumricos. Ejemplo de un Algoritmo: Calcular la paga neta de un trabajador conociendo el nmero de horas trabajadas, la tarifa horaria y la tasa de impuestos Algoritmo: Leer Horas Leer Tarifa Leer Tasa PagaBruta = Horas * Tarifa Impuestos = PagaBruta * Tasa PagaNeta = PagaBruta impuestos Escribir PagaBruta Escribir Impuestos Escribir PagaNeta

Ejemplo de un Algoritmo: Escribir un algoritmo que permita realizar las 4 operaciones aritmticas bsicas, la suma, resta, divisin y multiplicacin los operando se tendrn que leer directamente del teclado cada vez que se quiera realizar una operacin. Escribir Se encuentra en la operacin suma Escribir Esta operacin permite realizar la suma de dos operandos a y b Escribir escribe el primer operando Leer Adda Escribir escribe el segundo operando Leer Addb Suma=Adda + Addb Escribir El resultado de la suma es: 33

Escribir Suma Escribir Se encuentra en la operacin resta Escribir Esta operacin permite realizar la resta de los operandos a y b Escribir Escribe el primer operando Leer SustraccionA Escribir Escribe el segundo operando Leer SustraccionB Resta =SustraccionA - SustraccionB Escribir El resultado de la resta es: Escribir Resta Escribir Se encuentra en la operacin multiplicacin Escribir Esta operacin permite realizar la multiplicacin de los operandos a y b Escribir Escribe el primer operando Leer MultA Escribir Escribe el segundo operando Leer MultB Multiplicacion =MultA * MultB Escribir el resultado de la multiplicacion es: Escribir Multiplicacion Escribir Se encuentra en la operacin divisin Escribir Esta operacin permite realizar la divisin de los operandos a y b Escribir Escribe el primer operando leer DivA Escribir Escribe el segundo operando Leer DivB Division =DivA / DivB

34

Escribir El resultado de la divisin es: , Escribir Division

Codificacin de un programa Codificacin es la escritura en un lenguaje de programacin de la representacin del algoritmo desarrollada en las etapas precedentes. Dado que el diseo de un algoritmo es independiente del lenguaje de programacin utilizado para su implementacin, el cdigo puede ser escrito con igual facilidad en un lenguaje o en otro.

Para realizar la conversin del algoritmo en programas se deben sustituir las palabras reservadas en espaol por sus homnimos en ingles, y las operaciones aritmticas indicadas en el lenguaje natural expresarlas en el lenguaje de programacin correspondiente.

Los lenguajes de programacin son herramientas que nos permiten crear programas y software. Una computadora funciona bajo control de un programa el cual debe estar almacenado en la unidad de memoria; tales como el disco duro.

Los lenguajes de programacin facilitan la tarea de programacin, ya que disponen de formas adecuadas que permiten ser ledas y escritas por personas, a su vez resultan independientes del modelo de computadora a utilizar.

Los lenguajes de programacin representan en forma simblica y en manera de un texto los cdigos que podrn ser ledos por una persona.

Los lenguajes de programacin son independientes de las computadoras a utilizar.Existen estrategias que permiten ejecutar en una computadora un programa realizado en un lenguaje de programacin simblico. Los procesadores del lenguaje son los programas que permiten el tratamiento de la informacin en forma de texto, representada en los lenguajes de programacin simblicos.

Hay lenguajes de programacin que utilizan compiladores. La ejecucin de un programa con compilador requiere de dos etapas.

35

Traducir el programa simblico cdigo maquina Ejecucin y procesamiento de los datos

Otros lenguajes de programacin utilizan un programa intrprete o traductor, el cual analiza directamente la descripcin simblica del programa fuente y realiza las instrucciones dadas.

Compilacin y ejecucin de un programa

Una vez que el algoritmo se ha convertido en un programa fuente, es preciso introducirlo en la memoria mediante el teclado y almacenarlo posteriormente en un disco. Esta operacin de realiza con un programa Editor, posteriormente el programa fuente se convierte en un archivo de programa que se guarda (graba) en disco.

El programa fuente debe ser traducido a lenguaje maquina, este proceso se realiza con el compilador y el sistema operativo que se encarga prcticamente de la compilacin.

Si tras la compilacin se presentan errores (errores de compilacin ) en el programa fuente, es preciso volver a editar el programa, corregir los errores y compilar de nuevo. Este proceso se repite hasta que no se producen errores, obteniendo el programa objeto que todava no es ejecutable directamente.

Suponiendo que no existen errores en el programa fuente, se debe instruir al sistema operativo para que realice la fase de montaje o enlace (Link), carga, del programa objeto con la libreras del programa del compilador. El proceso de montaje o enlace produce un programa ejecutable.

Verificacin y depuracin de un programa La verificacin o compilacin de un programa es el proceso de ejecucin de un programa con una amplia variedad de datos de entrada, llamadas datos de test o pruebas que determinaran si el programa tiene errores. Para realizar la verificacin se debe desarrollar una amplia gama de datos de test: Valores normales de entrada, valores extremos de entrada que compruebe los lmites del programa y valores de entrada que comprueben aspectos especiales del programa. La depuracin es el proceso de encontrar los errores del programa y corregir o eliminar dichos errores.

36

Cuando se ejecuta un programa, se pueden producir tres tipos de errores Errores de Compilacin: Se producen normalmente por un uso incorrecto de las reglas del lenguaje de programacin y suelen ser errores de sintaxis Errores de Ejecucin: Errores de compilacin se producen por instrucciones que la computadora puede comprender pero no ejecutar Ejemplos tpicos son: Divisin por Cero, Raz cuadrada de un nmero negativo. Errores Lgicos Se producen en la lgica del programa y la fuente del error suele ser el diseo del algoritmo. Este tipo de errores son los ms difciles de localizar ya que el programa puede funcionar y no producir errores de compilacin ni de ejecucin, y solo se advierten los errores por la obtencin de los resultados.

Documentacin y mantenimiento La documentacin de un problema consta de las descripciones de los pasos a dar en el proceso de resolucin de un problema. La importancia de la documentacin debe ser destacada por su decisiva influencia en el producto final. Programas pobremente documentados son difciles de leer, mas difciles depurar y casi imposible de mantener y modificar. La documentacin de un programa pude ser interna o externa. La documentacin interna es la contenida en lneas de comentarios. La documentacin externa incluye anlisis, diagrama de flujo y/o Pseudocdigo, manuales de usuario con instrucciones para ejecutar el programa y para interpretar los resultados Utilizando la tcnica de programacin estructurada top down Escribir un algoritmo que permita realizar las 4 operaciones aritmticas bsicas, la suma, resta, divisin y multiplicacin los operando se tendrn que leer directamente del teclado cada vez que se quiera realizar una operacin.

Definicin de variables globales Opcin : carcter Modulo Suma Definicin de variables AddA , AddB, Suma : Enteros Inicia Suma Escribir Se encuentra en la operacin Suma Escribir Esta operacin permite realizar la suma de dos operandos a y b 37

Escribir escribe el primer operando Leer AddA Escribir escribe el segundo operando Leer Addb Suma=AddA + AddB Escribir El resultado de la suma es: Escribir Suma Fin Modulo Suma

Modulo Resta Definicin de variables SustraccionA , SustraccionB, Resta : Enteros Inicia Resta Escribir Se encuentra en la operacin Resta Escribir Esta operacin permite realizar la suma de dos operandos a y b Escribir escribe el primer operando Leer SustraccionA Escribir escribe el segundo operando Leer SustraccionB Resta = SustraccionA - SustraccionB Escribir El resultado de la resta es: Escribir Resta Fin Modulo Resta

Modulo Division Definicin de variables

38

DivA , DivB: Enteros Divisin: Real Inicia Division Escribir Se encuentra en la operacin divisin Escribir Esta operacin permite realizar la divisin de dos operandos a y b Escribir Escribe el primer operando Leer DivA Escribir Escribe el segundo operando Leer DivB Division=DivA / DivB Escribir El resultado de la divisin es: Escribir Division Fin Modulo Division Modulo Multiplicacin Definicin de variables MultiA , MultiB, Multiplicacion: Enteros Inicia Multiplicacin Escribir Se encuentra en la operacin Multiplicacin Escribir Esta operacin permite realizar la Multiplicacin de dos operandos a y b Escribir Escribe el primer operando Leer MultiA Escribir Escribe el segundo operando Leer MultiB Multiplicacion=MultiA * MultiB Escribir El resultado de la multiplicacin es: Escribir Multiplicacion

39

Fin Modulo Multiplicacin Modulo Men Escribir Seleccin cual operacin quiere realizar Escribir Opcin 1 Suma Escribir Opcin 2 Resta Escribir Opcin 3 Multiplicacin Escribir Opcin 4 Divisin Fin Modulo Men Modulo Principal Llama Menu Leer Opcion Si Opcion==1 entonces Llama Suma Si Opcion==2 entonces Llama Resta

Si Opcion==3 entonces Llama Multiplicacion

Si Opcion==4 entonces Llama Division Fin

40

Introduccin al Lenguaje C

C es un lenguaje de programacin estructurado de propsito general. Sus instrucciones constan de trminos que se parecen a expresiones algebraicas, adems de ciertas palabras claves inglesas como if, else, for, do, while.

En este sentido C nos recuerda a otros lenguajes de programacin estructurada de alto nivel como PASCAL, FORTRAN tiene tambin algunas caractersticas adicionales que permiten su uso al nivel ms bajo, cubriendo as el vaco entre el lenguaje mquina y los lenguajes de alto nivel. Esta flexibilidad permite el uso de C en la programacin de Sistemas de aplicacin (programas que resuelven un complicado sistema de ecuaciones matemticas o un programa que escribe las facturas para sus clientes). Este lenguaje se caracteriza por hacer lo posible la redaccin del programa fuente muy conciso, debido en gran parte a que incluye un gran numero de operadores. Tienen un conjunto de instrucciones relativamente pequeas, aunque incluye nmeros, funciones de biblioteca que mejorarn las instrucciones bsicas. Existen compiladores para todos los tamaos de computadoras y los interpretes estn siendo cada vez ms comunes. Los compiladores son frecuentemente compactos, y generan programas objetos pequeos y eficientes en comparacin con otros lenguajes de alto nivel. Otra caracterstica de este lenguaje es que sus programas fuentes son altamente portables.

Historia del lenguaje C Este lenguaje fue desarrollado originalmente en los aos 70s por Dennis Ritchie en los Laboratorios Bell, actualmente AT&T. Es el resultado de dos lenguajes anteriores, en BCPL y B que se desarrollaron tambin en los Laboratorios Bell. Este lenguaje estuvo confinado por Bell hasta el ao de 1978, cuando Brian Kernighan y Ritchie publicaron una descripcin definitiva del lenguaje que se denomino K&R C. 41

Tras esta publicacin, los profesionales de las computadoras se impresionaron por muchas caractersticas deseables del C, comenzaron a promover el uso del lenguaje. Por la mitad de los aos 80s la popularidad del lenguaje se haba extendido a todas partes. Se haban escrito numerosos compiladores e intrpretes para todos los tamaos de computadoras y se haban generado muchas aplicaciones comerciales. En la mayora de las implementaciones comerciales diferan en algo a la definicin original de Kernighan y Ritchie. Esto habra creado diferentes incompatibilidades entre las diferentes implementaciones del lenguaje, disminuyendo su portabilidad que este intentaba proporcionar. Consecuentemente, el Instituto Nacional Americano de Estndares o ANSI comenz a trabajar en una definicin normalizada del lenguaje C llamada ANSI X3J11.

Tipos de datos elementales Existen en C distintos tipos de datos, cada uno de los cuales se pude encontrar representado de forma diferente en la computadora. A continuacin se presentar una lista de los datos bsicos y se dar una descripcin de ellos y de sus diferentes requerimientos de memoria.

TIPO DE DATO Int Char Float Double

DESCRIPCION Cantidad entera Carcter Flotante o real Num. De punto flotante de doble precisin

MEMORIA 2 bytes 1 bytes 4 bytes 8 bytes

TAREA: INVESTIGAR LOS RANGOS MXIMOS Y MNIMOS DE LOS TIPOS DE DATOS ELEMENTALES 42

CONJUNTO DE CARACTERES DE C

En la redaccin de programa de C se pueden utilizar para formar los elementos bsicos (constantes, variables, operadores y expresiones) las letras maysculas de la A a la Z, las minsculas de la a a la z, los dgitos del 0 al 9 y ciertos caracteres especiales que se presentan a continuacin:

! # % ^ &

* ( ) _

+ = ~ [ ]

\ | ; :

{ } , .

< > / ?

IDENTIFICADORES Y PALABRAS CLAVES

Los identificadores son nombres que se les da a varios elementos de un programa, como variables, constantes, funciones y arreglos (arrays). Un identificador est formado por letras y dgitos,en cualquier orden excepto en el primer carcter que debe ser una letra. Se puede utilizar maysculas y minsculas (no acentuadas) aunque es costumbre utilizar minsculas para la mayora de los identificadores pero no es un arreglo en s. No se pueden intercambiar maysculas y minsculas, esto es, una letra mayscula no es equivalente a la correspondiente en minscula. El carcter subrayado o guin bajo se pude incluir y es considerado como una letra. Se suele utilizar en medio de identificadores.

Los identificadores representan los objetos de un programa.

43

Constante Variables Tipos de datos Procedimientos Funciones Programas Campos de registro

No identificador es una secuencia de caracteres que pueden ser de cualquier longitud, pero solo los primeros 63 caracteres son significativos.

Reglas para forma identificadores :

Debe comenzar con una letra (A .. Z, a .. z ) No pude contener espacio en blanco. Letras, dgitos y caracteres subrayados ( _ ) Estn permitido despus del primer carcter No se puede utilizar una palabra reservada como identificador.

No se limita la longitud de los identificadores. Algunas implementaciones de C reconocen solo los primeros 8 caracteres, aunque la mayora de ellos reconoce ms de 31 caracteres. El estndar ANSI reconoce 31 caracteres.

44

Existen ciertas palabras denominadas palabras reservadas, que tiene en C un significado predefinido estndar. Las palabras claves solo se pueden utilizar para un propsito ya establecido; no se pueden utilizar como identificadores definidas por el programador.

Lista de palabras reservadas

Auto break case double Goto

continue default do for return

enum extern float register struct

If Int Long Static Void

short signed sizeof unisgned

switch typedef union const

volatile while char else

CONSTANTES

Este lenguaje tiene 4 tipos de constantes:

Constantes enteras

45

Constantes con punto flotante Constantes de carcter Constantes de cadenas de caracteres

Constantes enteras

Las constantes enteras y de punto flotante representan nmeros. Se les denomina generalmente como constantes de tipo numrico. Las siguientes reglas se pueden aplicar a todas las constantes numricas.

1. No se pueden incluir comas, ni espacios en blanco en las constantes. 2. Si se desea, la constante puede ir precedida de un signo menos. 3. El valor de una constante no puede exceder un lmite mximo y un mnimo especificado. CONSTANTES ENTERAS

Una constante entera es un nmero con un valor entero, consiste en una secuencia de dgitos. Estas constantes se pueden escribir en tres sistemas numricos diferentes: Decimal, Octal y Hexadecimal CONSTANTE CON PUNTO FLOTANTE

Una constante con punto flotante es un nmero en base 10 que contiene un punto decimal o un exponente (o ambos).

0 50000 2E-8

1 0.000743 1.6667E+9

0.2 12.3 .1212121212e+12

827.602 315.0066 3.1416

46

Constante de carcter

Una constante de carcter es un solo carcter encerrado entre comillas simples. Por ejemplo:

Las constantes de carcter tienen valores enteros determinados por el conjunto de caracteres particular de la computadora.

La mayora de las computadoras, y particularmente todas las PC utilizan el Cdigo Estndar Americano para el intercambio de informacin o ASCIII.

A continuacin se muestran constantes de carcter y su correspondiente valor en el Cdigo ASCII.

X 3 $ ,

120 51 36 32

Constantes de cadena de caracteres

47

Una constante de cadena de caracteres consta de cualquier nmero de caracteres consecutivos (o ninguno) encerrado entre comillas dobles. Ejemplo: HOLA Verde Mxico D.F.

48

VARIABLES Y ARRAYS

Una variable es un identificador que se utiliza para representar cierto tipo de informacin dentro de una determinada parte del programa. En su forma ms sencilla, una variable contendr un dato ms simple, esto es, una cantidad numrica o una constante de carcter. En algunas partes del programa se le asignara a la variable un determinado valor, este valor puede recuperase despus en el programa simplemente haciendo referencia al nombre de la variable.

A una variable se le puede asignar diferentes valores en distintas partes del programa, de esta forma la informacin representada por la variable puede cambiar durante la ejecucin del programa.

Sin embargo, el tipo de dato asociado a la variable no puede cambiar.

Ejemplo: float int char 2.5+2.5= 5.00 8 A (4 bytes) (2 bytes) 1 byte

int suma; Asignacin = Suma =10; Suma = 0.10 (mo se puede por ser dato flotante)

El operador coma nos ayuda a separar identificadores o variables del mismo tipo de dato.

49

Ejemplo: Para sumar dos valores.

int A, B, C; A= 5; B= 7; C= B + A;

Arrays (arreglos)

Un Arrays (arreglo) es una clase de variables que se utiliza con mucha frecuencia en C. Un array es un identificador que hace referencia a una coleccin de datos. Cada uno de estos datos es representado por su elemento del array. Los elementos individuales del array se distinguen unos de otros por el valor que se le asigne al ndice.

Ejemplo: Evelia char nombre[6];

v 1

e 2

l 3

i 4

a 5

50

Existen diferentes tipos de arreglos (Arreglos de enteros, arreglos de caracter, arreglos unidimensionales, arreglos bidimensionales y arreglos multidimensionales). Por ahora, solo estudiaremos el tipo arreglo de caracteres unidimensionales. Generalmente se utiliza para poder representar una cadena de caracteres, cada elemento del arreglo representa un caracter de la cadena. De esta forma se puede ver a los arreglos como un conjunto de ordenado de caracteres.

Ya que es unidimensional, solo tendr un solo ndice cuyo valor determina los elementos individuales del arreglo. Si el array contiene n elementos, el ndice ser una cantidad entera cuyos valores se encuentra entre 0 y n-1.

Ejemplo:

Supngase que se desea almacenar la cadena Veracruz que contiene 8 caracteres, por lo tanto el tamao de array ser de 9 caracteres (adicionando el fin de la cadena / cero).

De esta forma si se declara un arreglo llamado letras: char letras[9]; char letras[0]; representara la letra V, letras[1] representar la letra e, y as sucesivamente tal como se presentan a continuacin. Ntese que el ltimo elemento, letras[9] representa el carcter nulo que indica el fin de la cadena.

NUMERO DE ELEMENTOS

VALOR DEL NDICE

ELEMENTO DEL ARRAY

DATO CORRESPONDIENTE CARACTER DE LA CADENA

1 2 3 4 5 6 7 8 9

0 1 2 3 4 5 6 7 8

letras[0] letras[1] letras[2] letras[3] letras[4] letras[5] letras[6] letras[7] letras[8]

V e r a c r u z / 51

10

letras[9]

DECLARACIONES

Una declaracin asocia un tipo de dato determinado a un grupo de variable. Se deben declarar todas las variables antes de que aparezcan sentencias ejecutables.

Una declaracin consiste en un tipo de datos, seguido de uno o ms nombres de variables separado por una coma (,) y finalizando por un punto y coma (;).

Cada variable del array debe ser seguida por un par de corchetes [], con un entero positivo dentro de stos que especifica el tamao del arreglo (array) (nmero de elementos). Ejemplo:

int a, b, c; float raiz1, raiz2; char indicador, texto [80];

DE ESTA MANERA DECLARA A, B, C COMO VARIABLES ENTERAS, RAIZ1 Y RAIZ2 SON VARIABLES DE PUNTO FLOTANTE, INDICADOR , UNA VARIABLE DE TIPO CARCTER, TEXTO UN ARRAY DE TIPO CARCTER DE 80 ELEMENTOS.

Las variables de tipo entero se pueden declarar como enteros cortos para pequeas cantidades enteras, o enteros largos para cantidades enteras mayores.

Estas variables se pueden declarar escribiendo short int y long int, o simplemente short y long.

Ejemplos de declaraciones: 52

int numero; short cuadrado; long largo;

Tambin se puede declara una variable entera con signo, escribiendo unsigned. Las cantidades enteras sin signo pueden ser mayores que las cantidades enteras ordinarias (aproximadamente el doble), pero no pueden ser negativas.

Ejemplo:

unsigned int numero; unsigned long largo; unsigned short cuadrado;

EXPRESIONES

Una expresin representa una unidad de datos simples, tal como un nmero o un carcter.

La expresin puede consistir en una unidad simple, como una constante, una variable, un elemento de un array o una referencia o una funcin. Tambin puede consistir en alguna combinacin de tales identidades interconectadas por uno o ms operadores.

Las expresiones tambin pueden representar condiciones lgicas que son ciertas o falsas, y su equivalente en C es representado por los valores enteros 1 y 0 respectivamente.

Ejemplos de expresiones:

53

a+b a=b c= a +b

x<=y x==y ++i

Se forman con operadores aritmticos, relacionales, asignacin.

SENTENCIAS

Una sentencia hace que la computadora lleve a cabo alguna accin.

Existen 3 tipos de sentencias en C:

1. Sentencias de expresin 2. Sentencias compuestas 3. Sentencias de control

Una sentencia de expresin consiste en una sentencia de punto y coma seguida de un punto y coma. La ejecucin de la sentencia de expresin hace que se evale la sentencia de expresin.

A continuacin se muestran sentencias de expresin. Ejemplo: a=3; c=a+b; 54

++i; printf (area=&f ,area); --i;

Las dos primeras sentencias de expresin son de tipo asignacin. Cada una hace que el valor de la expresin a la derecha del signo (=) igual le sea asignado a la variable de la izquierda.

La tercera sentencia expresa una sentencia de tipo incremento, que hace que el valor de i sea incrementado en 1(no nada ms en 1, puede incrementar en los que se quiera).

La cuarta sentencia de expresin printf. Esta en una funcin de biblioteca de C estndar que visualiza informacin. En este caso visualiza el mensaje rea, seguido de un igual (=) y adelante del signo de igual aparece el valor actual de la variable rea.

Una sentencia compuesta est formada por varias sentencias individuales encerradas por un par de llaves ({ }). Las sentencias individuales pueden ser a la vez sentencias de expresiones compuestas y sentencias de control.

Por tanto, la sentencia compuesta hace posible incluir sentencias dentro de otras sentencias. A diferencia de una sentencia de expresin, una sentencia compuesta no acaba con un punto y coma. Ejemplo: float pi,Area,radio; { pi= 3.1416; Area = pi * radio*radio; area = pi * radio * radio; printf (El area es igual: %f, Area); }

55

Otro ejemplo:

{ base=10; altura=5; area= (base*altura)/2; printf (el rea del triangulo es=%f, area); }

Las sentencias de control se utilizan para seguir ciertas acciones especiales en el programa, tales como comprobaciones lgicas, ciclos o bucles y ramificaciones. Muchas sentencias de control requieren de otras sentencias que se encuentren incluidas en ellas como se ilustra a continuacin:

Ejemplo: cont=0; while (cont<=10) { print f(x= ); scanf(%i, x); suma=suma+x; cont++; }

56

OPERADORES Y EXPRESIONES

Como hemos visto anteriormente, las variables, elementos de arrays y referencias a funciones se pueden unir con varios operadores para formar expresiones. El lenguaje C posee un gran nmero de operadores que se pueden agrupar en diferentes categoras.

Los datos sobre los que actan los operadores se denominan operandos.

Operadores aritmticos

Existen 5 operadores aritmticos en C.

OPERADOR

PROPSITO

+ * / %

Suma Resta Multiplicacin Divisin Residuo de una divisin

57

Nota: El operador % es a veces denominado operador modulo.

No existe operador exponencial sin embargo hay una funcin de biblioteca llamada pow.

Los operadores sobre los que actan los operadores deben representar valores numricos. Por lo tanto los operandos deben ser cantidades enteras, de punto flotante o carcter (NOTA: Recuerde que las constantes de carcter representan valores enteros de cdigo ASCII). El operador modulo o resto requiere que los dos operandos sean enteros y el segundo operador no nulo. Anlogamente el operador divisin requiere que el segundo operando no sea cero o nulo.

La divisin de una cantidad entera por otra, se le denomina divisin entera. Esta operacin siempre tiene como resultado el cociente entero truncado.

Por otra parte, si una operacin de divisin se lleva a cabo con dos nmeros de punto flotante, o con un nmero de punto flotante y un entero, el resultado ser un cociente de punto flotante.

Ejemplo:

100/5=20 100/2.5=4.25

Operadores relacionales y lgicos

58

En lenguaje C existen 4 tipos de operadores relacionales:

Operador < > >= <=

Significado Menor Mayor Mayor o igual Menor o igual

Estos operadores se encuentran dentro del mismo grupo de precedencia, que es menor que el de los operadores aritmticos. La asociatividad de estos operadores es de izquierda a derecha.

Muy asociados a los operadores relacionales, existen dos operadores de igualdad.

Operadores de igualdad

Operador == Igual

Significado

!=

Diferente

59

Ejemplo:

a) 5 == 10

El operando que est al lado izquierdo del operador es igual al operando del lado derecho del operador.

b) 5 ! = 5

El operando del lado izquierdo del operador sea diferente del operando que se encuentra del lado derecho del operador.

c) 5 ! = 3

verdadero

Estos seis operadores se utilizan para formar expresiones lgicas que representan condiciones que pueden ser ciertas o falsas.

Expresin: I=1 J= 2 K= 3

Tarea

1 i<J 1<2

(J+K) > (I+5) 5>6

(K!=3) J==2

60

(1+J) >= K

(2+3) > (1+5)

2==2

Operadores de asignacin

Los operadores de asignacin se utilizan para formar expresiones, en las que se asigna un valor de una expresin a un identificador.

El operador ms usado es el operador (=). Las expresiones de asignacin que operador se utiliza de la siguiente forma: Identificador = expresin;

usan este

En donde identificador representa generalmente una variable y la expresin constante, una variable o una expresin compleja.

Ejemplo

x=3; x=y; Delta=2.10; c= a+b;

El lenguaje C permite una asignacin mltiple y se escribe de la siguiente forma:

Identificador1 = identificador2 = expresin;

Ejemplo: 61

I = J = 10; Z = K = Y =5;

Funciones de biblioteca

El lenguaje C se acompaa de ciertos nmeros de funciones de biblioteca que realizan varias operaciones y calculo de uso frecuentes. Estas funciones de biblioteca no son parte de lenguaje C pero, las incluyen en todas las implementaciones del lenguaje. Algunos funciones devuelven algn dato, otras indican cuando una condicin determinada es cierto o falsa devolviendo un cero o un uno (0.1).

Por Ejemplo

Existen para realizar operaciones de entrada/salida (leer y escribir caracteres y nmeros, abrir/cerrar archivos), funciones para realizar operaciones sobre caracteres (convertir maysculas a minsculas), funciones para realizar clculos matemticos (evaluaciones de funciones trigonomtricas, logartmicas y exponenciales, valor absoluto y raz cuadrada).

Las funciones de biblioteca de propsitos relacionados se suelen encontrar agrupadas en programas objeto en archivos de biblioteca separados. Estos archivos se proporcionan como parte de cada compilador de C.

62

Un conjunto de funciones de biblioteca incluye un gran nmero de funciones comunes para la mayora de los compiladores de C, y la extensin de estos programas de biblioteca tienen extensin h.

En math.h se tiene acceso para encontrar el valor absoluto, logaritmo, etc., va a tratar de agrupar en caracteres.

Funciones de biblioteca de uso comn

Function

tipo

propsito

abs (i)

int

Devolver el valor absoluto de i.

ceil (d)

double

Redondear por exceso al entero ms prximo (el entero ms pequeo, sea mayor o igual a d).

cos (d)

double

Devolver el coseno de d.

cosh (d)

double

Devolver el coseno hiperblico de d.

exp (d)

double

Elevar d a la potencia d (e=2.71818... el la base del sistema logaritmo natural (neperiano).

fabs (d)

double

Devolver el valor absoluto de d.

floor (d)

double

Redondear por defecto al entero ms prximo (el entero ms grande que no sea mayor que).

fmod (d1, d2)

double

Devolver el resto de d1/d2, con el mismo signo que d1.

getchar ( )

int

Introduccin a un carcter de dispositivo de entrada estndar

log (d)

double

Devolver el logaritmo natural de d.

pow (d1,d2)

double

Devuelve d1 elevado a la potencia d2.

63

printf (...)

int

Mandar datos al dispositivo de salida estndar

putchar (c)

int

Mandar un carcter al dispositivo de salida estndar.

rand ( )

int

Devuelve un entero positivo aleatorio

sin (d)

double

Devolver el seno de d.

sqrt (d)

double

Devolver la raz cuadrada de d.

srand (u)

void

Inicializar el generador de nmeros aleatorios

scand (...)

int

Introducir datos del dispositivo de entrada estndar.

tan (d)

double

Devuelve la tangente de d.

toascii (c)

int

Convertir el valor del argumento a ASCII.

tolower (c)

int

Convertir una letra a minscula.

toupper (c)

int

Convertir una letra mayscula

Entradas y salidas de datos

64

Se puede acceder a una funcin de entrada/salida desde cualquier sitio del programa, con simplemente escribiendo el nombre de la funcin, seguidos de una serie de argumentos (encerrados entre parntesis).

Los argumentos representan los datos que les son enviados a la funcin. Algunas funciones de E/S no necesitan argumentos, pero deben aparecer los parntesis vacos.

Los nombres de estas funciones que devuelven datos aparecen dentro de expresiones, como si cada referencia y una funcin fuese una variable ordinaria (por ejemplo: c=getch( ); ); o se puede referenciar como sentencias separadas (por ejemplo: scanf(...); ).

La mayora de las versiones de C incluyen una coleccin de archivos de cabecera que proporcionan informacin necesaria por ejemplo: (constantes simblicas) para distintas bibliotecas y/o cabeceras.

Estos archivos se incluyen en un programa mediante la sentencia include al comienzo de cada programa, como norma general, el archivo de cabecera para la E/S estndar se llama stdio.h.

Entrada de un carcter

Mediante la funcin getchar ( ); se puede conseguir la entrada de un carcter o ms.

La funcin del getchar(); es parte de la biblioteca de C de entrada/ salida estndar ( stdio.h). Esta funcin devuelve un carcter ledo de dispositivo de entrada (teclado). Esta funcin no requiere argumentos, aunque es necesario un par de parntesis vacos siga a la palabra getchar.

Por ejemplo: char C; C= getch ( ); C=getchar();

65

En la primera sentencia se declara una variable de tipo carcter llamada C. En la segunda sentencia se hace que se lea el dispositivo de entrada estndar un carcter y entonces se lo asigne a C.

Existe otra funcin para leer un carcter de teclado sin que este carcter a ser tecleado sea visible para el usuario que se llama getch();

Salida de un carcter

La funcin putchar( ); visualiza un carcter, esta funcin es complementaria a la entrada de un carcter (getchar). ambas funciones son parte de la biblioteca E/S estndar.

Por lo tanto la funcin putchar( ); transmite un carcter a un dispositivo de salida estndar (monitor). El carcter se transmite en una variable de tipo carcter.

Se debe proporcionar como argumento de la funcin encerrado entre parntesis seguido de la palabra putchar( ).

Por ejemplo:

C= getch( ); putchar(C);

Introduccin de datos (Funcin scanf)

Se pueden introducir datos a la computadora procedentes de dispositivos de entrada estndar mediante la funcin de biblioteca scanf.

66

Esta funcin se puede utilizar para introducir a cualquier introduccin de valores numricos, caracteres y cadenas de caracteres. Esta funcin de vuelve un nmero que se a conseguido introducir correctamente.

En trminos generales la funcin scanf se escribe:

scanf(cadena de control, ARG1, ARG2. ARG3..,ARGN);

En donde la cadena de control hace referencias a una cadena de carcter que contiene informacin sobre el formato de la entrada ARG1, ARG2. ARG3..,ARGN son argumentos que representan los datos de entrada los argumentos pueden ser constantes, variables simples o nombres de arrays o expresiones ms complicadas. En contraste con la funcin scanf, los argumentos de la funcin printf no representa direccin de memoria y por lo tanto no son precedidos del signo &. La cadena de control est compuesta por grupos de caracteres, con un grupo de caracteres por cada dato de salida. Cada grupo de carcter que debe de comenzar con un signo de % (porcentaje). En su forma ms sencilla, un grupo de caracteres consistir en el signo de porcentaje seguido de un carcter de conversin que indique el tipo de dato correspondiente y ambos caracteres irn encerrados entre comillas dobles.

CARCTER DE CONVERSION

SIGNIFICADO

c d

El dato es visualizado como un entero decimal El dato es visualizado como un entero


67

e g

El dato es visualizado con punto flotante con exponente El dato es visualizado con un valor de punto flotante utilizando la conversin tipo e o p tipo p segn sea. El dato es visualizado como un entero decimal con signo. El dato es visualizado como entero octal. El dato es visualizado como cadena de El dato es visualizado como un entero decimal sin signo.

i o s caracteres. u

En donde cadena de control hace referencia a una cadena de caracteres que contiene cierta informacin sobre el formato de los datos y ARG1, ARG2 son argumentos que representan a los datos.

En la cadena de control se incluyen grupos individuales de caracteres por un grupo de caracteres por cada dato de entrada con grupo de caracteres comienza con un signo de porcentaje (%). En su forma ms sencilla, un grupo de caracteres estar formado por el signo de porcentaje, seguido de un carcter de conversin que indica el tipo correspondiente de dato asociado al identificador. En la siguiente tabla se muestran los caracteres de conversin de uso ms frecuente.

68

CARCTER SIGNIFICADO

DE

CONVERSION

c d e f g

el dato es visualizado en un carcter. el dato es visualizado como un entero decimal con signo el dato es un valor de punto flotante. el dato es un valor de tipo flotante. el dato es un valor de punto flotante.
69

h i Hexadecimal. o s u x

el dato es un entero corto. el dato es un entero decimal, octal o

el dato es un entero octal. el dato es una cadena de caracteres seguida de un carcter de especial (\ ). el dato es un entero decimal y sin signo. el dato es un entero hexadecimal.

Este carcter de conversin se le va a agregar a su lado izquierdo el carcter de porcentaje y ambos se encerraran entre comillas dobles.

Ejemplo:

char cadena [10]; int numentero; short corto; float flotante; scanf (%s, & cadena); scanf (%i, &numentero); scanf (%i, &corto); scanf (%f, &flotante);
70

Salida de datos (printf)

Se pueden escribir datos en el dispositivo de salida (monitor) utilizando la funcin de biblioteca printf. Se puede utilizar esta expresin para escribir cualquier combinacin de valores numricos, caracteres sueltos y cadena de caracteres. Esta funcin es anloga a scanf, con la diferencia de que su propsito es visualizar datos en lugar de introducirlos a la computadora. Por lo tanto la funcin printf se ocupa de transportar todos los datos a la memoria al dispositivo de salida estndar, en trminos generales la funcin printf se escribe de la siguiente forma:

printf (cadena de control, ARG1, ARG2....ARGN)

En donde la cadena de control hace referencias a una cadena de carcter que contiene informacin sobre el formato de la salida ARG1, ARG2. ARG3..,ARGN son argumentos que representan los datos de salida los argumentos pueden ser constantes, variables simples o nombres de arrays o expresiones ms complicadas. En contraste con la funcin scanf, los argumentos de la funcin printf no representa direccin de memoria y por lo tanto no son precedidos del signo &. La cadena de control est compuesta por grupos de caracteres, con un grupo de caracteres por cada dato de salida. Cada grupo de carcter que debe de comenzar con un signo de % (porcentaje). En su forma ms sencilla, un grupo de caracteres consistir en el signo de porcentaje seguido de un carcter de conversin que indique el tipo de dato correspondiente y ambos caracteres irn encerrados entre comillas dobles.
71

CARCTER DE CONVERSION

SIGNIFICADO

c d e f g h i hexdecimal. o s u

el dato es visualizado en un carcter. el dato es visualizado como un entero decimal con signo el dato es un valor de punto flotante. el dato es un valor de tipo flotante. el dato es un valor de punto flotante. el dato es un entero corto. el dato es un entero decimal, octal o

el dato es un entero octal. el dato es una cadena de caracteres seguida de un carcter de especial (\ ). el dato es un entero decimal y sin signo.

Ejemplo:

printf (%s, cadena); printf (%i, numentero); printf (%h, corto); printf (%f, flotante);
72

Funciones gets y puts

gets : caragr una cadena/entrada puts : poner una cadena/salida.

Son anlogas porque stos manejan cadenas. Se dispone de un cierto nmero de funciones de biblioteca que permiten diferenciar formas de transferencia de datos hacia adentro o fuera de la computadora, para transferencia de cadenas de carcter entre la computadora los dispositivos de E/S estndar utilizamos las funciones gets, que permite cargar una cadena en una variable tipo cadena de carcter, sta funcin en comparacin con la funcin scanf f no se establece la cadena de control ya que, la funcin gets es nicamente capaz de leer cadenas de caracteres.

Y la funcin puts manda un dispositivo de entrada/salida estndar(monitor) este tampoco necesita la cadena de control y que nicamente ser capaz de imprimir en pantalla cadenas de caracteres.

Ejemplos:

#include <stdio.h> #include <conio.h>

void main ( )

printf(Dame tu nombre........:); gets(cadena); printf(Mucho gusto en conocerte......:);

73

puts(cadena);

Salida del Programa

Dame tu nombre.........: Armando (Enter) Mucho gusto en conocerte.......: Armando

Programa que da la temperatura con un printf y un gets

#include <stdio.h> #include <conio.h>

void main ( )

printf(La temperatura es de 58 ........:); gets(cadena); printf(La temperatura est a 58........:); puts(cadena); printf (Hace demasiado calor.);

Salida del Programa

La temperatura es de 58........: Cd. Valles (enter) 74

La temperatura est a 58........: Hace demasiado calor.

Programa que da la bienvenida;

#include <stdio.h> #include <conio.h>

void main ( )

printf(Bienvenido..........:); gets(cadena); printf(Escribe tu programa:); puts(cadena);

Salida del Programa

Bienvenido.........: al Lenguaje C Escribe tu programa: a lenguaje

75

Programa que imprime tres nombres e imprime la palabra bienvenido al curso #include <stdio.h> #include <string.h> #include <conio.h> void main() { clrscr (); char nombre1 [15]; char nombre2 [15]; char nombre3 [15]; char curso [20]; printf("Dame el primer nombre:"); printf ("%s", nombre1); gets (nombre1); printf ("Dame el segundo nombre:"); gets (nombre2); printf ("Dame el tercer nombre:"); gets (nombre3); printf ("Bienvenidos al Curso........"); puts (curso); printf ("%s", nombre1); 76

printf ("%s", nombre2); printf ("%s", nombre3); }

Programa que pide la edad. #include <stdio.h> #include <conio.h> #include <conio.h> void main ( ) { short Edad; printf ("Dame tu edad"); scanf("%i",&Edad); printf ("Que bien que tengas:"); printf("%i",Edad); }

77

NO ESTA CORREGIDO GRACIAS

Programa que pide 2 calificaciones.

#include <stdio.h> #include <conio.h> void main( )

{ char calificacion1 [15]; char calificacion2 [15];

{ printf (Dame la primer calificacion:); gets (calificacion1); printf (Dame la calificacion dos:); gets (calificacion2); 78

printf (Supera ese:); puts (calificacion1); puts (calificacion2); }

Dame la primer calificacion: 6 Dame la calificaion dos: 7 Supere ese 6, 7

PLANIFICACION DE UN PROGRAMA EN C

Es esencial que se en encuentre trazada completamente la estructura del programa antes de que comience realmente la codificacin del programaen s. De esta forma el programador se pude concentrar en la lgica del programa sin perderse en los detalles sintcticos de las instrucciones sueltas.

Una vez que se ha fijado claramente la estrategia del programa en conjunto, podemos pasar a concentrar los detalles sintcticos dependientes del programa.

Esta forma de programar se le suele denominar top-down, que significa descendiente o analtico.

REDACCIN DE UN PROGRAMA EN C

Una vez determinada la estructura general del programa y escrito en pseudocdigo, puede pasar al desarrollo detallado del programa. En este momento hemos de conseguir traducir cada paso del esquema o porcin del pseudocdigo a una instruccin equivalente en C.

La redaccin de un programa completo en C es ms que disponer las declaraciones y sentencias adecuadas en el orden correcto. Se deben prestar atencin a la intuicin de cierto 79

elementos que aumentan la legibilidad del programa y la salida resultada. En estos elementos se incluye la secuencia lgica de la sentencia, el adentramiento adecuado de estas, del uso de comentarios y la generacin de la salida rotulada en forma apropiada.

INTRODUCCIN DE UN PROGRAMA A UNA COMPUTADORA

Una vez que se ha escrito el programa se debe introducir a la computadora antes de que pueda ser compilado y ejecutado. Esto se puede hacer mediante un editor de texto.

El medio ambiente de trabajo de C cuenta con un editor de trabajo que permite las operaciones de edicin, insercin, borrado, copiar, que se lleven a cabo en determinadas lneas del archivo de texto.

El editor de programas de C asigna como extensin al programa.cpp por ejemplo: interes.ccp, una vez grabado el programa fuente estar listo para ser procesado por el compilador de C.

MENSAJES DE ERROR

Los errores de programacin suelen permanecer ocultos hasta que se hace una compilacin y ejecucin del programa. Sin embargo una vez que se solicita la orden de compilar o correr(run) rpidamente se har patente su presencia, ya que estos errores impedirn que el programa se compile o ejecute con xito. Algunos errores particularmente frecuentes de este tipo son variables impropiamente declaradas, referencia una variable no declarada, o puntuacin incorrecta, a este tipo de errores se les denomina sintcticos (gramaticales).

La mayora de los compiladores de C generan mensajes cuando se detectan errores sintcticos durante el proceso de la compilacin.

Ejemplo: { int numero; 80

print (Dame el numero) gets (cadena); scanf (%i, numero); printf (%s, numero); }

Programa que imprime El curso se dar en lenguaje C

#include <stdio.h> #include <string.h> #include <conio.h>

void main( )

{ clrscr( ); char cadena [15]; char curso [25]; { printf ("Bienvenido al Curso de:"); printf ("%s", cadena); gets (cadena); printf ("El curso se dar en Lenguaje C."); gets (curso); } }

81

Programa que calcula el rea de la circunferencia

#include <stdio.h> #include <conio.h> #include <math.h>

/*Programa que calcula el rea de una circunferencia*/

void main ( )

{ clrscr (); int radio=0; float operacion= 0; { printf ("Escribe el radio de la circunferencia"); scanf ("%f", & radio); operacion= 3.1416 * (radio*radio); printf ("El area de la circunferencia es:"); printf ("%f", operacion); } }

Programa que calcula el rea de un tringulo.

#include <stdio.h>

82

#include <conio.h> #include <math.h>

/* Programa que calcula el rea de un tringulo */

void main ( )

{ clrscr (); int base = 0; int altura = 0; int operacion = 0;

{ printf ("Dame la base del tringulo:"); scanf ("%i", & base); printf ("Dame la altura del tringulo:"); scanf ("%i", & altura); operacion = (base*altura)/2; printf ("El rea del tringulo es:"); printf ("%i", operacion); scanf ("%i", & operacion); } }

Programa que calcula el rea del rombo.

#include <stdio.h>

83

#include <conio.h> #include <math.h>

/* Programa que calcula el rea de un rombo */

void main ( )

{ clrscr ( ); int base = 0; int altura = 0; float operacion = 0;

{ printf ("Escribe la base del rombo:"); scanf ("%i", & base); printf ("Dame la altura del rombo:"); scanf ("%i", & altura); operacion = (base*altura); printf ("El rea del rombo es:"); printf ("%f", operacion); getch ( ); } }

Programa que calcula el rea del trapecio ;

84

#include <stdio.h> #include <conio.h>

/*Programa que calcula el rea de un trapaecio*/

void main ( )

{ clrscr (); int lonlaop= 0; int lonbas= 0; int lonalt= 0; int operacion = 0; { printf ("Dame el valor de la longitud del lado opuesto:"); scanf ("%i", & lonlaop); printf ("Escribe la longitud de la base:"); scanf ("%i", & lonbas); printf ("Escribe la longitud de la altura del trapecio:"); scanf ("%i", & lonalt); printf ("El rea del trapecio es:"); operacion = ((lonlaop + lonbas)* lonalt) /2; printf ("%i", operacion); scanf ("%i", & operacion); } }

85

Programa que calcula el rea y volumen de una esfera utilizando las siguientes frmulas:

V= 4pi.r3/3 A= 4pi.r2

#include <stdio.h> #include <string.h> #include <conio.h>

/* Programa que calcula el volumen y el rea de una esfera*/

void main ()

{ clrscr (); int radio = 0; float operacion1= 0; float operacion2= 0; { printf ("Escribe el valor del radio:"); scanf ("%i", & radio); operacion1= ((4*3.1416)*radio*radio*radio)/3; printf ("El volumen de la esfera es:"); printf ("%f", operacion1); scanf ("%f", & operacion1); operacion2= (4*3.1416*radio*radio); printf ("El area de la esfera es:"); printf ("%f", operacion2);

86

scanf ("%f", & operacion2); } }

OPERADORES

Adems de los operadores relacionales y de igualdad se posee dos operadores lgicos (denominados tambien conectivas lgicas)

OPERADOR

SIGNIFICADO

&& ||

Y O

SENTENCIAS DE CONTROL

En los ejercicios de los captulos anteriores, las instrucciones se ejecutaban solamente una vez. Los programas que suelen relatar en la prctica son tan sencillos como estos, ya que los que hemos visto no incluye ningn elemento de control o sentencia de control lgicos. En particular en estos programas no aparecen comprobaciones de condiciones que sean ciertas o falsas ni aparece la ejecucin repetida de un grupo individual de instrucciones de formas selectiva. Por ejemplo: muchos programas prefieren que se efecten una comprobacin lgica en algn punto del programa.

A continuacin se realizara alguna accin que depender del resultado de la evaluacin lgica. Esto se conoce como: ejecucin condicional. Existe tambin una clase especial de ejecucin llamada seleccin, en la que se selecciona un grupo de instrucciones de entre varios grupos. Adems los programas pueden requerir que un grupo de instrucciones se ejecuten 87

repetidamente hasta que se satisfaga alguna condicin lgica. Esto se le conoce como bucle o ciclo. A veces se conoce por adelantado el nmero de repeticiones y en otras el nmero de repeticiones continuas hasta que se satisface la condicin lgica, ya sea cierta o falsa.

Ejemplo:

#include <stdio.h> #include <string.h> #include <conio.h>

void main ( )

{ int y = 10; char nombre [10]; int veces = 0; clrscr ( ); printf (Dame tu nombre:); gets (nombre); while (veces <=5) { gotoxy (10,y); printf (%s, nombre); /* veces = veces + 1;*/ veces ++; y++; } }

88

EJECUCIN CONDICIONAL

LA INSTRUCCIN if-else

Esta instruccin se utiliza para realizar un ts lgico, (una evaluacin lgica) y a continuacin llevar a cabo una de las dos alternativas posibles de accin, dependiendo del resultado de la evaluacin lgica.

La parte del else es opcional. Por lo tanto, las instrucciones se pueden escribir en su formato mas simple if (<expresin>) , accin A ( );

#include <stdio.h> #include <conio.h>

/*Programa que calcula el rea del rombo y trapecio*/

void main ( )

{ clrscr(); char car; gotoxy (5,5); { printf ( "Este programa calcula el area del trapecio y el rombo"); 89

gotoxy ( 5,6 ); printf ("Teclea una r si es rombo y una t si es trapecio:"); car = getchar (); if (car== 'r') { int diamay = 0; int diamen = 0; int operacion = 0; { printf ("Dame el valor de la diagonal mayor:"); scanf ("%i", & diamay); printf ("Dame el valor de la diagonal menor:"); scanf ("%i", & diamen); operacion = (diamay*diamen)/2; printf ("El rea del rombo es:"); printf ("%i", operacion); scanf ( "%i", & operacion); } } else (car== 't') { int lonlaop= 0; int lonbas= 0; int lonalt= 0; int operacion = 0; { printf ("Dame el valor de la longitud del lado opuesto:"); scanf ("%i", & lonlaop); printf ("Escribe la longitud de la base:");

90

scanf ("%i", & lonbas); printf ("Escribe la longitud de la altura del trapecio:"); scanf ("%i", & lonalt); printf ("El rea del trapecio es:"); operacion = ((lonlaop + lonbas)* lonalt) /2; printf ("%i", operacion); scanf ("%i", & operacion); } } }

#include <stdio.h> #include <conio.h>

/*Programa que calcule el area del rombo*/

void main ( )

{ clrscr (); int diamay = 0; int diamen = 0; int operacion = 0;

91

{ printf ("Dame el valor de la diagonal mayor:"); scanf ("%i", & diamay); printf ("Dame el valor de la diagonal menor:"); scanf ("%i", & diamen); operacion = (diamay*diamen)/2; printf ("El rea del rombo es:"); printf ("%i", operacion); scanf ( "%i", & operacion); } }

#include <stdio.h> #include <string.h> #include <conio.h>

/*Programa de conversin de fechas*/

void main ( )

{ clrscr(); char fecha [15]; { if (fecha [2]=='/') printf fecha [0], fecha [1]; else printf fecha [0]; }

92

{ if (fecha [4]== '/') printf (mes con fecha [3]); else printf (mes con fecha [3]); printf (fecha [4]); } { if (fecha [5]== '/') ao printf (fecha [6]); else ao printf (fecha [5]); printf (fecha [6]); } switch fecha { if (fecha [4) = '0') mes = octubre

if (fecha [4] = '1') mes = noviembre

if (fecha [4] = '2') mes = diciembre } {

switch if (fecha [3] =='1')

93

mes = enero if (fecha [3] =='2') mes = febrero if (fecha [3] =='3') mes = marzo if (fecha [3] =='4') mes = abril if (fecha [3] =='5') mes = mayo if (fecha [3] =='6') mes = junio if (fecha [3] =='7') mes = julio if (fecha [3] =='8') mes = agosto if (fecha [3] =='9') mes = septiembre if (fecha [3] =='10') mes = octubre if (fecha [3] =='11') mes = noviembre if (fecha [3] =='12') mes = diciembre } }

BUCLES: LA INSTRUCCIN while

94

La instruccin while se utiliza para generar bucles, en los cuales un grupo de instrucciones se ejecutan de forma repetitiva hasta que se satisface alguna condicin. La forma general de la instruccin while es:

while (<expresin>) { instrucciones }

La instruccin se ejecutar repetidamente mientras el valor de la expresin sea cierto. Esta instruccin puede ser simple o compuesta, aunque suele ser siempre compuesta. Debe de incluir algn elemento que altere el valor de la expresin, proporcionando as la condicin de salida del bucle. Ejemplo: Supngase que se desea generar una columna que contenga los nmeros del 0 al 9.

#include<stdio.h> #include<conio.h>

void main( )

{ int y=10, x=0; while(x<=100) { gotoxy(40,y); printf(%i, x); y++; x++; } 95

* * * Programas estructura while * * *

#include <stdio.h> #include <conio.h>

/*Programa que pide el nombre con la estructura while*/

void main ( )

{ clrscr ( );

int y= 10; char nombre [10]; int veces = 0; printf ("Dame tu nombre:"); gets (nombre);

while (veces <= 5) { gotoxy (10,y); printf ("%s", nombre);

96

/* veces= veces +1;*/ veces ++; y++; } }

Escribir un programa que calcule la media aritmtica de 5 calificaciones y muestre el resultado en pantalla.

#include <stdio.h> #include <conio.h>

/*Programa que calcula la media de 5 calificaciones/

void main ( )

{ clrscr ( ); int cal; int suma= 0; float media = 0; int ciclo = 0;

while (ciclo <5) { 97

printf ("Dame la calificacin:"); scanf ("%i", & cal); suma = suma + cal; ciclo ++; } media = suma/5; printf ("El promedio de las 5 calificaciones es:"); printf ("%f", media); scanf ("%f", & media); }

#include<stdio.h> #include<conio.h> #include<dos.h>

/*Programa que lee la hora y la da 12 horas despus*/

void main( )

{ int hora=0, min=0; clrscr(); gotoxy(5,3);printf("Dime que hora es: "); do {

98

hora=0; gotoxy(23,3);printf(" ");

gotoxy(23,3);scanf("%i",&hora); } while(hora>24); gotoxy(25,3);printf(":"); if (hora<24) { do { min=0; gotoxy(26,3);printf(" ");

gotoxy(26,3);scanf("%i",&min); } while(min>59); } else { gotoxy(26,3);printf("00"); } if (hora>12) { hora-=12; gotoxy(5,4);printf("Son las %i",hora); printf(":"); if (min<10) {

99

printf("0"); printf("%i",min); } else printf("%i",min); printf(" pm."); } else { gotoxy(5,4);printf("Son las %i",hora); printf(":"); if (min<10) { printf("0"); printf("%i",min); } else printf("%i",min); printf(" am."); } getch(); }

LA INSTRUCCIN for (BUCLE O CICLO)

100

La instruccin for es la tercera instruccin de control y quizs la ms importante de las instrucciones para el control de ciclos o bucles en C. Esta instruccin especifica el valor inicial de la variable del control de ciclo, y otra que especifica la condicin para seguir o parar de ejecutar las instrucciones del ciclo y una tercera expresin que permite que la variable de control del ciclo se modifique tanto en incremento como en decremento.

La forma general de la instruccin quedara de la siguiente manera:

for (exp1; exp2; exp3)

#include<stdio.h>

void main( )

{ int I; int num; for (I=1;I<=50;I++) printf(Escribe el numero:); scanf(%i, &I); getch( ); }

#include <stdio.h> #include <conio.h>

101

/*Programa que nos da la cantidad de votos obtenidos por un candidato;*/

void main ( )

{ clrscr ( ); char nombre [15]; char candidato [15]; char partido [15]; int votos = 0; int totvot= 0; int i,j= 0;

{ for (i=1; i<=7; i++)

for (j=1; j<=19; j++) { printf ("Dame los votos del Distrito:"); printf ("%i", votos); scanf ("%i", & votos); totvot= totvot+votos; } printf ("El total de votos de este candidato es:"); printf ("%i, totvot"); { printf ("El candidato es:"); scanf ("%s", & nombre); printf ("Es del partido:");

102

scanf ("%s", & partido); } } }

#include <stdio.h> #include <string.h> #include <conio.h>

/*Programa en estructura for*/

void main ( )

{ int func1 (int cont); int a, cont; for (cont = 1; cont <= 5; ++cont) { a = func1 (cont); printf ("%d", a); } } func1 (int x); { int y = 0;

y += x; return (y);

103

#include <stdio.h> #include <string.h> #include <conio.h>

/*Programa que realiza algunas conversiones*/

void main ( )

{ int func1 (int cont); int a, cont; for (cont = 1; cont <= 5; ++cont) { a = func1 (cont); printf ("%d", a); } } func1 (int x); { int y = 0; y += x; return (y); }

104

Escribir un programa que convierta una lnea de texto minscula a mayscula.

#include <stdio.h> #include <conio.h> #define EOL '\n'

/*convertir una linea de texto de minuscula a mayuscula*/

void main() {

char letras [80]; int aux, cont=0; clrscr ();

/*leer el texto en minsculas*/ while((letras[cont]=getchar()) !=EOL)++cont; aux=cont;

/*escribir el texto en mayusculas*/ cont=0; while(cont<aux) { putchar(toupper(letras[cont])); ++cont; } getch ();

105

SENTENCIA switch

Esta sentencia hace que se seleccione a un grupo de sentencias entre varios disposiciones. La seleccin se basa en el valor de una expresin que se incluye en la sentencia switch.

La forma general de la sentencia switch es la siguiente:

switch (EXPRESIN) SENTENCIA

En donde expresin devuelve un valor entero, notese que expresin tambin puede ser un tipo de dato char, ya que los caracteres individuales tienen valores enteros.

La sentencia switch (expresion) sentencia es generalmente compuesta que especifica opciones posibles a seguir. Cada opcin se expresa como un grupo de una o mas sentencias individuales.

Para cada opcin, la primera sentencia del grupo debe ser precedida por una o mas etiquetas case: las etiqueta case identifican los diferentes grupos de sentencias (distintas opciones). Las etiquetas case deben, por lo tanto, nicos dentro de una sentencia switch, cada grupo de sentencias se escribe en forma general: Switch expresion: switch expresion:

Sentencia 1

case 1: sentencia 1; 106

Sentencia 2 Sentencia 3 . . sentencia N

case 2: sentencia 2; case 3: sentencia 3

1, 2 y 3 representan expresiones constantes de valores enteros. Normalmente cada una de estas expresiones se escribe o bien como una constante entera o una constante de tipo carcter.

Ejemplo:

char car=getch(); switch(car) { case r: printf(rojo); case v: printf(verde); case a: printf(azul);

float resultado = 0; int ope1; int ope2; char operador; scanf (%i, & ope1); operador = getchar ( ); scanf (%i, & ope1); operador = getchar ( ); 107

scanf (%i, & ope2); switch (operador) { case +: { resultado = ope1 + ope2; printf (Resultado suma:%f, resultado);} break;

case -: { resultado = ope1 - ope2; printf (Resultado resta:%f, resultado);} break;

case /: { resultado = ope1 / ope2; printf (Resultado division:%f, resultado);} break;

case *: { resultado = ope1 * ope2; printf (Resultado multiplicacion:%f, resultado);} break;

Escribir un programa que calcule las potencias de 2 de n potencias.

108

#include <stdio.h> #include <string.h> #include <conio.h>

void main ( )

{ int n; cuenta; producto; x; clrscr ( );

if n = 0 { producto = 1 else producto = x; if (n<1) || (n>1) { cuenta = 2 hasta n producto = producto * 2 }

#include<stdio.h> #include<string.h> #include<conio.h>

109

/*Este programa cuenta el nmero de vocales escritas en una cadena de caracteres sin espacio*/

void main( )

{ char palabra[20]; int i=0; int A=0,E=0,I=0,O=0,U=0; clrscr(); printf("Escribe la palabra:"); scanf("%s",&palabra); for(i=0;i<=20;i++) { switch(palabra[i]) { case'A': A=A+1; break; case'E': E=E+1; break; case'I': I=I+1; break; case'O': O=O+1; break; case'U': U=U+1; break; } }

gotoxy(5,2); printf("El total de A es:%i",A); gotoxy(5,3); printf("El total de E es:%i",E);

110

gotoxy(5,4); printf("El total de I es:%i",I); gotoxy(5,5); printf("El total de O es:%i",O); gotoxy(5,6); printf("El total de U es:%i",U);

INSTRUCCIN do-while

Cuando se construye un ciclo utilizando la instruccin while, la comprobacin para entrar al ciclo, se realiza al comienzo de cada pasada. Sin embargo, a veces es deseable disponer de un ciclo en la que se realice la comprobacin de la expresin al final de cada pasada. Esto se puede hacer mediante la instruccin do-while. El formato general de la instruccin es la siguiente:

Do instruccin while (expresin)

La instruccin se ejecuta repetidamente, mientras que el valor de la expresin sea cierta. Ntese que la expresin siempre se ejecutar al menos una vez ya que la expresin de la condicin de repeticin no se realiza hasta el final de la primera pasada. La instruccin puede ser simple o compuesta, en la mayora de las veces es compuesta. Debe de incluir algn elemento que permita hacer una valorizacin nueva de la expresin para que el ciclo tenga final. En la mayora de las aplicaciones que se realizan, este ciclo es muy poco usado, pero, algunas veces ser requerido.

Ejemplo: do

printf(%i,cont); cont++;

while 111

ARREGLOS

Son estructuras estticas, es decir, de tamao definido por el programador y la informacin que se almacena es homognea. El acceso a cada dato del arreglo se hace por medio de una variable llamada ndice . Los arreglos pueden ser de dos tipos char, int, long, float, byte, o cualquier otro tipo de dato indefinido por el programador.

La forma de declarar una arreglo de manera general ser:

Tipo identificadortamao

Donde el tipo pueden ser los nombrados anteriormente, el identificador cualquiera que sea vlido y el tamao indica el numero de dato que contendr esta estructura. Ejemplo: Declare un arreglo de enteros:

int arregloent100;

La estructura llamada arreglo ent tiene espacio para almacenar hasta 100 elementos de tipo entero. NOTA: los arreglos empiezan con el ndice en 0 es decir del 0 al 99.

Al utilizar arreglos bidimencionales, estos primeros se deben inicializar, (inicializar significa poner todas las casillas del arreglo ya sea en cero, s se trata de arreglos numricos o con espacios en blanco s se trata de arreglos de chares).

Se recomienda inicializar antes de hacerse alguna operacin en ellos, ya sea que si no se hace se podra quedar almacenada informacin no deseable.

Antes de hacer cualquier operacin se inicializa si es entero o en cero. 112

N=0 (Es una asignacin de nmeros. enteros o no reales.

a) Nombre=Leticia

strcpy

nunca se va asignar asi porque se marco que nicamente enteros n=0 strcpm strlen atoi toascci tolower

FUNCIONES

Una funcin es un segmento de programa que realiza determinadas tareas bien definidas. Todo programa en C consta de una o ms funciones. Una de estas funciones es la que se conoce como main.

Si el programa contiene varias funciones sus definiciones pueden aparecer en cualquier orden, pero deben ser dependientes unas de otras, por lo tanto una definicin de una funcin no puede estar incluida en otra.

Cuando se accede a una funcin desde una determinada parte del programa (llamada a una funcin), se ejecutan las instrucciones de que consta. Por lo tanto se puede acceder a una misma funcin desde varios distintos del programa. Una vez que se ha completado la ejecucin, es decir, el grupo de sentencias simples, compuestas y sentencias de control, la funcin devuelve un valor y el control a la siguiente lnea de instruccin de la llamada.

Una funcin procesara la informacin que le es pasada desde el punto del programa de donde se le ha llamado y esta devolver un valor. 113

La informacin para ser procesada por la funcin, se le pasa mediante unos identificadores especiales llamados ARGUMENTOS tambin denominados parmetros y el valor que regresa a la funcin lo hace con la instruccin RETURN.

LA DEFINICION DE UNA FUNCION

Una funcin tiene dos componentes principales:

1. la primera lnea que incluye las declaraciones de los argumentos y el cuerpo de la funcin

La primera lnea de definicin de una funcin contiene la especificacin de tipo de valor devueltos por la funcin, seguido del nombre de la funcin, y (opcionalmente) un conjunto de argumentos separados por comas y (encerradas).

Para cada argumento se debe declarar un tipo correspondiente de dato. Si la funcin contiene un par de parntesis vacos, se dice que la funcin no incluye ningn argumento.

DECLARACION GENERAL DE UNA FUNCION

Void main ( )

Tipo de dato

Identificador (tipo1 Arg1, tipo2 Arg2, TipoN ArgN)

114

Nombre de la Funcin

Ejemplo:

Area del triangulo

float Areatri (int, base, int, h) { float area=0 area=base*h/12 return area; }

Area de un Tringulo

void mensaje ( ) { clrscr ( ); printf(Hola Mundo); }

void Mensaje (char mensaje) [ clrscr ( ); printf (%s, mensaje);

TRANSFERENCIA DE PARAMETROS DE REFERENCIA

115

#include <stdio> #inclue <string.h> #include <conio.h>

void main ( )

{ int radio = 0; float result = 0; scanf (%i, radio); result = Areacir (radio); } float Areacir (int r) { float Area = 0; Area = 3.1416 * (r*r); Return Area; }

REFERENCIA

#include <stdio.h> #include <string.h> #include <conio.h> /* Declaracin de las funciones prototipo */

116

void Areacir (int * resultado);

void Areatri (int * result);

{ intradio = 0; floatres; scanf (%i, & radio); Areacir (radio, & res); Printf (%f, res); }

Cuatro mil trescientos cincuenta y dos

main ( )

{ leer la cadena numerica %s calcular longitud de cadena numerica longitud = strlen (cad Num);

117

en caso 1 : unidades ( ); 2: decenas ( ); 3: centenas ( ); 4: millares ( ); }

Funcin unidades En caso de CadNum [0];

1: printf (uno); 2: printf (dos);

3: printf (tres); . . . 9: printf (nueve);

funcin decenas en caso de CadNum [0]; 1: Dieci (CadNum [0]); 2: Veinti (CadNum [1]); 3: Treinta (CadNum [1]);

funcin diez;

118

4: Cuarenta (CadNum [1]); . . .

9: Noventa (CadNum [1]);

en caso de NomCad [1]

1: once 2: doce 3: trece . . . 9: diecinueve

Funcin veinti En caso de NumCad [1] 0: Veinte 1: veintiuno 2: veintidos . . . 9: veintinueve

119

funcin treinta en caso de NumCad [0]

0: treinta 1: treinta y uno 2: treinta y nueve

funcin cuarenta en caso de NumCad [0] 0: cuarenta 1: cuarenta y uno 2: cuarenta y dos . . . 9: cuarenta y nueve

#include <stdio.h> #include <string.h> #include <conio.h>

void main ( )

120

int CadNum [4]; int opcion; int x= 0; int i = 0; int cadena [4]; int long; int unidades, decenas, centenas, millares = 0;

printf (Dame la cadena:); scanf (%s, & cadena); long = strlen (cadena);

i=long; cadNum [i] = x;

for (i=3; i>=0; i++) { while (x>=0) && (x<=9) { if (cadNum [i] == 3) { unidades = x; x++; } if (CadNum [i] == 2) { unidades = x; x++;

121

if (cadNum [i] == 1) { unidades = x; x++; } if (cadNum [i] == 0) { unidades = x; x++; } } } do { switch (opcion) { case 1: { printf (%i, unidades); break; } case 2: { printf (%i,decenas); break; } case 3: { printf (%i, centenas); break; }

122

case 4: { printf (%i, millares); break; }

} while (opcion>=0) && (opcion <=4); } scanf (%i, %i, %i,%i, & unidades, decenas, centenas, millares); }

DEFINICION DE ESTRUCTURAS

Una estructura es el encapsulamiento de tipos de datos y sus respectivos identificadores en una sola unidad llamada registro.

Estos registros se declaran usando la palabra reservada struct.

Forma general de declarar un registro.

#include < > . . . struct { tipo item1; 123 nombre de la estructura

tipo item2; . . . } struct nombre de estructura identificador;

Ejemplo #include < > . . . struct auto { char fecha [8] int modelo; char marca [12] char color [10]; short puertas;

char dueo [30]; }

struct auto automviles;

124

Para almacenar los datos en una estructura se utiliza el operador ( . ) punto, ponindolo despus del nombre de la estructura seguido del campo.

Ejemplo:

Automviles. Automviles. Automviles.

Fecha Modelo Marca

Lectura de datos

scanf(%s, & automviles. fecha); scanf(%s, & automviles. modelo); scanf(%s, & automviles. marca);

Para imprimir

Printf (automviles. Fecha); Printf (automviles. Modelo); Printf (automviles. Marca); Ejemplo:

#include <studio.h> #include <string>

struct persona 125

{ char nombre [15]; int edad; char domicilio [10] int estatura; float peso; char ocupacin [12] }

struct persona datos; void main ( ) { printf(Escribe el nombre:); scanf (%s, & datos. nombre); printf(Escribe La edad:); scanf (%i, & datos. edad); printf(Escribe el domicilio:); scanf (%s, & datos. domicilio); printf(Escribe la estatura:); scanf (%i, & datos estatura); printf(Escribe el peso:); scanf (%f, & datos. peso); printf(Escribe la ocupacin:); scanf (%s, & datos. ocupacin); }

Bibliografias

126

Lenguaje Algoritmico UPSAM. Versin 2.0. 1 de 1. Apndice W1.

127

Das könnte Ihnen auch gefallen