Академический Документы
Профессиональный Документы
Культура Документы
Informática
2010-2011
Quito- Ecuador
INTRODUCCCIÓN
Hoy, los continuos avances de los campos de la robótica y la inteligencia artificial así como las
extraordinarias posibilidades abiertas por las llamadas autopistas de la comunicación y
ciberespacio, parecen convertir en realidad lo que hasta hace poco habían sido poco menos que
fantasías futuristas.
Por lo dicho antes, es necesario que no sólo nos limitemos a utilizar lo desarrollado por otros
programadores sino que propongamos ideas nuevas, soluciones acordes a la realidad de nuestra
educación, es ahí donde la programación interviene como herramienta educativa. Pero para
introducirnos en este tipo de trabajo es necesario poseer los elementos que esta asignatura
brinda al futuro docente: el desarrollo de su pensamiento lógico, el conocimiento de ciertas
reglas y procedimientos generales así como la aproximación a un lenguaje de programación en
donde ponga en práctica los elementos anteriormente mencionados.
Este módulo tiene tres unidades; la primera está orientada a reforzar el conocimiento que
generalmente de forma heterogénea poseen los estudiantes sobre definiciones de hardware; por
ser un tema muy amplio y que será abordado en otras asignaturas solo pretendemos tener claro
elementos fundamentales en nuestra carrera y para la programación.
El segundo capítulo se dedicada al trabajo con flujogramas y pseudocódigos iniciando por sus
antecedentes, los algoritmos, los pasos para su desarrollo y adecuada solución, aquí
encontraremos ejercicios resueltos y propuestos que sirven tanto en aula como en casa para
afianzar el conocimiento del estudiante.
Espero que el presente trabajo contribuya en aclarar el panorama de nuestros futuros docentes y
sirva de herramienta de trabajo fructífera en un medio lleno de información pero que a veces
muchas de ellas parecen escritas por expertos para expertos dejando a los iniciados de lado.
UNIDAD I
DEFINICIONES BÁSICAS
INFORMÁTICA
La definición de Informática, que a pesar de ser muy utilizada, presenta distintos significados
en la Enciclopedia Británica consta:”Disciplina que se ocupa de los procesos de
almacenamiento y transferencia de la información por medio de computadoras. Intenta
agrupar conceptos y métodos de disciplinas tan variadas como bibliotecnología, ciencia de la
informática e ingeniería para desarrollar técnicas y dispositivos que ayuden al manejo de la
información. Otra definición tomada de diccionario Encarta 2006, Recurriendo al diccionario
Encarta, observamos la siguiente definición para Informática: “Conjunto de conocimientos
científicos y técnicas que hacen posible el tratamiento automático de la información por medio
de ordenadores”.
En el Diccionario Océano Uno se plantea como similares dos palabras que no lo son,
Informática y Computación. Recurriendo nuevamente a la Enciclopedia Británica
tenemos:”diseño, aplicación procesamiento de datos y control de sistemas, incluido el
desarrollo del hardware y software de computadoras, y también de la programación”
Como está claro, que Computación es una rama de esta ciencia y se encarga fundamentalmente
del manejo de los computadores a nivel de software y hardware; y la Informática tiene
aplicaciones y un radio de acción muy amplio.
Como toda ciencia la Informática requiere de unidades que le permitan medir la cantidad de
información que transmite, se recepta, almacena etc; sin ello no hubieran sido posibles generar
estándares como ASCII y EBCDIC. Es así que fue desarrollándose el siguiente sistema de
unidades:
Bit (b): Acrónimo de Binary digit. Es la mínima unidad que se puede almacenar de información
y puede poseer un valor de cero o uno, que a su vez puede representarse con una pulsación
eléctrica o con un punto en el disco magnético.
Byte (B): se constituyó luego en la unidad de medida de todo el sistema debido a que es mucho
más fácil de manejar. Corresponde a la unión de ocho bits, también podemos indicar que un
byte corresponde a un caracter. Es la unidad básica de información.
La tabla de la parte inferior nos permite comprender de mejor manera este sistema con sus
múltiplos:
bit b 0, 1
byte B 8 bits
Kilobyte KB 1024 B
Megabyte MB 1024 KB - 1048576 B
Gygabyte GB 1024 MB - 1073741824 B
Terabyte TB 1024 GB – 1. 92 x10 12 B
a) 5 KB a B
5 KB x 1024 B
1 KB
Res= 5120 KB
b) 10 MB a KB
10 MB x 1024 KB =
1MB
Res= 10240 KB
c) 52000 B a KB
52000 B x KB =
1024 B
Res= 50.781K25 B
d) 200 GB a MB
520 GB x 1024 MB =
1GB
Res= 204800 MB
e) 20 MB a B
20 MB x 1024KB x 1024B =
1 MB x 1 KB
Res= 20971520 B
Si vamos de una unidad mayor a una menor debemos multiplicar por 1024 y por el contrario si
vamos a transformar de una unidad menor a otra mayor debemos dividir para 1024; existe una
excepción que corresponde a cuando partimos o deseamos llegar a bits en cuyo caso se trabaja
con un ocho en la parte superior o inferior según corresponda.
ACTIVIDADES
Con ellos es posible el ingreso de datos al CPU; entre sus principales dispositivos
mencionaremos el teclado, mouse, micrófono, lápiz óptico, scanner, etc.
El TECLADO
En su parte interna se ubica una lámina en la cual se colocan unos sensores, estos envían una
señal a un chip dentro del propio teclado, que posee registros binarios estándar para cada
coordenada de los sensores, este registro se activa cuando se pulsa una tecla.
Desde el inicio de la era del IBM PC el teclado ha ido evolucionando. Los primeros tenían 83
teclas. Eran conocidos como teclados PC/XT. Este tipo de teclados sólo pueden utilizarse en los
ordenadores del tipo XT.
El teclado AT surgió con la aparición de los IBM PC AT. Este modelo ya disponía de
indicadores luminosos y de una tecla más: Petsis o SysReq, que se utilizaba en antiguas
aplicaciones multiusuario..
El tercer paso fue el AT Extendido también se lo conoce como ESTANDAR. Este teclado
añadió teclas hasta alcanzar 101 teclas (102 en los modelos internacionales, una más
correspondiente, en nuestro caso, a la "ñ"). Se añaden dos teclas de función más (Fll y F12) y el
conjunto de ellas se disponen en una fila en la parte
superior del teclado. Se duplican las teclas Control y Alt, la
tecla BloqMayús se lleva a la ubicación original de Control
y las teclas de movimiento del cursor se duplican para un
acceso más cómodo.
En cuanto al conector, existen dos estándares, el DIN fue habitual en equipos clónicos con cinco
pines y un diámetro aproximado de 2cm, y el mini-DIN de seis pines con un diámetro cercano a
1cm y utilizado en equipos de marca y en general por todos en la actualidad, aunque son
desplazados ya por el de conector USB. Antes se consideró un aspecto poco importante, pues
había convertidores de un tipo a otro, los cuales en el presente son difíciles de encontrar.
PS/1
PS/2
Debo mencionar que además se disponen actualmente de teclados inalámbricos que se sirven
para su comunicación de infra-rojos
ACTIVIDADES.
1. Revise en wikipedia la información acerca de teclados y responda. ¿Se aplica la
tecnología Bluetooth en los teclados?¿Qué diferencias hay entre un infra –rojo y un
bluetooth?
2. Elabore un mentefacto para clasificar los teclados y sus características.
3. Mencione brevemente el proceso de codificación y decodificación que sucede a lo
interno del teclado al presionar una tecla
EL MOUSE
En el primer caso tenemos los siguientes tipos: Serie, bus o Ps/2, USB
e inalámbricos que utilizan señales infrarrojas.
De acuerdo al sensor pueden ser: mecánicos (incluido el track-ball de las antiguas portátiles) y
láser – ópticos cuando utilizan una luz.
En los ratones mecánicos, ahora ya descontinuados, era necesario solucionar el problema del
movimiento discontínuo del cursor que se producía cuando los rodillos interiores tenían
suciedad, el gráfico de la parte inferior permite observar su
estructura interna.
ACTIVIDADES
1. Como se configura un mouse desde el sistema operativo Windows señale los pasos
2. Elabore un organizador gráfico que permita identificar los diferentes tipos de mouse y
sus características
3. Mediante una tabla de resumen señale que tipo de conector puede utilizar un Mouse
mecánico y óptico.
4. Investigue el precio de tres fabricantes de mouse, indique sus características yselecione
el que considere mejor.
ESCANER
Los escáneres son periféricos diseñados para registrar caracteres escritos o gráficos en forma de
fotografías o dibujos impresos en una hoja de papel facilitando su introducción en la
computadora convirtiéndolos en información binaria
comprensible para esta. Es decir realiza una transformación de
información a digital. Actualmente este dispositivo tiene
muchas aplicaciones principalmente en la medicina para la
evaluación de órganos.
Otros escáneres funcionan pasando las hojas de papel sobre un dispositivo fijo de barrido, como
ocurre en las máquinas de fax convencionales. Algunos escáneres especializados utilizan para el
barrido una cámara de vídeo, convirtiendo la imagen de vídeo a señales digitales. Un tipo de
escáner que ya apenas se utiliza es el escáner de mano, también llamado hand-held, porque el
usuario sujeta el escáner con la mano y lo desplaza sobre el documento. Estos escáneres eran
baratos, pero resultaban algo limitados porque no podían leer documentos con una anchura mayor
a 12 o 15 centímetros.
La calidad final de un escáner se suele medir por su resolución, que es el número de puntos que es
capaz de captar éste, medido general en puntos por pulgada (ppp) o en inglés dotch per inche
(dpi). Esta resolución se define como resolución óptica o resolución real, por lo que cuando
decimos que un escáner alcanza una resolución de 300x600 ppp nos referimos a que en cada línea
horizontal de una pulgada de largo (2,54 cm) puede captar 300 puntos, mientras que en vertical
llega hasta los 600 puntos.
LÁPIZ ÓPTICO
Para operar con el lápiz óptico se coloca éste sobre la pantalla del sistema informático. En el
momento en que el cañón de rayos catódicos de la pantalla barre el punto sobre el que se
posesiona el lápiz, éste envía la información a un software especial que la maneja.
Los lápices ópticos permiten la introducción de datos, el manejo del cursor .etc.
En la pantalla de la computadora. Son una asistencia para las limitaciones de los teclados en
algunas aplicaciones, sobre todo las que no son de gestión pura (creativas, etc.).Actualmente
apenas se usan salvo en aplicaciones especiales.
MODEM
Significa modulador - demodulador es dispositivo que transforma las señales lógicas en
digitales y viceversa para permitir la comunicación entre los computadores.
Por el contrario digital es todo lo opuesto se relaciona con valores numéricos y pulsaciones
eléctricas variables en las computadoras se entiende el trabajo con ceros y unos.
El computador envía señales digitales al módem que para enviarlas por la línea telefónica debe
transformarlas a señales analógicas similares al de un teléfono de marcación de tonos al llegar a
su destino este proceso se invierte.
Las computadoras actuales vienen incluida ya en la mainboard una tarjeta llamada fax-módem
lo que provee la utilización de un fax que nos entrega tres servicios:
Tiene un rastreador que fotocopia el documento a ser enviado
Es módem, porque modula de ida y demodula al recibir la imagen del rastreador
Es impresora porque presenta en un papel la información recibida.
ACTIVIDADES
1. Escriba dos definiciones de analógico y digital y señale donde las consultó
2. ¿Qué es un baudio y en que dispositivos se utiliza esta unidad de medida?
3. ¿Cuáles son las velocidades actuales de transmisión de los módems?
Como otros términos UCP y case se han confundido por su estrecha relación. Entendemos como
case a la caja o chasis que protege un conjunto de elementos que ayudan a trabajar y procesar la
información. Esta puede ser de dos formas Tower o desktop. Si la abrimos encontraremos la
fuente de poder, la tarjeta madre o mainboard, buses, cables, etc.
BUSE
UNIDAD DE S
CONTROL INTE
RNO
S
UNIDAD
ARITMETICO –
LOGICA (ALU)
MEMORIA
CACHE
COPROCESADOR
MATEMATICO
UNIDAD DE CONTROL
Está ubicada dentro del procesador. Es la encargada de localizar, regular, analizar y dirigir la
información e interpreta las instrucciones. Sus funciones principales son:
Búsqueda de instrucciones en la memoria
Decodificación, interpretación y ejecución de las instrucciones
Control de la secuencia de operaciones
Reconocimiento de las interrupciones
Está ubicada en el procesador al igual que el ALU.Trae las instrucciones de la memoria central
y determinar su tipo, controla los dispositivos de entrada/salida que se encuentren conectados al
computador; controlar o coordinar la entrada y salida de datos a fin que no se produzcan cuellos
ALU. Llamada unidad aritmético- lógica y que trataremos también como ALU trabaja dentro
del procesador a elevadas velocidades es aquí donde se realizan los cálculos matemáticos,
operaciones lógicas y de comparación. Debemos saber que todas las tareas que realizamos en el
computador se reducen a este tipo de trabajo, siendo las operaciones más efectuadas la suma,
resta, si, y, no, o; así también que los dígitos con los que opera son binarios y hexadecimales.
LA MEMORIA CACHÉ. Es una memoria ultrarrápida que emplea el micro para tener a mano
ciertos datos que previsiblemente serán utilizados en las siguientes operaciones sin tener que
acudir a la memoria RAM, reduciendo el tiempo de espera.
Aparece desde el 486 que poseen al menos la llamada caché interna de primer nivel o L1; es
decir, la que está más cerca del micro, tanto que está encapsulada junto a él. Los micros más
modernos Pentium IVCoppermine, Athlon Thunderbird, etc.) incluyen también en su exterior
otro nivel de caché, más grande aunque algo menos rápida, la caché de segundo nivel o L2.
Debido al doble núcleo actualmente en los computadores se habla de L3 y L4 en memoria caché
Existen otras partes (unidad de enteros, registros, etc.) que no son necesarias detallar en este
nivel.
ACTIVIDADES
1. Indique brevemente el proceso de creación de un microchip
2. Realice un resumen breve sobre como intervienen el sistema octal y hexadecimal en
la computadora
3. Escriba la definición de Hertz
4. Señale el significado de cinco nuevos vocablos utilizados en el tema
Luego, en 1987, el primer micro de 32 bits, el 80386 o simplemente 386. Al ser de 32 bits,
permitía idear software más moderno, con funcionalidades como multitarea real, es decir,
disponer de más de un programa trabajando a la vez. A partir de entonces todos los chips
compatibles Intel han sido de 32 bits, incluso el Pentium II y Pentium III.
Apareció luego el 486, que era un 386 con algunas variantes como un coprocesador matemático
incorporado y una memoria caché integrada, que le hacía más rápido; desde entonces todos los
chips tienen ambos.
PROCESADORES PENTIUM
PENTIUM I
Pentium, un nombre inventado para evitar que surgieran 586s marca AMD o Cyrix, ya que no
era posible patentar un número pero sí un nombre, lo que aprovecharon para sacar fuertes
campañas de publicidad del llamado "Intel Inside”.
Las primeras series, funcionaban a 60 y a 66 MHz., y debido a que trabajaban a 5V, tenían
problemas de sobrecalentamiento.
Estos modelos se podían actualizar mediante el Overdrive de Intel a 120 o a 133, lo que duplica
la velocidad del bus, e incorpora un reductor de 5V a 3,3 con eso se soluciona el problema de
"calentamiento" rebajando la tensión de funcionamiento de los nuevos modelos a 3,52 voltios,
con lo que se consigue un menor consumo; eso sucede a partir del modelo de 75 MHz ya se
empieza a trabajar con multiplicadores de frecuencia internos para que el rendimiento de los
procesadores sea mayor que el que el bus y la memoria permiten. Resumiendo otras
características diremos:
Es una mejora del anterior, al que se le ha incorporado un nuevo juego de instrucciones (57
para ser exactos) orientado a mejorar el rendimiento en aplicaciones multimedia, que
necesitan mover gran cantidad de datos de tipo entero, como pueden ser videos o secuencias
musicales o gráficos 2D.
La gama MMX empieza en los 133Mhz, pero sólo para portátiles, es decir la versión SL. Para
computadoras de sobremesa la gama empieza en los 166Mhz., luego viene el de 200 y
finalmente el de 233 que utiliza un multiplicador de 3,5 y que además necesita de algo más de
corriente que sus compañeros.
Resumiendo:
También podemos distinguir según el encapsulado sea plástico o cerámico. Este es uno de los
mejores procesadores que ha sacado Intel, a pesar de su antigüedad. Parte de este mérito lo
tiene la caché de primer nivel, que está implementada en el propio chip, y por tanto se
comunica con la CPU a la misma velocidad que trabaja ésta internamente.
PENTIUM II
CELERON
Este procesador ha tenido una existencia bastante difícil debido a los continuos cambios de
planes de Intel, su aparición tiene que ver con abaratar costos ante competidores, se produjeron
estos modelos hasta la aparición del Dual Core.
El segundo y más moderno es el P.P.G.A. que es el mismo encapsulado que utilizan los
Pentium y Pentium Pro, pero con distinto zócalo. En este caso se utiliza el Socket 370,
incompatible con los anteriores socket 7 y 8 y con los actuales Slot 1.
PENTIUM III:
Sus Diferencias con el Pentium II fueron escasas y pueden resumirse en las siguientes:
Se le han añadido las llamadas S.S.E. o Streaming SIMD Extensions, que fueron 70 nuevas
instrucciones orientadas hacia tareas multimedia, especialmente en 3D. Estas extensiones son el
equivalente a las 3D Now que lleva implementando AMD desde hace tiempo en el K6-2, K6-III
y Athlon y que también han incorporado otros fabricantes como IDT en sus Winchip2 y 3; por
supuesto, dicho juego de instrucciones a pesar de realizar operaciones similares en estos
procesadores son totalmente incompatibles entre sí.
Otra novedad importante es la posibilidad de utilizar las nuevas instrucciones junto con las
MMX y las operaciones con la FPU sin tener problemas por ello; exceptuando al combinar la
utilización de instrucciones MMX junto con operaciones en coma flotante es prácticamente
imposible debido al retardo que supone pasar de un modo a otro, con lo que los programadores
se ven obligados a escoger entre uno u otro.
privacidad, con lo que Intel se ha visto obligada a ofrecer una utilidad que permite desactivar
dicha función.
También es importante saber que las 3DNow, al llegar bastante tiempo en el mercado, están ya
soportadas por múltiples programas, sobre todo juegos, entre otras cosas gracias al soporte por
parte de Microsoft en sus DirectX. Otras características son:
PENTIUM 4
Willamette
Willamette, la primera versión del Pentium 4, sufrió de importantes demoras durante el diseño.
De hecho, muchos expertos aseguran que los primeros modelos de 1,3, 1,4 y 1,5 GHz fueron
lanzados prematuramente para evitar que se extienda demasiado el lapso de demora de los
Pentium 4. Fueron fabricados utilizando un proceso de 180 nanómetros y utilizaban el Socket
423 para conectarse a la placa madre. Vendió una cantidad moderada de unidades.
Northwood
El Procesador de 3,06 GHz soporta Hyper Threading, una tecnología originalmente aparecida en
los Xeon que permite al sistema operativo trabajar como si la máquina tuviese dos procesadores.
La versión final de los Northwood, de 3,4 GHz, fue introducida a principios de 2004.
En septiembre de 2003, Intel anunció la edición extrema (Extreme Edition) del Pentium 4,
apenas sobre una semana antes del lanzamiento del Athlon 64, y el Athlon 64 FX. El diseño era
idéntico al Pentium 4 (hasta el punto de que funcionaría en las mismas placas madre), pero se
diferenciaba por tener 2 MB adicionales de Memoria caché L3. Compartió la misma tecnología
Gallatin del Xeon MP, aunque con un Socket 478 (a diferencia del Socket 603 de los Xeon MP)
y poseía un FSB de 800MHz, dos veces más grande que el del Xeon MP. Una versión para
Socket LGA775 también fue producida.
Prescott
El primero de febrero de 2004, Intel introdujo una nueva versión de Pentium 4 denominada
Prescott. Se utiliza en su manufactura un proceso de fabricación de 90 nanómetros y además se
hicieron significativos cambios en la arquitectura del microprocesador, por lo cual muchos
pensaron que Intel lo promocionaría como Pentium V. A pesar de que un Prescott funcionando a
la misma velocidad que un Northwood rinde menos, la renovada arquitectura del Prescott
permite alcanzar mayores velocidades y el overclock es más viable. El modelo de 3,8 GHz es el
más veloz de los que hasta ahora han entrado en el mercado.
Sin embargo, los primeros Prescott producían un 60% más de calor que un Northwood a la
misma velocidad, y por ese motivo muchos lo criticaron con dureza. Se experimentó con un
cambio en el tipo de zócalo (de Socket 478 a LGA 775) lo cual incrementó en un 10% el
consumo de energía del microprocesador, pero al ser más efectivo el sistema de refrigeración de
este zócalo, la temperatura final bajó algunos grados. En posteriores revisiones del procesador
los ingenieros de Intel esperaban reducir las temperaturas, pero esto nunca ocurrió fuera salvo a
bajas velocidades.
Finalmente, los problemas térmicos fueron tan severos, que Intel decidió abandonar la
arquitectura Prescott por completo, y los intentos de hacer correr por encima de los 4 GHz
fueron abandonados, como un gasto inútil de recursos internos. El más rápido es el 570J,
funcionando a 3,8 GHz. Los planes para microprocesadores de 4 o más GHz fueron cancelados
y se les dio prioridad a los proyectos para fabricar procesadores dobles en gran medida debido
a los problemas de consumo energía y producción de calor de los modelos Prescott.
VERSIONES POSTERIORES
Tejas y Jayhawk
Tejas era el nombre que Intel le había dado al microprocesador que sería el sucesor de
los Prescott. Jayhawk sería un procesador similar al Tejas pero que estaría preparado para
funcionar en máquina duales (es decir, una computadora con dos procesadores, no es lo mismo
que los procesadores dobles). Sin embargo, en mayo de 2004 ambos proyectos fueron
cancelados. De este modo, Intel remarco el giro hacia los procesadores dobles.
Doble Procesador
Intel tenía planeadas tres variantes con doble procesador del Pentium 4. La primera es
denominada Paxville, que consiste en poco más que dos procesadores Prescott colocados en el
mismo substrato. Le siguió Dempsey que tiene una interfaz de bus especial para conectar a los
dos microprocesadores. Smithfield es el tercero. Luego aparecerían prototipos no muy exitosos
como Pentium D, Core 2.
DOBLE PROCESADOR
DUAL CORE
El Core 2 Duo es un procesador con un pipeline de 14 etapas lo que le permite escalar más en
frecuencia que su antecesor directo: el Core 1, que tenía 12 etapas al igual que el Athlon 64.
Tiene, además, un motor de ejecución ancho con tres ALUs, cuatro FPUs, y tres unidades de
SSE de 128 bits. Estas dos características hacen que sea el procesador x86 que más
instrucciones por ciclo puede lograr.
Entre otras características destacan arquitectura de 64 bits EM64T (no disponible en su
predecesor Core Duo.
Una llamativa característica de esta familia es su particular facilidad para aplicar overclock,
llegando muchos de estos procesadores a ganancias superiores al 50% en su frecuencia de
trabajo
ACTIVIDADES
MEMORIAS
Toda información que ingresa al computador debe ser almacenada temporal o permanentemente
esta es la tarea que realizan las memorias, se las puede clasificar en memorias principales y
auxiliares
MEMORIAS PRINCIPALES
MEMORIA RAM
Otra forma de clasificarlas muy común es por la velocidad de respuesta y la cantidad de fluido
eléctrico así como el tiempo que requieren continuamente este tipo de fluido, podemos
dividirlas en:
DRAM:
"DRAM" es el acrónimo de "Dynamic Random Memory". El término Dynamic significa que la
memoria será accedida dinámicamente, es decir cada períodos cortos de tiempo, para no perder
información. Esto se denomina refresco. Para acceder a este tipo de memoria se debe especificar
la fila, la columna y si se desea realizar una lectura o una grabación.
Fast Page Mode (FPM) DRAMs:
Las memorias de página rápida son las más usadas actualmente. Son capaces de trabajar más
rápidamente que las memorias de la tecnología anterior. Para acceder a este tipo de memoria se
debe especificar la fila (página) y seguidamente la columna. Para los sucesivos accesos de la
misma fila solo es necesario especificar la columna quedando la fila seleccionada desde el
primer acceso. Esto hace que el tiempo de acceso en la misma fila (página) sea mucho más
rápido.
Extended Data Out (EDO) DRAMs:
La memoria de salida de datos extendida es más rápida que la memoria FPM. La ventaja de la
memoria EDO es que mantienen los datos en la salida hasta el siguiente acceso a memoria. Esto
permite al procesador ocuparse de otras tareas sin tener que atender a la lenta memoria. Esto es,
DDR
Forma parte de la familia SDRAM de tecnologías de memoria de acceso aleatorio, que es una
de las muchas implementaciones de la DRAM.
Los módulos DDR2 son capaces de trabajar con 4 bits por ciclo, es decir 2 de ida y 2 de vuelta
en un mismo ciclo mejorando sustancialmente el ancho de banda potencial bajo la misma
frecuencia de una DDR SDRAM tradicional
Los DIMM DDR2 tienen 240 pines, mientras que los de DDR tienen 184 y los de SDR 168.
En febrero de 2009, Samsung Electronics anunció un chip prototipo de 512 MB a 1.066 MHz
con una reducción de consumo de energía de un 40% comparado con los actuales módulos
comerciales DDR2, debido a la tecnología de 80 nanómetros usada en el diseño del DDR3 que
permite más bajas corrientes de operación y voltajes.
ACTIVIDADES
1. Ubique dos gráficos de cada tipo de memoria RAM mencionada en base a la
clasificación física
2. Elabore un organizador gráfico para explicar lo tratado sobre la memoria RAM
MEMORIA ROM
Es otra memoria principal; esta almacena toda la información del arranque de la máquina
(BIOS), así como la configuración de la misma (dentro del SETUP); se ubica en un chip
conocido como el CMOS o AMIBIOS (dependiendo de la marca del fabricante).
Es una memoria llamada también de solo lectura ya que su información no puede ser alterada
por el usuario; es permanente pues aunque se apague el equipo esta no desaparece. Sus
principales tareas consisten en:
Guardar la configuración del hardware del computador
Entregar las instrucciones del programa de encendido del computador al micro.
Anteriormente venía programada desde la fábrica pero debido a diferentes circunstancias (por
ejemplo el problema del Y2K aparecido en el año 2000), esta memoria se vio obligada a
modificarse apareciendo los siguientes tipos con las características que podemos mencionar:
PROM (Programmable Read Only Memory), puede ser llenada por el cliente y no
exclusivamente por el fabricante del chip
EPROM (Erase Programmable Read Only Memory), que es un chip que contiene la
información hasta que su contenido es borrado mediante una luz ultravioleta
EEPROM(Electrically Erase Programmable Read Only Memory), tiene la posibilidad
de retener su contenido sin energía, puede ser borrado desde el computador como
externamente, para ello requiere un voltaje mayor a 5 V
FLASH ROM, es una forma evolucionada de la memoria EEPROM que permite que
múltiples posiciones de memoria sean escritas o borradas en una misma operación de
programación mediante impulsos eléctricos, frente a las anteriores que sólo permite
escribir o borrar una única celda cada vez . Existen utilitarios que permiten identificar
chips Flash como los utilizados por las BIOS de nuestros PCs y portátiles, y de hecho
permite leer información de ellos, pero lo que es más importante: escribir, verificar y
borrar chips para reprogramarlos.
ACTIVIDADES
1. Mencione dos tareas principales de la memoria ROM
2. ¿Porqué el usuario no trabaja en la memoria ROM. Justifique su respuesta
3. ¿Qué otros dispositivos del computador pueden poseer una memoria ROM y
porqué?
MEMORIA AUXILIARES
DISCO DURO
Un sector es una división transversal o también se dice que es la unión de varias pistas.
El menor espacio donde se almacena información se conoce como clúster y es la unión de una
pista con un sector.
DISKETTE
Anteriormente siempre se dispuso de al menos uno de estos aparatos. Su capacidad es
totalmente insuficiente para las necesidades actuales, pero contaron con la ventaja que les dio
los muchos años que llevan como estándar absoluto para almacenamiento portátil; actualmente
no se producen y sus lectores vna desapareciendo de los computadores.
Es un medio de almacenamiento magnético que puede ser grabado y borrado muchas veces. Nos
facilita la búsqueda de la información. Consiste de un plástico flexible circular, que tiene una
capa de óxido ferroso capaz de sostener puntos magnéticos, además es un medio muy barato y
portable entre diferentes operativos (evidentemente, esta portabilidad existe si utilizamos el
disco como un dispositivo secuencial, sin crear sistemas de ficheros). Por el contrario, su
fiabilidad es muy baja: la información almacenada se puede borrar fácilmente si el disco se
aproxima a aparatos que emiten cualquier tipo de radiación, como un teléfono móvil o un
detector de metales.
El mundo del PC ha conocido casi diez tipos distintos de disquetes y de lectores para los
mismos.
Originariamente los disquetes eran de 5,25 pulgadas de ancho. La capacidad primera de 160 Kb
se reveló enseguida como insuficiente, por lo que empezó a crecer y no paró hasta los 1,44 MB,
ya con los disquetes actuales, más pequeños (3,5"), más rígidos y protegidos por una pestaña
metálica.
Incluso existe un modelo de 2,88 MB y 3,5" que incorporaban algunos ordenadores IBM, pero
no llegó a cuajar porque los discos resultaban algo caros y seguían siendo demasiado escasos
para aplicaciones un tanto serias; mucha gente opinó que hasta los 100 MB de un Zip eran
insuficientes.
CD – ROM
Una de las principales ventajas de los CD-ROM es que el desgaste es prácticamente nulo, y la
principal desventaja es que no podemos cambiar lo que existe grabado, como podemos hacer en
un HD, aunque últimamente están apareciendo en el mercado unidades re-grabadoras de CD-
ROM, que permiten escribir una y otra vez en CD’s especiales. En un CD-ROM podemos
almacenar alrededor 650 MB de información, lo que supone almacenar unas 150.000 páginas de
información, o la información contenida en 1.200 disquetes. Existen unidades CD-ROM que se
conectan a controladoras IDE y otras a controladoras SCSI como ya se ha mencionado al hablar
de los discos duros; en los dos últimos años se ha producido ya lectores con tecnología SATA
por ser mucho más rápida en la transmisión.
Las unidades DVD (Digital Video Disc), estas unidades son básicamente un CD-ROM con una
muy superior densidad de grabación, logrando una capacidad de almacenamiento de 4,38 GB si
se graban por una sola cara y una capa, hasta 15,90 GB si la grabación se realiza en dos caras y
con dos capas. Cada cara puede tener hasta dos capas.
Respecto a la compatibilidad de los DVD con los CD-ROM es absoluta en el caso de los CD-
ROM estampados industrialmente y de los CD-RW; pero no así con los CD-R (procedentes de
un grabador) que necesitan para ser leídos por un lector DVD, que éste disponga de dos láser
(láser dual).
ACTIVIDADES:
1. Señale los distintos tipos de sistemas de asignación de archivos que han
existido
2. Elabore una tabla de doble entrada para describir las características de los
discos duros, disquete y CD.
MEMORIA CACHE
Es una memoria auxiliar presente a partir de los procesadores 486 y PENTIUM principalmente;
se encarga de almacenar los programas de mayor utilización o que pueden ser de probable
utilización; esta también es temporal y tiene poca capacidad de almacenamiento; su ventaja
radica en proporcionar los datos a grandes velocidades evitándonos la búsqueda en el disco o en
la memoria principal.
Debido a la gran velocidad alcanzada por los microprocesadores desde el 386, la RAM del
ordenador no es lo suficientemente rápida para almacenar y transmitir los datos que el
microprocesador (el "micro" en adelante) necesita, por lo que tendría que esperar a que la
memoria estuviera disponible y el trabajo se hace más lento. Para evitarlo, se usa una memoria
muy rápida, estratégicamente situada entre el micro y la RAM: la memoria caché.
Pero la caché no sólo es rápida; además, se usa con una finalidad específica. Cuando un
ordenador trabaja, el micro opera en ocasiones con un número reducido de datos, pero que tiene
que traer y llevar a la memoria en cada operación. Si situamos en medio del camino de los datos
una memoria intermedia que almacene los datos más usados, los que casi seguro necesitará el
micro en la próxima operación que realice, se ahorrará mucho tiempo del tránsito y acceso a la
lenta memoria RAM; esta es la segunda utilidad de la caché.
No debemos pensar que entre más grande es mejor en este caso. Aunque la caché sea de mayor
velocidad que la RAM, si usamos una caché muy grande, el micro tardará un tiempo apreciable
en encontrar el dato que necesita. Esto no sería muy importante si el dato estuviera allí, pero ¿y
si no está? Entonces habrá perdido el tiempo, y tendrá que sumar ese tiempo perdido a lo que
tarde en encontrarlo en la RAM.
TIPOS DE CACHÉ
La caché a la que nos hemos referido hasta ahora es la llamada "caché externa" o de segundo
nivel (L2). Existe otra, cuyo principio básico es el mismo, pero que está incluida en el interior
del micro; de ahí lo de interna, o de primer nivel (L1).
Esta caché funciona como la externa, sólo que está más cerca del micro, es más rápida y más
cara, además de complicar el diseño del micro, por lo que su tamaño se mide en pocas decenas
de kilobytes. Se incorporó por primera vez en los micros 486, y por aquel entonces era de 8 KB
(aunque algunos 486 de Cyrix tenían sólo 1 KB). Hoy en día se utilizan hasta 512 MB en la
externa, aunque seguro que pronto alguien superará esta cifra.
FLASH MEMORY
Una memoria flash permite funcionar a velocidades muy superiores cuando los sistemas
emplean lectura y escritura en diferentes puntos de esta memoria al mismo tiempo.
Las memorias flash son de tipo no volátil, esto es, la información que almacena no se pierde en
cuanto se desconecta de la corriente, una característica muy valorada para la multitud de usos en
los que se emplea este tipo de memoria.
Los principales usos de este tipo de memorias son pequeños dispositivos basados en el uso de
baterías como teléfonos móviles, PDA, pequeños electrodomésticos, cámaras de fotos digitales,
reproductores portátiles de MP3, etc.
Las capacidades de almacenamiento de estas tarjetas que integran memorias flash comenzaron
en 8 MB pero actualmente se pueden encontrar en el mercado tarjetas de hasta 80 GB.
La velocidad de transferencia de estas tarjetas, al igual que la capacidad de las mismas, se ha ido
incrementando progresivamente. La nueva generación de tarjetas permitirá velocidades de hasta
20 MB/s.
BUSES
Son dispositivos o conductores que transmiten la información desde la tarjeta madre a otros
dispositivos tomando en cuenta las posiciones de memoria pueden encargarse de varias tareas
como son: dirección, datos, control y comunicación.
Los buses de control reciben información del estado de los dispositivos además de
manejar los dispositivos.
Los buses de comunicación permiten el diálogo del CPU con determinada unidad.
Algunos autores suelen clasificar también a los buses como un símil de la tecnología que poseen
en las ranuras de expansión para las distintas tarjetas pudiendo ser PCI, ISA, EISA, etc.
ACTIVIDADES
1. Indique el significado de las siguientes siglas:
PCI:
ISA:
EISA:
2. Que velocidades desarrollan los buses ISA, EISA y PCI
PUERTOS
Son los dispositivos que permiten el ingreso y salida de información por las unidades de entrada
o de salida. Pueden ser de tres tipos paralelos, serie o USB
El puerto en serie es de nueve pines y fue utilizado para módem externos, mouse, scanner;
posee una entrada de nueve pines y la información ingresa bit a bit y se lo define con el nombre
de COM1.
ACTIVIDADES
1. Elabore un cuadro comparativo de los tipos de puertos
Fusible.
Transformadores.
Disipador de calor.
Resistencias.
Transistores.
Condensadores.
AT.- Solo se encuentran en computadores antiguos desde las 386 en adelante, hasta la Pentium
I.
Viene por piezas.
Tiene un switch de encendido y apagado.
El orden de los cables no altera la polarización.
Sus conectores son P8 Y P9.
Cada conector tiene 6 pines.
Posee más cables para conectar otros dispositivos.
También se encuentra atornillada en el CASE, la fuente de poder o de alimentación, el cual
tiene un ventilador, Conviene revisar el ventilador, pues al desgastarse con el uso, este suele ser
el causante de la mayoría de los ruidos del computador.
Debemos conectar correctamente los cables que salen de la fuente de poder hacia la mainboard
a fin de evitar que esta se queme. Como indiqué tenemos dos tipos de conectores como se
muestra en la gráfica a continuación:
Conector de Suministro de Energía ATX
Conector de poder tecnología ATX, aquí se instala el conector ATX, que viene de la fuente de
alimentación o fuente de poder, suministra la energía a toda la Mother Board, suministra energía
al Procesador CPU, disipador de calor, botones de control del tablero frontal del CASE, este
conector tiene una guía para ser instalado, el cual no permite la equivoca o errada instalación del
mismo que vaya al perjuicio de algún componente instalado. Se halla en los mainboard actuales.
DISPOSITIVOS DE SALIDA
Son los dispositivos que permiten observar los resultados procesados, entre los principales
tenemos el monitor, la impresora, plottter, parlantes.
PANTALLA O MONITOR
Es un periférico básico en cualquier sistema informático con tamaños que van desde 14, 15, 21
hasta 27 pulgadas. Podemos clasificar de dos maneras a los monitores por su forma y tecnología
que utilizan para representar los píxeles, así también por su resolución.
De acuerdo a la primera división pueden ser de tipo TCR (tubos
de rayos catódicos) y LCD (de cristal líquido): En el primer caso
necesitan un tubo que envía electrones mediante un proceso
llamado barrido hacia el cristal reflejando los píxeles. Cuando se
trata de una pantalla plana LCD para generar los píxeles se utiliza
una combinación de varios elementos líquidos.
En el caso de las pantallas de tubos de rayos, las pantallas a color
de los monitores están formadas internamente por tres capas de
material de fósforo, una por cada color básico (rojo, verde y azul). También consta de tres
cañones de electrones, e, igual que las capas de fósforo, hay uno por cada color.
Para formar un color en pantalla que no sea ninguno de los colores básicos, se combinan las
intensidades de los haces de electrones de los tres colores básicos.
Para los monitores monocromáticos son los que muestran solo color: negro sobre blanco o
ámbar, o verde sobre negro. Uno de estos monitores con una resolución equivalente a la de un
monitor color, si es de buena calidad, generalmente es más nítido y más legible.
Los cristales líquidos son sustancias transparentes con cualidades propias de líquidos y de
sólidos. Al igual que los sólidos, una luz que atraviesa un cristal líquido sigue el alineamiento
de las moléculas, pero al igual que los líquidos, aplicando una carga eléctrica a estos cristales, se
produce un cambio en la alineación de las moléculas, y por tanto en el modo en que la luz pasa a
través de ellas. Una pantalla LCD está formada por dos filtros polarizantes con filas de cristales
líquidos alineados perpendicularmente entre sí, de modo que al aplicar o dejar de aplicar una
corriente eléctrica a los filtros, se consigue que la luz pase o no pase a través de ellos, según el
segundo filtro bloquee o no el paso de la luz que ha atravesado el primero.
El color se consigue añadiendo 3 filtros adicionales de color (uno rojo, uno verde, uno azul). Sin
embargo, para la reproducción de varias tonalidades de color, se deben aplicar diferentes niveles
de brillo intermedios entre luz y no-luz, lo cual se consigue con variaciones en el voltaje que se
aplica a los filtros. En esto último, hay un parecido con los monitores CRT.
IMPRESORAS
Las impresoras de no impacto pueden ser de tres tipos principalmente: térmicas, de inyección a
tinta y láser.
IMPRESORAS LASER. Son rápidas entre 10 a 20 hojas por minuto, los gráficos son de
excelente calidad y también trabaja a colores.
Esta tecnología es la misma que han utilizado mayormente las máquinas fotocopiadoras desde
un principio, y el material que se utiliza para la impresión es un polvo muy fino que pasa a un
rodillo que previamente magnetizado en las zonas que contendrán la parte impresa, es pasado a
muy alta temperatura por encima del papel, que por acción de dicho calor se funde y lo
impregna.
Estas impresoras suelen ser utilizadas en el mundo
empresarial, ya que su precio de coste es más alto que el de
las de inyección de tinta, pero su coste de mantenimiento es
más bajo, y existen dispositivos con una muy alta velocidad
por copia y calidad y disponibilidad superiores, así como
también admiten una mayor carga de trabajo.
Una de las características más importantes de estas impresoras
es que pueden llegar a velocidades muy altas, medidas en páginas por minuto. Su resolución
también puede ser muy elevada y su calidad muy alta. Empiezan a ser habituales resoluciones
de 1.200 ppm (puntos por pulgada) y velocidades de 16 ppm, aunque esta velocidad puede ser
mucho mayor en modelos preparados para grupos de trabajo, hasta 40 ppm y más.
ACTIVIDADES
AUTOEVALUACIÓN
1.- Ubique dentro del paréntesis una V si es verdadero o F si es falso según corresponda
3.- Mencione dos requisitos importantes para considerar al comprar un computador y porqué
……………………………………………………………………………………………………
……………………………………………………………………………………………………
……………………………………………………………………………………………………
……………………………………………………………………………………………………
……………………………………….
5.-Dentro del paréntesis ubique RAM o ROM según correspondan las características
( ) Memoria donde se cargan los programas a ser utilizados
( ) Cuando se apaga la máquina no pierde al información
( ) Tiene registros que almacenan los datos temporalmente
( ) El setup se halla alojado en el mismo
7.- Señale dos empresas fabricantes para los siguientes piezas del computador:
Mainboard:
…………………………………………………………………………………………………
RAM
……………………………………………………………………………………………………
….
Lector de CD:
……………………………………………………………………………………………..
Procesador:
…………………………………………………………………………………………………
UNIDAD II
LOS ALGORITMOS
OBJETIVOS
ALGORITMOS
La historia del desarrollo de estos procesos tiene sus inicios en técnicas de cálculo escrito que
utilizaban los matemáticos hindúes, árabes y europeos. El matemático árabe Al'Khwarizmi ,
alrededor del año 830 DC, escribe un libro de Aritmética, traducido al latín como “Algoritmi de
numero Indorum”, donde introduce el sistema numérico indio (sólo conocido por los árabes
unos 50 años antes) y los métodos para calcular con él. De esta versión latina proviene la
palabra Algoritmo.
Ya en el siglo XIX, se produjo el primer algoritmo escrito para un computador. La autora fue
Ada Byron, en cuyos escritos se detallaban la máquina analítica en 1842. Por ello que es
considerada por muchos como la primera programadora aunque, desde Charles Babbage, nadie
completó su máquina, por lo que el algoritmo nunca se implementó.
Por algoritmo se entiende "una lista de instrucciones donde se especifica una sucesión de
operaciones necesarias para resolver cualquier problema de un tipo dado". Los algoritmos son
modos de resolución de problemas, cabe aclarar que no sólo son aplicables a la actividad
intelectual, sino también a todo tipo de problemas relacionados con actividades cotidianas. El
algoritmo es de carácter general y puede aplicarse a cualquier operación matemática o a
cualquier problema. La formulación de algoritmos fue uno de los más grandes adelantos dentro
de la ciencia matemática ya que a partir de ello se pudieron resolver infinidad de problemas.
Landa, matemático ruso, quien ha investigado mucho al respecto nos dice que "la ciencia
matemática, en el proceso de su desarrollo, ha tratado de encontrar los algoritmos óptimos más
generales para resolver los problemas que permitan la solución uniforme de clases más amplias
de problemas de una manera, es decir, empleando siempre el mismo sistema de operación. Los
algoritmos, para llegar a ser tales deben reunir ciertas características.
CARACTERÍSTICAS
Aunque por ser amplios no se definen como reglas podemos sugerir algunos pasos a seguirse:
Deben estar estrictamente descritos, cada acción debe ser precisa.
Debe ser general, es decir, que pueda ser aplicable a todos los elementos de una misma
clase. Por ejemplo en el caso del algoritmo de una multiplicación, no sólo se realizará el
Dependiendo del tipo de ejercicio también es importante tomar ciertos puntos referentes como
Estructura de Datos, Variables , Constantes como se revisará con ejemplos para su mejor
compresión.
La mayoría de los algoritmos involucran métodos de organizar los datos que intervienen en el
cómputo. Estos objetos creados son llamados, de esta manera la estructura de los datos, y
también son los objetos centrales del estudio en la informática. De esta forma, los algoritmos y
estructuras de los datos van siempre de la mano. Los algoritmos simples pueden dar lugar a una
estructura de datos complicada y, recíprocamente, los algoritmos complicados pueden usar
estructuras de los datos simples.
Cuando un programa de computadora es grande o complejo, este será desarrollado con mucho
esfuerzo, ya que se debe comprender y definir el problema a ser resuelto, manejando su
complejidad, y descomponerlo en partes más pequeñas que puedan resolverse más fácilmente.
A menudo, muchos de los algoritmos que se necesitan, después de la descomposición son
triviales al instrumento. En la mayoría de los casos, sin embargo, existen algoritmos cuyo
funcionamiento es crítico porque la mayoría de los recursos del sistema se gastarán en su
funcionamiento.
Descripción formal. Se usa pseudocódigo para describir la secuencia de pasos que encuentran
la solución. Es el paso previo a la codificación en un lenguaje determinado
Implementación. Se muestra el algoritmo expresado en un lenguaje de programación
específico o algún objeto capaz de llevar a cabo instrucciones.
También es posible incluir un teorema que demuestre que el algoritmo es correcto, un análisis
de complejidad o ambos. En nuestro caso esta implementación o validación se realiza al ejecutar
un programa basado en el algoritmo correspondiente en la computadora.
ANÁLISIS DE ALGORITMOS
SALIDA
PROCESO EN ALGORITMO
Para encontrar el elemento máximo, se asume que el primer elemento (c0) es el máximo;
Se recorre el conjunto y se compara cada valor con el valor del máximo número
encontrado hasta ese momento.
En el caso que un elemento sea mayor que el máximo, se asigna su valor al máximo.
Tengamos en cuenta lo señalado antes explicar los procesos de manera sencilla y clara; también
la importancia del orden y secuencia.
Abrir la caja que contiene el cd
Extraigo el cd de ella
Presiono el botón de Encendido en el reproductor
Presiono el botón de OPEN
Ubico el cd en la forma apropiada
Presiono el botón de Play
FLUJOGRAMAS
Personalmente considero que es una forma gráfica de representar los programas y procesos con
una simbología universal y que servirán en el caso de nuestra asignatura como punto de partida
a fin de traducirlos luego a lenguajes de programación para su funcionamiento.
Los flujogramas son usados principalmente para la documentación física o las interfaces del
hardware dentro de un sistema. También son utilizados para conocer y saber el desplazamiento
o curso de alguna cosa, que bien puede ser un formulario, un informe, materiales y recursos.
La utilidad de los flujogramas radica en que estos nos prestan diferentes servicios, como son: a)
en la etapa investigativa, nos informa lo que se está haciendo en la actualidad y en qué forma; b)
en la formulación, nos permite señalar la manera en la que se van a realizar las actividades,
establecer comparaciones entre procedimientos vigentes y notar si existen diferencias y mejoras;
c) al momento de diseñar un nuevo procedimiento, nos permite averiguar qué pasos son
necesarios, la manera más conveniente para realizar paso, la posibilidad de cambiar la
frecuencia y si algún paso puede ser eliminado o sustituido.
Los bloques pueden representar acción o decisión. Un bloque de acción representa una
actividad: efectuar una operación aritmética entre dos números, convertir un valor en cero, etc.
Su descripción implica siempre aplicar un verbo (hacer algo): sumar, transferir, borrar, etc.
Un bloque de decisión: es una forma de expresar una consulta acerca del cumplimiento o no de
una determinada condición o alternativa. Según sea la respuesta que se dé a dicha consulta
(verdadero o falso) se seguirán diferentes caminos.
Las líneas de dirección o flechas que comunica los bloques y determinan el orden secuencial en
que deben ser considerados.
BUCLE, LAZO DE
REPETICIÓN Repite procesos
PSEUDOCODIGO
Queda claro entonces que los seudocódigos son generales y nos sirven de base para elaborar los
programas en el lenguaje que deseemos; en la actualidad se orienta con mayor fuerza su
utilización por considerarlos más sencillos de elaborar que los flujogramas.
realizar la máquina”. José Ñacato señala “es una técnica para describir algoritmos que busca
simplificar de una manera más entendible la acción de ejecutar o indicar los pasos para
solucionar un problema con palabras comunes de un idioma cualquiera, utiliza frase imperativas
que muestran la lógica y estructura del mismo, la naturaleza de los datos de fácil lectura e
interpretación.”
Constantes:
Una constante es un dato cuyo valor no puede cambiar durante la ejecución del programa.
Recibe un valor en el momento de la compilación y este permanece inalterado durante todo el
programa. Las constantes se declaran en una sección que comienza con la palabra reservada
const. Después de declarar una constante se puede usar en el cuerpo principal del programa.
Tienen varios usos: ser miembro en una expresión, en una comparación, asignar su valor a una
variable, etc.
En el siguiente ejemplo se contemplan varios casos:
const
Min = 0;
Max = 100;
Sep = 10;
En este ejemplo se declaran tres constantes (Min, Max y Sep). En la primera línea del cuerpo
del programa se asigna una constante a una variable. En la siguiente, se usa una constante en
una comparación.
Constantes expresión
También se declaran en la sección Const pero a estas no se les asigna un valor directamente,
sino que se les asigna una expresión.
Variables:
Una variable es un nombre asociado a un elemento de datos que está situado en posiciones
contiguas de la memoria principal, y su valor puede cambiar durante la ejecución de un
programa. Toda variable pertenece a un tipo de dato concreto. En la declaración de una variable
se debe indicar el tipo al que pertenece. Así tendremos variables enteras, reales, booleanas, etc.
Por otro lado, distinguimos tres partes fundamentales en la vida de una variable:
Declaración de variables
Esta es la primera fase en la vida de cualquier variable. La forma de declarar variables es muy
sencilla. Esta sección debe comenzar con la palabra reservada var, seguida de una lista de
parejas lista_de_variables=tipo_al_que_pertenecen. Cada par debe ir seguido por un punto y
coma.
La lista_de_variables es uno o más nombres de variables separados por comas:
var
lar1=tipo1( en números);...
;listaVarn:tipon;
Una variable no representa más que una porción de memoria en donde guardamos un dato que
dependerá del tipo al que pertenezca la variable. A diferencia de una constante, el valor de una
variable puede cambiar durante la ejecución de un programa. Otra diferencia, es que a una
variable no basta con declararla, sino que también es necesario iniciarla. Esto se refiere a darle
un valor inicial, y es importante ya que si no lo hacemos, igual nos encontramos con errores
cuando ejecutemos el programa.
Iniciación de variables
Esto no es más que darle un valor inicial a una variable. Así como lo primero que se hace con
una variable es declararla, lo siguiente tiene que ser iniciarla. Esto se hace para evitar posibles
errores en tiempo de ejecución, pues una variable tiene un valor indeterminado después de
declararla. Principalmente, existen dos maneras de otorgar valores iniciales a variables:
Mediante una sentencia de asignación
Mediante uno de los procedimientos de entrada de datos
Veamos un ejemplo que reúne los dos casos:
...
i:=1;
i := i + 1
Fin programa.
Utilización de variables
Una vez declarada e iniciada una variable, es el momento de utilizarla. Esta es la parte que
presenta un mayor abanico de posibilidades. A continuación se presentan unas cuantas:
Incrementar su valor:
i := i + 1
Controlar un bucle:
Repetir I desde1 hasta 10 ...
Tipos de datos.
El tipo entero
El tipo de datos entero es un tipo simple, y dentro de estos, es ordinal. Al declarar una variable
de tipo entero, se está creando una variable numérica que puede tomar valores positivos o
negativos, y sin parte decimal. Este tipo de variables, puede utilizarse en asignaciones,
comparaciones, expresiones aritméticas, etc. Algunos de los papeles más comunes que
desarrollan son:
Controlar un bucle .
Usarlas como contador, incrementando su valor cuando sucede algo .
Realizar operaciones enteras, es decir, sin parte decimal
Y muchas más...
El tipo boolean (lógico)
El tipo de datos lógico es el que permite usar variables que disponen sólo de dos posibles
valores: cierto ó falso. Debido a esto, su utilidad salta a la vista, y no es otra que variables de
chequeo. Nos sirven para mantener el estado de un objeto mediante dos valores:
si/no
cierto/falso
funciona/no funciona
on/off
etc.
El tipo real
El tipo de datos real es el que se corresponde con los números reales. Este es un tipo importante
para los cálculos. Por ejemplo en los estadísticos, ya que se caracterizan por tratar
fundamentalmente con valores decimales.
Con el tipo carácter se pueden tener objetos que representen una letra, un número, etc. Es decir,
se usan variables o constantes que representen un valor alfanumérico. Pero, cada variable sólo
podrá almacenar un carácter. Sin embargo, con las cadenas de caracteres (strings) se puede
contener en una sóla variable más de un carácter. Por ejemplo, se puede tener en una variable tu
nombre.
EJERCICIOS
1.- Realizar un flujograma que permita ingresar por teclado dos números sumarlos y
realizar el resultado por pantalla.
Por tratarse de un flujograma sencillo describiremos rápidamente que necesito de tres variables
para almacenar los datos, las dos primeras (S1, S2) para guardar los dos datos numéricos
ingresados por el teclado y la tercera para guardar el resultado (ST). Cuando poseemos los dos
datos pasamos a realizar la operación suma y finalmente presentar el resultado por pantalla.
Variables
S1 = 0;
S2 = 0;
ST = 0;
DESPLEGAR “Ingrese dos números S1 y S2”
LEER O INGRESAR POR TECLADO S1, S2
CALCULAR ST= S1+S2
DESPLEGAR “ST”, ST
INICIO
S1= 0;
S2= 0;
ST= 0,
“Ingrese S1 y S2”
ST ← S1+ S2
“ST”, ST
FIN
Algunas veces las explicaciones de las operaciones son colocadas dentro de cada símbolo, pero
no es necesario ya que pueden escribirse, bien sea debajo, o un lado del símbolo
correspondiente.
ACTIVIDADES:
En los siguiente seudocódigos, complete el flujograma correctamente
1. Realizar un flujo grama que permita ingresar por teclado la distancia y el tiempo con
estos datos calcular la velocidad y la aceleración desplegar los resultados.
Variables:
d = 0.0; a = 0.0; t = 0.0; v = 0.0;
Desplegar:
“ingrese la distancia y el tiempo”
Ingrese por teclado: Distancia, tiempo
Calcular:
v = d/t
Calcular:
a = v/t
Desplegar :
“v, a” v, a
FIN - PROGRAMA - FISICA
FIN
2. Realizar un flujo grama que permita al usuario ingresar por teclado ángulo m1; m2 con
estos datos calcular el ángulo m3, imprimir el resultado.
Variables
m1= 0; m2 = 0; m3 = 0; SA =0;
Desplegar:
“ingresar los ángulos”
Ingresar por teclado:
Calcular:
m3 = 180 – m1 – m2
Imprimir m3
FIN - PROGRAMA - ANGULOS
inicio
l1=0;
l2=0;
hip =0;
“ingrese lado1”
l1
“ingrese lado1”
l2
hipotenusa=12 + l22
“l1, l 2, hip”,l1,l2,hip
fin
CONDICIONES (IF).
Permite seleccionar opciones si una condición se cumple o no, es por esta razón que se lo
conoce como un si condicional porque no afirma sino pregunta. Explicare brevemente que nos
permite este símbolo: imagine que usted debe cobrar el impuesto llamado IVA que es del 12 %
de la venta; lo primero que hará al crear un programa para este propósito es ingresar por teclado
el valor tota l de la venta; pero además debe tomar en cuenta que solo a partir de 4 dólares se
incrementa este impuesto, por lo tanto es necesario incluir una pregunta para cerciorarnos del
precio de venta, es allí donde interviene esta sentencia y símbolo de flujograma. Puesto que
permite preguntar al computador el valor también le daremos posibilidades de realizar acciones
si este es mayor o igual a 4 dólares, que sería multiplicar el precio de venta final por 0.12 y
desplegar el valor final que sería el precio total de venta mas el valor calculado del impuesto, o
en el caso de ser menor no aumentar nada y simplemente desplegar el precio como estaba.
Si(V)
Condición
No (F)
Variables:
N1 = 0; N2 = 0; N1 = 0; N2 = 0;
Desplegar:
“ingresar dos números”
Ingrese por teclado: N1, N2
“ingresar dos números Si N1 > N2 entonces
Imprimir
“N1”, caso contrario
Imprimir “N2”
FIN DEL Si
FIN _ PROGRAMA _ MAYOR
N1, N2
FIN
Elabore un programa que permita ingresar un número y desplegar mensajes si el número es nulo
(igual a cero), negativo o positivo
INICIO
num=0;
num
OBSERVACIÓN: Aquí se
incluye la posibilidad de ubicar un
"El número %d es símbolo de condición a
num==0 NULO" continuación de otro, esto se
utiliza cuando tengo múltiples
opciones y se conoce como
"El número %d es condiciones anidadas.
num<0 NEGATIVO"
"El número:num es
POSITIVO",num
FIN
Inicio programa_número
variables num=0;
desplegar
"Digite un número: "
ingresar por teclado num
si(num=0) entonces
desplegar
"El numero es NULO"
caso contrario
si(num<0)entonces
desplegar
"El número es NEGATIVO";
caso contrario
desplegar
"El número es POSITIVO";
fin del si
fin del si
fin programa_número
CONTADOR AUTOMATICO
Repite todos los procesos que se encuentren dentro de su lazo las veces que el usuario determine
terminándose de forma automática cuando se alcance su valor final. Para utilizar esta opción
debemos poseer una variable solo para contar los procesos, un valor inicial, un valor final y un
incremento o decremento, por ejemplo:
C = variable
C = V.inicial,V.final, aum/dism V.inicial = valor inicial
V. final = valor final
Aum/dism = aumento o disminución
Supongamos por ejemplo que se necesita ingresar tres productos, no sería nada práctico ejecutar
el programa tres veces; sino por el contrario que sin dejar el programa tenga la posibilidad de
presentar en pantalla un mensaje para su ingreso, luego el usuario ingrese por teclado el nombre
del producto y su valor, repitiendo este proceso automáticamente y finalice al ingresar el
número requerido, casos como esto son de fácil resolución con el contador automático.
INICIO
C = 0; N = 0;
C = 1, 48, 1
N>= 14 “APROBADO”
FIN
INICIO_PROGRAMA_CURSO
Variables:
C= 0;
N= 0;
Repetir C desde 1 hasta 48 aumentar 1
Deplegar “Ingrese un número”
Ingresar por teclado N
Si N> 14 entonces
Imprimir “APROBADO”
Caso contrario
Imprimir “REPROBADO”
Fin del repetir C
FIN DEL PROGRAMA_CURSO.
INICIO_PROGRAMA_EXPONENTE
Variables:
base=0;
exponente=0;
i=0;
inpot=0;
intpot=1;
Desplegar “Ingrese base”
Ingresar por teclado base
Desplegar “Ingrese exponente”
Ingresar por teclado exponente
Repetir i desde 1 hasta exponente aumentar 1
Calcular intpot= intpot*base;
Desplegar “base,exponente,intpot”
Fin de repetir i
FIN_PROGRAMA_EXPONENTE
inicio
base=0;
exponente=0;
i=0; intpot=1;
“Ingrese base”
base
“Ingrese exponente”
exponente
i=1;exponente;1
intpot= intpot*base
“base,exponente,intpot”
fin
Variables:
i=0;
j=0;
n=0;
r=0;
Desplegar “Ingrese numero”
Ingresar por teclado n
Repetir i desde 1 hasta 12 aumentar 1
Repetir j desde 1 hasta n aumentar 1
Calcular r=i*j
Desplegar “i*i=i”,i,j,r
FIN_PROGRAMA_ORDEN
inicio
i=0; j=0;
n=0; r=0;
“Ingrese número”
i=1;12;1
j=1;n;1
r=i*j
“i * j =r”, i , j, r
fin
AUTOEVALUACIÓN
PSEUDOCODIGO
INICIO_ PROGRAMA_FACTORIAL
Variables:
C = 0;
N = 0;
F = 1;
Desplegar “Ingrese el número”
Repetir C desde 1 hasta N aumentar 1
Calcular F = F * C
Fin de Repetir C
Imprimir F
FIN_PROGRAMA_ FACTORIAL
3. ¿Puede existir un contador automático donde el valor inicial sea mayor al valor final?
Mencione dos ejemplos prácticos.
Se desea obtener un listado que indique el total de unidades existentes en el archivo (de
todos los productos) y el total de líneas de productos en el archivo (cantidad de códigos de
productos).
7. Se debe realizar una operación donde se ingresa el número C y se multiplica por un valor
constante D. La operación se ejecuta mientras no se ingrese por teclado /* y es necesario al
final imprimir el número de veces realizado este proceso.
10. Elabore el flujograma para los siguientes pseudocódigos
Suponga que un curso estaba compuesto de tres estudiantes. Cada uno de los estudiantes
cursó dos asignaturas. Se deben leer inicialmente los nombres de los tres estudiantes, los
nombres de las dos asignaturas y luego: las calificaciones definitivas de cada una de las dos
asignaturas para cada uno de los tres estudiantes. Calcular:
la nota promedio de cada uno de los tres estudiantes.
2. la nota promedio de cada una de las asignaturas.
INICIO
CARACTER Asignatura1[10], Asignatura2[10],
Estudiante1[15], Estudiante2[15], Estudiante3[15];
REAL Est1Asig1, Est1Asig2,
Est2Asig1, Est2Asig2,
Est3Asig1, Est3Asig2,
PromedioAsignatura1, PromedioAsignatura2,
PromedioEstudiante1,PromedioEstudiante2, PromedioEstudiante3;
Escribir("Digite Nombre asignatura 1: ")
Leer(Asignatura1)
Escribir("Digite Nombre asignatura 2: ")
Leer(Asignatura2)
Escribir("Digite Nombre estudiante 1: ")
Leer(Estudiante1)
INICIO
Constante REAL TotalCensoElectoral = 50000
CARACTER Candidato1[15], Candidato2[15], Candidato3[15]
REAL VotosCandidato1, VotosCandidato2, VotosCandidato3, VotosEnBlanco,
TotalVotosEleccion,
PorcentajeCandidato1,PorcentajeCandidato2, PorcentajeCandidato3,
PorcentajeVotosEnBlanco,
PorcentajeCiudadanosResponsables,
PorcentajeCiudadanosInconcientes;
Escribir("Digite Nombre candidato 1: ")
Leer(Candidato1)
Escribir("Digite Nombre candidato 2: ")
Leer(Candidato2)
Escribir("Digite Nombre candidato 3: ")
Leer(Candidato3)
Escribir("Digite votación de ", Candidato1, ": ")
Leer(VotosCandidato1)
Escribir("Digite votación de ", Candidato2, ": ")
Leer(VotosCandidato2)
Escribir("Digite votación de ", Candidato3, ": ")
Leer(VotosCandidato3)
Escribir("Digite votación en blanco ")
Leer(VotosEnBlanco)
//A continuación los cálculos necesarios
TotalVotosEleccion = VotosCandidato1 + VotosCandidato2 +
VotosCandidato3 + VotosEnBlanco
PorcentajeCandidato1 = ( VotosCandidato1 / TotalVotosEleccion ) * 100
PorcentajeCandidato2 = ( VotosCandidato2 / TotalVotosEleccion ) * 100
PorcentajeCandidato3 = ( VotosCandidato3 / TotalVotosEleccion ) * 100
PorcentajeVotosEnBlanco = ( VotosEnBlanco / TotalVotosEleccion ) * 100
PorcentajeCiudadanosResponsables=(TotalVotosEleccion/TotalCensoElectoral)*100
PorcentajeCiudadanosInconcientes = 100 - PorcentajeCiudadanosResponsables
Escribir("Porcentaje ", Candidato1, " = ", PorcentajeCandidato1)
Escribir("Porcentaje ", Candidato2, " = ", PorcentajeCandidato2)
Escribir("Porcentaje ", Candidato3, " = ", PorcentajeCandidato3)
Escribir("Porcentaje de votos en blanco = ", PorcentajeVotosEnBlanco)
Escribir("Si votaron = ", PorcentajeCiudadanosResponsables, "%")
Escribir("NO votaron = ", PorcentajeCiudadanosInconcientes, "%")
FIN.
Estas también son sentencias de repetición, pero al contrario del bucle o contador automático
estás se ejecutarán un número indefinido de veces hasta que su condición deje de cumplirse.
Durante la programación en C++ los trabajaremos mejor pero a fin de conocerlos mejor los
llamaremos con sus nombres en programación puesto que hay dos casos: uno donde la
condición que determina si el proceso se repite o no se evalúa al inicio y de ser verdadera se
ingresa al lazo sino se continua con lo que está bajo el; el otro realiza el proceso y evalúa al
final se llaman while y do while respectivamente.
Do while permite ejecutar la instrucción y luego comprobar que la condición esté cumpliéndose.
Su formato es
do {
Sentencias
}while ( condición)
La función while ejecuta los procesos pero antes se cerciora que la condición se esté
cumpliendo, su sintaxis es:
while (condición)
{
sentencias
}
1. Realizar seudocódigo que permita ingresar diez nombres por medio de un contador
que irá marcando, al fin del programa desplegar el total de ingresados
PSEUDOCODIGO
inicio programa_nombre
Variables
x=0
Nombre=" "
hacer
desplegar("1ngrese nombre: ")
ingresar por teclado nombre
x=x+1
Desplegar nombre
mientras (x< =10)
Fin programa_nombre
UNIDAD II
INTRODUCCIÓN A
LENGUAJE C
LENGUAJE C
Pronto el lenguaje C fue mejorado apareciendo el C++ ganando terrenos sobre otros por su
programación orientada a objetos, es decir gracias a este tipo de programación se diseña
elementos como ventanas, íconos, archivos, etc. conocidos como objetos sobre los cuales es
posible actuar mediante un comando evitando así la necesidad de programación con excesivas
líneas; existen otras diferencias que podríamos citar como mayor número de bibliotecas y
funciones pero respeta en lo básico la sintaxis.
Compiladores de C
Si tenemos el código fuente podemos modificar el programa tantas veces como queramos (sólo
tenemos que volver a compilarlo), pero si tenemos el ejecutable final no podremos cambiar
(realmente sí se puede pero es mucho más complicado y requiere más conocimientos
avanzados).
El editor
Si nuestro compilador no trae editor la solución más simple en MS-DOS puede ser usar el edit,
en windows el notepad. Pero no son más que editores sin ninguna otra funcionalidad. Otra
posibilidad es un entorno de desarrollo llamado RHIDE, un programa muy útil que automatiza
muchas de las tareas del programador (del estilo del Turbo C y Turbo Pascal). Si queremos una
herramienta muy avanzada podemos usar Emacs, que es un editor muy potente, aunque para
algunos puede parecer muy complicado (valientes y a por ello). Estos dos programas están
disponibles tanto en Linux como en MS-DOS.
BORLAND
En este compilador los archivos de cabecera deben estar ubicados en la misma unidad lógica y
directorio, su ventaja es compilar mucho más rápido C++. TURBO C ++ 3.0 de BORLAND y
el IDE TURBO C++ ofrece toda cosa que usted necesita para escribir, editar, compilar,
vincular, correr, manejar y depurar sus programas. En la actualidad se dispone de una versión
llamada BCW 5.0( Borland C for Windows) que presenta un ambiente más amigable a las
mencionadas.
Su primera versión es de 1987, a la que siguieron las versiones 1.5 y 2.0 de 1989; fue el
compilador más popular para desarrollar en C en entornos MS-DOS. Se le considera el primer
IDE para C disponible para dicha plataforma.
Sustituido por el Turbo C++ en 1990
Este lo fue a su vez por el Borland C++, disponible también para Windows. Tras el Borland C+
+ llegó el C++ Builder, etc.
Tanto el Turbo C 2.0 como el Turbo C++ 1.0 pueden conseguirse gratuitamente en la web de
Borland desde el año 2000
Instalación del compilador
1. Descomprime el archivo en la ruta: C: TC
2. Ejecuta el programa: INSTALL.EXE, y, nos aparece una ventana, debemos pulsar Intro para
continuar. Entonces nos aparecerá otra ventana.
3. Ahora debemos escribir la letra de la unidad donde se encuentran los archivos de instalación.
Si éstos se encuentran en la unidad C, pulsaremos la tecla C y después Intro:
4. A continuación se muestra otra ventana en la que aparece por defecto el directorio donde se
encuentran los archivos de instalación. Lo normal será que
Aquí simplemente pulsemos Intro para continuar.
5. La siguiente ventana nos indica en primer lugar el directorio donde se instalará Turbo C++,
que siguiendo el ejemplo será: C: TC Con los cursores nos
Desplazamos hasta la opción Start Installation y pulsamos Intro, qué iniciará la instalación.
6. Mientras se instala, en la parte inferior de la ventana aparecerán los ficheros que se están
copiando, como se muestra en la siguiente figura:
7. Una vez se hayan copiado todos los archivos, saldrá una un cuadro (como el que se muestra
bajo este párrafo) que nos informa de los últimos pasos de la instalación. Pulsamos Intro para
continuar.
8. Tras pulsar Intro nos aparece el contenido del fichero “léeme” de Turbo C++:
9. Para finalizar pulsamos Escape.
La instalación ha concluido.
Según los pasos realizados en este ejemplo de instalación, el programa Turbo
C++ es TC.EXE y se encuentra en C:\TC\BIN
Ustedes pueden darse cuenta que cuando dos personas no conocen un mismo idioma no se
pueden comunicar correctamente, sin embargo eso no quiere decir que dos personas que no
hablan el mismo idioma no se puedan entender, ¿verdad?. Entonces buscan algo (lenguaje
alternativo o artificial) que los dos pudiesen comprender. A ese alguien nosotros le llamamos
traductor o intérprete y sirve como intermediario en la comunicación entre dos o más personas
que no conocen el mismo lenguaje.
Algoritmo: Son un conjunto de pasos que sí se Código fuente: Es cualquier escrito que se
siguen correctamente resuelven un determinado hace en base a ciertas reglas (sintaxis) de un
problema. determinado lenguaje de programación.
extensión JPG significaría que dicho archivo Consola: En los años 70' existían lo que se
almacena una imagen y sí la extensión fuera llamaban consolas. Estas eran las pantallas
EXE eso significaría que dicho archivo oscuras que aparecían al arrancar el ordenador.
almacena instrucciones para el ordenador.
GUI: Es el acrónimo de Graphic User Interface
Archivo fuente: Es aquel archivo que contiene (Interfaz Gráfica de Usuario). La GUI se
el código fuente. compone de botones, barras de deslizamiento,
menus, etc.
Para crear el programa ejecutable primero deberemos crear un archivo en donde almacenar el
código fuente. Felizmente Borland C++ cuenta con su propio editor. Para utilizarlo hacemos
click en el menú File. Al hacer esto aparecerá un submenú. Nosotros seleccionaremos con el
mouse el submenú New. Luego aparecerá otro submenú. Nosotros seleccionaremos con el
mouse el submenú Text Edit y haremos click en él, tal como se muestra en Imagen 3. Los
pasos descritos anteriormente se ven en la imagen de abajo.
Imagen 4: Se muestra una acción (hacer click en Text Edit) con el mouse
Una vez ejecutados los pasos de arriba se creará un archivo con un nombre (NONAME00)
temporal. En este archivo nosotros almacenaremos nuestro código fuente. En Imagen 5
observamos el código fuente ya pegado en el archivo recientemente creado con nuestros pasos
anteriores.
Ahora sería bueno guardar el archivo fuente. Para hacer esto hacemos click en el menú File.
Luego sombreamos con el mouse la opción Save y hacemos click en él. Al hacer esto nos
aparecerá la ventana de guardado. Nosotros escribiremos Programa 1 y presionaremos la tecla
Enter. También pudimos presionar la combinación de teclas Ctrl + K + S para hacer que
apareciese la ventana de guardado y escribir directamente el nombre del archivo. En Imagen 6
se observa el cambio reflejado en el nombre del archivo fuente.
Imagen 6
Ahora compilaremos el código fuente. Para hacer esto presionamos la tecla combinación de
teclas ALT + F9. Sí el compilador no encontró ningún problema a la hora de compilar el código
fuente entonces se creará el programa ejecutable. Este programa tiene una extensión EXE. Para
ejecutar el programa solo necesitamos ubicarlo y hacer click en él. Al proceso de buscarlo y
luego ejecutarlo se llama enlazado. Sin embargo estos tres procesos lo podríamos haber hecho
presionando el botón Run o también presionando la combinación de teclas: Ctrl + F9. En
Imagen 7 se observa el programa ejecutable
Programa 2
Desarrollar un programa que muestre un mensaje en pantalla y espere hasta terminar de leerlo.
El mensaje es del gusto del usuario.
//Todo lo escrito detrás de las dos barras seránEn él código fuente se ve el uso de comentarios
ignoradas de una y de varias líneas. Se incluye la
bibioteca conio por que dentro de ella se
/*El compilador ignora los comentarios. encuentra la rutina getch. Sí no se usaría esta
bibioteca no podríamos usar la función getch.
Recuerde: Los comentarios pueden ir en La bibioteca iostream contiene al objeto cout.
cualquier Se ve a la función principal main. El símbolo
{ y } indica el inicio y el fin respectivamente
parte del código.*/ del cuerpo de main. Todo tiene un inicio y un
fin. Por qué pensó que un programa no!. Debe
#include<conio.h> //Se incluye (include) la recordar que toda función tiene un cuerpo.
biblioteca conio Luego se observa una instrucción. La
instrucción a la que nos referimos es:
cout<<"Todo lo..."; Las instrucciones se
#include<iostream.h> //Se incluye la biblioteca
reconocen fácilmente por que terminan siempre
iostream
en ; Cout es un objeto de la librería de clases
iostream. Este objeto abre un flujo de datos que
void main() //FUNCION PRINCIPAL conecta la pantalla con el programa. El símbolo
<< llamado operador de inserción se encarga de
{ insertar lo captado en el teclado. La función
getch() esperará siempre mientras no se pulse
cout<<"Todo lo que se escribe dentro de las una tecla.
comillas"<<endl;
cout<<endl;
Para tener el programa ejecutable tenemos que compilar. Para esto presionamos la combinación
de teclas: ALT + F9 o sino hacemos click en el menú Project y hacemos click en la pestaña
Compile. De las dos maneras no sale una ventana como la de abajo:
Imagen 8
"Status" y "Success" significan "Estado" y "Exitoso" respectivamente. Lo que esto quiere decir
es que el compilador no encontró ningún tipo de error en el archivo fuente.
En segunda instancia nos muestra el tiempo que demoró el compilador en interpretar, verificar
la sintaxis, generar el código objeto y por último generar el programa ejecutable (exe).
Como podemos darnos cuenta el tiempo que tardó (Elapsed Time) el procesador en compilar el
código fuente es muy pequeño, para ser exactos tardó 20 milésimas (20/1000) de segundos. Este
tiempo puede ser diferente para ustedes y depende de la velocidad del procesador que tengamos
en nuestra PC.
Y por último nos muestra las líneas totales del código fuente, los avisos y él número de errores
encontrados en el archivo fuente.
Esta ventana será mostrada cada vez que compilemos nuestro código fuente.
Imagen 9
En el proceso de compilación como ya sabemos se verifica más que nada la sintaxis del código
fuente. Sí el compilador no encuentrase error alguno entonces se genera el archivo objeto que es
quien almacena las instrucciones generadas al compilar el código fuente. El código objeto será
utilizado para general el programa ejecutable. Este programa ejecutable es autónomo pues tiene
todo lo necesario para poder ejecutarse y cargarse en la memoria.
Sentencias o instrucciones
En Borland C++ las sentencias o instrucciones se caracterizan por que siempre terminan con el
símbolo ; Una instrucción o sentencia es una orden o actividad que el procesador deberá
realizar. Esta instrucción se cargará en la memoria.
Errores Avisos
Borland C++ no generará el programa Los avisos no son tan graves como para no
ejecutable (aplicación) sí encuentra errores el generar la aplicación. Sin embargo es bueno
código fuente. Y sí lo crease es de su supones prestarle atención a los mismos.
que dicha aplicación es inservible. Hay muchos
tipos de errores que podremos cometer al
desarrollar nuestro programa.
Error de compilación, este error se produce por lo común cuando se cometen errores en la
sintaxis.
Error de ejecución, estos errores se producen por las instrucciones que la computadora puede
comprender pero no ejecutar. Ejemplo: divisiones por cero, raíz par de un número negativo, etc.
Error de lógica, estos errores son cometidos en su mayoría por programadores indisciplinados.
Estos errores son los más dífiles de detectar. Estos errores se detectan en los resultados de
exploración del programa o sea que los resultados que se obtienen no concuerdan con la
práctica. Por ejemplo: si sumamos 3 y 6 el resultado es 9 pero el programa dice que es 27.
Entonces el programa muestra un resultado incorrecto.
Nota: Hay más tipos de errores que aquí no se muestran y que usted ya los verá.
Borland C++ nos provee de varias herramientas de corrección (debug) que nos permitirán
seguirle la pista a los errores que podamos cometer. Sin embargo no debemos esperanzarnos
mucho en ellos pues no nos dan el lugar exacto del error. En lo único que confiaremos será en
nuestra capacidad de observación y nuestra experiencia. Debe saber que la depuración de un
programa es un trabajo muy serio.
Programa 5
#include<iostream.h> #include<iostream.h>
#include<conio.h> #include<conio.h>
{ {
cout<<"Borland C++ tiene muchas libertades"; cout<<"Borland C++ tiene muchas libertades";
Imagen 10
En la primera parte de la ventana apararece: Status: Failure, lo que quiere decir que ha fallado al
tratar de crear la aplicación. En la última parte se lee: Errors: 1, lo que quiere decir que hay un
error en el código. Cuando se compila y se encuentra errores en el código hace su aparición
explícita una ventana llamada Message como la imagen de abajo:
Imagen 11
En la imagen el signo de admiración en rojo (!) muestra el error. En este caso el nombre del
error dice que es: Statement missing; = Declaración desaparecida; Esto quiere decir que en
algún lugar de nuestro código no hay él; que simboliza la finalización de una instrucción.
Aunque en la ventana Message solo se muestra un error usted sabe que hay un error más.
Además de los errores que pueda mostrar esta ventana también muestra los warnings o avisos.
En nuestro caso se mesra el aviso: Parameter 'a' is never used = El parámetro 'a' no es usado en
ningún momento. Esto nos quiere decir que el haber declarado la variable 'a' ha sido inútil. Para
solucionar esto, simplemente se elimina la declaración de dicha variable. Una vez corregido los
errores y avisos esta ventana se muestra así:
Imagen 12
1. Archivos de cabecera o bibliotecas: contiene funciones para llevar a cabo las tareas, es
aquí donde se diferencian los compiladores pues no todos tienen las mismas funciones
ni librerías. Pueden ser creadas por el programador. Para hacer su llamado o invocación
de utiliza la palabra o comando #include, el nombre de la biblioteca debe ir dentro de “
“ o < > dependiendo del directorio donde se ubican. Algunos autores las llaman
también directivas del preprocesador. Entre estas bibliotecas más utilizadas tenemos
stdio.h, conio.h, math.h.
2. Función principal: se las denomina también prototipo de funciones. La función
principal es main () que puede generalmente acompañada de otras instrucciones como
void e int.
Para poder crear un programa en O, es necesario que haya una función especial
definida. Esta función se llama main y es el punto de entrada o inicio de ejecución del
programa, es decir, es el lugar por donde va a empezar la ejecución de nuestro
programa. La declaración más sencilla es la siguiente:
void main ( )
{
Sentencia 1;
Sentencia 2;
}
Entonces el programa va a comenzar la ejecución con la sentencia1, luego la sentencia2,
y así sucesivamente. En el caso en que no se defina una función con el nombre de main,
el compilador de O que estemos usando, no nos va a permitir crear el programa
ejecutable, y nos lo informará con un error del estilo: “Error: undefined reference to
‘main”.
3. Función secundaria: no está presente en todos los programas su finalidad es generar
procesos repetitivos que pueden llamarse en el momento que el programador desee con
la simple invocación de su nombre evitando el volver a programar las mismas líneas.
4. Declaración de variables globales. Como se dijo con anterioridad almacenan
información y pueden ser de varios tipos:
int: permite almacenar datos numéricos enteros cuyo valor va entre el rango de -32768
y 32767.
float: guarda valores flotantes es decir con decimales, el rango que almacena es 3.4 x
10-38 y -3.4 x 10 -38.
double: de mayor capacidad a la anterior y con manejo de números exponenciales. Su
capacidad va de -1.7 x 10-38 y 1.7 x 1038.
char: maneja tipos caracteres y tienen un rango de -128 a 127. Utilizando este tipo se
puede manejar las cadenas de caracteres o strings que funcionan como los vectores de
otros lenguajes de programación.
bolean: presenta o almacena valores que solo corresponden a 0 o 1.
void: cuando no se desea devolver un valor su tamaño es de cero.
Podemos cambiar su valor utilizando los siguientes miodificadores: signed (con signo),
unsigned (sin signo), short (valor corto) y long (valor largo).
Es necesario mencionar que existen otro tipo de variables más complejas como los ya
mencionados vectores y las matrices que no serán tratadas ahora.
Evite como nombre de variable los siguientes por ser palabras reservadas en C++ Las palabras
reservadas más comunes del lenguaje son:
asm, auto, bool, break, case, char, class, class, const, continue, default, delete, do, double,
else, enum, explicit, extern, for, friend, goto, if, inline, int, long, mutable, namespace, new,
operador, private, public, register, return, short, signed, sizeof, static, struct, switch,
template, this, throw, typedef, union, unsigned, virtual, void, volatile, while.
Tipos de datos
Ya anteriormente hemos explicado lo que es una variable. Hemos explicado también como
difinir una variable. Ahora vamos a preguntarnos por la naturaleza del valor almacenado en
dicha variable. En efecto, podríamos desear definir una variable en donde guardar solo números
enteros, solo letras, etc, esto es; el tipo de dato que la variable almacena. Los tipos de datos que
Borland C++ reconoce se muestran a continuación en 2 tablas.
5. Sentencias: son las líneas de programación donde se utilizan las funciones para realizar
las operaciones.
En el siguiente programa aparecen las sentencias que permite el ingreso de datos por teclado
scanf y printf que mencionamos anteriormente; ahora aprendamos algo más sobre ellas y la
manera de utilizarlas.
En el caso de printf su sintaxis es sencilla: primero escribimos esta palabra reservada luego a
continuación ubicamos un paréntesis las comillas y el mensaje que deseamos presentar.
Entonces generalizando tendríamos así:
printf(“ mensaje”);
Esto puede variar un poco si se desea presentar también resultados alojados en una variable en
cuyo caso es necesario utilizar los modificadores %i para enteros, %f para reales, %e para los
llamados double que no son otra cosa que reales de gran tamaño y que requieren por lo tanto de
exponenciales, %s para varios caracteres o %c si es solo uno; %b para valores boleanos de cero
o uno, entre los más utilizados. También para mejorar su presentación se utiliza los
modificadores de línea entre ellos tenemos:
Estos caracteres unidos a sentencias principalmente printf ayudan a controlar la ubicación del
cursor en forma básica
\n Salto a línea nueva
\t Tabulador
\b Retroceder un carácter
\r Retorno de carro al inicio de línea
\f Salto de página
\‘Para escribir comilla simple
\“Para escribir comillas dentro del formato
Para utilizar scanf se debe tener en cuenta el tipo de dato que ingresa a la variable y utilizar el
modificador correspondiente, pero también es necesario ubicar el puntero y el nombre de la
variable, por lo que su sintaxis general será:
scanf(“%tipo”,&nombre de variable);
CONSTANTES
Las constantes son aquellos datos que no pueden cambiar a lo largo de la ejecución de un
programa.
#include <stdio.h>
void main()
{
int radio, perimetro;
radio = 20;
perimetro = 2 * 3.1416 * radio;
Supongamos que tenemos que hacer un programa en el que haya que escribir unas cuantas veces
3.1416 (que es PI). Es muy fácil que nos confundamos alguna vez al teclearlo y al compilar el
programa no tendremos ningún error, sin embargo el programa no dará resultados correctos.
Para evitar esto usamos las constantes con nombre. Al definir una constante con nombre
estamos dando un nombre al valor, a 3.1416 le llamamos PI.
El ejemplo ya codificado es :
#include <stdio.h>
#define PI 3.1416
void main()
{
int radio, perimetro;
radio = 20;
perimetro = 20 * PI * radio;
void main()
{
...
scanf( "%i", CONSTANTE );
...
}
eso sería como hacer:
scanf( "%i", 14 );
Esto es muy grave, estamos diciendo que el valor que escribamos en scanf se almacene en la
posición 14 de la memoria, lo que puede bloquear el ordenador.
Las constantes se suelen escribir en mayúsculas sólo se puede definir una constante por fila. No
se pone ";" al final.
Las constantes nos proporcionan una mejor comprensión del código fuente. Mira el siguiente
programa:
#include <stdio.h>
void main()
{
int precio;
#include <stdio.h>
#define CAJAS 4
#define UNIDADES_POR_CAJA 25
#define PRECIO_POR_UNIDAD 100
#define IMPUESTOS 1.16
void main()
{
int precio;
precio = ( CAJAS * UNIDADES_POR_CAJA * PRECIO_POR_UNIDAD ) *
( IMPUESTOS );
#include <stdio.h>
#define CAJAS 4
#define UNIDADES_POR_CAJA 25
#define PRECIO_POR_UNIDAD 100
#define PRECIO_POR_CAJA UNIDADES_POR_CAJA *
PRECIO_POR_UNIDAD
#define IMPUESTOS 1.16
void main()
{
int precio;
#define tiene más usos aparte de éste, pero no los abordaremos ahora.
Para evitar la confusión o dificultad que pueden presentar el trabajar con la clausula #define, es
posible también trabajar de la siguiente forma, primero defino la variable y el tipo al que
corresponde y a continuación se puede ubicar el calor dentro de la variable.
#include<stdio.h>
#include<conio.h>
void main()
{
float C,pi,r;
pi=3.1416;
printf("PROGRAMA QUE CALCULA EL RADIO DE UN CIRCULO\n");
printf("INGRESE EL RADIO:");
scanf("%f",&r);
C=r*pi;
printf("Círculo=%f",C);
getch();
}
TIPOS DE VARIABLES
Existen 4 tipos básicos: int, float, bool y char. Podíamos definir funciones que recibieran o
devolvieran valores de dichos tipos, y además podíamos definir otros tipos a partir de ellos.
Es un costumbre muy arraigada entre los programadores de utilizar constantes enteras para
representar valores booleanos.
Esta Convención nos define que el valor O (cero) es equivalente a False y cualquier otro
número (generalmente —1) representa True.
La forma correcta de definir una variable es escribirla antes de iniciar sentencias de
programación de forma que se convierta en variables locales, es decir que pueden funcionar
durante todo el programa y no solamente en una parte del, como en el caso de las variables
llamadas globales. El siguiente ejemplo aclara como definir una variable de tipo entero llamada
sum:
<bibliotecas.h>
void main ()
{
int sum;
Sentencias;
.
}
Es posible declarar varias variables del mismo tipo por ejemplo si fueran flotantes y cada una se
llama x, y; se escribiría así:
int x, y;
Entre dos valores de tipos int y float podemos realizar las operaciones aritméticas + - * % (resto
de la división entera) / (división).
Además, podemos comparar dos valores, obteniendo una expresión booleana (su resultado será
un número distinto de O, según la expresión sea falsa o verdadera, respectivamente):
Dos valores booleanos o expresiones lógicas, se pueden combinar con los operadores lógicos:
&& (And, “y” lógico)
|| (or, “o” lógico).
Expresamos la negación, además, con el signo de exclamación:
! (Not)
%c %c un carácter
%d %d número entero
%u %u número entero sin signo
%x %x entero sin signo en base hexadecimal
%o %o número sin signo en base octal
%f %f número real con signo
%e %e en notación científica en e
%s %s cadena de caracteres
%% %% Para editar el símbolo %
Secuencias de escape
Las secuencias de escape son órdenes que serán interpretados por la pantalla, archivo o una
impresora de alguna manera. Esas secuencias no vienen más que hacer símbolos. En Borland
C++ todas las secuencias empieza con la barra invertida \.
EJERCICIOS PROPUESTOS
Es el que nos permite tomar decisiones funciona igual que las condiciones que trabajamos
durante los flujogramas y seudocódigos. El if siempre estará compuesto por la condición y la
primera decisión que tomará el computador corresponde a la salida por verdadero luego si la
condición no se cumple ejecuta la opción de falso (else).
Su sintaxis es:
if (condición)
{
Sentencias;
}
else
{
Sentencias;
}
Las llaves pueden ser omitidas si sólo vamos a ubicar una línea de programación de lo contrario
es obligación ponerlas.
Al igual que observamos en los flujogramas existen casos en los cuales la salida por falso
conducen al final del programa o a continuar con otros procesos, en cuyo caso se omitirá en la
programación al if teniendo algo así:
if (condición)
{
Sentencias;
}
Sentencias;
Pero también recordemos el caso de varias condiciones o preguntas para realizar procesos so
tomar decisiones en este caso la sintaxis adecuada será:
if (condición)
{
Grupo de Sentencias 1;
}
else if
{
Grupo de Sentencias 2;
}
else if
{
Grupo de Sentencias 3;
}
Crear un programa que permita ingresar una nota; si es mayor o igual 14 desplegar
“reprobado”, caso contrario “aprobado.
int N;
printf (“ingrese la nota”);
scanf (“%i”, &N);
if (N <= 14)
{
printf (“Reprobado”);
}
else
{
printf (“Aprobado”);
}
}
Crear un programa que permita la suma o resta de dos números ingresados por teclado.
Escribir un programa que ingrese dos números a continuación desplegar los números
ingresados y el mayor seguidos por las palabras “es mayor”; si los números son iguales
que imprima el mensaje “estos números son iguales”. Utilizar el operador condicional
#include<stdio.h>
#include<conio.h>
void main()
{
int a,b;
printf ("PROGRAMA QUE DETERMINA EL MAYOR DE DOS NUMEROS\n\n");
printf ("Introduce primer número:");
scanf ("%i",&a);
printf ("\nIntroduce segundo número:");
scanf ("%i",&b);
if (a==b)
printf("\n\nSon iguales");
else
if(a>b)
printf("\n\nEl mayor es:%i",a);
else printf("\n\nEl mayor es:%i",b);
}
getch();
}
Escribir un programa que lea un entero, determine e imprima si es par. Un número par
es un múltiplo de 2 y cualquier múltiplo de 2 tiene un residuo de cero al ser dividido entre
dos.
#include<stdio.h>
#include<conio.h>
void main()
{
int a, p;
printf("\t\tPROGRAMA QUE VERIFICA SI UN NUMERO ES PAR O IMPAR\n\n\n");
printf("Ingresa el primer número:");
scanf("%i",&a);
p=a%2;
printf("\n\n\nEl resultado del residuo es:%i\n",p);
if (p==0)
printf("es PAR");
else
printf("no es PAR");
}
ACTIVIDADES.
1. En los ejercicios anteriores construya el flujograma y el pseudocódigo correspondiente.
2. Elabore un organizador gráfico para explicar la instrucción IF
3. Qué valor se le asigna a la variable consumo en la sentencia f siguiente si la:
• Variable velocidad vale 120? ¿Y si velocidad vale 110? Si quiere estar seguro de
• Que su respuesta está bien, codifique el ejemplo con C++.
4. Escribir un programa que lea una nota de un examen por teclado y devuelva la:
Calificación que tiene.
La calificación podrá ser: Insuficiente (0-4.99), Regular (5-6.99), buena (7-8), Muy buena
(8.1-8.9) o sobresaliente (9.0-10); utilizando la sentencia de control if else-if. Mejore el
ejercicio anterior de modo que si el usuario introduce un valor menor
5. Que cero o un valor mayor que 10 se muestre por pantalla un mensaje de error y finalice el
programa.
6. Escribir un programa que lea dos números enteros por teclado y determine cuál es el mayor
y cuál es el menor. También deberá considerar el caso en el que los dos números sean
iguales.
7. Dadas las variables enteras: i = 10, j=5 y k -2, y las variables de tipo carácter c1=’w’ y c2 =
‘?‘. Indique si las siguientes condiciones son ciertas o falsas.
a) (i< 10) && (j==5);
B) (i <= 10) && (j = = 5); e)! (k>3);
d) (k!=3) (el ==
e) (el == 119) && (c2==’?’);
f) ((i>10) lI (k<=0)) && ((c1 ==‘w’) && (c2==63))
g) ((i>9) && (k<=-1)) && ((c1==’t’) (c2==63))
h) ((i>9) && (k<=-1)) && (c1==’t’) H (c2==65)
I) (k==-2) ll (i>20) (j! =5) (c1 == ‘w’) ll (c2 ==63)
j) ((k +j) = = 3) && ((i + -2) = 17)
SWITCH
El formato de la sentencia switch es:
switch (variable)
{
case opción 1:
Código a ejecutar si la variable tiene el
Valor de la opción 2
break
default:
Código que se ejecuta si la variable tiene
Un valor distinto a los anteriores
break;
Vamos a ver cómo funciona. La sentencia switch sirve para elegir una opción entre varias
disponibles. Aquí no tenemos una condición que se debe cumplir sino el valor de una variable.
Dependiendo del valor se cumplirá un caso u otro.
Vamos a ver un ejemplo dé múltiples casos con if-else y luego con switch:
#include<stdio.h>
int main ()
{
int num;
printf (“introduce un número”);
scanf (“%i”, &num);
switch (num)
{
case 1:
printf (“es un 1\n”);
break,
case 2 :
printf (“es un 2\n”)
break;
case 3:
printf ( “es un 3\n”);
break;
default:
printf (“no es ni 1, ni 2, ni 3\n”);
}
}
Como vemos el código con switch es más cómodo de leer. Sin embargo switch tiene algunas
limitaciones, por ejemplo no podemos usar condiciones en los case.
ACTIVIDADES
1. Corregirlos errores del siguiente código.
#include <stdio.h>
void main ()
{
int num;
printf (“introduce un número”);
scanf ( “%i”, &num); switch núm.);
case 1:
printf ( “es un 1\n” );
çase 2:
printf (“es un 2\n”);
break;
default:
printf ( no es ni 1 ni 2, ni 3\n” );
}
}
2. ¿Qué resultado se obtiene si no se corrige el error y porqué?
La sentencia goto (ir a) nos permite hacer un salto a la parte del programa que deseemos; está
presente en C y C++ y no en sus versiones anteriores, es otra instrucción conocida como palabra
reservada. En el programa podemos poner etiquetas, estas etiquetas no se ejecutan. Es como
poner un nombre a una parte del programa. Estas etiquetas son las que nos sirven para indicar a
la sentencia goto dónde tiene que saltar.
# ínclude <stdio.h>
void main ()
{
printf (“línea 1\n);
Como vemos no se ejecuta el printf de Línea 2 porque nos lo hemos saltado con el goto.
El goto sólo se puede usar dentro de funciones, y no se puede saltar desde una función a otra,
(las funciones las estudiamos más adelante).
Existe una gran discusión entre los programadores sobre la conveniencia o no de utilizar esta
sentencia, muchas voces a favor o en contra, pero algo si es claro, en lo posible no se debe
abusar de la utilización de esta instrucción para evitar confusiones.
ACTIVIDADES
1. Construya un programa original que permita utilizar la sentencia goto y su flujograma.
2. ¿En visual C++ esta instrucción existe todavía? Justifique su respuesta
FOR
Esta instrucción facilita muchas tareas cuando conocemos con exactitud cuántas veces se desea
ejecutar un proceso, puesto que basta con definir el inicio, el final y el incremento o
disminución de un contador. Pero esta ventaja también lo imposibilita para resolver casos donde
se requiere ejecutar un proceso de manera indefinida previamente.
Escribir un programa que calcule los cuadrados y los cubos de los números del1 al 10,
utilizando tabuladores para imprimir la siguiente tabla de valores.
#include<stdio.h>
#include<conio.h>
void main()
{
int a,b,c,d;
clrscr();
gotoxy(15,3); textcolor(14); cprintf(" TABLA DE VALORES CUADRADO, CUBO ");
gotoxy(5,5); textcolor(15); cprintf("NUMERO");
gotoxy(19,5); textcolor(15); cprintf("CUADRADO");
gotoxy(35,5); textcolor(15); cprintf("CUBO");
gotoxy(23,7+a);
for (a=1;a<=10;a++)
{
gotoxy(8,7+a); printf("%i",a);
}
for (a=1;a<=10;a++)
{
gotoxy(23,7+a);
b=a*a;
printf("%i",b);
}
for (a=1;a<=10;a++)
{
gotoxy(36,7+a);
d=a*a*a;
printf("%i",d);
}
getch();
}
Esta programación pudo haberse realizado más sencilla de la siguiente manera:
#include<stdio.h>
#include<conio.h>
void main()
{
clrscr ();
float cubo, i, cuadrado;
printf(“CUADRADOS Y CUBOS DE LOS PRIMEROS 100 NUMEROS”);
for (i=1;i<=100;i++)
{
Cuadrado= j*j;
Cubo=i*i*i;
printf (”\n\n ES: %.Of %.Of”, cuadrado, cubo);
}
getch (),
}
Aprovechando el ejemplo recuerde que la instrucción \n le permite saltar una línea y %.Of nos
presenta el número flotante con cero decimales.
#include<stdio.h>
#include<conio.h>
void main()
{
float m,n,o,p,r;
clrscr();
gotoxy(26,5);
printf("MEDIA GEOMETRICA");
cprintf("\n\r Ingrese un Número : ");
scanf("%i",&r);
for (m=1;m<=r;m++)
{
cprintf("\n\r %i",m);
} p=m^(1/r);
gotoxy(26,8);
printf(" resultado: %f",p);
getch();
}
#include<stdio.h>
#include<conio.h>
void main ()
{
clrscr ();
int nota 1;
for (1= 1; l<= 40; i++)
{
printf (“DIGITE NOTA”);
scanf (”%i’, ¬a);
if (nota19||nota==20)
{
printf(“SOBRESALIENTE’);
}
if(notal 6llnota==17||nota==1 8)
{
printf(“MUY BUENA”);
}
if (nota==15||nota==14){ printf(”BUENA”);
}
if(nota<=11 )
{
printf (”INSUFICIENTE’);
}
}
getch ();
}
3.- Calcular e imprimir el factorial de un número N, dado a través del teclado diseñar el
programa en c++
#i include <conio. h>
#include<stdio.h>
#include<math.h>
void main ()
{
clrscr ();
Int num, i;
float p;
printf(“DIGITE UN NUMERO”);
scanf(”%i”, &num);
if (num>=O)
{
p=1;
for (i1 ;i<num; i++)
{
p=p*j;
}
printf (”EL FACTORIAL DEL NUMERO DIGITADO ES: %.Of”, p);
}
else
{
printf (”NO EXISTE FACTORIAL DEL NUMERO DIGITADO”);
}
getch ();
}
En este último ejemplo mire atentamente como usted puede reemplazar el valor de inicio o final
por otra variable pero siempre y cuando esta haya sido primero determinada su cantidad.
Existen dos posibles sentencias que usted podría utilizar dependiendo en qué lugar se desea
realizar la pregunta al inicio (en caso de WHILE), o al final (DO WHILE).
Son sentencias de repetición pero al contrario del for estás se ejecutarán un número indefinido
de veces hasta que su condición deje de cumplirse.
Do while permite ejecutar la instrucción y luego comprobar que la condición esté cumpliéndose.
Su formato es
do {
Sentencias
}
while ( condición)
La función while ejecuta los procesos pero antes se cerciora que la condición se esté
cumpliendo, su sintaxis es:
while (condición)
{
Sentencias
}
Este tipo de instrucción se utiliza principalmente cuando se desconoce el número de
repeticiones que se deben ejecutar o si se requiere utilizar una contraseña para seguridad.
Mencionaremos los siguientes ejemplos:
1.- Se introduce a través del teclado un número entero en la variable cifra, elaborar el
algoritmo para imprimir el número en forma invertida
Ejemplo:
El número 8351, debe imprimir 1538. Diseñar el algoritmo y lenguaje c++ respectivo
#include<stdio.h>
#include<conio.h>
void main ()
{
clrscr ();
int cifra, num, r;
printf (”DIGITE EL DATO”);
Ingresar por teclado los siguientes datos horas, colas, cerveza, tabacos, hamburguesas,
hotdog esto se realizará las veces que el usuario crea al momento que ya no desea ingresar
desplegar por pantalla la caja diaria para esto tendremos los siguientes datos: * cada hora
=1.50, * cada cola=0.60, * una cerveza=0.70, * cada tabaco= 0.10, * cada
hamburguesa=1.20 y * cada hotdog=0.90.
codificación
#include<stdio.h>
#include<conio.h>
void main()
{
int h,co,ce,ha,ho,t;
float th,tc,tco,tha,tho,tt,tf,tce;
char c;
do
{
clrscr();
gotoxy(3,5);printf("BILLAR BOLA 8");
gotoxy(3,6);printf("horas: ");scanf("%d",&h );
th=h*1.50;
gotoxy(17,6);printf("%.2f",th);
gotoxy(3,7);printf("colas: ");scanf("%d",&co );
tco=co*0.60;
gotoxy(17,7);printf("%.2f",tco);
gotoxy(3,8);printf("cerveza: ");scanf("%d",&ce );
tce=ce*0.70;
gotoxy(17,8);printf("%.2f",tce);
gotoxy(3,9);printf("tabacos: ");scanf("%d",&t );
tt=t*0.10;
gotoxy(17,9);printf("%.2f",tt);
gotoxy(3,10);printf("hamburgesas: ");scanf("%d",&ha );
tha=ha*1.20;
gotoxy(17,10);printf("%.2f",tha);
gotoxy(3,11);printf("hot dog: ");scanf("%d",&ho );
tho=ho*0.90;
gotoxy(17,11);printf("%.2f",tho);
tc=th+tco+tce+tt+tha+tho;
gotoxy(3,13);printf("total compra: %.2f",tc);
tf=tf+tc;
do
{
gotoxy(17,15);printf(" ");
gotoxy(3,15);printf("continuar s/n");
gotoxy(17,15);scanf("%s",&c);
}while(c!='s'&& c!='n');
}while(c=='s'|| c=='S');
gotoxy(3,17);printf("total caja: %.2f",tf);
getch();
}
BIBLIOGRAFIA Y NETGRAFÍA
• Ñacato, José. Como elaborar algoritmos para computadoras. Ea. Desarrollo Escolar. 2004.
Quito, Ecuador
• Ayuda del programa BORLAND C++
• Joyanes, Luis. C++ a su alcance. Mc. Graw Hill. 1997. Bogotá, Colombia.
• Granizo, Evelio. Lenguaje C. Editorial ESPE. 1999. Quito, Ecuador.
• Ñacato, José. Programación en C++ y Java. Ed. Desarrollo Escolar. 2004. Quito, Ecuador
• Gregory, Kate. Edición Especial Visual C++ 6. Ed. Prentide Hall. 1998. Madrid, España
• Data Becker & Co. El gran, libro de Visual C++. Ed. Marcombo. 1997. Barcelona., España
• Perry, Grez. Aprendiendo Visual Basic 6. Ed. Hispanoamericana. 1999. México, México
• http://www.ipn.edu.mx/sitiosinteres/sanlovdra1micro2.htm
• cursoc@elrincondelc.com
• www.wikipedia.com
Contenido
INTRODUCCCIÓN..........................................................................................................2
INFORMÁTICA...............................................................................................................4
UNIDADES DE MEDIDA DE PROCESAMIENTO DE INFORMACION...................4
PARTES DEL COMPUTADOR......................................................................................7
El TECLADO....................................................................................................................7
EL MOUSE.......................................................................................................................8
ESCANER.........................................................................................................................9
LÁPIZ ÓPTICO..............................................................................................................10
MODEM..........................................................................................................................10
EL CASE Y SUS COMPONENTES..............................................................................12
UNIDAD CENTRAL DE PROCESOS..........................................................................12
TIPOS DE MICROPROCESADORES Y RESEÑA HISTORICA................................14
PROCESADORES PENTIUM.......................................................................................14
Willamette...............................................................................................................17
Extreme Edition o Edición Extrema........................................................................18
Prescott....................................................................................................................18
Tejas y Jayhawk......................................................................................................19
Doble Procesador.....................................................................................................19
DOBLE PROCESADOR................................................................................................19
MEMORIAS....................................................................................................................21
MEMORIA AUXILIARES............................................................................................24
BUSES.............................................................................................................................27
DISPOSITIVOS DE SALIDA........................................................................................30
ALGORITMOS...............................................................................................................36
FLUJOGRAMAS............................................................................................................40
SÍMBOLOGIA DE LOS FLUJOGRAMAS...................................................................41
PSEUDOCODIGO..........................................................................................................42
CONDICIONES (IF).......................................................................................................50
CONTADOR AUTOMATICO.......................................................................................53
LAZOS DE REPETICIÓN INDEFINIDOS (DO WHILE Y WHILE)..........................63
HISTORIA Y DIFERENCIA ENTRE C Y C++............................................................66
INSTALACIÓN DEL COMPILADOR DE C................................................................67
Estructura de un programa......................................................................................69
Comentarios y documentación en Borland C++.....................................................72
Errores y avisos en el código de un programa........................................................76
ESTRUCTURA GENERAL DE UN PROGRAMA C ++.............................................79
CONSTANTES...........................................................................................................82
Constantes con nombre................................................................................................83
EJERCICIOS PROPUESTOS.................................................................................86
SENTENCIAS DE SELECCIÓN Y REPETICIÓN EN C++.........................................87
.........................................................................................................................................88
SWITCH..........................................................................................................................91
SENTENCIAS DE SALTO GOTO................................................................................92
FOR.................................................................................................................................94
SENTENCIAS DE REPETICIÓN INDEFINIDAS........................................................97
BIBLIOGRAFIA Y NETGRAFÍA...............................................................................100