Está en la página 1de 47

INTRODUCCION A LA INFORMATICA

Informática es la ciencia que estudia el tratamiento automático y racional de la información.

Se dice que el tratamiento es automático por ser máquinas las que realizan los trabajos de captura, proceso y
presentación de la información, y se habla de racional por estar todo el proceso definido a través de
programas que siguen el razonamiento humano.
Dentro de la ciencia de la informática se encuentran incluidas una serie de funciones de las que
mencionamos a continuación las más importantes:
• El desarrollo de nuevas máquinas
• El desarrollo de nuevos métodos de trabajo
• La construcción de aplicaciones informáticas
• Mejorar los métodos y aplicaciones existentes
Desde la aparición de las primeras máquinas de cálculo, no se ha parado la investigación para obtener
máquinas más potentes, rápidas, pequeñas y baratas. Por otra parte, en paralelo con el desarrollo de estas
máquinas, tampoco se detiene la investigación para conseguir nuevos métodos de trabajo, novedosas formas
de explotación de las máquinas e innovadores modos de compartir los recursos.
La función de creación de aplicaciones informáticas se refiere al desarrollo de programas para que las
máquinas realicen el trabajo para el que han sido creadas.

ELEMENTOS Y CONCEPTOS FUNDAMENTALES

Desde el punto de vista informático, el elemento físico utilizado para el tratamiento de la información es el
computador, computadora u ordenador, que puede ser definido de la siguiente manera: es una máquina
compuesta de elementos físicos, en su mayoría de origen electrónico, capaz de realizar una gran variedad de
trabajos a gran velocidad y con gran precisión, 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 más la documentación correspondiente para
realizar un determinado trabajo, se denomina aplicación informática
El término sistema informático se utiliza para nombrar al conjunto de elementos necesarios (computadora,
terminales, impresoras, etc.) para la realización y explotación de aplicaciones informáticas.
La información 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á información cuando se da a conocer algo que se desconoce.
Los datos que maneja un programa son en un principio información no elaborada y una vez procesados
(ordenados, comparados, sumados, etc.) constituyen lo que se denomina información útil o simplemente
resultados.
Para que una información sea tratada necesita transmitirse o trasladarse de un lugar a otro, y para que exista
transmisión de información son necesarios tres elementos:
• El emisor que da origen a la información
• El medio que permite la transmisión
• El receptor que recibe la información
Al conjunto de operaciones que se realiza sobre una información se le denomina tratamiento de la
información. Estas operaciones siguen una división lógica que se representa en el siguiente esquema:
Recogida de datos
Entrada Depuración de datos
Almacenamiento de datos

Tratamiento de Aritmético
la información Proceso
Lógico

Recogida de resultados
Salida
Distribución de resultados

Preparado por Prof: Luis González T. Sólo para fines docentes 1


En términos generales se denomina entrada al conjunto de operaciones cuya misión es tomar los datos del
exterior y enviarlos a la computadora; para ello en ocasiones es necesario realizar operaciones de depuración
o validación 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 combinación adecuada de operaciones de origen aritmético y test
de tipo lógico.
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 también aquellas operaciones que dan forma a los
resultados y los distribuyen adecuadamente.
El algoritmo necesario para la resolución de un problema queda definido cuando una aplicación informática
es analizada, de tal forma que posteriormente cada proceso se codifica en un lenguaje que sea reconocido por
la máquina, y tras una preparación final obtendremos una solución ejecutable por la computadora. La
automatización de un problema para que pueda ser desarrollado por una computadora se representa en el
siguiente esquema:

Planteamiento Análisis Algoritmo Ejecución por


del problema del mismo de solución computadora

CICLO DE VIDA DE UNA APLICACION INFORMATICA

Una aplicación informática se compone de uno o varios programas interrelacionados que tienen por objeto la
realización de una determinada tarea de forma automática mediante el uso de un sistema informático.
Ciclo de vida de una aplicación informática es el proceso que se sigue desde el planteamiento de un
problema hasta que se tiene una solución 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 DISEÑO FASES DE LA INSTALACION

EDICION
Problema Programa fuente
ANALISIS COMPILACION
Especificación Programa objeto
PROGRAMACION MONTAJE
Algoritmo Programa ejecutable
PRUEBA DE
CODIFICACION
EJECUCION
programa Aplicación
EXPLOTACION Y
MANTENIMIENTO

DISEÑO DEL PROGRAMA

Fase de análisis: Consiste en el examen y descripción detallada de los siguientes aspectos relativos al
problema:
- Equipo a utilizar (computador, periféricos, soportes, material auxiliar, etc.).
- Personal informático.
- Estudio de los datos de entrada (INPUT)
- Estudio de los datos de salida (OUTPUT)
- Relación entre la salida y la entrada.
- Descomposición del problema en módulos.

Preparado por Prof: Luis González T. Sólo para fines docentes 2


El resultado de esta fase se denomina especificación del problema, formada por e conjunto de documentos
elaborados para los aspectos citados.
Fase de programación: Consiste en el diseño de la solución al problema planteado en forma de algoritmo.
Se debe abordar en forma sistemática, esto es, aplicando explícitamente un conjunto de técnicas, como
programación estructura y diseño descendente.
El resultado es un algoritmo o descripción del conjunto de acciones que deberán ser realizadas por el
computador.
Para su representación se utilizan diferentes notaciones, como ordinogramas, pseudocódigo, etc.
Fase de codificación: En esta fase se transcribe e algoritmo resultante de la fase anterior a un lenguaje de
programación concreto. Al resultado se le denomina programa, que normalmente será escrito en hojas de
codificación.

INSTALACION Y EXPLOTACION DE PROGRAMA

Fase de edición: Escritura del programa fuente a partir de las hojas de codificación en la memoria del
computador, grabando en algún soporte permanente. Se realiza con la ayuda de un programa del sistema
denominada editor.
Fase de compilación: Traducción del programa fuente a lenguaje de máquina cuyo resultado es el programa
objeto. Para ello se dispone de programas compiladores o intérpretes, que, además, comprueban la correcta
sintaxis de programa.
Fase de montaje: En los programas compilados es necesario añadir 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 ejecución: Consiste en ejecutar el programa sucesivas veces con diferentes datos de prueba para
asegurar su correcto funcionamiento.

Fase de explotación y mantenimiento: La explotación consiste en e uso continuo y habitual por parte de os
usuarios de la aplicación mientras tenga utilidad.
Paralelamente a la explotación de una aplicación se realiza el mantenimiento de la misma, consistente en la
comprobación periódica de su buen funcionamiento.

ERRORES

Según el momento fase en que se detectan, los errores se clasifican de la siguiente manera:
Errores de compilación: Los errores en tiempo de compilación o sintácticos, corresponden al
incumplimiento de las reglas sintácticas del lenguaje, por ejemplo una palabra reservada del lenguaje mal
escrita, una instrucción incompleta, etc.
Estos errores son los más fáciles de corregir, ya que son detectados por el compilador, el cual dará
información sobe el lugar donde está y la naturaleza de cada uno de ellos mediante un mensaje de error.
Errores de ejecución: Se deben generalmente a operaciones no permitidas, como dividir por cero, leer un
dato no numérico en una variable numérica.
Se detectan porque se produce una parada anormal del programa durante su ejecución y se dice entonces que
el programa se ha caído o que ha sido abortado por el sistema.
Son más difíciles de detectar corregir que os errores sintácticos, ya que ocurren o no.
Errores de lógica: Corresponden a la obtención 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
más 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 más difíciles de corregir, no sólo por a dificultad para detectarlos, sino porque se deben a la propia
concepción y diseño del programa.
Errores de especificación: Es posiblemente el peor tipo de error y el más costoso de corregir. Se deben a la
realización de unas especificaciones incorrectas motivadas por una mala comunicación entre el programador
y quien plantea en problema.
Se detectan normalmente cuando ya ha concluido e diseño e instalación del programa, por lo que su
corrección puede suponer la repetición de gran parte del trabajo realizado.
Preparado por Prof: Luis González T. Sólo para fines docentes 3
CALIDAD DE LOS PROGRAMAS

Para un determinado problema se pueden construir diferentes algoritmos de resolución o programas. Las
características generales que debe reunir un programa son las siguientes:
- Legibilidad: Ha de ser claro y sencillo, de tal forma que facilite su lectura y comprensión.
- Fiabilidad: Ha de ser capaz de recuperarse frente a errores o usos inadecuados.
- Portabilidad: Si diseño debe permitir la codificación en diferentes lenguajes de programación, así como
su instalación en diferentes sistemas.
- Modificabilidad: Ha de facilitar su mantenimiento, esto es, las modificaciones y actualizaciones
necesarias para adaptarlo a una nueva situación.
- Eficiencia: Se deben aprovechar al máximo los recursos de la computadora, minimizando la memoria
utilizada y el tiempo de proceso o ejecución, siempre que no sea a costa de los requisitos anteriores.

PILARES BASICOS EN LOS QUE SE SUSTENTA LA INFORMATICA

Los tres pilares básicos en que se sustenta la Informática son:


• Elemento físico (Hardware)
• Elemento lógico (Software)
• Elemento humano (Personal informático)

Esquema básico del elemento físico (hardware)

El hardware es el elemento físico de un sistema informático, es decir, todos los materiales que los componen,
como el propio computador, los dispositivos externos, los cables, los soportes de la información y en
definitiva todos aquellos elementos que tienen entidad física.

Memoria Principal

U. C. P.
Entrada Salida
U. C. U. A. L.

Memoria Auxiliar
(Soportes magnéticos)

Unidad Central de Proceso (U.C.P.). Es el elemento principal o centro neurálgico de una computadora y su
misión consiste en coordinar, controlar y ejecutar todas las operaciones del sistema informático y consta de:
• Unidad de Control (U.C.). Es la encargada de gobernar al resto de las unidades, además de interpretar y
ejecutar las instrucciones controlando su secuencia.
• Unidad Aritmética y Lógica (U.A.L.). Es la encargada de realizar todas las operaciones elementales de
tipo aritmético y de tipo lógico.
Memoria Principal. También denominada memoria interna, es el elemento encargado de almacenar los
programas y los datos necesarios para que el sistema informático 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 también 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 módulos denominados SIMM de memoria y se colocan en la tarjeta madre en
calzos llamados Slots.
- Memoria ROM (Read Only Memory): Memoria sólo de lectura. Esta es una memoria permanente, ya
que os programas contenidos en ella siempre están 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
básicos de operación que proporciona el fabricante del equipo.

Preparado por Prof: Luis González T. Sólo para fines docentes 4


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 típico 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 mínima procesable por el computador. Un byte está compuesto por 8 bits,
suficiente para almacenar una carácter único.
1 kilobyte son 1024 byte
La capacidad de RAM de un computador suele expresarse en múltiplos de K -2 elevado a 8, se utiliza 2
porque son dígitos binarios, luego:
1 Bits 0ó1
1 Byte 8 Bit
1 Kilobyte 1024 Byte
1 Megabyte 1024 Kilobyte
1 Gigabyte 1024 Megabytes
1 Terabyte 1024 Gigabyte

Categorías de la Memoria RAM

- Memoria convencional: El primer megabyte de RAM en el computador personal se llama memoria


convencional por convención se ponen aparte los primeros 640 K de RAM para programas y datos.
- Memoria Superior (UMA): entre 640 y 1023 K (periféricos y dispositivos anexos). Los controladores
de dispositivos usan la UMA para códigos de datos de programa. Ciertos dispositivos tiene rangos de
memoria estándar 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 estándar para emplearlas y los
programadores de DOS por lo general no permiten que sus programas usen cualquier memoria por
encima de los 640K. Este estándar evita que un programa emplee por accidente la misma área de
memoria que uno de los periféricos de la computadora personal lo que podría trabar el sistema.
- Memoria extendida: Sobre los 1023 K (trabaja en línea, más rápida). 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 fantástico 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, más 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 categoría. 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 más memoria RAM.
Uno de os sistema que más usa este método es Windows (crea archivos con extensión TMP).
Resumen de memoria RAM
Convencional Primeros 640 k (programas y datos)
Superior (UMA) Entre 640 y 1023 k (Periféricos y Dispositivos anexos)
Extendida Sobre los 1023 k (Trabaja en línea, más rápida)
Expandida Sobre los 1023 k (Trabaja en bloques, es más lenta)
Virtual Ocupa el disco duro como anexo a la memoria RAM

Preparado por Prof: Luis González T. Sólo para fines docentes 5


Elementos de Entrada. También llamados periféricos o unidades de entrada, son los dispositivos
encargados de introducir los datos y los programas desde el exterior a la memoria principal para su
utilización. Estos dispositivos, además de recibir la información, la preparan para que la máquina pueda
entenderla de forma correcta.
La principal unidad de entrada es el teclado: existen de 84 y 101 teclas
Elementos de Salida. También denominados periféricos 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 informático, como unidades de salida más importantes del computador tenemos:
- Monitor: (pantalla) permite visualizar los datos y respuestas dadas por el computador
Tipos de monitor:
- EGA, en informática, acrónimo inglés de Enhanced Graphics Adaptor (adaptador de
gráficos mejorado), un adaptador de monitor de vídeo lanzado por IBM en 1984. El EGA es
capaz de emular el CGA, acrónimo inglés de Color Graphics Adapter (Adaptador para
Gráficos Color) y el MDA, así como de proporcionar varios modos de vídeo adicionales,
entre ellos un modo de 43 caracteres de línea y un modo gráfico con 640 píxeles
horizontales por 350 píxeles verticales y 16 colores seleccionados en una paleta de 64.
- CGA :Adaptador para Gráficos Color.
- VGA, en informática, acrónimo de Video Graphics Array, un adaptador de vídeo
presentado por IBM en 1987. El adaptador VGA reproduce todos los modos de vídeo de
la tarjeta EGA (acrónimo de Enhanced Graphics Adapter) e incorpora varios modos
adicionales. Los nuevos modos más conocidos son el de 640 píxeles horizontales por
480 verticales, con 16 colores simultáneos a elegir de una paleta de 262.144 colores, y el
modo de 320 píxeles horizontales por 200 verticales, con 256 colores a elegir de una
paleta de 262.144 colores.
Modo de Texto: 80 x 25
Modo Gráfico: 1024 x 768

- Impresora:

Memoria Auxiliar. También denominada Memoria secundaria, son los dispositivos de almacenamiento
masivo de información que se utilizan para guardar datos y programas en el tiempo para su posterior
utilización. La característica principal de los soportes que manejan estos dispositivos es la de retener la
información a lo largo del tiempo mientras se desee, recuperándola cuando sea requerida y sin que se pierda,
aunque el dispositivo quede desconectado de la red eléctrica.

Preparado por Prof: Luis González T. Sólo para fines docentes 6


ESTRUCTURA GENERAL DE UN PROGRAMA

Un programa puede considerarse como una secuencia lógica de acciones (instrucciones) que manipulan un
conjunto de objetos (datos) para obtener unos resultados que serán la solución al problema que resuelve
dicho programa.
Todo programa, en general contiene dos bloques bien diferenciados para la descripción 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 características 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
obtención de los resultados deseados.

PARTES PRINCIPALES DE UN PROGRAMA

Las partes principales de un programa están 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 envían a los dispositivos externos.

CLASIFICACION DE LAS INSTRUCCIONES

Según la función que desempeñan dentro de un programa, las instrucciones se clasifican de la siguiente
manera:
Instrucciones de declaración:
Su misión es anunciar la utilización de objetos en un programa indicando que identificador, tipo y otras
características 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 aparición en el programa para ser ejecutadas. Las instrucciones primitivas pueden ser de entrada, de
asignación o de salida.
- Instrucción de entrada: Su misión 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
instrucción. Si estos objetos tuviesen algún valor previo, éste se perdería.
En un ordinograma aparece con el símbolo de operación de entrada/salida de la siguiente manera:

Leer dato

- Instrucción de asignación: Es la que nos permite realizar cálculos evaluando una expresión y
depositando su valor final en un objeto o realizar movimiento de datos de un objeto a otro.
En un ordinograma aparece bajo el símbolo de operación en general con el siguiente formato:

A=A+3
B=A

Preparado por Prof: Luis González T. Sólo para fines docentes 7


- Instrucción de salida: Su misión consiste en enviar datos a un dispositivo externo, bien tomándolos de
objetos depositados en la memoria o definidos de alguna forma en la propia instrucción.
En un ordinograma se representa por medio del símbolo de operación 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 evaluación de expresiones, generalmente
lógicas, con el objetivo de controlar la ejecución de otras instrucciones o alterar el orden de ejecución normal
de las instrucciones de un programa.
Existen tres grandes grupos de instrucciones de control:
- Instrucciones alternativas: Son aquellas que controlan la ejecución de uno o varios bloques de
instrucciones dependiendo del cumplimiento o no de alguna condición o del valor final de una expresión.
Existen tres modelos típicos de instrucciones alternativas:
- Alternativa simple: Controla la ejecución de un conjunto de instrucciones por el cumplimiento o
no de una condición, de tal forma que, si se cumple, se ejecutan; si no se cumple, no se ejecutan. Su
representación en un ordinograma es la siguiente:

CONDICIÓN INSTRUCCIONES
SI

NO

- Alternativa doble: Controla la ejecución de dos conjunto de instrucciones por el cumplimiento o


no de una condición, 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 representación en un ordinagrama es la
siguiente:

CONDICIÓN INSTRUCCIONES
SI

NO

INSTRUCCIONES

- Alternativa Múltiple: Controla la ejecución de varios conjuntos de instrucciones por el valor de


una expresión, de tal forma que cada conjunto de instrucciones está ligado a un posible valor de la
expresión, 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 evaluación de la expresión, de
tal forma que si éste no aparece se ejecutará el último. Su representación en un ordinograma es la
siguiente:

CONDICION

V1 V2 VN OTROS

INST 1 INST 2 ....... INST N INST

Preparado por Prof: Luis González T. Sólo para fines docentes 8


- Instrucciones repetitivas: Son aquellas que controlan la repetición de un conjunto de instrucciones
denominado rango mediante la evaluación de una condición que se realiza cada nueva repetición o por
medio de un contador asociado. Existen tres tipos de instrucciones repetitivas que dependen de su
configuración:
- Instrucción MIENTRAS (WHILE): Controla la ejecución del conjunto de instrucciones que
configuran su rango, de tal forma que éstas se ejecutan mientras se cumpla la condición, que será
evaluada siempre antes de cada repetición. Es decir, mientras la condición sea cierta. Su
configuración en el ordinograma es la siguiente:

CONDICIÓN
NO

SI

RANGO

- Instrucción REPETIR (REPEAT - UNTIL o DO WHILE): Controla la ejecución de un


conjunto de instrucciones que configuran un rango, de tal forma que éstas se ejecutan hasta que se
cumpla la condición, que será evaluada siempre después de cada repetición, es decir, hasta que la
condición sea CIERTA. La diferencia entre este bucle y el anterior es que este bucle siempre se
ejecutará una vez. Su configuración en el ordinograma es la siguiente:

RANGO

NO
CONDICIÓN

SI

- Instrucción PARA (FOR): Controla la ejecución de un conjunto de instrucciones que configuran un


rango, de tal forma que éstas se ejecutan un número 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), definiéndose al mismo tiempo
su valor inicial, (Vi) su valor final (Vf) y el incremento (I) que esta variable de control va adquirir en
cada repetición.
La variable de control toma el valor inicial y va incrementándose en cada nueva repetición, de tal manera
que el proceso termina cuando la variable de control supera el valor final. Su configuración en un
ordinograma es la siguiente:

Vc = Vi

Vc > Vf
SI
NO

RANGO

Vc = Vc + I

Preparado por Prof: Luis González T. Sólo para fines docentes 9


- Instrucciones de ruptura de secuencia: Alteran la secuencia normal de ejecución de instrucciones en
un programa, que, como se sabe, es de la primera hasta la última, y de una en otra. La alteración de esta
secuencia hace que continúe en otro lugar definido en la propia instrucción utilizando lo que se denomina
etiqueta.
- Instrucción de alto incondicional: Altera la secuencia normal de ejecución de instrucciones,
continuando la misma en la instrucción referenciada por medio de la etiqueta que figura en la propia
instrucción
IR A <ETIQUETA>
- Instrucción de alto condicional: Altera la secuencia normal de ejecución de instrucciones si se
cumple una condición, continuando la misma en la instrucción referenciada por medio de la etiqueta
que figura en la propia instrucción

A>3 X

.
.
X

INSTRUCCION

Instrucciones compuestas

Es aquella que representa un conjunto de instrucciones que están definidas en otra parte. Son llamadas
subprogramas (funciones, subrutinas, párrafos, etc.). Su presentación en un ordinograma utiliza el símbolo de
subprograma:

NOMBRE

Comentarios:

Son frases que se incluyen en un programa con intención de aclarar el cometido o función de un objeto o
conjunto de instrucciones. En un ordinograma se representa con el símbolo:
-------- COMENTARIO

VARIABLES AUXILIARES DE UN PROGRAMA

Son objetos que utiliza un programa y por la función que realizan dentro del mismo toman un nombre
especial, modelando su funcionamiento debido a su frecuente utilización.
- 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 básicas:
- Inicialización: 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
operación. 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
inicialización y acumulación.

Preparado por Prof: Luis González T. Sólo para fines docentes 10


ALGORITMOS EN PSEUDOLENGUAJE

PSEUDOLENGUAJE: Su significado informático es: un lenguaje de programación 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, dígitos y guiones con la sola condición que el
primer carácter del nombre sea una letra.
Las variables tienen un valor único. Este valor puede ser cambiado o modificado, para ello existe una
instrucción de asignación que permite asignarle o darle un valor, este se cambia por el nuevo valor.
Asignación: La instrucción de asignación está representada por el símbolo = que representa un signo igual.
El valor que se le asigna a una variable puede estar también dado por otra variable o por una expresión
matemática.
Ej: Supongamos que tenemos las siguiente variables y valores:
A B C TT X R J K H
2 5 10 4 5 0 0 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 prácticas:

1. Toda variable que aparezca al lado derecho de = debe tener un valor.


2. Cuando se usa = solo la variable que está a la izquierda cambia d valor.
3. Las variables que se encuentran a la derecha del = no cambian de valor.
4. Si una variable aparece a ambos lados del =, ésta cambia de valor por estar a la izquierda.
5. Los operadores permitidos son:

+, -, *, /, ** suma, resta, multiplicación, división, exponenciación


RESTO(resto de la división)
PARTENT(parte entera de la división)

6. Las funciones permitidas son

ENT(VALOR)Retorna el valor entero de lo que esté entre paréntesis, o si este tiene decimales.
MAYUS(carácter) Transforma el carácter específico a mayúsculas.

7. La prioridad de los operadores matemáticos es:

1.- ( )
2.- funciones.
3.- *, /
4.- +, -

Si dos operadores de la misma prioridad están en una misma operación se evaluará primero el que esté más a
la izquierda.
Instrucciones de entrada/salida de datos

Preparado por Prof: Luis González T. Sólo 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 comunicación con el algoritmo, dándole los valores a manipular y
recibiendo por parte de éste los resultados de los procesos realizados con los datos ingresados.
La instrucción 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 sólo permite calcular el sucesor de 13, si necesitamos calcular el sucesor de otro número,
habría que hacer otro algoritmo, uno para cada número. Pero si usamos la orden LEER, podemos permitirle
al usuario ser él quien determine el valor sobre el que se desarrollará el cálculo.
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 instrucción que permite realizar una visualización de información 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 instrucción, ahora podemos visualizar en la pantalla algún comentario o resultado.
INICIO
NUM, SUCESOR : NUMERICAS
MOSTRAR "Ingrese un número"
LEER NUM
SUCESOR = NUM + 1
MOSTRAR "El sucesor es :" , SUCESOR
FIN
Con instrucción MOSTRAR, el algoritmo ahora puede comunicarle al usuario que es lo que debe leer y,
además, indicarle en la pantalla al usuario, cual fue el resultado.
Toma de decisiones (instrucciones de bifurcación)
Es habitual que en la vida diaria debemos tomar decisiones que signifiquen realizar o no una acción, o bien
elegir entre un conjunto de acciones.
Supongamos, por ejemplo, que estamos de cumpleaños y tenemos que decidir que hacer si nuestras opciones
son hacer una fiesta o salir a cenar. Para dar solución a esta disyuntiva, no hacemos la siguiente pregunta:
¿Quiero hacer una fiesta? La respuesta sólo 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 tendríamos:
Inicio del algoritmo
Si deseo hacer una fiesta
Hago la fiesta
Sino
Voy a cenar

Preparado por Prof: Luis González T. Sólo para fines docentes 12


Fin de selección
Fin algoritmo

En pseudolenguaje existen instrucciones que nos permiten realizar este tipo de discriminación. Estas son:
De decisión simpleSI
De decisión doble SI - SINO
De decisión múltiple HACER EN CASO
Decisión simple: Esta instrucción permite ejecutar o no una o varias instrucciones
FORMATO:
SI condición
Instrucción (es)
FIN SI
Donde:
Instrucción (es): es la instrucción o instrucciones que van a ser ejecutadas si se cumple la condición
Condición: Es el evento que debe cumplirse para que la instrucción (es) se ejecutada.
Decisión doble: Esta instrucción se utiliza cuando se tiene que elegir entra la ejecución de una u otra
instrucción a partir de una condición.
FORMATO:
SI condición
Instrucción(es) 1
SINO
Instrucción(es) 2
FIN SI
Donde:
Condición 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.
Instrucción (es) 1: Es la instrucción o conjunto de instrucciones que deben ejecutarse en el caso de
que la condición se cumpla (sea verdadera).
Instrucción (es) 2: Es la instrucción o instrucciones que se van a ejecutar si la condición no se
cumple.
En este tipo de bifurcación, solo se ejecuta uno de los dos grupo de instrucciones, Nunca los dos.
Condición es una expresión lógica 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 lógicas las que están
compuestas por operadores de relación y conectores lógicos.
Operadores de relación: Son aquellos que e utilizan para expresar condiciones
= igual
<> distinto
<= Menor o igual
>= mayor o igual
> mayor que
< menor que

FORMATO:
Expresión 1 operador de relación expresión 2

Ejemplo:
Sea A = 4 y B = 7

El resultado de:
A>B es falso
A<= B es verdadero
A + 3 = B es verdadero

Conectores lógicos: Son aquellos que nos permiten combinar expresiones de relación, estos son:
Y : que entrega un valor lógico verdadero sólo cuando ambas expresiones de relación sean verdaderas. En
cualquier otro caso, entrega un valor lógico falso.

Preparado por Prof: Luis González T. Sólo para fines docentes 13


O : que entregará un valor lógico verdadero cuando al menos una de las expresiones sea verdadera y un valor
lógico falso sólo cuando ambas expresiones sean falsas.

Ejemplo:
Sean A = 3, B= 4 y C = 5
(A = 3) Y (B = C) falso
(B = C) O (A = 3) verdadero
(A > B) O (B < C) verdadero
(A + 2 = 6) O (B = C) falso
Aplicaciones en Pseudolenguaje
1.- El siguiente algoritmo determina si dos números ingresados por el usuario son o no iguales:
INICIO
VAR1, VAR2 : NUMERICAS
MOSTRAR "Ingrese dos números"
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 instrucción 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 instrucción SI (VAR1 = VAR2).
El algoritmo desplegará en pantalla el mensaje "Los valores son iguales" cuando la expresión VAR1 =
VAR2 sea verdadera. El mensaje "Los valores son distintos" aparecerá en la pantalla cuando la expresión
evaluada en la instrucción SI sea falsa.
Luego de haber desplegado el mensaje en la pantalla, el algoritmo seguirá ejecutando las instrucciones que
siguen a continuación de las palabras FIN SI, que sirven para indicar que ahí termina la bifurcación, 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 cuál de ellos es el mayor,
teniendo en cuenta que también 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 números"
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

También se podría haber pensado:

Preparado por Prof: Luis González T. Sólo para fines docentes 14


Si tengo tres alternativas evalúo 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 condición 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 números"
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 números ingresados por el usuario.
En el análisis de lo que se nos pide observamos que:
Se tiene que leer tres números
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 información podemos determinar que:
1.- Tenemos que usar tres variables para recibir los números que van a ser ingresados.
2.- Tenemos que leer los valores antes de preguntar cual de ellos es mayor
3.- Para saber si un número 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 números"
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
evalúa con cuatro notas y el promedio se obtiene aritméticamente
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 González T. Sólo para fines docentes 15


2.- Modifique el algoritmo anterior, sabiendo que el promedio final será igual al 60% del promedio
aritmético de las notas, más el 40% de la nota de examen, por lo tanto deberá ingresar además de las cuatro
notas, una nota de examen, deberá desplegar los mismos mensajes.

Selección múltiple:
Esta instrucción permite escoger un grupo de instrucciones a ejecutar según sea el valor de una variable.
FORMATO:
HACER EN CASO
EN CASO VARIABLE = VALOR1:
INSTRUCCIÓN(ES) 1
EN CASO VARIABLE = VALOR2:
INSTRUCCIÓN(ES) 2
EN CASO VARIABLE = VALOR3:
INSTRUCCIÓN(ES) 3
[ SEA OTRO VALOR:
INSTRUCCIÓN(ES) N ]
En esta instrucción, se escogerá sólo 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 ningún valor indicado en a instrucción
se ejecutaran las instrucciones que estén indicadas para SEA OTRO VALOR.
SEA OTRO VALOR es opcional, por lo que sólo se colocará de ser necesario.
Supongamos que alguien desea tener un algoritmo que permita, ingresando el código de un mes, saber la
glosa correspondiente al código y cuantos días tiene éste.
INICIO
VARMES : NUMERICA
MOSTRAR "Ingrese un código"
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 "Código no existe"
FIN EN CASO
FIN

Preparado por Prof: Luis González T. Sólo 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 González T. Sólo para fines docentes 17


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

2.- Revisa los siguientes algoritmos y determina si están buenos o no. Hay a lo menos uno malo.
- El siguiente algoritmo le permite al usuario leer un número y saber si éste es par o impar. El cero es neutro.
INICIO
N : NUMERICAS
MOSTRAR "Ingrese un número"
LEER N
SI (N = 0)
MOSTRAR "El número es cero"
SINO
SI (RESTO(N / 2) = 0)
MOSTRAR "El número es par"
SINO
MOSTRAR "El número es impar"
FIN SI
FIN SI
FIN
- Determinar si un número ingresado por el usuario es positivo y menor que 12 al mismo tiempo.
INICIO
N : NUMERICAS
MOSTRAR "Ingrese un número"
SI (N > 0) Y (N < 12)
MOSTRAR "El número cumple la condición"
SINO
MOSTRAR "El número no cumple la condición"
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 años y menor de 26
Para hombres: Si es casado debe tener más de 40 años, si es soltero debe tener más de 18 años y menor de 31
años.
Además, para determinar el sexo de la persona y su estado civil hay que tener en cuenta los siguientes datos:
Sexo : 1 = masculino 2 = femenino
Estado civil : 1 = soltero 2 casado 3 separado 4 viudo
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 González T. Sólo 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 números y determine cuál de ellos es menor o si son iguales
2. Leer tres números y determine cual de ellos es menor. Supongamos que van a ser distintos.
3. Leer tres números y determinar cual es el mayor teniendo en cuenta que se pueden dar igualdad entre
ellos.
4. Leer tres números y mostrarlos ordenados de menos a mayor. Supongamos que van a ser distintos entre
sí.
5. Leer un número y determinar si es mayor igual que 10 o no.
6. Leer un número y determinar si es positivo y par al mismo tiempo.
7. Leer un número y determinar si es divisible por 5.
8. Leer un número y determinar si este es positivo e impar.
9. Leer un número y determinar si este es mayor a 10 y menos a 86 y par al mismo tiempo.
10. Leer un número, si es positivo súmele 3, si es negativo súmele 6, luego indique si el resultado del calculo
es positivo, negativo o 0.
11. Leer un número y determinar si es divisible por 3 y por 2 al mismo tiempo.
12. Leer un número y determinar si es divisible por 3 y por 2 al mismo tiempo pero sin usar conectores
lógicos. 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 número y determinar si el primero es el antecesor del segundo. Tenga en consideración que sólo
se puede determinar si un número es sucesor de otro si éstos son enteros.
15. Determine el número de días 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)
- ¿Cuántos hijos tiene? Si no tiene indicar 0
- ¿Tiene título técnico S/N?
- ¿Cuál es su edad?
La postulante debe cumplir los siguientes requisitos para ser preseleccionada:
Las solteras deben poseer título técnico, no tener hijos y ser menor a 24 años.
Las casadas debe tener edad superior a 40 años 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 cálculo de paridad cambiaria. Para realizar
dicho cálculo, maneja la siguiente lista de valores:
1.- DÓLAR 670 PESOS
2.- DRACMA 405 PESOS
3.- LIBRAS 495 PESOS
4.- RUPIAS 293 PESOS
El algoritmo debe recibir por parte del usuario el código (número de lista) de la moneda a la que se desea
hacer la transformación y el valor en pesos a transformar a la moneda indicada.
18. Usando los mismos valores de la tabla anterior, ingrese el código 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 categorías ( A, B, C). Cada categoría tiene
un porcentaje de comisión 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 comisión
correspondiente.

Preparado por Prof: Luis González T. Sólo para fines docentes 19


INSTRUCCIONES CICLICAS O ITERATIVAS

Una instrucción cíclica es una orden que permite que un conjunto de instrucciones (bucle) se ejecuten varias
veces, aunque en algunos casos podría 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 parámetro 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 números del 1 al 10
INICIO
PARA N = 1 HASTA 10
MOSTRAR N
FIN PARA
FIN
Cuando se llega a la instrucción PARA, la variable N toma el valor 1 y ejecuta la instrucción MOSTRAR N.
Como N es una variable que en la primera ejecución vale 1, es mostrado este valor.
Cuando se llega a FIN PARA, se procede a realizar la segunda iteración, 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
continúa con las instrucciones que vengan después del FIN PARA.
Ejemplos: Se necesita calcular la suma de los 10 primeros número 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 números 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 número de veces que se tiene que
repetir el bucle para determinar el fin de la ejecución, sino que necesitamos saber que se tiene que dar
(condición) para que se siga ejecutando.
FORMATO:
MIENTRAS (condición) HACER
Instrucciones
FIN MIENTRAS

Preparado por Prof: Luis González T. Sólo para fines docentes 20


Condición: Expresión lógica la cual tiene que ser verdadera para que se ejecute el bucle. El termino de
ejecución se produce cuando la condición no se cumple.
Esta instrucción funciona de la siguiente manera: Cuando se llega a ella, se evalúa el valor de la condición.
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 condición sea
falsa.
Ejemplo: Calcular la suma e todos los números 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 instrucción MIENTRAS, se tiene que dar un valor inicial a la variable de la condición utilizando una
instrucción de asignación previa y el incremento se tiene que hacer dentro del bucle.
Leer tantos números 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 número"
LEER n
Suma = suma + n
FIN MIENTRAS
MOSTRAR "La suma es ", suma
FIN
Leer y sumar tantos números como el usuario desee. Para determinar si se tiene que leer otro número o no, se
le debe preguntar al usuario si desea seguir ingresando números. Si el usuario desea seguir deberá digitar una
S y si no va a seguir, digitar una N.
INICIO
Resp : ALFANUMERICA
Total, num : NUMÉRICAS
Resp = "S"
Total = 0
MIENTRAS (Resp = "S") HACER
MOSTRAR "Ingrese un número"
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" asignándosele otro, cuando llegue a
MIENTRAS por primera vez el ciclo no se ejecutará
REPETIR: Esta instrucción es muy similar en su funcionamiento a la instrucción MIENTRAS.
FORMATO:
REPETIR
Instrucciones
HASTA QUE (condición)
Esta instrucción, a diferencia de MIENTRAS, la evaluación de la condición se realiza después de ejecutar el
bucle y esta condición indica cuando va a pasar a parar la ejecución
Esta instrucción se utiliza preferentemente para asegurarnos que un dato cumpla con algún requisito
preestablecido.

Preparado por Prof: Luis González T. Sólo para fines docentes 21


Ejemplo: Leer siete números positivos y determinar su promedio.
INICIO
Cont, suma, prom, num : NUMERICAS
suma = 0
prom = 0
PARA CONT = 1 HASTA 7
REPETIR
MOSTRAR "Ingrese un número"
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 instrucción que lo contiene.
B) Sumadores, Acumuladores o Totalizadores: Son variables utilizadas para guardar cantidades variables
resultantes de sumas sucesivas. Realiza una función similar a la de un contador, con la diferencia de que
la cantidad que se le suma o resta es constante.
Ejemplo: leer 10 números cualesquiera y determinar el promedio de los números enteros.
Para ello utilizaremos un ciclo Para que realizará 10 ingresos. Además, 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
números 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 número"
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 información de una parte a otra parte del mismo.
Los usos más 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 operación dependiendo de un estado u otro.

Ejemplo:
INICIO
Sw, x , n : Numéricas
Sw = 0
PARA x = 1 HASTA 10
REPETIR
MOSTRAR "Ingrese un número"
LEER n
HASTA QUE (n = int(n)) y (n > 0)

Preparado por Prof: Luis González T. Sólo para fines docentes 22


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 sólo va a
cambiar su valor a 1 cundo se ingrese el número 7.
Ejemplos:
1.- El siguiente algoritmo muestra los 10 primeros números pares positivos.
INICIO
x, num, : numéricas
PARA x = 1 HASTA 10
Num = 2 * x
MOSTRAR num
FIN PARA
FIN
2.- La serie numérica 1, 3, 5, 7, 9, 11, ..., 21, es mostrado por el siguiente algoritmo:
INICIO
x : numérica
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 numérica: 500,
501, 501, ..., 550.
INICIO
Sum, x : numéricas
Sum = 0
PARA x = 500 HASTA 550
Sum = Sum + x
FIN PARA
MOSTRAR "Resultado es :" sum
FIN
4.- El siguiente algoritmo permite mostrar los dígitos de un número entero positivo ingresado por el usuario,
de izquierda a derecha.
INICIO
nn, aux, dig, a :Numéricas
nn = 0
REPETIR
MOSTRAR " Ingrese un número 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 números ingresados por el usuario.
INICIO
sum, x, n, p : Numéricas
sum = 0
a=0
PARA x = 1 HASTA 10

Preparado por Prof: Luis González T. Sólo para fines docentes 23


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

6.- El siguiente algoritmo permite leer 10 números cualesquiera y determina cual fue el mayor de ellos.
INICIO
mayor, n, x : Numéricas
n=0
PARA x = 1 HASTA 10 hacer
MOSTRAR "Ingrese un número"
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 : Numéricas
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.- Dólar 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 código de la moneda y el monto que se pretende transar, para que el
algoritmo indique su equivalente en pesos.
Además, la empresa requiere saber, luego de finalizadas las transacciones, cuantas monedas se recibieron de
cada una.
INICIO
resp: Alfanumérica
m, dólar, dracma, dinar, rupia, monto Numéricas
resp = "S"
dólar = 0
dracma = 0
dinar = 0
rupias = 0
MOSTRAR " MENU
1.- Dólar 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 González T. Sólo para fines docentes 24


MOSTRAR "Indique código 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:
dólar = dólar + 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 dólares : ", dólar
MOSTRAR "Total dracmas : ", dracma
MOSTRAR "Total dinares : ", dinar
MOSTRAR "Total rupias : ", rupias
FIN

Preparado por Prof: Luis González T. Sólo para fines docentes 25


ARREGLOS

Se puede visualizar un arreglo como un conjunto de datos de un mismo tipo (numérico o alfanumérico). A
los cuales se les asigna un nombre para identificar así al conjunto total de valores. A cada dato partícipe 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 número encerrado entre paréntesis cuadrados [ ], al que se le
denomina índice, el cual indica la posición 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 sería de la siguiente manera:

Sueldo[1] = 150000
Sueldo[2] = 50000
...
Sueldo[7] = 600000
Los índices o subíndices pueden representarse por medio de una variable, número o expresión matemática.
Ejemplo:
Sueldo[K]
Sueldo[1]
Sueldo[K+1]

Los subíndices 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]

Declaración de Vectores
Se debe realizar al comienzo del algoritmo justo después de la palabra INICIO.
Se debe indicar mediante la instrucción arreglo seguido por el nombre del vector y entre paréntesis la
cantidad de elementos.
Formato:
DECLARAR Nombvector[largo] de tipo

Ejemplo:
DECLARAR Sueldo[7] de numéricas

Preparado por Prof: Luis González T. Sólo para fines docentes 26


Esto indica que se ha definido un vector con el nombre SUELDO que contiene como máximo 7 elementos de
tipo numérico.

Ingreso de datos en un Vector

INICIO
DECLARAR Lista[4] de numéricas
LEER lista[1]
LEER lista[2]
LEER lista[3]
LEER lista [4]
Se observa la definición del arreglo lista de largo 4 del tipo numérico, posteriormente, cuatro instrucciones
de ingreso, una para cada elemento. Sin embargo, el ingreso de datos se puede realizar utilizando la
instrucción iterativa PARA, quedando de la siguiente manera:
INICIO
DECLARAR lista[4] de numérica
X : numérica
PARA x = 1 HASTA 4
LEER lista[x]
FIN PARA
FIN
Obsérvese que la variable x cambia de 1 a 4. De esta manera, cada una de las iteraciones permite leer un
elemento en una nueva posición.
Desplegar o mostrar los elementos de un vector
La lógica de este proceso es la misma que para leer, salvo que ahora se usa la instrucción Mostrar.
INICIO
DECLARAR lista[4] de numérica
X : numérica
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 numérica
X : numérica
MOSTRAR "Ingrese posición 1 al 100"
LEER X
MOSTRAR "En esa posición 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 numérica
X : numérica
PARA x = 1 HASTA 10
MOSTRAR "ingrese un valor"
LEER datos[x]

Preparado por Prof: Luis González T. Sólo 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 posición
hasta la primera.
INICIO
DECLARAR lista[100] de numérica
X : numérica
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 después de finalizado el
ingreso de dato, se contará cuantos números son positivos
INICIO
DECLARAR ABC[100] de numérica
X , Contador : numérica
Contador = 0
PARA x = 1 Hasta 100
MOSTRAR "Ingrese un número"
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, "números positivos"
FIN
4.- Se tiene un vector llamado Vec de 50 posiciones. El siguientes algoritmo permite llenar dicho vector sólo
con números positivos:
INICIO
DECLARAR Vec[50] de numérica
X, : numérica
PARA x = 1 HASTA 50
REPETIR
MOSTRAR "Ingrese un número"
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 numérica
Acum, x , p : numérica
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 González T. Sólo para fines docentes 28


FIN PARA

7.- Supongamos que tenemos un vector llamado Lista de 10 posiciones con números ya ingresados en él. El
siguiente algoritmo ordena de menor a mayor dicho vector.
INICIO
DECLARAR Lista[10] de numéricas
x, y : Numérica
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 están ingresados. Los
vectores de llaman A y B.
INICIO
DECLARAR A[10], B[10] de numéricas
acuma, acumb, pos, proma, promb : numéricas
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 información que hace
referencia a un mismo ente, por tanto, se requiere usar vectores de un modo paralelo. Esto significa que ellos
cumplirán con las siguientes características.
- La información almacenada en ellos guardada esta relacionada entre sí a partir de su posición.
- Cualquier modificación de sus ubicaciones tiene que ser hecha en todos los vectores que estén siendo
tratados paralelamente.
Si tenemos tres vectores en donde guardamos: nombre, sexo y edad de 6 personas, entonces tendríamos algo
así:
NOMBRE SEXO EDAD
ANA F 25
PEDRO M 23
DIEGO M 32
ROSA F 28
CARLOS M 40
HERNAN M 30

Preparado por Prof: Luis González T. Sólo para fines docentes 29


En estos vectores la información de una persona está contigua en los tres vectores, así, si en la primera
posición 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 contigüidad de los elementos.
Por ejemplo si intercambiamos en el vector NOMBRE el primer elemento por el segundo, pasaría 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 alteración en los datos,
ya que ahora Pedro aparece con sexo femenino y con 25 años que eran los datos de Ana, así mismo Ana
quedo con los datos de Pedro. Por lo tanto, los cambios deberían hacerse también en los otros dos vectores
para que queden así:

NOMBRE SEXO EDAD


PEDRO M 23
ANA F 25
DIEGO M 32
......... .......... ........

De eta forma los datos cambiaron de posición pero no perdieron su relación.

Ejemplo:
INICIO
DECLARAR Nombre[6] de alfanuméricas
DECLARAR Edad[6] de numéricas
DECLARAR Sexo[6] de alfanuméricas
auxN, auxS : alfanuméricas
auxE, x, y : numéricas
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 Números, de 100 posiciones con elementos enteros positivos.

Preparado por Prof: Luis González T. Sólo para fines docentes 30


2.- Usando el mismo vector del ejercicio anterior, haga un algoritmo que permita llenar el vector sólo con
números que sean múltiplos 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 posición que coincida con su posición 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 posición que corresponda a su número, así, un zapato número 33 tiene
su precio en la posición 33 del vector y un zapato número 40 tiene su precio en la posición 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 número 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 más en la lista.
7.- Una persona ha escrito en un vector un mensaje. Si se sabe que:
- En cada casilla hay un carácter.
- El mensaje no necesariamente empieza en la primera posición.
- El mensaje no termina necesariamente en la ultima posición del vector.
- Cada palabra está separada por uno o más 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 números impares.
- La cantidad de números positivos
- La cantidad de números entre 0 y 9
- La cantidad de números pares.
10.- Cree un algoritmo que permita corregir una prueba de selección ú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 corrección.
La corrección será de la siguiente forma:
Si la respuesta del alumno esta en blanco deberá colocar un * en el vector corrección.
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 corrección, las respuestas del alumno, la corrección y la nota obtenida.
El algoritmo debe corregir n cantidad de pruebas.

Preparado por Prof: Luis González T. Sólo para fines docentes 31


LENGUAJE C

En la redacción de un programa en C se pueden utilizar para formar los elementos básicos (constantes,
variables, operadores de expresión) las letras mayúsculas de la A a la Z, las minúsculas de la a a z, los dígitos
de 0 al 9 y ciertos caracteres especiales.
Características del lenguaje C
C tiene cinco tipo de datos básicos incorporados, entre ellos están 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 están escritas en minúsculas, siendo 32 las definidas por el estándar ANSI de C:
auto double int struct
break else long switch
case enum register typedef
char extern return union
const float short unsigned
continue for signed void
default goto sizeof volatile
do if static while
en C, las mayusculas son diferentes con las minúsculas, 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 más funciones. La única función que siempre debe estar presente es
la denominada main(), ya que es la primera en ser llamada cuando comienza la ejecución de programa.
La estructura general de un programa en C es la siguiente:
#include
#define
declaración de funciones
declaración de variables globales
main()
{
variables locales del main()
sentencias
}
f1()
{
variables locales de la función f1()
sentencias
}
.
.
fn()
{
variables locales de la función fn()
sentencias

Preparado por Prof: Luis González T. Sólo 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 través 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 básicamente en establecer que existe una función en algún 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 utilizarán a lo largo de todo el programa, en cambio, las variables
locales son aquellas que se usarán sólo en las funciones.
El main() es la función principal de un programa en C, siempre debe declararse pues el programa en su inicio
la primera función 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 básico deberá contener a lo menos un área para el main() y otras área para los #include.
Biblioteca y enlazado
Una biblioteca es una colección de funciones para llevar a cabo diversas tareas.
La biblioteca estándar de C, no forma parte del lenguaje, pero si es un entorno que proporciona
declaraciones, funciones y macrodefiniciones
C no proporciona dentro de la definición real del lenguaje, métodos para llevar a cabo las operaciones de
entrada/salida (E/S), debido a esto, la mayoría de los programas incluyen llamadas a variadas funciones
contenidas en la biblioteca estándar del lenguaje C.
Cuando e llama a una función que no es parte del programa que se ha escrito, C recuerda su nombre. Más
tarde, en enlazador combina el código objeto producido al compilar el programa fuente, con el código objeto
de la función que se encuentra en la biblioteca estándar. 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 dígitos del 0 al 9 o underscore. Otros símbolos no pueden
ser utilizados.
• Se consideran caracteres significativos solo los primeros 32.
• Los identificadores diferencian entre mayúsculas y minúsculas.
Ejemplo:
Nombres válidos: x y12 suma_10 _tempe TABLA SuElDo
No válidos 4num el primer carácter debe ser una letra.
"x" Caracteres ilegales (").
Or-den carácter ilegal (-)
Id error carácter 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 Tamaño en bits Rango Descripción
Char 8 0 a 255 Solo contiene un carácter
Int 16 - 32768 a 32767 Número entero
Float 32 3.4*10-38 a 3.4*1038 Punto flotante precisión simple
double 64 1.7*10-308 a 1.7*10308 Punto flotante de doble precisión

Preparado por Prof: Luis González T. Sólo 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
números reales
Declaración 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 válido n C y lista_de_variables puede ser uno o más 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 inicialización 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 inicialización en los lenguajes de programación es:
int contador;
contador = 0
Sin embargo, en C es posible realizar dicha inicialización en e momento de la declaración de la variable
int contador=0, loop =-1;
float IVA=0.18
Constantes
C tiene cuatro tipos básicos de constantes: constantes enteras, de cómo flotante, de carácter y de cadenas de
caracteres.
Las constantes enteras y de coma flotante representan números. Se las denomina en general constantes de
tipo numérico. Las siguientes reglas se pueden aplicar a todas las constantes numéricas:
• 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 combinación de dígitos tomados del conjunto de 0 a 9.
Una constante de coma flotante es un número decimal que contiene un punto decimal.
Una constante de carácter es un solo carácter encerrado entre comillas simples.
Una constante de cadena de caracteres consta de cualquier número de caracteres consecutivos encerrados
entre comillas (").
Operadores en C
Un operador es un símbolo que le indica al compilador que lleve a cabo ciertas manipulaciones matemáticas
o lógicas.
En C, hay tres clases generales de operadores: aritméticos, relacionales y lógicos.
Operadores aritméticos
Operador Acción
- Resta
+ Suma
* Multiplicación
/ División
% División en módulo
-- Decremento
++ incremento

Operadores relacionales
Operador Acción
> Mayor
>= Mayor o igual
< Menor
<= Menor o igual
== Igual
!= Distinto

Preparado por Prof: Luis González T. Sólo para fines docentes 34


Operadores lógicos
Operador Acción
&& And
|| Or
! Not

Declaraciones
Una declaración asocia un tipo de datos determinado a un grupo de variables. Se deben declarar todas las
variables antes de que aparezcan sentencias ejecutables.
Una declaración consiste en un tipo de datos seguido de uno o más nombre de variables separadas por una
coma (,), finalizando con un punto y coma (;).
Expresiones
Una expresión representa una unida de datos simples, tal como un número o un carácter. La expresión puede
consistir en una entidad simple, como una constante, una variable, un elemento de un array o una referencia a
una función. También puede consistir en alguna combinación de tales entidades interconectadas por uno o
más operadores.
Sentencias
Una sentencia hace que el computador lleve a cabo alguna acción. Hay tres tipos de sentencias en C: de
expresión, compuestas y de control.
Una sentencia de expresión consiste en una expresión 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 lógicas, bucles y ramificaciones. Muchas sentencias de control requieren que otras
sentencias se encuentren incluidas en ellas.

ENTRADA Y SALIDA DE DATOS

Función scanf()
Biblioteca <stdio>
Es una función de entrada que permite leer datos y almacenarlos en variables predefinidas.
Formato:
scanf("especificación de formato", arg1, arg2, ... argn)
Los especificadores de formato están predefinidos por el símbolo % e indica los tipos de datos que se van a
leer a continuación.
Algunos especificadores:
Código Significado
%c Leer un único carácter
%d Leer un entero decimal
%f Leer un número flotante
%s 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 continuación un numero entero y por último un numero
flotante.
Función printf()

Preparado por Prof: Luis González T. Sólo para fines docentes 35


Biblioteca <stdio>
Es una función de salida que permite escribir datos y desplegarlos por pantalla.
Formato:
printf("especificación de formato", arg1, arg2, ... argn)
La especificación de formato son similares a los de la función scanf().
Ejemplo:
printf("%f %d", a, b)

En este ejemplo se desplegara en primer lugar un numero flotante a continuación un numero entero.
En el siguiente ejemplo se den ingresar tres números y se deberá desplegar la multiplicación del primer
número con el segundo y el resultado de la división del resultado de la primer operación dividido por e tercer
número 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 multiplicación %d \n", d)
printf("resultado división %d \n", e)
}

Sentencias de control:

Sentencia if - else
Se utiliza para realizar un test lógico y a continuación llevar a cabo una de dos posibles acciones,
dependiendo del resultado.
Formato 1:
If (expresión)
{
Sentencias
}

Formato 2:
If (expresión)
{
Sentencias
}
else
{
Sentencias
}

ejemplos:
if (x > 0)
{
printf(" X es mayor a 0: %d", x

Preparado por Prof: Luis González T. Sólo 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 número fijo de iteraciones sobre un grupo de expresiones.
Formato:
for (inicialización;condición;incremento)
{
grupo de instrucciones
}

inicialización: se utiliza para inicializar un parametro que controla la repetición del ciclo.
Condición: es la condición que debe ser satisfecha para que se continúe la ejecución del ciclo.
Incremento: se utiliza para modificar el valor del parametro inicialmente asignado en la inicialización.
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 condición.
Formato:
while (condición)
{
sentencias;
}

Ejemplo:
#include <stdio.h>
/* visualiza los número 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 condición. Esta sentencia, se
diferencia del while ya que primero se ejecuta el ciclo y después se realiza el test.
Formato
Do
{

Preparado por Prof: Luis González T. Sólo para fines docentes 37


sentencias;
}
while(condición);

ejemplo
#include <stdio.h>
/* visualiza los número 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 selección se base en el
valor de una expresión que se incluye en la sentencia switch.
Formato:
Switch (expresión) sentencia

La sentencia incluida es generalmente una sentencia compuesta que especifica opciones a seguir. Cada
opción se especifica como un grupo de una o más sentencias individuales dentro de la sentencia global
incluida. Para cada opción, la primera dentro del grupo debe ser precedida por una o más 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 expresión
Sentencia 1;
Sentencia 2;
Sentencia n;

Ejemplo:
#include <stdio.h>
int opcion = 0, abc = 1;
while (abc < 4)
{
printf("Ingrese opción 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 número fuera del rango indicado);
}
++abc;
}

Preparado por Prof: Luis González T. Sólo para fines docentes 38


ARRAYS (ARREGLOS)

Los arrays se definen en gran parte como las variables ordinarias excepto que cada array debe acompañarse
de una especificación de tamaño (numero de elementos).

Cada elemento es referido especificando el nombre del array seguido por uno o más índices encerrados entre
paréntesis cuadrados.

Ejemplo:
int x[10];
char texto[80];

#include <stdio.h>
#define tamano 80
main()
{
char letra[tamano];
int cont:
/* leer una línea en minúsculas y desplegarla en mayúscula */
for (cont = 0; cont < tamano; cont++
letra[cont] = getchar();
/* despliega la línea en mayúscula */
for (cont = 0; cont < tamano; cont++
putchar(toupper(letra[cont]));

En este ejemplo se utilizan las funciones getchar y putchar.

Mediante la función getchar se puede conseguir la entrada de caracteres uno a uno. La función no requiere de
argumentos, aunque es necesario que un par de paréntesis vacíos sigan a la palabra getchar.

Mediante la función putchar se puede visualizar un carácter. Esta función es complementaria a la función
getchar y transmite un carácter al dispositivo de salida. El carácter que se transmite estará representado por
una variable tipo carácter. Se debe proporcionar como argumento de la función encerrado entre paréntesis,
siguiendo a la palabra putchar.

Asignación 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 explícitamente el carácter nulo

Un string es un array de caracteres que finaliza con el carácter nulo, y un carácter 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 González T. Sólo para fines docentes 39


FUNCIONES

FUNCION: Es un segmento del programa que realiza determinadas tareas bien definidas. Todo programa C
cuenta de una o más funciones. Una de estas funciones debe llamarse main. La ejecución 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 definición de una función no puede estar incluida en otra.
Cuando se llama a una función desde alguna determinada parte del programa, se ejecutan las instrucciones de
que consta. Se puede acceder a una función desde varios lugares distintos del programa. Una vez que se ha
completado la ejecución de una función, se devuelve el control al punto desde que se accedió.
Las funciones en C, presentan la siguiente forma:
Tipo_función nombre (lista_parametros)
{
cuerpo de la a función
return(valor);
}

Tipo_funcion corresponde al tipo de valor que devuelve la función, 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 función en que se
encuentra, siguiendo la ejecución 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 explícitamente
en la sentencia return. Cuando una función no se define de tipo void y, además, no se especifica un valor de
retorno, entonces el valor devuelto por la función queda técnicamente indefinido
En C, es fundamental colocar el tipo de la función, pues de lo contrario se interpretara, que la función retorna
un entero.
ARGUMENTOS DE FUNCIONES: Cada función que use argumentos, debe declarar variables que
acepten los valores de los argumentos. Esta variables se llaman parámetros formales de la función.
Ejemplo:
Mul(int a, int b)
{
return(a * b);
}

La función Mul tiene dos parámetros: a y b.

Al igual que como otro tipo de variables, se pueden hacer asignaciones a los parámetros formales de una
función o usarlos en cualquier expresión válida 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
parámetro formal de la función. De esta manera, los cambios producidos en los parámetros de la función no
afectan alas variables que se usan en la llamada.
Ejemplo:

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


int SUMA(int a, int b) int SUMA(int a, int b);
{ int c; main()

Preparado por Prof: Luis González T. Sólo para fines docentes 40


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

LLAMADA POR REFERENCIA: Es otra forma de pasar argumentos a una función. En este método, se
copia la dirección del argumento en el parámetro formal, cualquier cambio producido en los parámetros de la
función, 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. Además, se debe declarar el respectivo parámetro 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 dirección de memoria. Normalmente, esa dirección es la
posición 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 dirección de memoria de su operando, y
el *, devuelve el valor de la variable que se encuentra en la dirección apuntada.
Ejemplo:
#include <stdio.h>
main()
{
int x=5;
/* define un puntero a p1 y p2 */
int *p1, *p2;
/* p1 toma la dirección 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 González T. Sólo para fines docentes 41


/* define un puntero a p */
int *p;
/* p toma la dirección de y */
p = &y;
/* x toma el resultado de la multiplicación del valor que tiene la dirección 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 más 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 términos 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;

También 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 información se almacena temporalmente mientras se esta transfiriendo entre la
memoria y el archivo de datos. Esta área de buffer permite leer y escribir información del archivo más
rápidamente. El área de buffer se establece definiendo un puntero tipo archivo de la siguiente forma:
FILE *nombre-variable
FILE (en mayúscula) 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. También 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 González T. Sólo 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 actualización.
• "w+" crea el archivo para actualización; descarta cualquier contenido previo si existe.
• "a+" Lee y agrega, si no existe crea uno nuevo.
La función 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

Función fread: permite leer un archivo. Formato: fread(&nn,sizeof(nn),1,pp);


Función 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 tamaño 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
{
definición de campos
} nombre-registro;
main()
{
Define puntero para el archivo

Preparado por Prof: Luis González T. Sólo 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 actualización


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 leídos (ftell)


fread(&nomb-registro,sizeof(nomb-registro,1,puntero)
X = ftell(puntero);
...
Proceso del registro
. ......
Regrabación del registro actualizado

X tiene la cantidad de bytes leídos


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 González T. Sólo para fines docentes 44


X = X + LR; suma la longitud del registro
. ...
Lee el siguiente 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 González T. Sólo para fines docentes 45


ALGUNAS FUNCIONES DE BIBLIOTECA

Archivo
función Tipo Propósito
include
exit(u) void Cerrar los archivos y terminar el programa. stdlib.h
fclose(f) int Cierra el archivo f, devuelve 0 si se ha cerrado con éxito. stdio.h
feof(f) int Determina si se ha encontrado fin de archivo, si es así, stdio.h
devuelve un valor distinto de 0.
fmod(d1,d2) double Retorna el resto de d1/d2 con el mismo signo que d1. math.h
fopen(s1,s2) file* Abre un archivo llamado s1, del tipo s2. stdio.h
fread(s,i1,i2,f) int Permite leer registros de un archivo. stdio.h
fseek(f,l,f) int Mueve el puntero al archivo f una distancia de 1 byte stdio.h
desde a posición donde se encuentra.
ftell(f) long int Retorna la posición actual del puntero dentro del archivo stdio.h
f.
fwrite(s,i1,i2,f) int Permite grabar registros en un archivo. stdio.h
getch() int Espera que se le ingrese un carácter y devuelve el valor conio.h
pero no lo muestra en pantalla.
getchar(void) int Lee un carácter desde el dispositivo standard. stdio.h
getche() int Espera que se le ingrese un carácter y devuelve el valor conio.h
mostrándolo en pantalla.
gets(s) char* Lee una cadena desde el dispositivo standard. stdio.h
isalnum(c) int Determina si e argumento es alfanumérico. Retorna un ctype.h
valor distinto de 0 si es cierto.
isalpha(c) int Determina si el argumento es alfabético. Retorna un valor ctype.h
distinto de 0 si es cierto.
isdigit(c) int Determina si el argumento es un dígito decimal. Retorna ctype.h
un valor distinto de 0 si es cierto.
islower(c) int Determina si el argumento es una letra minúscula ctype.h
Retorna un valor distinto de 0 si es cierto.
ispunct(c) Int Determina si el argumento es un carácter de puntuación. ctype.h
Retorna un valor distinto de 0 si es cierto.
isspace(c) int Determina si el argumento es un espacio en blanco. ctype.h
Retorna un valor distinto de 0 si es cierto.
isupper(c) int Determina si el argumento es una letra mayúscula. ctype.h
Retorna un valor distinto de 0 si es cierto.
pow(d1,d2) double Retorna d1 elevado a d2. math.h
printf(...) int Escribe datos en el dispositivo de salida standard. stdio.h
putchar(c) int Escribe un carácter en el dispositivo de salida standard stdio.h
puts(s) int Escribe una cadena en el dispositivo de salida. stdio.h
scanf(...) int Lee datos del dispositivo de entrada standard. stdio.h
sqrt(d) double Retorna la raíz cuadrada de d. math.h
strcat(cd1,cd2) char Concatena una copia de cd2 en cd1 y añade al final de string.k
cd1 un carácter nulo.
strcmp(s1,s2) int Compara dos cadenas. Retorna un valor negativo si s1 < string.h
s2, 0 si s1= s2, y un valor positivo si s1> s2. Esta función
considera las mayúsculas y minúsculas.
strcmpi(s1,s2) int 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 mayúsculas y minúsculas.
strcpy(s1,s2) char* Copia la cadena s2 en la cadena s1. string.h
strlen(s,c) int Retorna el numero de caracteres de la cadena string.h

Preparado por Prof: Luis González T. Sólo para fines docentes 46


strset(s,c) char* Pone todos los caracteres de s en c (excluyendo el string.h
carácter nulo del final \0).
tolower(c) int Convierto una letra a minúscula. ctype.h
stdlib.h
toupper(c) int Convierto una letra a mayúscula. ctype.h
stdlib.h

Preparado por Prof: Luis González T. Sólo para fines docentes 47

También podría gustarte