Sei sulla pagina 1di 47

INTRODUCCION A LA INFORMATICA Informtica es la ciencia que estudia el tratamiento automtico y racional de la informacin.

Se dice que el tratamiento es automtico por ser mquinas las que realizan los trabajos de captura, proceso y presentacin de la informacin, y se habla de racional por estar todo el proceso definido a travs de programas que siguen el razonamiento humano. Dentro de la ciencia de la informtica se encuentran incluidas una serie de funciones de las que mencionamos a continuacin las ms importantes: El desarrollo de nuevas mquinas El desarrollo de nuevos mtodos de trabajo La construccin de aplicaciones informticas Mejorar los mtodos y aplicaciones existentes

Desde la aparicin de las primeras mquinas de clculo, no se ha parado la investigacin para obtener mquinas ms potentes, rpidas, pequeas y baratas. Por otra parte, en paralelo con el desarrollo de estas mquinas, tampoco se detiene la investigacin para conseguir nuevos mtodos de trabajo, novedosas formas de explotacin de las mquinas e innovadores modos de compartir los recursos. La funcin de creacin de aplicaciones informticas se refiere al desarrollo de programas para que las mquinas realicen el trabajo para el que han sido creadas. ELEMENTOS Y CONCEPTOS FUNDAMENTALES Desde el punto de vista informtico, el elemento fsico utilizado para el tratamiento de la informacin es el computador, computadora u ordenador, que puede ser definido de la siguiente manera: es una mquina compuesta de elementos fsicos, en su mayora de origen electrnico, capaz de realizar una gran variedad de trabajos a gran velocidad y con gran precisin, siempre que se le den las instrucciones adecuadas. El conjunto de rdenes que se dan a una computadora para realizar un proceso determinado se denomina programa, mientras que el conjunto de uno o varios programas ms la documentacin correspondiente para realizar un determinado trabajo, se denomina aplicacin informtica El trmino sistema informtico se utiliza para nombrar al conjunto de elementos necesarios (computadora, terminales, impresoras, etc.) para la realizacin y explotacin de aplicaciones informticas. La informacin es el elemento que hay que tratar y procesar cuando en una computadora ejecutamos un programa, y se define como todo aquello que permite adquirir cualquier tipo de conocimiento; por tanto, existir informacin cuando se da a conocer algo que se desconoce. Los datos que maneja un programa son en un principio informacin no elaborada y una vez procesados (ordenados, comparados, sumados, etc.) constituyen lo que se denomina informacin til o simplemente resultados. Para que una informacin sea tratada necesita transmitirse o trasladarse de un lugar a otro, y para que exista transmisin de informacin son necesarios tres elementos: El emisor que da origen a la informacin El medio que permite la transmisin El receptor que recibe la informacin

Al conjunto de operaciones que se realiza sobre una informacin se le denomina tratamiento de la informacin. Estas operaciones siguen una divisin lgica que se representa en el siguiente esquema: Entrada Recogida de datos Depuracin de datos Almacenamiento de datos Aritmtico Proceso Lgico Recogida de resultados Salida Distribucin de resultados
Preparado por Prof: Luis Gonzlez T. Slo para fines docentes 1

Tratamiento de la informacin

En trminos generales se denomina entrada al conjunto de operaciones cuya misin es tomar los datos del exterior y enviarlos a la computadora; para ello en ocasiones es necesario realizar operaciones de depuracin o validacin de los mismos. Estos datos deben quedar en la memoria de la computadora para su posterior tratamiento. Al conjunto de operaciones que elaboran los datos de entrada para obtener los resultados se le llama proceso o algoritmo y consiste generalmente en una combinacin adecuada de operaciones de origen aritmtico y test de tipo lgico. Por ltimo, se denomina salida al conjunto de operaciones que proporcionan los resultados de un proceso a las personas correspondientes. Se engloban en la salida tambin aquellas operaciones que dan forma a los resultados y los distribuyen adecuadamente. El algoritmo necesario para la resolucin de un problema queda definido cuando una aplicacin informtica es analizada, de tal forma que posteriormente cada proceso se codifica en un lenguaje que sea reconocido por la mquina, y tras una preparacin final obtendremos una solucin ejecutable por la computadora. La automatizacin de un problema para que pueda ser desarrollado por una computadora se representa en el siguiente esquema:
Planteamiento del problema Anlisis del mismo Algoritmo de solucin Ejecucin por computadora

CICLO DE VIDA DE UNA APLICACION INFORMATICA Una aplicacin informtica se compone de uno o varios programas interrelacionados que tienen por objeto la realizacin de una determinada tarea de forma automtica mediante el uso de un sistema informtico. Ciclo de vida de una aplicacin informtica es el proceso que se sigue desde el planteamiento de un problema hasta que se tiene una solucin instalada en la computadora, y en funcionamiento por los usuarios finales mientras sea de utilidad El citado proceso. Se compone de varias fases, agrupadas en dos bloques bien diferenciados: FASES DEL DISEO FASES DE LA INSTALACION EDICION Problema ANALISIS Especificacin PROGRAMACION Algoritmo CODIFICACION programa PRUEBA DE EJECUCION Aplicacin EXPLOTACION Y MANTENIMIENTO MONTAJE Programa ejecutable COMPILACION Programa objeto Programa fuente

DISEO DEL PROGRAMA Fase de anlisis: Consiste en el examen y descripcin detallada de los siguientes aspectos relativos al problema: Equipo a utilizar (computador, perifricos, soportes, material auxiliar, etc.). Personal informtico. Estudio de los datos de entrada (INPUT) Estudio de los datos de salida (OUTPUT) Relacin entre la salida y la entrada. Descomposicin del problema en mdulos.
2

Preparado por Prof: Luis Gonzlez T. Slo para fines docentes

El resultado de esta fase se denomina especificacin del problema, formada por e conjunto de documentos elaborados para los aspectos citados. Fase de programacin: Consiste en el diseo de la solucin al problema planteado en forma de algoritmo. Se debe abordar en forma sistemtica, esto es, aplicando explcitamente un conjunto de tcnicas, como programacin estructura y diseo descendente. El resultado es un algoritmo o descripcin del conjunto de acciones que debern ser realizadas por el computador. Para su representacin se utilizan diferentes notaciones, como ordinogramas, pseudocdigo, etc. Fase de codificacin: En esta fase se transcribe e algoritmo resultante de la fase anterior a un lenguaje de programacin concreto. Al resultado se le denomina programa, que normalmente ser escrito en hojas de codificacin. INSTALACION Y EXPLOTACION DE PROGRAMA Fase de edicin: Escritura del programa fuente a partir de las hojas de codificacin en la memoria del computador, grabando en algn soporte permanente. Se realiza con la ayuda de un programa del sistema denominada editor. Fase de compilacin: Traduccin del programa fuente a lenguaje de mquina cuyo resultado es el programa objeto. Para ello se dispone de programas compiladores o intrpretes, que, adems, comprueban la correcta sintaxis de programa. Fase de montaje: En los programas compilados es necesario aadir al programa objeto algunas rutinas del sistema o algunos subprogramas externos que se hayan compilados separadamente. De ello se encarga el programa montador (linker) Fase de ejecucin: Consiste en ejecutar el programa sucesivas veces con diferentes datos de prueba para asegurar su correcto funcionamiento. Fase de explotacin y mantenimiento: La explotacin consiste en e uso continuo y habitual por parte de os usuarios de la aplicacin mientras tenga utilidad. Paralelamente a la explotacin de una aplicacin se realiza el mantenimiento de la misma, consistente en la comprobacin peridica de su buen funcionamiento. ERRORES Segn el momento fase en que se detectan, los errores se clasifican de la siguiente manera: Errores de compilacin: Los errores en tiempo de compilacin o sintcticos, corresponden al incumplimiento de las reglas sintcticas del lenguaje, por ejemplo una palabra reservada del lenguaje mal escrita, una instruccin incompleta, etc. Estos errores son los ms fciles de corregir, ya que son detectados por el compilador, el cual dar informacin sobe el lugar donde est y la naturaleza de cada uno de ellos mediante un mensaje de error. Errores de ejecucin: Se deben generalmente a operaciones no permitidas, como dividir por cero, leer un dato no numrico en una variable numrica. Se detectan porque se produce una parada anormal del programa durante su ejecucin y se dice entonces que el programa se ha cado o que ha sido abortado por el sistema. Son ms difciles de detectar corregir que os errores sintcticos, ya que ocurren o no. Errores de lgica: Corresponden a la obtencin por el programa de resultados que n son correctos, y la nica manera de detectarlos es realizando un numero suficiente de ejecuciones de prueba con una gama lo ms amplia posible de juegos de datos de prueba, comparando los datos producidos por el programa con los obtenidos a mano para esos mismos datos. Son los ms difciles de corregir, no slo por a dificultad para detectarlos, sino porque se deben a la propia concepcin y diseo del programa. Errores de especificacin: Es posiblemente el peor tipo de error y el ms costoso de corregir. Se deben a la realizacin de unas especificaciones incorrectas motivadas por una mala comunicacin entre el programador y quien plantea en problema. Se detectan normalmente cuando ya ha concluido e diseo e instalacin del programa, por lo que su correccin puede suponer la repeticin de gran parte del trabajo realizado.
Preparado por Prof: Luis Gonzlez T. Slo para fines docentes 3

CALIDAD DE LOS PROGRAMAS Para un determinado problema se pueden construir diferentes algoritmos de resolucin o programas. Las caractersticas generales que debe reunir un programa son las siguientes:
-

Legibilidad: Ha de ser claro y sencillo, de tal forma que facilite su lectura y comprensin. Fiabilidad: Ha de ser capaz de recuperarse frente a errores o usos inadecuados. Portabilidad: Si diseo debe permitir la codificacin en diferentes lenguajes de programacin, as como su instalacin en diferentes sistemas. Modificabilidad: Ha de facilitar su mantenimiento, esto es, las modificaciones y actualizaciones necesarias para adaptarlo a una nueva situacin. Eficiencia: Se deben aprovechar al mximo los recursos de la computadora, minimizando la memoria utilizada y el tiempo de proceso o ejecucin, siempre que no sea a costa de los requisitos anteriores.

PILARES BASICOS EN LOS QUE SE SUSTENTA LA INFORMATICA Los tres pilares bsicos en que se sustenta la Informtica son: Elemento fsico (Hardware) Elemento lgico (Software) Elemento humano (Personal informtico)

Esquema bsico del elemento fsico (hardware) El hardware es el elemento fsico de un sistema informtico, es decir, todos los materiales que los componen, como el propio computador, los dispositivos externos, los cables, los soportes de la informacin y en definitiva todos aquellos elementos que tienen entidad fsica.
Memoria Principal

Entrada

U. C. P. U. C. U. A. L.

Salida

Memoria Auxiliar (Soportes magnticos)

Unidad Central de Proceso (U.C.P.). Es el elemento principal o centro neurlgico de una computadora y su misin consiste en coordinar, controlar y ejecutar todas las operaciones del sistema informtico y consta de: Unidad de Control (U.C.). Es la encargada de gobernar al resto de las unidades, adems de interpretar y ejecutar las instrucciones controlando su secuencia. Unidad Aritmtica y Lgica (U.A.L.). Es la encargada de realizar todas las operaciones elementales de tipo aritmtico y de tipo lgico.

Memoria Principal. Tambin denominada memoria interna, es el elemento encargado de almacenar los programas y los datos necesarios para que el sistema informtico realice un determinado trabajo. Es importante saber que para que un programa pueda ser ejecutado en una computadora tiene que estar en esta memoria, as como los datos que necesiten ser procesados en ese momento.
-

Memoria RAM (Random Access Memory): Memoria de acceso directo, suele tambin llamarse Memoria de Lectura Escritura. Se utiliza para almacenar programas, datos y resultados, el usuario la puede ocupar para realizar todos los procesos que desee. La memoria RAM viene en mdulos denominados SIMM de memoria y se colocan en la tarjeta madre en calzos llamados Slots.

Memoria ROM (Read Only Memory): Memoria slo de lectura. Esta es una memoria permanente, ya que os programas contenidos en ella siempre estn en memoria este el equipo apagado o encendido, esta memoria es indispensable para que el equipo pueda funcionar, ya que aqu se graban los programas bsicos de operacin que proporciona el fabricante del equipo.
4

Preparado por Prof: Luis Gonzlez T. Slo para fines docentes

Los usuarios no tienen acceso a esta memoria, no se puede grabar, modificar ni borrar nada de lo que contenga, La memoria del computador de mide en Megabytes. Un computador tpico tiene de 8 a 16 Megabytes de RAM y los sistemas que ejercen aplicaciones de alto poder tienen entre 32 a 64 Megabytes de RAM. Byte: se define como la unidad mnima procesable por el computador. Un byte est compuesto por 8 bits, suficiente para almacenar una carcter nico. 1 kilobyte son 1024 byte La capacidad de RAM de un computador suele expresarse en mltiplos de K -2 elevado a 8, se utiliza 2 porque son dgitos binarios, luego: 1 Bits 1 Byte 1 Kilobyte 1 Megabyte 1 Gigabyte 1 Terabyte 01 8 Bit 1024 Byte 1024 Kilobyte 1024 Megabytes 1024 Gigabyte

Categoras de la Memoria RAM


-

Memoria convencional: El primer megabyte de RAM en el computador personal se llama memoria convencional por convencin se ponen aparte los primeros 640 K de RAM para programas y datos. Memoria Superior (UMA): entre 640 y 1023 K (perifricos y dispositivos anexos). Los controladores de dispositivos usan la UMA para cdigos de datos de programa. Ciertos dispositivos tiene rangos de memoria estndar asignados a ellos. Es importante aclarar que no hay diferencia entre la memoria convencional y la memoria superior. Los programas pueden ejecutarse de la misma manera en la memoria superior que en la memoria convencional. La nica diferencia es que la industria adopt un estndar para emplearlas y los programadores de DOS por lo general no permiten que sus programas usen cualquier memoria por encima de los 640K. Este estndar evita que un programa emplee por accidente la misma rea de memoria que uno de los perifricos de la computadora personal lo que podra trabar el sistema. Memoria extendida: Sobre los 1023 K (trabaja en lnea, ms rpida). Si su computador personal tiene un total de 8 M de RAM significa que tiene 1 M de memoria convencional y 7 M d memoria extendida. El DOS por si mismo no puede acceder directamente la memoria arriba de 1 M, por lo que no puede accesar directamente la memoria extendida, por lo que se emplea un administrador de memoria que se llama HYMEN.SYS para proporcionar el acceso a la memoria extendida. Qu tiene de fantstico la memoria extendida? Los programas pueden accesarla en forma lineal. Esto significa que si un programa necesita tener 4 M de RAM en los cuales pueda almacenar sus datos, puede solicitar un bloque de 4 M de memoria extendida y usarlo para almacenar los datos. Si necesita leer datos, puede empezar al inicio de este bloque de 4M y leerlo completo hasta el final.

Memoria expandida: Sobre los 1023 K (trabaja en bloques, ms lenta). Si su computador contiene memoria expandida, es probable que sea un sistema antiguo. Los sistemas Recientes usan memoria Expandida. Si se desea agregar memoria a su sistema, aumenta la memoria extendida, no la memoria expandida. Memoria Virtual: Ocupa el disco duro como anexo a la memoria RAM. Esta es la quinta categora. En el lenguaje de computadoras esto significa algo que no existe en realidad. Pero que simula. Cuando se tiene memoria virtual no es que se use parte de la RAM, si no que se recurre a usar parte del disco duro para simular ms memoria RAM. Uno de os sistema que ms usa este mtodo es Windows (crea archivos con extensin TMP).

Resumen de memoria RAM Convencional Superior (UMA) Extendida Expandida Virtual Primeros 640 k (programas y datos) Entre 640 y 1023 k (Perifricos y Dispositivos anexos) Sobre los 1023 k (Trabaja en lnea, ms rpida) Sobre los 1023 k (Trabaja en bloques, es ms lenta) Ocupa el disco duro como anexo a la memoria RAM

Preparado por Prof: Luis Gonzlez T. Slo para fines docentes

Elementos de Entrada. Tambin llamados perifricos o unidades de entrada, son los dispositivos encargados de introducir los datos y los programas desde el exterior a la memoria principal para su utilizacin. Estos dispositivos, adems de recibir la informacin, la preparan para que la mquina pueda entenderla de forma correcta. La principal unidad de entrada es el teclado: existen de 84 y 101 teclas Elementos de Salida. Tambin denominados perifricos o unidades de salida, son los dispositivos encargados de recoger y proporcionar al exterior los datos de salida o resultados de los procesos que se realicen en el sistema informtico, como unidades de salida ms importantes del computador tenemos:
-

Monitor: (pantalla) permite visualizar los datos y respuestas dadas por el computador Tipos de monitor: EGA, en informtica, acrnimo ingls de Enhanced Graphics Adaptor (adaptador de grficos mejorado), un adaptador de monitor de vdeo lanzado por IBM en 1984. El EGA es capaz de emular el CGA, acrnimo ingls de Color Graphics Adapter (Adaptador para Grficos Color) y el MDA, as como de proporcionar varios modos de vdeo adicionales, entre ellos un modo de 43 caracteres de lnea y un modo grfico con 640 pxeles horizontales por 350 pxeles verticales y 16 colores seleccionados en una paleta de 64.
-

CGA :Adaptador para Grficos Color.

VGA, en informtica, acrnimo de Video Graphics Array, un adaptador de vdeo presentado por IBM en 1987. El adaptador VGA reproduce todos los modos de vdeo de la tarjeta EGA (acrnimo de Enhanced Graphics Adapter) e incorpora varios modos adicionales. Los nuevos modos ms conocidos son el de 640 pxeles horizontales por 480 verticales, con 16 colores simultneos a elegir de una paleta de 262.144 colores, y el modo de 320 pxeles horizontales por 200 verticales, con 256 colores a elegir de una paleta de 262.144 colores. Modo de Texto: 80 x 25 Modo Grfico: 1024 x 768
-

Impresora:

Memoria Auxiliar. Tambin denominada Memoria secundaria, son los dispositivos de almacenamiento masivo de informacin que se utilizan para guardar datos y programas en el tiempo para su posterior utilizacin. La caracterstica principal de los soportes que manejan estos dispositivos es la de retener la informacin a lo largo del tiempo mientras se desee, recuperndola cuando sea requerida y sin que se pierda, aunque el dispositivo quede desconectado de la red elctrica.

Preparado por Prof: Luis Gonzlez T. Slo para fines docentes

ESTRUCTURA GENERAL DE UN PROGRAMA Un programa puede considerarse como una secuencia lgica de acciones (instrucciones) que manipulan un conjunto de objetos (datos) para obtener unos resultados que sern la solucin al problema que resuelve dicho programa. Todo programa, en general contiene dos bloques bien diferenciados para la descripcin de los dos aspectos anteriormente citados:
-

Bloque de declaraciones. En l se especifican todos los objetos que utiliza el programa (constantes, variables, tablas, registros, archivos, etc.) indicando las caractersticas de estos. Este bloque se encuentra localizado siempre por delante del comienzo de las acciones. Bloque de instrucciones. Constituido por el conjunto de operaciones que se han de realizar para la obtencin de los resultados deseados.

PARTES PRINCIPALES DE UN PROGRAMA Las partes principales de un programa estn relacionadas con sus dos bloques ya mencionados. Dentro del bloque de instrucciones podemos diferenciar tres partes fundamentales, como se muestra en la siguiente figura: DECLARACIONES PROGRAMA Entrada de datos INSTRUCCIONES Proceso o algoritmo Salida de resultados Entrada de Datos: La constituyen todas las instrucciones que toman los datos de entrada desde un dispositivo externo y los almacena en la memoria principal para que puedan ser procesados. Proceso o algoritmo: Est formado por las instrucciones que modifican los objetos a partir de su estado inicial (datos de entrada) hasta el estado final (resultados) dejando los objetos que lo contiene disponibles en la memoria principal. Salida de resultados: Conjunto de instrucciones que toman los datos finales (resultado) de la memoria principal y los envan a los dispositivos externos. CLASIFICACION DE LAS INSTRUCCIONES Segn la funcin que desempean dentro de un programa, las instrucciones se clasifican de la siguiente manera: Instrucciones de declaracin: Su misin es anunciar la utilizacin de objetos en un programa indicando que identificador, tipo y otras caractersticas corresponden a cada uno de ellos. Instrucciones primitivas: Son aquellas que ejecuta el procesador de modo inmediato. Es decir, no dependen de otra cosa que de su propia aparicin en el programa para ser ejecutadas. Las instrucciones primitivas pueden ser de entrada, de asignacin o de salida.
-

Instruccin de entrada: Su misin es tomar uno o varios objetos desde un dispositivo de entrada y almacenarlos en la memoria central en los objetos cuyos identificadores aparecen en la propia instruccin. Si estos objetos tuviesen algn valor previo, ste se perdera. En un ordinograma aparece con el smbolo de operacin de entrada/salida de la siguiente manera: Leer dato

Instruccin de asignacin: Es la que nos permite realizar clculos evaluando una expresin y depositando su valor final en un objeto o realizar movimiento de datos de un objeto a otro. En un ordinograma aparece bajo el smbolo de operacin en general con el siguiente formato: A=A+3 B=A

Preparado por Prof: Luis Gonzlez T. Slo para fines docentes

Instruccin de salida: Su misin consiste en enviar datos a un dispositivo externo, bien tomndolos de objetos depositados en la memoria o definidos de alguna forma en la propia instruccin.

En un ordinograma se representa por medio del smbolo de operacin de entrada/salida de la siguiente manera: Escribir "Fecha", dia, mes, agno Instrucciones de control: Son instrucciones que no realizan trabajo efectivo alguno salvo la evaluacin de expresiones, generalmente lgicas, con el objetivo de controlar la ejecucin de otras instrucciones o alterar el orden de ejecucin normal de las instrucciones de un programa. Existen tres grandes grupos de instrucciones de control:
-

Instrucciones alternativas: Son aquellas que controlan la ejecucin de uno o varios bloques de instrucciones dependiendo del cumplimiento o no de alguna condicin o del valor final de una expresin. Existen tres modelos tpicos de instrucciones alternativas: Alternativa simple: Controla la ejecucin de un conjunto de instrucciones por el cumplimiento o no de una condicin, de tal forma que, si se cumple, se ejecutan; si no se cumple, no se ejecutan. Su representacin en un ordinograma es la siguiente:
CONDICIN SI NO INSTRUCCIONES

Alternativa doble: Controla la ejecucin de dos conjunto de instrucciones por el cumplimiento o no de una condicin, de tal forma que si se cumple, se ejecutan las instrucciones de un bloque; si no se cumple, se ejecutan las instrucciones del otro. Su representacin en un ordinagrama es la siguiente:
-

CONDICIN SI NO INSTRUCCIONES

INSTRUCCIONES

Alternativa Mltiple: Controla la ejecucin de varios conjuntos de instrucciones por el valor de una expresin, de tal forma que cada conjunto de instrucciones est ligado a un posible valor de la expresin, existiendo un bloque al final que engloba otros posibles valores no definidos. Se ejecutar el conjunto que se encuentre relacionado con el valor que resulte de la evaluacin de la expresin, de tal forma que si ste no aparece se ejecutar el ltimo. Su representacin en un ordinograma es la siguiente:
-

CONDICION

V1 INST 1

V2 INST 2 ....... INST N

VN

OTROS INST

Preparado por Prof: Luis Gonzlez T. Slo para fines docentes

Instrucciones repetitivas: Son aquellas que controlan la repeticin de un conjunto de instrucciones denominado rango mediante la evaluacin de una condicin que se realiza cada nueva repeticin o por medio de un contador asociado. Existen tres tipos de instrucciones repetitivas que dependen de su configuracin: Instruccin MIENTRAS (WHILE): Controla la ejecucin del conjunto de instrucciones que configuran su rango, de tal forma que stas se ejecutan mientras se cumpla la condicin, que ser evaluada siempre antes de cada repeticin. Es decir, mientras la condicin sea cierta. Su configuracin en el ordinograma es la siguiente:
-

CONDICIN NO SI RANGO

Instruccin REPETIR (REPEAT - UNTIL o DO WHILE): Controla la ejecucin de un conjunto de instrucciones que configuran un rango, de tal forma que stas se ejecutan hasta que se cumpla la condicin, que ser evaluada siempre despus de cada repeticin, es decir, hasta que la condicin sea CIERTA. La diferencia entre este bucle y el anterior es que este bucle siempre se ejecutar una vez. Su configuracin en el ordinograma es la siguiente:
-

RANGO

NO CONDICIN SI

Instruccin PARA (FOR): Controla la ejecucin de un conjunto de instrucciones que configuran un rango, de tal forma que stas se ejecutan un nmero determinado de veces que queda definido en lo que se denomina la cabecera del bucle. En ella se define un identificador de variable que va a actuar como contador asociado y que se denomina variable de control del bucle (Vc), definindose al mismo tiempo su valor inicial, (Vi) su valor final (Vf) y el incremento (I) que esta variable de control va adquirir en cada repeticin. La variable de control toma el valor inicial y va incrementndose en cada nueva repeticin, de tal manera que el proceso termina cuando la variable de control supera el valor final. Su configuracin en un ordinograma es la siguiente:
Vc = Vi

Vc > Vf SI NO RANGO Vc = Vc + I

Preparado por Prof: Luis Gonzlez T. Slo para fines docentes

Instrucciones de ruptura de secuencia: Alteran la secuencia normal de ejecucin de instrucciones en un programa, que, como se sabe, es de la primera hasta la ltima, y de una en otra. La alteracin de esta secuencia hace que contine en otro lugar definido en la propia instruccin utilizando lo que se denomina etiqueta. Instruccin de alto incondicional: Altera la secuencia normal de ejecucin de instrucciones, continuando la misma en la instruccin referenciada por medio de la etiqueta que figura en la propia instruccin
-

IR A <ETIQUETA> Instruccin de alto condicional: Altera la secuencia normal de ejecucin de instrucciones si se cumple una condicin, continuando la misma en la instruccin referenciada por medio de la etiqueta que figura en la propia instruccin
A>3 . . X INSTRUCCION X

Instrucciones compuestas Es aquella que representa un conjunto de instrucciones que estn definidas en otra parte. Son llamadas subprogramas (funciones, subrutinas, prrafos, etc.). Su presentacin en un ordinograma utiliza el smbolo de subprograma:

NOMBRE

Comentarios: Son frases que se incluyen en un programa con intencin de aclarar el cometido o funcin de un objeto o conjunto de instrucciones. En un ordinograma se representa con el smbolo:
-------- COMENTARIO

VARIABLES AUXILIARES DE UN PROGRAMA Son objetos que utiliza un programa y por la funcin que realizan dentro del mismo toman un nombre especial, modelando su funcionamiento debido a su frecuente utilizacin.
-

Contadores: Es un objeto que se utiliza para contar cualquier evento que pueda ocurrir dentro de un programa. Se utilizan realizando sobre ellos dos operaciones bsicas: Inicializacin: Todo contador se inicializa en 0 o un valor inicial si se desea realizar otro tipo de cuenta
-

CONTA = 0 Incremento: Cada vez que aparece el evento a contar se ha de incrementar el contador en 1 u otro valor si se realiza otro tipo de cuenta:
-

CONTA = CONTA + 1
-

Acumuladores: Son objetos de un programa para acumular elementos sucesivos con una misma operacin. En general se utilizan para acumular sumas y productos, sin descartar otros posibles tipos de acumuladores. Al igual que los contadores, para utilizarlos hay que realizar sobre ellos las operaciones de inicializacin y acumulacin.

Preparado por Prof: Luis Gonzlez T. Slo para fines docentes

10

ALGORITMOS EN PSEUDOLENGUAJE PSEUDOLENGUAJE: Su significado informtico es: un lenguaje de programacin no formal. Un algoritmo expresado en pseudolenguaje consta de los siguientes elementos: Cabecera Variables de memoria Asignaciones Instrucciones

Cabecera de un algoritmo: Entenderemos por cabecera de un algoritmo a la orden INICIO que nos permitir dar comienzo al algoritmo. Su contrapartida es la orden FIN para dar finalizado el algoritmo. Variables: Una variable es un espacio de memoria del computador a la cual se le da un nombre para identificar dicho espacio. Este nombre puede contener letras, dgitos y guiones con la sola condicin que el primer carcter del nombre sea una letra. Las variables tienen un valor nico. Este valor puede ser cambiado o modificado, para ello existe una instruccin de asignacin que permite asignarle o darle un valor, este se cambia por el nuevo valor. Asignacin: La instruccin de asignacin est representada por el smbolo = que representa un signo igual. El valor que se le asigna a una variable puede estar tambin dado por otra variable o por una expresin matemtica. Ej: Supongamos que tenemos las siguiente variables y valores: A B C TT X R J 2 5 10 4 5 0 0 K H 0 1

R = 4 + 3 Ahora la variable R es 7 J = A + B Ahora el valor de J es 7 K = (C * B) + 2 Ahora el valor de K es 52 H = H + 1 Ahora el valor de H es 2 Reglas prcticas: 1. 2. 3. 4. 5. Toda variable que aparezca al lado derecho de = debe tener un valor. Cuando se usa = solo la variable que est a la izquierda cambia d valor. Las variables que se encuentran a la derecha del = no cambian de valor. Si una variable aparece a ambos lados del =, sta cambia de valor por estar a la izquierda. Los operadores permitidos son: +, -, *, /, ** suma, resta, multiplicacin, divisin, exponenciacin RESTO(resto de la divisin) PARTENT(parte entera de la divisin) 6. Las funciones permitidas son ENT(VALOR)Retorna el valor entero de lo que est entre parntesis, o si este tiene decimales. MAYUS(carcter) Transforma el carcter especfico a maysculas. 7. La prioridad de los operadores matemticos es: 1.- ( ) 2.- funciones. 3.- *, / 4.- +, Si dos operadores de la misma prioridad estn en una misma operacin se evaluar primero el que est ms a la izquierda. Instrucciones de entrada/salida de datos

Preparado por Prof: Luis Gonzlez T. Slo para fines docentes

11

Las instrucciones de entrada/salida de datos, le permiten al usuario0 final (que es la persona para quien se va a realizar el programa final) tener una comunicacin con el algoritmo, dndole los valores a manipular y recibiendo por parte de ste los resultados de los procesos realizados con los datos ingresados. La instruccin de entrada de datos, LEER, permite que el usuario le d valores a las variables desde el teclado. As la persona que est frente a computador va a poder digitar los valores que desea procesar. FORMATO: LEER var1, var2, ... varN En ella puede haber desde una hasta las que el usuario desee. Ejemplo: Supongamos que queremos determinar el valor del sucesor de 13: INICIO NUM, SUCESOR : NUMERICAS NUM = 13 SUCESOR = NUM + 1 FIN Este algoritmo slo permite calcular el sucesor de 13, si necesitamos calcular el sucesor de otro nmero, habra que hacer otro algoritmo, uno para cada nmero. Pero si usamos la orden LEER, podemos permitirle al usuario ser l quien determine el valor sobre el que se desarrollar el clculo. INICIO NUM, SUCESOR : NUMERICAS LEER NUM SUCESOR = NUM + 1 FIN En este ejemplo, el usuario lee en el algoritmo l valor del que se calcular su sucesor. Instrucciones de salida. En pseudolenguaje la instruccin que permite realizar una visualizacin de informacin en la pantalla es MOSTRAR. FORMATO: MOSTRAR exp1, exp2, ... expN Donde las expresiones pueden ser variables o mensajes. Para especificar un mensaje o comentario, este debe aparecer entre comillas dobles. Ejemplo: MOSTRAR "Este mensaje aparecer en la pantalla" Haciendo uso de esta instruccin, ahora podemos visualizar en la pantalla algn comentario o resultado. INICIO NUM, SUCESOR : NUMERICAS MOSTRAR "Ingrese un nmero" LEER NUM SUCESOR = NUM + 1 MOSTRAR "El sucesor es :" , SUCESOR FIN Con instruccin MOSTRAR, el algoritmo ahora puede comunicarle al usuario que es lo que debe leer y, adems, indicarle en la pantalla al usuario, cual fue el resultado. Toma de decisiones (instrucciones de bifurcacin) Es habitual que en la vida diaria debemos tomar decisiones que signifiquen realizar o no una accin, o bien elegir entre un conjunto de acciones. Supongamos, por ejemplo, que estamos de cumpleaos y tenemos que decidir que hacer si nuestras opciones son hacer una fiesta o salir a cenar. Para dar solucin a esta disyuntiva, no hacemos la siguiente pregunta: Quiero hacer una fiesta? La respuesta slo puede ser SI o NO, por lo que s nuestra respuesta es SI, se hace la fiesta, si no entonces vamos a cenar Traspasando esto a un algoritmo cualitativo tendramos: Inicio del algoritmo Si deseo hacer una fiesta Hago la fiesta Sino Voy a cenar
Preparado por Prof: Luis Gonzlez T. Slo para fines docentes 12

Fin de seleccin Fin algoritmo En pseudolenguaje existen instrucciones que nos permiten realizar este tipo de discriminacin. Estas son: De decisin simpleSI De decisin doble SI - SINO De decisin mltiple HACER EN CASO Decisin simple: Esta instruccin permite ejecutar o no una o varias instrucciones FORMATO: SI condicin Instruccin (es) FIN SI Donde: Instruccin (es): es la instruccin o instrucciones que van a ser ejecutadas si se cumple la condicin Condicin: Es el evento que debe cumplirse para que la instruccin (es) se ejecutada. Decisin doble: Esta instruccin se utiliza cuando se tiene que elegir entra la ejecucin de una u otra instruccin a partir de una condicin. FORMATO: SI condicin Instruccin(es) 1 SINO Instruccin(es) 2 FIN SI Donde: Condicin es el evento que tiene que cumplirse para que se ejecute el grupo 1 de instrucciones. De no cumplirse el evento, se ejecuta el grupo 2 de instrucciones. Instruccin (es) 1: Es la instruccin o conjunto de instrucciones que deben ejecutarse en el caso de que la condicin se cumpla (sea verdadera). Instruccin (es) 2: Es la instruccin o instrucciones que se van a ejecutar si la condicin no se cumple. En este tipo de bifurcacin, solo se ejecuta uno de los dos grupo de instrucciones, Nunca los dos. Condicin es una expresin lgica que dar un resultado verdadero si ella se cumple o falso, en caso de que no se cumpla. Para representar las condiciones en pseudolenguaje, se hace uso de expresiones lgicas las que estn compuestas por operadores de relacin y conectores lgicos. Operadores de relacin: Son aquellos que e utilizan para expresar condiciones = <> <= >= > < igual distinto Menor o igual mayor o igual mayor que menor que operador de relacin expresin 2

FORMATO: Expresin 1

Ejemplo: Sea A = 4 y B = 7 El resultado de: A>B es falso A<= B es verdadero A + 3 = B es verdadero Conectores lgicos: Son aquellos que nos permiten combinar expresiones de relacin, estos son: Y : que entrega un valor lgico verdadero slo cuando ambas expresiones de relacin sean verdaderas. En cualquier otro caso, entrega un valor lgico falso.
Preparado por Prof: Luis Gonzlez T. Slo para fines docentes 13

O : que entregar un valor lgico verdadero cuando al menos una de las expresiones sea verdadera y un valor lgico falso slo cuando ambas expresiones sean falsas. Ejemplo: Sean A = 3, B= 4 y C = 5 (A = 3) Y (B = C) (B = C) O (A = 3) (A > B) O (B < C) (A + 2 = 6) O (B = C) falso verdadero verdadero falso

Aplicaciones en Pseudolenguaje 1.- El siguiente algoritmo determina si dos nmeros ingresados por el usuario son o no iguales: INICIO VAR1, VAR2 : NUMERICAS MOSTRAR "Ingrese dos nmeros" LEER VAR1, VAR2 SI (VAR1 = VAR2) MOSTRAR "Los valores son iguales" SINO MOSTRAR "Los valores son distintos" FIN SI MOSTRAR "Proceso terminado" FIN En este algoritmo primero se despliega un mensaje en la pantalla para que el usuario sepa que tiene que ingresar dos valores que son recibidos en la instruccin siguiente (LEER VAR1, VAR2). Cuando los valores ya han sido ingresados por el usuario, el algoritmo procede a compararlos para saber si son iguales o no iguales utilizando la instruccin SI (VAR1 = VAR2). El algoritmo desplegar en pantalla el mensaje "Los valores son iguales" cuando la expresin VAR1 = VAR2 sea verdadera. El mensaje "Los valores son distintos" aparecer en la pantalla cuando la expresin evaluada en la instruccin SI sea falsa. Luego de haber desplegado el mensaje en la pantalla, el algoritmo seguir ejecutando las instrucciones que siguen a continuacin de las palabras FIN SI, que sirven para indicar que ah termina la bifurcacin, o sea, mostrar en mensaje "Proceso terminado", el que se ejecutar siempre sin importa cuales hayan sido los valores ingresados. 2.- El siguiente algoritmo le permite al usuario ingresar dos valores y determinar cul de ellos es el mayor, teniendo en cuenta que tambin puede darse la igualdad. Un primer razonamiento se puede basar en que e tienen tres alternativas: VAR1 = VAR2 VAR1 > VAR2 VAR1 < VAR2 Entonces uno puede preguntar por cada una de las alternativas creando un algoritmo con la siguiente estructura: INICIO VAR1, VAR2 : NUMERICAS MOSTRAR "Ingrese dos nmeros" LEER VAR1, VAR2 SI (VAR1 = VAR2) MOSTRAR "Son iguales" FIN SI SI (VAR1 > VAR2) MOSTRAR "El primero es mayor" FIN SI SI (VAR1 < VAR2) MOSTRAR "El segundo es mayor" FIN SI FIN Tambin se podra haber pensado:
Preparado por Prof: Luis Gonzlez T. Slo para fines docentes 14

Si tengo tres alternativas evalo la primera. SI VAR1 = VAR2 muestro el mensaje "Son iguales" y termino; sino son iguales, entonces puede que sea VAR1 mayor que VAR2 o VAR2 mayor que VAR1, por lo que pregunto SI VAR1 > VAR2 entonces muestro "El primero es mayor", si la condicin es falsa muestro "El segundo es mayor", ya que si no son iguales y VAR1 no es mayor que VAR2 solo puede ser que VAR2 sea mayor que VAR1 puesto que es la nica alternativa que queda. INICIO VAR1, VAR2 : NUMERICAS MOSTRAR "Ingrese dos nmeros" LEER VAR1, VAR2 SI (VAR1 = VAR2) MOSTRAR "Son iguales" SINO SI (VAR1 > VAR2) MOSTRAR "El primero es mayor" SINO MOSTRAR "El segundo es mayor" FIN SI FIN SI FIN 3.- En el siguiente algoritmo determinaremos el mayor de tres nmeros ingresados por el usuario. En el anlisis de lo que se nos pide observamos que: Se tiene que leer tres nmeros Tenemos tres posibles respuestas: a) El primer valor es el mayor b) El segundo valor es el mayor c) El tercer valor es el mayor De esta informacin podemos determinar que: 1.- Tenemos que usar tres variables para recibir los nmeros que van a ser ingresados. 2.- Tenemos que leer los valores antes de preguntar cual de ellos es mayor 3.- Para saber si un nmero es el mayor tenemos que: a) Preguntar si el primero es mayor que los otros dos, o sea, si es mayor al segundo y al tercero. b) Si era mayor lo indicamos con un mensaje, de lo contrario, tenemos que ver si el mayor es el segundo o el tercero, puesto que el primero ya no lo es. c) Si el segundo es el mayor lo indicamos con un mensaje, de los contrario, indicamos que e mayor es el tercero ya que es el nico que queda. El algoritmo que resulta de esto es: INICIO A, B, C : NUMERICAS MOSTRAR "Ingrese tres nmeros" LEER A, B, C SI (A > B) Y (A > C) MOSTRAR "El primero es el mayor" SINO SI (B > C) MOSTRAR "El segundo es el mayor" SINO MOSTRAR "El tercero es el mayor" FIN SI FIN SI FIN Ejercicios: 1.- Codifique un algoritmo que permita determinar si un alumno aprob o no un ramo si consideramos que se evala con cuatro notas y el promedio se obtiene aritmticamente Se deben ingresar las cuatro notas, calcular el promedio, se debe desplegar el mensaje "Alumno aprob", si el promedio es mayor o igual a cuatro, de lo contrario desplegar el mensaje "Alumno reprob"

Preparado por Prof: Luis Gonzlez T. Slo para fines docentes

15

2.- Modifique el algoritmo anterior, sabiendo que el promedio final ser igual al 60% del promedio aritmtico de las notas, ms el 40% de la nota de examen, por lo tanto deber ingresar adems de las cuatro notas, una nota de examen, deber desplegar los mismos mensajes. Seleccin mltiple: Esta instruccin permite escoger un grupo de instrucciones a ejecutar segn sea el valor de una variable. FORMATO: HACER EN CASO EN CASO VARIABLE = VALOR1: INSTRUCCIN(ES) 1 EN CASO VARIABLE = VALOR2: INSTRUCCIN(ES) 2 EN CASO VARIABLE = VALOR3: INSTRUCCIN(ES) 3 [ SEA OTRO VALOR: INSTRUCCIN(ES) N ] En esta instruccin, se escoger slo un grupo de instrucciones dependiendo del valor de la variable. Si coincide con el primer valor, ejecutar el primer grupo de instrucciones; si coincide con el segundo valor, se ejecutar el segundo grupo y as sucesivamente, y si no coincide con ningn valor indicado en a instruccin se ejecutaran las instrucciones que estn indicadas para SEA OTRO VALOR. SEA OTRO VALOR es opcional, por lo que slo se colocar de ser necesario. Supongamos que alguien desea tener un algoritmo que permita, ingresando el cdigo de un mes, saber la glosa correspondiente al cdigo y cuantos das tiene ste. INICIO VARMES : NUMERICA MOSTRAR "Ingrese un cdigo" HACER EN CASO EN CASO VARMES = 1: MOSTRAR "enero = 31" EN CASO VARMES = 2: MOSTRAR "febrero = 28 29" EN CASO VARMES = 3: MOSTRAR "marzo = 31" EN CASO VARMES = 4: MOSTRAR "abril = 30" EN CASO VARMES = 5: MOSTRAR "mayo = 31" EN CASO VARMES = 6: MOSTRAR "junio = 30" EN CASO VARMES = 1: MOSTRAR "Julio = 31" EN CASO VARMES = 8: MOSTRAR "agosto = 31" EN CASO VARMES = 9: MOSTRAR "septiembre = 30" EN CASO VARMES = 10: MOSTRAR "octubre = 31" EN CASO VARMES = 1: MOSTRAR "noviembre = 30" EN CASO VARMES = 1: MOSTRAR "diciembre = 31" SEA OTRO VALOR: MOSTRAR "Cdigo no existe" FIN EN CASO FIN

Preparado por Prof: Luis Gonzlez T. Slo para fines docentes

16

EJERCICIOS: 1.- Recorra los siguientes algoritmos y determine los valores finales de cada variable:
INICIO JOSE, SS, J, R : NUMERICAS JOSE = 4 SS = 5 J=3 R=2 J = SS + R SI (J = TRUNCAR(J / 2) * 2) SS = JOSE * 2 J=J+2+3 HACER EN CASO EN CASO J = 35: J=J+1 EN CASO J = 36: J=J-1 EN CASO j = 37 J=J* 2 FIN EN CASO SINO J = SS + 3 SI (J = SS * 3 - 1) J=J*3+R SINO J = SS * (R ** 2) / 2 FIN SI FIN SI J=J+1 SS = J * 2 FIN INICIO UNO, DOS, TRES, CUATRO : NUMERICAS UNO = 1 DOS = UNO + 1 TRES = DOS - 1 CUATRO = TRES + 1 SI (TRES <> CUATRO) DOS = DOS + 3 SI (TRES < DOS) Y (CUATRO = 4) UNO = 2 SINO UNO = 3 FIN SI SI (TRES <> CUATRO) TRES = CUATRO + 1 SINO UNO = 1 HACER EN CASO EN CASO UNO = 1: HACER EN CASO EN CASO DOS = 1: UNO = 2 EN CASO DOS = 2: DOS = 1 FIN EN CASO EN CASO UNO = 2: CUATRO = TRES + 1 SEA OTRO VALOR: DOS = CUATRO - DOS FIN EN CASO FIN SI Preparado por Prof: Luis Gonzlez T. Slo para fines docentes 17

UNO = (TRES + DOS) - CUATRO FIN SI FIN

2.- Revisa los siguientes algoritmos y determina si estn buenos o no. Hay a lo menos uno malo. - El siguiente algoritmo le permite al usuario leer un nmero y saber si ste es par o impar. El cero es neutro.
INICIO N : NUMERICAS MOSTRAR "Ingrese un nmero" LEER N SI (N = 0) MOSTRAR "El nmero es cero" SINO SI (RESTO(N / 2) = 0) MOSTRAR "El nmero es par" SINO MOSTRAR "El nmero es impar" FIN SI FIN SI FIN

- Determinar si un nmero ingresado por el usuario es positivo y menor que 12 al mismo tiempo.
INICIO N : NUMERICAS MOSTRAR "Ingrese un nmero" SI (N > 0) Y (N < 12) MOSTRAR "El nmero cumple la condicin" SINO MOSTRAR "El nmero no cumple la condicin" FIN SI FIN ALGORITMO

El siguiente algoritmo determina si una persona es aceptada o no en un trabajo. Para ello cuenta con los siguientes requisitos: Para mujeres: Debe ser soltera, mayor de 18 aos y menor de 26 Para hombres: Si es casado debe tener ms de 40 aos, si es soltero debe tener ms de 18 aos y menor de 31 aos. Adems, para determinar el sexo de la persona y su estado civil hay que tener en cuenta los siguientes datos: Sexo : 1 = masculino : 1 = soltero 2 = femenino 2 casado 3 separado 4 viudo Estado civil

INICIO XCIV, XSEX, XED : NUMERICAS MOSTRAR "Indique estado civil" LEER XCIV MOSTRAR "Indique su sexo" LEER XSEX MOSTRAR "Indique su edad" LEER XED HACER EN CASO EN CASO XSEX = 1: SI (XCIV = 1) Y (XED > 18) Y (XED < 31) MOSTRAR "Est seleccionado" SINO SI (XCIV = 2) Y (XED > 40) MOSTRAR "Est seleccionado" SINO MOSTRAR "Esta eliminado" FIN SI FIN SI EN CASO XSEX = 2: SI (XED > 18) Y (XED < 26) MOSTRAR "Est seleccionada" SINO MOSTRAR "Est eliminada" Preparado por Prof: Luis Gonzlez T. Slo para fines docentes 18

FIN SI SEA OTRO VALOR MOSTRAR "ERROR DE INGRESO DE VALOR" FIN EN CASO FIN

Confeccione un algoritmo para cada uno de los siguientes requerimientos: 1. Leer dos nmeros y determine cul de ellos es menor o si son iguales 2. Leer tres nmeros y determine cual de ellos es menor. Supongamos que van a ser distintos. 3. Leer tres nmeros y determinar cual es el mayor teniendo en cuenta que se pueden dar igualdad entre ellos. 4. Leer tres nmeros y mostrarlos ordenados de menos a mayor. Supongamos que van a ser distintos entre s. 5. Leer un nmero y determinar si es mayor igual que 10 o no. 6. Leer un nmero y determinar si es positivo y par al mismo tiempo. 7. Leer un nmero y determinar si es divisible por 5. 8. Leer un nmero y determinar si este es positivo e impar. 9. Leer un nmero y determinar si este es mayor a 10 y menos a 86 y par al mismo tiempo. 10. Leer un nmero, si es positivo smele 3, si es negativo smele 6, luego indique si el resultado del calculo es positivo, negativo o 0. 11. Leer un nmero y determinar si es divisible por 3 y por 2 al mismo tiempo. 12. Leer un nmero y determinar si es divisible por 3 y por 2 al mismo tiempo pero sin usar conectores lgicos. Busque a lo menos dos soluciones distintas. 13. Lea un nombre y edad de dos personas y muestre el nombre de la persona mayor. 14. Leer dos nmero y determinar si el primero es el antecesor del segundo. Tenga en consideracin que slo se puede determinar si un nmero es sucesor de otro si stos son enteros. 15. Determine el nmero de das e un mes ingresado por el usuario si ste ingresa el nombre del mes. 16. Una empresa necesita contratar una secretaria. Para ello se le hacen las siguientes preguntas: Es soltera (1) o casada (2) Cuntos hijos tiene? Si no tiene indicar 0 Tiene ttulo tcnico S/N? Cul es su edad?

La postulante debe cumplir los siguientes requisitos para ser preseleccionada: Las solteras deben poseer ttulo tcnico, no tener hijos y ser menor a 24 aos. Las casadas debe tener edad superior a 40 aos y tener hijos. El algoritmo que desarrolle debe permitir evaluar estas condiciones para determinar, mediante mensajes, si el contrato se hace efectivo o no, por lo tanto, debe realizar los ingresos correspondientes y entregar el mensaje respectivo. 17. Una empresa de turismo necesita realizar permanentemente clculo de paridad cambiaria. Para realizar dicho clculo, maneja la siguiente lista de valores: 1.- DLAR 2.- DRACMA 3.- LIBRAS 4.- RUPIAS 670 PESOS 405 PESOS 495 PESOS 293 PESOS

El algoritmo debe recibir por parte del usuario el cdigo (nmero de lista) de la moneda a la que se desea hacer la transformacin y el valor en pesos a transformar a la moneda indicada. 18. Usando los mismos valores de la tabla anterior, ingrese el cdigo de la moneda y el monto a transformar y muestre su equivalente en pesos. 19. Una empresa tiene en su planta vendedores divididos en tres categoras ( A, B, C). Cada categora tiene un porcentaje de comisin por ventas realizadas (A = 1,3%; B = 1,25%; C = 1,11%). Se necesita un algoritmo que determine cuanto se le pagar a un vendedor. Para esto, el algoritmo debe permitir identificar al vendedor (nombre) e indicar el monto que este vendi y mostrar el monto de la comisin correspondiente.
Preparado por Prof: Luis Gonzlez T. Slo para fines docentes 19

INSTRUCCIONES CICLICAS O ITERATIVAS Una instruccin cclica es una orden que permite que un conjunto de instrucciones (bucle) se ejecuten varias veces, aunque en algunos casos podra darse que se ejecutaran una vez o simplemente no se ejecutaran. Las instrucciones de este tipo son: PARA, MIENTRAS Y REPETIR. PARA: Permite que un conjunto de instrucciones se ejecuten un numero determinados de veces. FORMATO: PARA var = val1 HASTA val2 [ SUMANDO VAL3 ] instrucciones FIN PARA Var: es la variable que ser utilizada para ir contando el numero de veces que se ha de repetir el ciclo. Esta variable aumenta en una unidad cada vez que se repite el ciclo y se omite el parmetro SUMANDO. Val1 es el valor que toma var en el inicio del primer ciclo. Val2: Es el ltimo valor con que se ejecutar el ciclo. Ejemplo: Con el siguiente algoritmo se muestran en pantalla todos los nmeros del 1 al 10
INICIO PARA N = 1 HASTA 10 MOSTRAR N FIN PARA FIN

Cuando se llega a la instruccin PARA, la variable N toma el valor 1 y ejecuta la instruccin MOSTRAR N. Como N es una variable que en la primera ejecucin vale 1, es mostrado este valor. Cuando se llega a FIN PARA, se procede a realizar la segunda iteracin, comenzando el bucle desde el principio e incrementando , en este caso, la variable N en 1. Este proceso se realizar hasta que N tome el valor 10. Cuando esto ocurra se ejecuta por ultima vez mostrando el valor 10. Esta vez, al llegar al FIN PARA, se realiza un ltimo incremento a la variable N quedando esta con el valor 11. Sin embargo, como ya se supero el valor final, no se ejecutar el ciclo y se contina con las instrucciones que vengan despus del FIN PARA. Ejemplos: Se necesita calcular la suma de los 10 primeros nmero naturales positivos:
INICIO RESULTADO, X : NUMERICAS RESULTADO = 0 PARA X = 1 HASTA 10 RESULTADO = RESULTADO + X FIN PARA MOSTRAR "LA SUMA DIO ", RESULTADO FIN

Mostrar todos los nmeros mayores o iguales a 10 y menores a 41


INICIO X : NUMERICA PARA X = 10 HASTA 40 MOSTRAR X FIN PARA FIN

MIENTRAS: Se diferencia de la anterior porque no necesitamos saber el nmero de veces que se tiene que repetir el bucle para determinar el fin de la ejecucin, sino que necesitamos saber que se tiene que dar (condicin) para que se siga ejecutando. FORMATO: MIENTRAS (condicin) HACER Instrucciones FIN MIENTRAS

Preparado por Prof: Luis Gonzlez T. Slo para fines docentes

20

Condicin: Expresin lgica la cual tiene que ser verdadera para que se ejecute el bucle. El termino de ejecucin se produce cuando la condicin no se cumple. Esta instruccin funciona de la siguiente manera: Cuando se llega a ella, se evala el valor de la condicin. Luego, si esta es verdadera, se ejecutan todas las instrucciones que hay entre MIENTRAS Y FIN MIENTRAS. Cuando se llega a FIN MIENTRAS se vuelve a hacer el mismo procedimiento hasta que la condicin sea falsa. Ejemplo: Calcular la suma e todos los nmeros pares positivos menores a 66
INICIO TOTAL, NUM : NUMERICAS TOTAL = 0 NUM = 2 MIENTRAS (NUM < 66) HACER TOTAL = TOTAL + NUM NUM = NUM + 2 FIN MIENTRAS MOSTRAR " Resultado es", TOTAL FIN

En la instruccin MIENTRAS, se tiene que dar un valor inicial a la variable de la condicin utilizando una instruccin de asignacin previa y el incremento se tiene que hacer dentro del bucle. Leer tantos nmeros como el usuario desee y determinar la suma de ellos. El ingreso finaliza cuando la suma sea mayor o igual a 666.
INICIO n, suma : NUMERICAS suma = 0 MIENTRAS (SUMA < 666) HACER MOSTRAR "Ingrese un nmero" LEER n Suma = suma + n FIN MIENTRAS MOSTRAR "La suma es ", suma FIN

Leer y sumar tantos nmeros como el usuario desee. Para determinar si se tiene que leer otro nmero o no, se le debe preguntar al usuario si desea seguir ingresando nmeros. Si el usuario desea seguir deber digitar una S y si no va a seguir, digitar una N.
INICIO Resp : ALFANUMERICA Total, num : NUMRICAS Resp = "S" Total = 0 MIENTRAS (Resp = "S") HACER MOSTRAR "Ingrese un nmero" LEER num Total = Total + num MOSTRAR "Desea seguir ingresando S/N" LEER Resp Resp = MAYUS(Resp) FIN MIENTRAS FIN

En este algoritmo se le da un valor "S" a la variable Resp para que la primera vez que se llega al ciclo MIENTRAS, se pueda leer. I a Resp no se le da el valor inicial de "S" asignndosele otro, cuando llegue a MIENTRAS por primera vez el ciclo no se ejecutar REPETIR: Esta instruccin es muy similar en su funcionamiento a la instruccin MIENTRAS. FORMATO: REPETIR Instrucciones HASTA QUE (condicin) Esta instruccin, a diferencia de MIENTRAS, la evaluacin de la condicin se realiza despus de ejecutar el bucle y esta condicin indica cuando va a pasar a parar la ejecucin Esta instruccin se utiliza preferentemente para asegurarnos que un dato cumpla con algn requisito preestablecido.
Preparado por Prof: Luis Gonzlez T. Slo para fines docentes 21

Ejemplo: Leer siete nmeros positivos y determinar su promedio.


INICIO Cont, suma, prom, num : NUMERICAS suma = 0 prom = 0 PARA CONT = 1 HASTA 7 REPETIR MOSTRAR "Ingrese un nmero" LEER num HASTA QUE (num > 0) suma = suma + num FIN PARA prom = suma / 7 MOSTRAR "El promedio es ", prom FIN

Otros conceptos relacionados con ciclos


A) Contador: Se dice que una variable es de tipo contador cuando esta se va a incrementa o decrementar

cada vez que se realice la instruccin que lo contiene.


B) Sumadores, Acumuladores o Totalizadores: Son variables utilizadas para guardar cantidades variables

resultantes de sumas sucesivas. Realiza una funcin similar a la de un contador, con la diferencia de que la cantidad que se le suma o resta es constante. Ejemplo: leer 10 nmeros cualesquiera y determinar el promedio de los nmeros enteros. Para ello utilizaremos un ciclo Para que realizar 10 ingresos. Adems, dentro del bucle, preguntaremos si el numero es entero para ver si tenemos que sumarlo o contarlo. Hay que tener en cuenta que si bien son 10 nmeros los que se van a leer, no se sabe cuantos de ellos son enteros por lo que tendremos que utilizar un contador.
INICIO Acum, contador, x, n, prom : NUMERICAS Acum = 0 Contador = 0 PARA x = 1 HASTA 10 MOSTRAR "Ingrese un nmero" LEER n SI (n = (ENTERA(n)) Acum = Acum + n contador = contador + 1 FIN SI FIN PARA Prom = Acum / contador MOSTRAR " El promedio es ", prom FIN

C) Interruptores: conocidos como switch, centinela, bandera o flag. Es una variable que puede tomar dos valores a lo largo del algoritmo y que permiten comunicar informacin de una parte a otra parte del mismo. Los usos ms habituales de un interruptor son: Si el programa a pasado o no por de6terminado punto pregu8ntando por su estado o contenido. Salir de un ciclo cuando se cambie el valor del interruptor. Hacer otra operacin dependiendo de un estado u otro.
INICIO Sw, x , n : Numricas Sw = 0 PARA x = 1 HASTA 10 REPETIR MOSTRAR "Ingrese un nmero" LEER n HASTA QUE (n = int(n)) y (n > 0) Preparado por Prof: Luis Gonzlez T. Slo para fines docentes 22

Ejemplo:

SI (n = 7) Sw = 1 FIN SI FIN PARA SI (Sw = 0) MOSTRAR " " No se ingres el 7" SINO MOSTRAR "se ingreso el 7" FIN SI FIN

Como se puede ver, SW va a tener el valor 0 desde la partida del algoritmo y dentro del bucle slo va a cambiar su valor a 1 cundo se ingrese el nmero 7. Ejemplos: 1.- El siguiente algoritmo muestra los 10 primeros nmeros pares positivos.
INICIO x, num, : numricas PARA x = 1 HASTA 10 Num = 2 * x MOSTRAR num FIN PARA FIN

2.- La serie numrica 1, 3, 5, 7, 9, 11, ..., 21, es mostrado por el siguiente algoritmo:
INICIO x : numrica x=1 MIENTRAS x <= 21 Hacer MOSTRAR x x=x+2 FIN MIENTRAS FIN

3.- El siguiente algoritmo calcula la suma de los 20 primeros elementos de la siguiente serie numrica: 500, 501, 501, ..., 550.
INICIO Sum, x : numricas Sum = 0 PARA x = 500 HASTA 550 Sum = Sum + x FIN PARA MOSTRAR "Resultado es :" sum FIN

4.- El siguiente algoritmo permite mostrar los dgitos de un nmero entero positivo ingresado por el usuario, de izquierda a derecha.
INICIO nn, aux, dig, a :Numricas nn = 0 REPETIR MOSTRAR " Ingrese un nmero entero positivo" LEER nn HASTA QUE (nn > 0) Y (nn = entero(nn)) aux = nn MIENTRAS (aux > 0) HACER a = Ent(aux / 10) * 10 dig = aux - a aux = a MOSTRAR dig FIN MIENTRAS FIN

5.- Calcular el promedio de 10 nmeros ingresados por el usuario.


INICIO sum, x, n, p : Numricas sum = 0 a=0 PARA x = 1 HASTA 10 Preparado por Prof: Luis Gonzlez T. Slo para fines docentes 23

MOSTRAR "Ingrese un nmero" LEER n sum = sum + n FIN PARA p = sum / 10 MOSTRAR " El promedio es :", p FIN

6.- El siguiente algoritmo permite leer 10 nmeros cualesquiera y determina cual fue el mayor de ellos.
INICIO mayor, n, x : Numricas n=0 PARA x = 1 HASTA 10 hacer MOSTRAR "Ingrese un nmero" LEER n SI (x = 1) mayor = n SINO SI (n > mayor) mayor = n FIN SI FIN SI FIN PARA FIN

7.- El siguiente algoritmo permite mostrar alternativamente las palabras "Hola" y "Chao". Esto har hasta que se muestren 13 palabras.
INICIO Sw, x : Numricas Sw = 0 PARA x = 1 HASTA 13 SI (Sw = 0) MOSTRAR "Hola" Sw = 1 SI NO MOSTRAR "Chao" Sw = 0 FIN SI FIN PARA FIN

8.- Una empresa dedicada al cambio de monedas extranjera, cuenta con la siguiente lista de precios: 1.- Dlar 680 pesos 2.- Dracma 550 pesos 3.- Dinares 150 pesos 4.- Rupias 350 pesos El requerimiento planteado por esta empresa, plantea la necesidad indeterminada de cambios monetarios. En cada intercambio se debe leer el cdigo de la moneda y el monto que se pretende transar, para que el algoritmo indique su equivalente en pesos. Adems, la empresa requiere saber, luego de finalizadas las transacciones, cuantas monedas se recibieron de cada una.
INICIO resp: Alfanumrica m, dlar, dracma, dinar, rupia, monto Numricas resp = "S" dlar = 0 dracma = 0 dinar = 0 rupias = 0 MOSTRAR " MENU 1.- Dlar 680 pesos 2.- Dracma 550 pesos 3.- Dinares 150 pesos 4.- Rupias 350 pesos" MIENTRAS (resp = "S") o (resp = "s") Hacer REPETIR Preparado por Prof: Luis Gonzlez T. Slo para fines docentes 24

MOSTRAR "Indique cdigo de moneda" LEER m HASTA QUE (m > 0) y (m< 5) REPETIR MOSTRAR "Ingrese el monto" LEER monto HASTA QUE (monto > 0) HACER EN CASO EN CASO m = 1: dlar = dlar + monto pesos = monto * 680 EN CASO m = 2 dracma = dracma + monto pesos = monto * 550 EN CASO m = 3 dinar = dinar + monto pesos = monto * 150 EN CASO m = 3 rupia = rupia + monto pesos = monto * 350 FIN EN CASO REPETIR MOSTRAR "Desea seguir S o N) LEER resp Resp = Mayusc(resp) HASTA QUE (resp = "S") o (resp = "N") FIN MIENTRAS MOSTRAR "Total dlares : ", dlar MOSTRAR "Total dracmas : ", dracma MOSTRAR "Total dinares : ", dinar MOSTRAR "Total rupias : ", rupias FIN

Preparado por Prof: Luis Gonzlez T. Slo para fines docentes

25

ARREGLOS Se puede visualizar un arreglo como un conjunto de datos de un mismo tipo (numrico o alfanumrico). A los cuales se les asigna un nombre para identificar as al conjunto total de valores. A cada dato partcipe del arreglo se le denomina Elemento. Arreglo unidimensional o Vectores: Es un conjunto de celdas, ordenadas en fila, en las que se depositan datos de mismo tipo. Un arreglo unidimensional es un conjunto de datos organizados en forma de lista. Los valores que se muestran en el siguiente ejemplo pueden considerarse como elementos de un arreglo unidimensional o vector: 21,14,15,80,17,25,30 Si a este conjunto (lista) de edades se le coloca un nombre como EDADES, se puede hacer referencia a cualquier elemento del vector agregando un nmero encerrado entre parntesis cuadrados [ ], al que se le denomina ndice, el cual indica la posicin que ocupa dentro del vector un determinado elemento. 150000 50000 450000 348000 500000 400000 600000

A este vector le llamaremos SUELDOS, y la referencia a sus elementos sera de la siguiente manera: Sueldo[1] = 150000 Sueldo[2] = 50000 ... Sueldo[7] = 600000 Los ndices o subndices pueden representarse por medio de una variable, nmero o expresin matemtica. Ejemplo: Sueldo[K] Sueldo[1] Sueldo[K+1] Los subndices deben ser valores enteros y positivos. Los elementos de un vector pueden ser operados, comparados, modificados, ingresados y mostrados, como si fueran variables. Ejemplo: S = Sueldo[1] + 500 Sueldo[3] = 500 Si Sueldo[2] > 300000 Leer Sueldo[X] Mostrar Sueldo[X] Declaracin de Vectores Se debe realizar al comienzo del algoritmo justo despus de la palabra INICIO. Se debe indicar mediante la instruccin arreglo seguido por el nombre del vector y entre parntesis la cantidad de elementos. Formato: DECLARAR Nombvector[largo] de tipo Ejemplo: DECLARAR Sueldo[7] de numricas

Preparado por Prof: Luis Gonzlez T. Slo para fines docentes

26

Esto indica que se ha definido un vector con el nombre SUELDO que contiene como mximo 7 elementos de tipo numrico.

Ingreso de datos en un Vector INICIO DECLARAR Lista[4] de numricas LEER lista[1] LEER lista[2] LEER lista[3] LEER lista [4] Se observa la definicin del arreglo lista de largo 4 del tipo numrico, posteriormente, cuatro instrucciones de ingreso, una para cada elemento. Sin embargo, el ingreso de datos se puede realizar utilizando la instruccin iterativa PARA, quedando de la siguiente manera: INICIO DECLARAR lista[4] de numrica X : numrica PARA x = 1 HASTA 4 LEER lista[x] FIN PARA FIN Obsrvese que la variable x cambia de 1 a 4. De esta manera, cada una de las iteraciones permite leer un elemento en una nueva posicin. Desplegar o mostrar los elementos de un vector La lgica de este proceso es la misma que para leer, salvo que ahora se usa la instruccin Mostrar. INICIO DECLARAR lista[4] de numrica X : numrica PARA x = 1 HASTA 4 LEER lista[x] FIN PARA PARA x = 1 Hasta 4 MOSTRAR lista[x] FIN PARA FIN Si se desea mostrar un elemento en forma particular, se indica el nombre del vector y el lugar donde esta el elemento Ejemplo INICIO DECLARAR Nombre[100] de numrica X : numrica MOSTRAR "Ingrese posicin 1 al 100" LEER X MOSTRAR "En esa posicin est : ", Nombre[X] FIN Ejemplos: 1.- El siguiente algoritmo permite llenar un vector de 10 posiciones y luego mostrar su contenido de manera inversa al ingreso:
INICIO DECLARAR datos[10] de numrica X : numrica PARA x = 1 HASTA 10 MOSTRAR "ingrese un valor" LEER datos[x] Preparado por Prof: Luis Gonzlez T. Slo para fines docentes 27

FIN PARA PARA x = 10 HASTA 1 restando 1 MOSTRAR datos[x] FIN PARA FIN

2.- En el siguiente algoritmo se llenar un vector llamado Lista de 100 elementos desde la ltima posicin hasta la primera.
INICIO DECLARAR lista[100] de numrica X : numrica PARA x = 100 HASTA 1 restando 1 LEER lista[x] FIN PARA FIN

3.- En el siguiente algoritmo se llenar un vector de 100 posiciones llamado ABC y despus de finalizado el ingreso de dato, se contar cuantos nmeros son positivos
INICIO DECLARAR ABC[100] de numrica X , Contador : numrica Contador = 0 PARA x = 1 Hasta 100 MOSTRAR "Ingrese un nmero" LEER ABC[x] FIN PARA PARA x = 1 HASTA 100 SI(ABC[x] > 0 Contador = Contador + 1 FIN SI FIN PARA MOSTRAR "Se ingresaron ", Contador, "nmeros positivos" FIN

4.- Se tiene un vector llamado Vec de 50 posiciones. El siguientes algoritmo permite llenar dicho vector slo con nmeros positivos:
INICIO DECLARAR Vec[50] de numrica X, : numrica PARA x = 1 HASTA 50 REPETIR MOSTRAR "Ingrese un nmero" LEER Vec[x] HASTA QUE (Vec[x] > 0) FIN PARA FIN

5.- Supongamos que tenemos un vector llamado Lista de 100 posiciones con elementos enteros positivos previamente ingresados. Con el siguiente algoritmo se puede determinar el promedio de todos los elementos que hay en el vector.
INICIO DECLARAR Lista[100] de numrica Acum, x , p : numrica Acum = 0 X=0 PARA x = 1 HASTA 100 Acum = Acum + Lista[x] FIN PARA P = Acum / 100 MOSTRAR "El promedio es de ", P FIN

6.- Utilizando el mismo vector del algoritmo anterior cambiaremos todos los elementos por su doble. Vamos a suponer que el elemento ya est lleno.
PARA x = 1 HASTA 100 Lista[x] = Lista[x] * 2 Preparado por Prof: Luis Gonzlez T. Slo para fines docentes 28

FIN PARA

7.- Supongamos que tenemos un vector llamado Lista de 10 posiciones con nmeros ya ingresados en l. El siguiente algoritmo ordena de menor a mayor dicho vector.
INICIO DECLARAR Lista[10] de numricas x, y : Numrica PARA x = 1 HASTA 9 PARA y = x+1 Hasta 10 SI Lista[x] > lista[y] Aux = Lista[x] Lista[x] = Lista[y] Lista[y] = aux FIN SI FIN PARA FIN PARA FIN

8.-- Determinaremos cual es el promedio mayor de dos vectores cuyos elementos ya estn ingresados. Los vectores de llaman A y B. INICIO DECLARAR A[10], B[10] de numricas acuma, acumb, pos, proma, promb : numricas acuma = 0 acumb = 0 PARA pos = 1 HASTA 10 acuma = acuma + A[pos] acumb = acumb + B[pos] FIN PARA proma = acuma / 10 promb = acumb / 10 SI (proma > promb) MOSTRAR " El promedio mayor es el del vector A" SI NO MOSTRAR " El promedio mayor es el del vector B" FIN SI FIN Paralelismo entre vectores Los vectores no siempre se usan de manera independiente, pues en ocasiones hay informacin que hace referencia a un mismo ente, por tanto, se requiere usar vectores de un modo paralelo. Esto significa que ellos cumplirn con las siguientes caractersticas. La informacin almacenada en ellos guardada esta relacionada entre s a partir de su posicin. Cualquier modificacin de sus ubicaciones tiene que ser hecha en todos los vectores que estn siendo tratados paralelamente.

Si tenemos tres vectores en donde guardamos: nombre, sexo y edad de 6 personas, entonces tendramos algo as: NOMBRE ANA PEDRO DIEGO ROSA CARLOS HERNAN SEXO F M M F M M EDAD 25 23 32 28 40 30

Preparado por Prof: Luis Gonzlez T. Slo para fines docentes

29

En estos vectores la informacin de una persona est contigua en los tres vectores, as, si en la primera posicin del vector NOMBRE aparece ANA, el sexo y la edad que aparecen en los otros vectores pertenecen a ella. En este tipo de vectores, si se altera el orden de los datos en un vector, este cambio debe realizarse en los otros vectores para no perder contigidad de los elementos. Por ejemplo si intercambiamos en el vector NOMBRE el primer elemento por el segundo, pasara lo siguiente: NOMBRE SEXO EDAD PEDRO F 25 ANA M 23 DIEGO M 32 ......... .......... ........ Como se puede aprecia, al no realizar el cambio en los otros vectores, se produjo una alteracin en los datos, ya que ahora Pedro aparece con sexo femenino y con 25 aos que eran los datos de Ana, as mismo Ana quedo con los datos de Pedro. Por lo tanto, los cambios deberan hacerse tambin en los otros dos vectores para que queden as: NOMBRE PEDRO ANA DIEGO ......... .......... SEXO M F M ........ EDAD 23 25 32

De eta forma los datos cambiaron de posicin pero no perdieron su relacin. Ejemplo:
INICIO DECLARAR Nombre[6] de alfanumricas DECLARAR Edad[6] de numricas DECLARAR Sexo[6] de alfanumricas auxN, auxS : alfanumricas auxE, x, y : numricas PARA x = 1 HASTA 6 MOSTRAR "Ingrese nombre" LEER Nombre[x] MOSTRAR "Ingrese sexo" LEER Sexo[x] MOSTRAR "Ingrese edad" LEER Edad[x] FIN PARA PARA x = 1 HASTA 5 PARA y = 2 HASTA 6 SI (Nombre[x] > Nombre[y] auxN = Nombre[x] Nombre[x] = Nombre[y] Nombre[y] = auxN auxS = Sexo[x] Sexo[x] = Sexo[y] Sexo[y] = auxS auxE = Edad[x] Edad[x] = Edad[y] Edad[y] = auxE FIN SI FIN PARA FIN PARA FIN

EJERCICIOS Desarrolle los siguientes algoritmos: 1.- Llene un vector llamado Nmeros, de 100 posiciones con elementos enteros positivos.

Preparado por Prof: Luis Gonzlez T. Slo para fines docentes

30

2.- Usando el mismo vector del ejercicio anterior, haga un algoritmo que permita llenar el vector slo con nmeros que sean mltiplos de 5 3.- Se tiene un vector llamado Orden de largo 100 con elementos enteros pero distintos entre s. Ordene la primera mitad de ste de menor a mayor y la segunda mitad de mayor a menor. 4.- Se tiene un vector de 50 posiciones de letras ingresadas, cree un algoritmo que determine cuantas veces se da que una letra se encuentre en una posicin que coincida con su posicin dentro del abecedario. 5.- una tienda de calzado ha utilizado un vector para colocar los precios de sus zapatos de tal forma que el precio de un zapato est ubicado en la posicin que corresponda a su nmero, as, un zapato nmero 33 tiene su precio en la posicin 33 del vector y un zapato nmero 40 tiene su precio en la posicin 40m del vector. Con estos datos realice un algoritmo que le permita al usuario procesar tantas ventas como desee si por cada una de ellas tiene que leer e nmero del zapato y la cantidad de pares que desea llevar para recibir del algoritmo el monto a pagar. 6.- Una empresa tiene una lista de sus empleados en la que se tiene sus nombres, edad y su estado civil. Confeccione un algoritmo que permita determinar cual es la edad que se repite ms en la lista. 7.- Una persona ha escrito en un vector un mensaje. Si se sabe que: En cada casilla hay un carcter. El mensaje no necesariamente empieza en la primera posicin. El mensaje no termina necesariamente en la ultima posicin del vector. Cada palabra est separada por uno o ms espacio en blanco.

Cree un algoritmo que permita determinar cuantas palabras fueron ingresadas. 8.- Se tiene dos arreglos unidimensionales. KALTO y KABAJO de 50 elementos. Se debe crear otros tres arreglos. El primero, con la suma de os elementos respectivos, el segundo con el producto y el tercero con la difere3ncia (si la diferencia es negativa coloque 0 como valor). 9.- Se tiene un arreglo llamado AX de 40 elementos determine: La cantidad de nmeros impares. La cantidad de nmeros positivos La cantidad de nmeros entre 0 y 9 La cantidad de nmeros pares.

10.- Cree un algoritmo que permita corregir una prueba de seleccin nica de 30 preguntas. Para ello debe crear tres vectores: uno con las respuestas correctas, otro con las respuestas del alumno y el tercero ser para la correccin. La correccin ser de la siguiente forma: Si la respuesta del alumno esta en blanco deber colocar un * en el vector correccin. Si la respuesta del alumno es igual al de la pauta colocar una letra B. Si la respuesta del alumno no coincide con la de la pauta colocar una letra M. La no ser igual a 7 dividido por la cantidad de preguntas y el resultado multiplicado por la cantidad de respuestas buenas. Deber desplegar: la pauta de correccin, las respuestas del alumno, la correccin y la nota obtenida. El algoritmo debe corregir n cantidad de pruebas.

Preparado por Prof: Luis Gonzlez T. Slo para fines docentes

31

LENGUAJE C
En la redaccin de un programa en C se pueden utilizar para formar los elementos bsicos (constantes, variables, operadores de expresin) las letras maysculas de la A a la Z, las minsculas de la a a z, los dgitos de 0 al 9 y ciertos caracteres especiales.

Caractersticas del lenguaje C


C tiene cinco tipo de datos bsicos incorporados, entre ellos estn los enteros, los caracteres y los reales.

Palabras claves
Una palabra clave es aquella que tiene un significado especial dentro del lenguaje. Debido a esto, nunca deben ser utilizadas como nombres de variables o de funciones. Las palabras claves en C estn escritas en minsculas, siendo 32 las definidas por el estndar ANSI de C: auto break case char const continue default do double else enum extern float for goto if int long register return short signed sizeof static struct switch typedef union unsigned void volatile while

en C, las mayusculas son diferentes con las minsculas, as: else es una palabra clave y ELSE no lo es.

Estructura de un programa en C
Los programas en C, consisten en una o ms funciones. La nica funcin que siempre debe estar presente es la denominada main(), ya que es la primera en ser llamada cuando comienza la ejecucin de programa. La estructura general de un programa en C es la siguiente: #include #define declaracin de funciones declaracin de variables globales main() { variables locales del main() sentencias } f1() { variables locales de la funcin f1() sentencias } . . fn() { variables locales de la funcin fn() sentencias
Preparado por Prof: Luis Gonzlez T. Slo para fines docentes 32

} Los #include son necesarios cuando ocupamos determinadas sentencias que necesitan sus respectiva bibliotecas para poder ejecutarse. Por ejemplo, por lo general una sentencia de entrada/salida requerir de la biblioteca stdio; se debe codificar #include <stdio> Los #define se ocupan cuando una variable debe tener un valor equivalente a travs de todo el programa por ejemplo que la variable PI sea siempre igual a 3.1416; se debe codificar #define PI 3.1416. Las declaraciones de funciones consisten bsicamente en establecer que existe una funcin en algn lugar del programa con una cantidad determinada de variables de entrada y que deber retornar un determinado tipo de valor. Las variables globales son aquellas que se utilizarn a lo largo de todo el programa, en cambio, las variables locales son aquellas que se usarn slo en las funciones. El main() es la funcin principal de un programa en C, siempre debe declararse pues el programa en su inicio la primera funcin que se lee es el main(). Si n existe nos arrojar un error. Las funciones deben estar previamente declaradas para poder ser utilizadas. Un programa bsico deber contener a lo menos un rea para el main() y otras rea para los #include.

Biblioteca y enlazado
Una biblioteca es una coleccin de funciones para llevar a cabo diversas tareas. La biblioteca estndar de C, no forma parte del lenguaje, pero si es un entorno que proporciona declaraciones, funciones y macrodefiniciones C no proporciona dentro de la definicin real del lenguaje, mtodos para llevar a cabo las operaciones de entrada/salida (E/S), debido a esto, la mayora de los programas incluyen llamadas a variadas funciones contenidas en la biblioteca estndar del lenguaje C. Cuando e llama a una funcin que no es parte del programa que se ha escrito, C recuerda su nombre. Ms tarde, en enlazador combina el cdigo objeto producido al compilar el programa fuente, con el cdigo objeto de la funcin que se encuentra en la biblioteca estndar. Este proceso se llama enlazamiento.

Identificadores y palabras claves


Identificadores: corresponden a los nombres usados para referirse a las variables, funciones, etiquetas y otros objetos definidos por el programador. La longitud de un identificador puede variar entre 1 y 32 caracteres. Para definirlos se deben seguir las siguientes reglas: Todo identificador debe empezar con una letra entre "a" y "z" o entre "A" y "Z" o con underscore "_". El resto del identificador pueden ser letras o dgitos del 0 al 9 o underscore. Otros smbolos no pueden ser utilizados. Se consideran caracteres significativos solo los primeros 32. Los identificadores diferencian entre maysculas y minsculas. y12 suma_10 _tempe TABLA SuElDo

Ejemplo: Nombres vlidos: x No vlidos "x" Or-den Id error 4num el primer carcter debe ser una letra. Caracteres ilegales ("). carcter ilegal (-) carcter ilegal (espacio en blanco)

Tipo de datos
Existen en C distintos tipos de datos, cada uno de los cuales se puede encontrar representado de forma diferente en la memoria del computador. Tipo Char Int Float double Tamao en bits 8 16 32 64 Rango 0 a 255 - 32768 a 32767 3.4*10-38 a 3.4*1038 1.7*10-308 a 1.7*10308 Descripcin Solo contiene un carcter Nmero entero Punto flotante precisin simple Punto flotante de doble precisin

Preparado por Prof: Luis Gonzlez T. Slo para fines docentes

33

Los valores tipo char se usan para guardar los valores definidos en el juego de caracteres ASCII; las variables tipo int se usan para guardar cantidades enteras; las variables tipo float y double se utilizan para nmeros reales

Declaracin de variables
Todas las variables deben ser declaradas antes de usarlas. La sintaxis para ello es: Tipo lista_de_variables Donde tipo debe ser un tipo vlido n C y lista_de_variables puede ser uno o ms nombres de identificadores separados por comas. Ejemplos: int i,j,k; float impuesto, IVA, calculo; Es muy importante en el uso de variables el realizar una adecuada inicializacin de las mismas, ya que al crearlas, stas pueden tomar cualquier valor, lo que puede afectar el correcto funcionamiento de programa. La forma tradicional de inicializacin en los lenguajes de programacin es: int contador; contador = 0 Sin embargo, en C es posible realizar dicha inicializacin en e momento de la declaracin de la variable int contador=0, loop =-1; float IVA=0.18

Constantes
C tiene cuatro tipos bsicos de constantes: constantes enteras, de cmo flotante, de carcter y de cadenas de caracteres. Las constantes enteras y de coma flotante representan nmeros. Se las denomina en general constantes de tipo numrico. Las siguientes reglas se pueden aplicar a todas las constantes numricas: No se pueden incluir comas ni espacios en blanco. Si se desea, la constante puede ir precedida de un signo menos (-)

Una constante entera decimal puede tener cualquier combinacin de dgitos tomados del conjunto de 0 a 9. Una constante de coma flotante es un nmero decimal que contiene un punto decimal. Una constante de carcter es un solo carcter encerrado entre comillas simples. Una constante de cadena de caracteres consta de cualquier nmero de caracteres consecutivos encerrados entre comillas (").

Operadores en C
Un operador es un smbolo que le indica al compilador que lleve a cabo ciertas manipulaciones matemticas o lgicas. En C, hay tres clases generales de operadores: aritmticos, relacionales y lgicos. Operadores aritmticos Operador + * / % -++ Operadores relacionales Operador > >= < <= == != Accin Mayor Mayor o igual Menor Menor o igual Igual Distinto
34

Accin Resta Suma Multiplicacin Divisin Divisin en mdulo Decremento incremento

Preparado por Prof: Luis Gonzlez T. Slo para fines docentes

Operadores lgicos Operador && || ! Accin And Or Not

Declaraciones
Una declaracin asocia un tipo de datos determinado a un grupo de variables. 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 nombre de variables separadas por una coma (,), finalizando con un punto y coma (;).

Expresiones
Una expresin representa una unida de datos simples, tal como un nmero o un carcter. La expresin puede consistir en una entidad simple, como una constante, una variable, un elemento de un array o una referencia a una funcin. Tambin puede consistir en alguna combinacin de tales entidades interconectadas por uno o ms operadores.

Sentencias
Una sentencia hace que el computador lleve a cabo alguna accin. Hay tres tipos de sentencias en C: de expresin, compuestas y de control. Una sentencia de expresin consiste en una expresin seguida de un punto y coma (;). Una sentencia compuesta esta formada por una o varias sentencias individuales enceradas con un par de llaves ({}). Una sentencia compuesta no termina en un punto y coma. La sentencias de control se utilizan para conseguir ciertas acciones especiales en los programas, tales como comprobaciones lgicas, bucles y ramificaciones. Muchas sentencias de control requieren que otras sentencias se encuentren incluidas en ellas. ENTRADA Y SALIDA DE DATOS Funcin scanf() Biblioteca <stdio> Es una funcin de entrada que permite leer datos y almacenarlos en variables predefinidas. Formato: scanf("especificacin de formato", arg1, arg2, ... argn) Los especificadores de formato estn predefinidos por el smbolo % e indica los tipos de datos que se van a leer a continuacin. Algunos especificadores: Cdigo %c %d %f %s Significado Leer un nico carcter Leer un entero decimal Leer un nmero flotante Leer un string

Cada nombre de variable debe ser precedido por un ampersand (&). Sin embargo, los nombres de strings no deben ser precedidos por el ampersand. Ejemplo: scanf("%s %d %f", letras, &entero, &flotante); En este ejemplo se leer en primer lugar un string a continuacin un numero entero y por ltimo un numero flotante. Funcin printf()
Preparado por Prof: Luis Gonzlez T. Slo para fines docentes 35

Biblioteca <stdio> Es una funcin de salida que permite escribir datos y desplegarlos por pantalla. Formato: printf("especificacin de formato", arg1, arg2, ... argn) La especificacin de formato son similares a los de la funcin scanf(). Ejemplo: printf("%f %d", a, b) En este ejemplo se desplegara en primer lugar un numero flotante a continuacin un numero entero. En el siguiente ejemplo se den ingresar tres nmeros y se deber desplegar la multiplicacin del primer nmero con el segundo y el resultado de la divisin del resultado de la primer operacin dividido por e tercer nmero ingresado. #include <stdio> main() { int a,b,c,d,e; a = 0; b = 0; c = 0; d = 0; e = 0; printf("ingrese valor de a"; scanf("%d",a); printf("ingrese valor de b"; scanf("%d",b); printf("ingrese valor de c"; scanf("%d",c); d = a * b; e = d / c; printf("resultado multiplicacin %d \n", d) printf("resultado divisin %d \n", e) } Sentencias de control: Sentencia if - else Se utiliza para realizar un test lgico y a continuacin llevar a cabo una de dos posibles acciones, dependiendo del resultado. Formato 1: If (expresin) { Sentencias } Formato 2: If (expresin) { Sentencias } else { Sentencias } ejemplos: if (x > 0) { printf(" X es mayor a 0: %d", x
Preparado por Prof: Luis Gonzlez T. Slo para fines docentes 36

} if (x > 0) { printf(" X es mayor a 0: %d", x } else { printf(" X es menor o igual a 0: %d", x } Sentencia for Es una estructura de control que define un nmero fijo de iteraciones sobre un grupo de expresiones. Formato: for (inicializacin;condicin;incremento) { grupo de instrucciones } inicializacin: se utiliza para inicializar un parametro que controla la repeticin del ciclo. Condicin: es la condicin que debe ser satisfecha para que se contine la ejecucin del ciclo. Incremento: se utiliza para modificar el valor del parametro inicialmente asignado en la inicializacin. Ejemplo: ....... A = 1; B = 5; I = 0; For (I = 1; I <= B; I++) { A=A*I printf("valor de A = %d", A) } Sentencia while Es una estructura de control que permite generar ciclos mientras se cumpla la condicin. Formato: while (condicin) { sentencias; } Ejemplo: #include <stdio.h> /* visualiza los nmero del 0 al 9 */ main() { int digito = 0; while (digito <= 9) { printf("%d \n", digito); ++digito; } } Sentencia do - while Es una estructura de control que permite generar ciclos mientras se cumpla la condicin. Esta sentencia, se diferencia del while ya que primero se ejecuta el ciclo y despus se realiza el test. Formato Do {
Preparado por Prof: Luis Gonzlez T. Slo para fines docentes 37

sentencias; } while(condicin);

ejemplo #include <stdio.h> /* visualiza los nmero del 0 al 9 */ main() { int digito = 0; do { printf("%d \n", digito); ++digito; } while (digito <= 9); } Sentencia switch Hace que se selecciones un grupo de sentencias entre varios grupos disponibles. La seleccin se base en el valor de una expresin que se incluye en la sentencia switch. Formato: Switch (expresin) sentencia La sentencia incluida es generalmente una sentencia compuesta que especifica opciones a seguir. Cada opcin se especifica como un grupo de una o ms sentencias individuales dentro de la sentencia global incluida. Para cada opcin, la primera dentro del grupo debe ser precedida por una o ms etiquetas case, estas identifican los diferentes grupos de sentencias, las etiquetas case deben ser nicas dentro de una sentencia switch dada. Cada grupo de sentencias se escribe de forma general: Case expresin Sentencia 1; Sentencia 2; Sentencia n; Ejemplo: #include <stdio.h> int opcion = 0, abc = 1; while (abc < 4) { printf("Ingrese opcin entre 1 y 3"); scanf("%d", opcion); switch op { case 1: printf("Ingreso un 1"); case 2: printf("Ingreso un 2"); case 3: printf("Ingreso un 3"); default: printf("digit un nmero fuera del rango indicado); } ++abc; }
Preparado por Prof: Luis Gonzlez T. Slo para fines docentes 38

ARRAYS (ARREGLOS) Los arrays se definen en gran parte como las variables ordinarias excepto que cada array debe acompaarse de una especificacin de tamao (numero de elementos). Cada elemento es referido especificando el nombre del array seguido por uno o ms ndices encerrados entre parntesis cuadrados. Ejemplo: int x[10]; char texto[80]; #include <stdio.h> #define tamano 80 main() { char letra[tamano]; int cont: /* leer una lnea en minsculas y desplegarla en mayscula */ for (cont = 0; cont < tamano; cont++ letra[cont] = getchar(); /* despliega la lnea en mayscula */ for (cont = 0; cont < tamano; cont++ putchar(toupper(letra[cont])); En este ejemplo se utilizan las funciones getchar y putchar. Mediante la funcin getchar se puede conseguir la entrada de caracteres uno a uno. La funcin no requiere de argumentos, aunque es necesario que un par de parntesis vacos sigan a la palabra getchar. Mediante la funcin putchar se puede visualizar un carcter. Esta funcin es complementaria a la funcin getchar y transmite un carcter al dispositivo de salida. El carcter que se transmite estar representado por una variable tipo carcter. Se debe proporcionar como argumento de la funcin encerrado entre parntesis, siguiendo a la palabra putchar. Asignacin de valores a una array Ejemplo: int digitos[10] = {1, 2, 3, 4, 5, 6, 7, 8, 9,10} char letras[5] = "ABCD", char letras[5] = {'A', 'B', 'C', 'D', \0}; en este ejemplo se debe incluir explcitamente el carcter nulo Un string es un array de caracteres que finaliza con el carcter nulo, y un carcter es el valor de un byte. Arrays bidimensionales Ejemplo: int valor[3] [4]; /* arreglo de 3 filas y 4 columnas */ int valor[3] [4] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12}; int valor[3] [4] = { {1, 2, 3, 4}, {5, 6, 7, 8}, {9, 10, 11, 12}};
Preparado por Prof: Luis Gonzlez T. Slo para fines docentes 39

FUNCIONES FUNCION: Es un segmento del programa que realiza determinadas tareas bien definidas. Todo programa C cuenta de una o ms funciones. Una de estas funciones debe llamarse main. La ejecucin del programa siempre comenzara por la de las instrucciones contenidas en main. Si un programa contiene varias funciones, sus definiciones deben aparecer en cualquier orden, pero deben ser independientes una de otras. Esto es, una definicin de una funcin no puede estar incluida en otra. Cuando se llama a una funcin desde alguna determinada parte del programa, se ejecutan las instrucciones de que consta. Se puede acceder a una funcin desde varios lugares distintos del programa. Una vez que se ha completado la ejecucin de una funcin, se devuelve el control al punto desde que se accedi. Las funciones en C, presentan la siguiente forma: Tipo_funcin nombre (lista_parametros) { cuerpo de la a funcin return(valor); } Tipo_funcion corresponde al tipo de valor que devuelve la funcin, pudiendo ser cualquier tipo valido, si no devuelve valor el tipo es void. La sentencia return, tiene dos usos importantes. Primero fuerza una salida inmediata de la funcin en que se encuentra, siguiendo la ejecucin en la sentencia siguiente de donde fue llamada. El otro uso, es devolver un valor. En C, todas las funciones excepto las de tipo void, devuelven valor. Este valor, se especifica explcitamente en la sentencia return. Cuando una funcin no se define de tipo void y, adems, no se especifica un valor de retorno, entonces el valor devuelto por la funcin queda tcnicamente indefinido En C, es fundamental colocar el tipo de la funcin, pues de lo contrario se interpretara, que la funcin retorna un entero. ARGUMENTOS DE FUNCIONES: Cada funcin que use argumentos, debe declarar variables que acepten los valores de los argumentos. Esta variables se llaman parmetros formales de la funcin. Ejemplo: Mul(int a, int b) { return(a * b); } La funcin Mul tiene dos parmetros: a y b. Al igual que como otro tipo de variables, se pueden hacer asignaciones a los parmetros formales de una funcin o usarlos en cualquier expresin vlida de C. PASO DE ARGUMENTOS A LAS FUNCIONES LLAMADA POR VALOR: En esta forma de pasar argumentos, se copia el valor del argumento en el parmetro formal de la funcin. De esta manera, los cambios producidos en los parmetros de la funcin no afectan alas variables que se usan en la llamada. Ejemplo: #include <stdio.h> int SUMA(int a, int b) { int c; #include <stdio.h> int SUMA(int a, int b); main()
40

Preparado por Prof: Luis Gonzlez T. Slo para fines docentes

c = a + b); return (c); } main() { int x=5, y=6,z=0; z = SUMA(x,y); printf("la suma de %d + %d = %d",x,y,z); }

int x=5, y=6,z=0; z = SUMA(x,y); printf("la suma de %d + %d = %d"x,y,z);

} int SUMA(int a, int b) { int c; c = a + b); return (c); }

LLAMADA POR REFERENCIA: Es otra forma de pasar argumentos a una funcin. En este mtodo, se copia la direccin del argumento en el parmetro formal, cualquier cambio producido en los parmetros de la funcin, modifican a la variable usada en la llamada. Para causar una llamada por referencia se debe pasar un puntero al argumento, esto se hace incorporando un & delante de l. Adems, se debe declarar el respectivo parmetro formal de tipo puntero. Ejemplo: #include <stdio.h> main() { int x=5, y=6; printf("x = %d y = %d \n",x,y); CAMBIAR(&x,&y); printf("ahora x = %d y = %d \n",x,y); } int CAMBIAR(int *a, int *b) { int z; z = *x; *x = *y; *y = z; } PUNTEROS PUNTERO: es una variable que contiene una direccin de memoria. Normalmente, esa direccin es la posicin en memoria de otra variable. La forma general de declarar un puntero es la siguiente: tipo *nombre Tipo, es cualquier tipo valido en C; nombre, es el nombre de la variable puntero. Existen 2 operadores especiales de puntero: & y *. El & devuelve la direccin de memoria de su operando, y el *, devuelve el valor de la variable que se encuentra en la direccin apuntada. Ejemplo: #include <stdio.h> main() { int x=5; /* define un puntero a p1 y p2 */ int *p1, *p2; /* p1 toma la direccin de x */ p1 = &x; /* p2 toma el valor de p1 */ p2 = p1; printf("Contenido de x %d \n", x); printf("Direccion de x en p1 y en p2 %p %p \n", p1, p2); printf("Contenido de p1 y p2 como entero %d %d \n", *p1, *p2); printf("Contenido de p1 y p2 como punteros %p %p \n", *p1, *p2); } #include <stdio.h> main() { int x=100, y=200;
Preparado por Prof: Luis Gonzlez T. Slo para fines docentes 41

/* define un puntero a p */ int *p; /* p toma la direccin de y */ p = &y; /* x toma el resultado de la multiplicacin del valor que tiene la direccin asignada a p * 5 */ x = *p * 5; printf(" x = %d \n", x); printf(" y = %d \n", y); printf( direccion p = %p \n", p); printf( valor de p = %d \n", *p); } ESTRUCTURAS Una estructura es un tipo conglomerado que esta compuesto por dos o ms elementos relacionados. A diferencia de los arreglos, cada elemento de una estructura puede tener su propio tipo, que puede diferir de los tipos de los otros elementos. Los elementos individuales de una estructura son referidos como miembros. Una estructura debe ser definida en trminos de sus miembros individuales. Las estructuras se definen usando la siguiente forma general: struct etiqueta { tipo elem-1; tipo elem-2: ......... tipo elem-n; } variables tipo etiqueta; Ejemplo: struct libros { char autor[25]; char titulo[30]; char editor[25]; int cantidad; float valor; } nuelib, antlib; Tambin se pueden declarar variables de estructura del tipo etiqueta, en el ejemplo libros es la etiqueta y nuelib y antlib son variables del tipo libros, es decir, tienen el mismo formato que libros. PROCESAMIENTO DE UNA ESTRUCTURA: Los miembros de una estructura se procesan generalmente en forma individual, esto se realiza escribiendo: variable.miembro variable es el nombre de una variable tipo de un tipo de estructura y miembro el nombre de un miembro dentro de la estructura, la variable y el miembro deben ir separados por un punto. Ejemplo: nuelib.autor MANEJO DE ARCHIVOS EN LENGUAJE C APERTURA Y CIERRE DE UN ARCHIVO: Cuando se trabaja con archivos, el primer paso es establecer un rea de buffer donde la informacin se almacena temporalmente mientras se esta transfiriendo entre la memoria y el archivo de datos. Esta rea de buffer permite leer y escribir informacin del archivo ms rpidamente. El rea de buffer se establece definiendo un puntero tipo archivo de la siguiente forma: FILE *nombre-variable FILE (en mayscula) es un tipo especial de estructura que establece el rea de buffer, nombre-variable la variable puntero que indica el principio del rea (FILE normalmente definido en stdio.h). Un archivo debe ser abierto antes de ser creado a procesado. Esto asocia el nombre de archivo con el rea de buffer. Tambin especifica como se va a utilizar el archivo. Para abrir el archivo se codifica lo siguiente: nombre-variable = fopen("nombre-archivo","tipo-archivo");
Preparado por Prof: Luis Gonzlez T. Slo para fines docentes 42

Nombre-archivo y tipo-archivo son cadenas que representan, respectivamente, el nombre del archivo y la forma en que el archivo ser utilizado. Tipo-archivo:

"r" abre el archivo para lectura. "w" abre el archivo para escritura, si existe ser destruido y creado uno nuevo. "a" agrega, abre o crea el archivo para escribir al final. "r+" abre el archivo para actualizacin. "w+" crea el archivo para actualizacin; descarta cualquier contenido previo si existe. "a+" Lee y agrega, si no existe crea uno nuevo. La funcin fopen retorna un puntero al principio del rea de buffer asociada con el archivo, Se retorna el valor NULL si no puede abrir el archivo. Ejemplo: FILE *ftp; ................ ftp = (fopen("hola.dat","r")) if (ftp == NULL) printf("No puedo abrir archivo ya que archivo no existe"); else PROCESO fclose(ftp); otra forma: if ((ftp = fopen("hola.dat","r")) == NULL) printf("No puedo abrir archivo ya que archivo no existe"); else PROCESO ......... fclose(ftp); LECTURA Y ESCRITURA DE ARCHIVOS Funcin fread: permite leer un archivo. Formato: fread(&nn,sizeof(nn),1,pp); Funcin fwrite: permite escribir en un archivo . Formato: fwrite(&nn,sizeof(nn),1,pp); Cada una de estas funciones necesita cuatro argumentos: nn: es la variable estructura tipo registro, sizeof(): el tamao del bloque de datos. 1: el numero de bloques a transferir. pp: el puntero al archivo. Ejemplo lectura: fread(&nuelib,sizeof(nuelib),1,ftp); Ejemplo escritura: fwrite(&nuelib,sizeof(nuelib),1,ftp);

EJEMPLO DE MANEJO DE ARCHIVOS #include <stdio.h> #include <conio.h> ...... Define estructura para el registro de datos del archivo struct nombre-estructura { definicin de campos } nombre-registro; main() { Define puntero para el archivo
Preparado por Prof: Luis Gonzlez T. Slo para fines docentes 43

FILE *puntero; .. }

GRABACION DE ARCHIVOS Abre el archivo para escribir (grabar) registro If ((puntero=fopen("nomb-archivo,"wb")) == NULL) { printf("No hay espacio en disco para crear archivo"); exit(1); } ........... Graba registro en archivo fwrite(&nomb-registro,sizeof(nomb-registro,1,puntero) LECTURA DE ARCHIVO Abre archivo para lectura If ((puntero=fopen("nomb-archivo,"rb")) == NULL) { printf("No existe el archivo en el disco"); break; } ........... Lee un registro del archivo fread(&nomb-registro,sizeof(nomb-registro,1,puntero) Proceso del registro ......... ACTUALIZACION DE ARCHIVO Abre archivo para actualizacin If ((puntero=fopen("nomb-archivo,"rb+")) == NULL) { printf("No existe el archivo en el disco"); break; } ........... ........... Lee un registro del archivo y guarda la cantidad de bytes ledos (ftell) fread(&nomb-registro,sizeof(nomb-registro,1,puntero) X = ftell(puntero); ... Proceso del registro . ...... Regrabacin del registro actualizado X tiene la cantidad de bytes ledos LR tiene que tener la longitud del registro X = X - LR; fseek(puntero,X,0); se posiciona para regrabar el registro fwrite(&nomb-registro,sizeof(nomb-registro,1,puntero)
Preparado por Prof: Luis Gonzlez T. Slo para fines docentes 44

X = X + LR; . ... Lee el siguiente registro

suma la longitud del registro

fseek(puntero,X,0); se posiciona en el siguiente registro fread(&nomb-registro,sizeof(nomb-registro,1,puntero) X = ftell(puntero); ... Cierre del archivo fclose(puntero); CICLO PARA PROCESO HASTA FIN DE ARCHIVO Leer registro while(!feof(puntero)) { .... Proceso del registro .... .... Leer registro nuevamente }.

Preparado por Prof: Luis Gonzlez T. Slo para fines docentes

45

ALGUNAS FUNCIONES DE BIBLIOTECA Archivo include Cerrar los archivos y terminar el programa. stdlib.h Cierra el archivo f, devuelve 0 si se ha cerrado con xito. stdio.h Determina si se ha encontrado fin de archivo, si es as, stdio.h devuelve un valor distinto de 0. Retorna el resto de d1/d2 con el mismo signo que d1. math.h Abre un archivo llamado s1, del tipo s2. stdio.h Permite leer registros de un archivo. stdio.h Mueve el puntero al archivo f una distancia de 1 byte stdio.h desde a posicin donde se encuentra. Retorna la posicin actual del puntero dentro del archivo stdio.h f. Permite grabar registros en un archivo. stdio.h Espera que se le ingrese un carcter y devuelve el valor conio.h pero no lo muestra en pantalla. Lee un carcter desde el dispositivo standard. stdio.h Espera que se le ingrese un carcter y devuelve el valor conio.h mostrndolo en pantalla. Lee una cadena desde el dispositivo standard. stdio.h Determina si e argumento es alfanumrico. Retorna un ctype.h valor distinto de 0 si es cierto. Determina si el argumento es alfabtico. Retorna un valor ctype.h distinto de 0 si es cierto. Determina si el argumento es un dgito decimal. Retorna ctype.h un valor distinto de 0 si es cierto. Determina si el argumento es una letra minscula ctype.h Retorna un valor distinto de 0 si es cierto. Determina si el argumento es un carcter de puntuacin. ctype.h Retorna un valor distinto de 0 si es cierto. Determina si el argumento es un espacio en blanco. ctype.h Retorna un valor distinto de 0 si es cierto. Determina si el argumento es una letra mayscula. ctype.h Retorna un valor distinto de 0 si es cierto. Retorna d1 elevado a d2. math.h Escribe datos en el dispositivo de salida standard. stdio.h Escribe un carcter en el dispositivo de salida standard stdio.h Escribe una cadena en el dispositivo de salida. stdio.h Lee datos del dispositivo de entrada standard. stdio.h Retorna la raz cuadrada de d. math.h Concatena una copia de cd2 en cd1 y aade al final de string.k cd1 un carcter nulo. Compara dos cadenas. Retorna un valor negativo si s1 < string.h s2, 0 si s1= s2, y un valor positivo si s1> s2. Esta funcin considera las maysculas y minsculas. Compara dos cadenas. Retorna un valor negativo si s1 < string.h s2, 0 si s1= s2, y un valor positivo si s1> s2. Compara sin considera las maysculas y minsculas. Copia la cadena s2 en la cadena s1. string.h Retorna el numero de caracteres de la cadena string.h Propsito
46

funcin exit(u) fclose(f) feof(f) fmod(d1,d2) fopen(s1,s2) fread(s,i1,i2,f) fseek(f,l,f) ftell(f) fwrite(s,i1,i2,f) getch() getchar(void) getche() gets(s) isalnum(c) isalpha(c) isdigit(c) islower(c) ispunct(c) isspace(c) isupper(c) pow(d1,d2) printf(...) putchar(c) puts(s) scanf(...) sqrt(d) strcat(cd1,cd2) strcmp(s1,s2) strcmpi(s1,s2) strcpy(s1,s2) strlen(s,c)

Tipo void int int double file* int int long int int int int int char* int int int int Int int int double int int int int double char int int char* int

Preparado por Prof: Luis Gonzlez T. Slo para fines docentes

strset(s,c) tolower(c) toupper(c)

char* int int

Pone todos los caracteres de s en c (excluyendo el string.h carcter nulo del final \0). Convierto una letra a minscula. ctype.h stdlib.h Convierto una letra a mayscula. ctype.h stdlib.h

Preparado por Prof: Luis Gonzlez T. Slo para fines docentes

47

Potrebbero piacerti anche