Introducción a la Programación

FACULTAD DE FILOSOFÍA, LETRAS Y CIENCIAS DE LA EDUCACIÓN Escuela de Ciencias Exactas Informática

MÓDULO DEL ESTUDIANTE
Quito- Ecuador Nombre: ««««««««««««««««««. 2009-2010 2010-2011 Quito- Ecuador

Lcdo. Omar Pérez

1

La extraordinaria versatilidad en las computadoras en todos los campos de la actividad humana, así como su progresiva miniaturización, han hecho posible el que traspasaran el umbral de grandes cálculos y el uso restringido de un casta de especialistas, los programadores, para convertirse en la herramienta obligada del gran público. 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 cla ro 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. En el capítulo tres se propone la aproximación al lenguaje de programación seleccionado para este semestre C++, que por ser programación estructurada encaja adecuadamente con lo que los prerrequisitos que han sido fortalecidos en la primera unida, aquí se familiariza con el compilador y con las sentencias principales de entrada, salida, procesos, sentencias de decisión, repetición, etc. 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.

Lcdo. O a Pérez

¢

£ £

¤

£ £

In ro u ión l
¢¢

¦ ¥

¡  

rogr m ión

INTRODUCCCIÓN

2

U IDAD I DEFI ICIO ES BÁSICAS

r r r

Mejorar el vocabulario de los estudiantes acerca de términos informáticos más utilizados. Reconocer los principales dispositivos del computador y sus características. Familiarizar con los avances tecnológicos referentes al hardware.

Lcdo. O ar Pérez

© 

  



In ro u ión l
©© § 

¨

rogr m ión

³SABER LEER ES LA CLAVE PARA EL ÉXITO ACADÉMICO EN CUALQUIER NIVEL´

3

Las extraordinarias posibilidades abiertas por las llamadas autopistas de la comunicación y ciberespacio nos acerca rápidamente a la información se dice actualmente que casi todo ³está a un clic nada más´, pero ello también plantea que términos anteriormente considerados como similares en la actualidad su definición deba ser revisada puesto que se han modificado o algunas se asumen como similares sin serlo y
pueden conducirnos a graves errores de comprensión. 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´. La Informática se puede decir es la ciencia encargada del tratamiento ordenado, sistemático y lógico de la información, para ello utiliza mecanismos, dispositivos y sistemas automáticos principalmente, se encarga además de ser una herramienta auxiliar importante para otras ciencias y ramas del conocimiento humano. 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.

UNIDADES DE MEDIDA DE PROCESAMIENTO DE INFORMACION
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:

Lcdo. O ar Pérez  

  



In ro u ión l 
  

rogr m ión

INFORMÁTICA

4

NOMBRE
bit byte Kilobyte Megabyte Gygabyte Terabyte

Ejercicios de transformación de unidades: 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 Podemos generalizar como reglas para las transformaciones de la siguiente manera: 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
= =

Lcdo. O ar Pérez

!

" "

#

" "

In ro u ión l
!! 

rogr m ión

SÍMBOLO
b B KB MB GB TB

VALOR
0, 1 8 bits 1024 B 1024 KB - 1048576 B 1024 MB - 1073741824 B 1024 GB ± 1. 92 x10 12 B

$

5

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
1. Realice una breve investigación sobre la generación de computadores transcurrida hast la a actualidad. 2. Resuelva los siguientes ejercicios de transformaciones y 2500KB a bits y 90000MB a TB y 180 GB a bits y 2000000b a MB 3. Explique ¿por qué razón a pesar de ser kilo mil en el caso de kilobytes tenemos 1024B?.

Lcdo. O ar Pérez

'

( (

)

( (

In ro u ión l
'' %

0

&

rogr m ión

6

Introducción a la Programación

PARTE DEL COMPUTADOR
t se defi e como un dispositi o elect nico compuesto t es partes principales: Cl i unidad de entrada, el C y unidad de salida. Esta máquina ha sufrido cambios importantes desde su aparici n hasta hoy que se conocen como generaciones; existen cinco generaciones proyectándose una sexta conocida como inteligencia artificial que es la capacidad de un computador para aprender y decidir por sí solo. Tengamos en cuenta que se asocia mucho por algunos autores a las generaciones con el tipo de procesador y esto nos pres nta otras e clasificaciones distintas.
9 @9 8 BA HG 7 6 765 43 2 1

Con ellos es posible el ingreso de datos al C ; entre sus principales dispositi os mencionaremos el teclado, mouse, micrófono, lápi óptico, scanner, etc.

El TECLADO
Con este dispositi o podemos darle al microprocesador instrucciones concretas a través de un lenguaje escrito, lo que permite interactuar de mejor manera con el computador. Este es muy parecido al teclado de una máquina de escribir aunque con más teclas. Sobre todo se caracteri a por las teclas SHIFT, CTL y ALT que le permiten prácticamente introducir cualquier información dentro de programas o documentos. 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 8 teclas. Eran conocidos como teclados PC/XT. Este tipo de teclados sólo pueden utili arse en los ordenadores del tipo XT.
C D C 8

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 utili aba 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 1 1 teclas (1 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 F1 ) 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. Después de esta última mejora del estándar, algunos fabricantes variaron el diseño del teclado AT, incorporando calculadoras que duplicaron las teclas de función que eran programables. En la actualidad se han desarrollado nuevos teclados atendiendo principalmente la ergonomía, los llamados multimedia, es así como aparecen nuevas teclas para mejorar su eficiencia al trabajar con WINDOWS o INTERNET; así como se implementan los sensores infrarrojos para poder utilizar teclados inalámbricos. Atendiendo a la ergonomía, es aconsejable que disponga de una amplia zona en la parte anterior, para poder descansar las muñecas. Y hablando de la ergonomía, este es uno de los parámetros que más destaca en un teclado, uno de los ya clásicos ard" de Microsoft. en este aspecto es el "Nat al
Lcdo. Omar Pérez
SR QPI F FE E C

7

8

BA

C

@

UNIDADE Y DISPOSITIVOS DE ENTRADA.

Introducción a la Programación

El teclado se puede dividir en cinco bloques de teclas: Teclas de función: ubicadas en la parte superior y van desde F1 hasta F1 . Teclas alfanuméricas: la unión de letras y números se ubican en la parte central. Teclas especiales o de sistema: son teclas que son propias de cada sistema y generalmente para funcionar deben combinarse, se encuentran esparcidas por la periferia del teclado Ej: Ctrl., Esc, Shift, etc. Cursores: Permiten el movimiento en la pantalla. Bloque numérico: Llamado también keypad se halla ubicado en la parte izquierda y contiene los números del al 9 además de otras teclas especiales
V U T

y y y

y y

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 cm, y el mi i-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
W

PS/2

Debo mencionar que además se disponen actualmente de teclados inalámbricos que se sirven para su comunicación de infra-rojos
f dc g a ` `Y X Y

AC

V A E . 1. Revi e en wi i edia la inf rmaci n acerca de teclados y responda ¿Se aplica la . tecnología Bl etoot 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
f f e h b

EL MOUSE
Es un pequeño aparato adaptado ergónomicamente a la forma de la palma de la mano humana tal y como se muestra en la figura, se convierten la extensión del dedo humano para señalar, tocar y escoger los objetos que se muestran en la pantalla de la computadora, a fin de simular la selección o los movimientos. En su parte interna posee sensores que detectan los movimientos y los transforma a señales digitales. Su representación en pantalla es una flecha generalmente, se conecta por medio de un cable a la computadora mediante un conector. Se los puede clasificar de acuerdo al tipo de conector que utilizan y también al sensor. 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.
Lcdo. Omar Pérez

8

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. El óptico es una variante que carece de la bola de goma que evita el frecuente problema de la acumulación de suciedad en el eje de transmisión, y por sus características ópticas es menos propenso a sufrir un inconveniente similar. Se considera uno de los más modernos y prácticos actualmente. Puede ofrecer un límite de 800 ppp, como cantidad de puntos distintos que puede reconocer en 2,54 centímetros (una pulgada); a menor cifra peor actuará el sensor de movimientos. Su funcionamiento se basa en un sensor óptico que fotografía la superficie sobre la que se encuentra y detectando las variaciones entre sucesivas fotografías, se determina si el ratón ha cambiado su posición. En superficies pulidas o sobre determinados materiales brillantes, el ratón óptico causa movimiento nervioso sobre la pantalla, por eso se hace necesario el uso de una alfombrilla o superficie que, para este tipo, no debe ser brillante y mejor si carece de grabados multicolores que puedan "confundir" la información luminosa devuelta.

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. El funcionamiento cambia un poco según sea el tipo de escáner que puede ser: ESCANER DE MANO, ESCANER DE MESA, LECTOR DE BARRAS; pero en general los rastreadores ópticos ven las imágenes a través de rejillas y analiza las partes oscuras y claras transformándolas en ceros y unos. El escáner utilizado con frecuencia es el de mesa (flatbed), que significa que el dispositivo de barrido se desplaza a lo largo de un documento fijo. En este tipo de escáneres, como las fotocopiadoras de oficina, los objetos se colocan boca abajo sobre una superficie lisa de cristal y son barridos por un mecanismo que pasa por debajo de ellos. Otro tipo de escáner flatbed utiliza un elemento de barrido instalado en una carcasa fija encima del documento.

Lcdo. O ar Pérez

q

r r

s

r r

In ro u ión l
qq i

t

p

rogr m ión

9

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. Un escáner se compone de dos piezas básicas: la primera de ellas es el cabezal de reconocimiento óptico, la segunda es un simple mecanismo de avance por debajo de un cristal que hace las veces de soporte para los objetos que se van a escanear. En principio, el cabezal de reconocimiento óptico realiza un escaneo del objeto en sí, reconociendo un determinado número de puntos por pulgada y a cada uno de estos puntos le asigna un valor en función del número de bits del proceso: 1 bit sería 1 color (negro o blanco), 2 bits serían 4 colores, 8 bits serían 256 colores y así sucesivamente hasta llegar a los 32 bits (color verdadero). A mayor número de bits mayor capacidad para representar el color con más precisión, pero también aumenta de manera sustancial el tamaño del fichero resultante. 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
Son dispositivos de introducción de datos que trabajan directamente con la pantalla de la computadora, señalando puntos en ella y realizando operaciones de manejo de software. 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.
Partamos de definir estos conceptos. Analógico es la representación de un objeto que se asemeja al original, los dispositivos de este tipo controlan condiciones como movimiento, temperatura; están representados generalmente por ondas de tipo sinusoidal, podemos poner como ejemplo a un reloj analógico que representa la rotación del planeta con el movimiento de las manecillas, estas ondas son continuas. 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.
Lcdo. O ar Pérez
€

w

x x

y

x x

In ro u ión l
ww u

v

rogr m ión

10

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: y Tiene un rastreador que fotocopia el documento a ser enviado y Es módem, porque modula de ida y demodula al recibir la imagen del rastreador y 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?

Lcdo. O ar Pérez

„

… …

†

… …

In ro u ión l
„„ ‚

‡

ƒ

rogr m ión

11

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.

Es el lugar donde se desarrollan los cálculos y procesos, es decir el procesador. Los microprocesadores como también se los llama, suelen tener la forma de un cuadrado o rectángulo, y van o bien sobre un elemento llamado zócalo (socket en inglés) o soldados en la placa o, en el caso del Pentium II, metidos dentro de una especie de cartucho que se conecta a la placa base (aunque el chip en sí está soldado en el interior de dicho cartucho). La velocidad de un micro se mide en megahertzios (MHz) o gigahertzios (1 GHz = 1.000 MHz), aun cuando por definición no es la unidad de medida apropiada para la velocidad; pero lo endentemos como la velocidad de respuesta es decir cuántos millones o billones de pulsaciones puede ejecutar en un segundo. En la siguiente gráfica podemos observar los componentes o arquitectura lógica

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: y Búsqueda de instrucciones en la memoria y Decodificación, interpretación y ejecución de las instrucciones y Control de la secuencia de operaciones y 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
Lcdo. O ar Pérez
“



‘ ‘

’

‘ ‘

In ro u ión l
 ˆ

‰

rogr m ión

EL CASE Y SUS COMPONENTES

UNIDAD CENTRAL DE PROCESOS

UNIDAD DE CONTROL

BUSES INTERNOS

UNIDAD ARITMETICO ± LOGICA (ALU)

MEMORIA CACHE

COPROCESADOR MATEMATICO

12

computador; controlar o coordinar la entrada y salida de datos a fin que no se produzcan cuellos de botella o congestionamientos de la información hacia las memorias y por último define la ejecución de las operaciones de la unidad aritmético - lógica.

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.
Para mejorar su rendimiento en computadores antiguos se adjuntaba otro chip llamado coprocesador matemático, en la actualidad viene incluido aunque existen modelos que permiten colocar uno externo.

EL COPROCESADOR MATEMÁTICO. Llamado también FPU (Floating Point Unit, Unidad de coma Flotante). Parte del micro especializado en esa clase de cálculos matemáticos así el microprocesador se encargue de los demás procesos y hacer más eficiente el sistema; puede encargarse de operaciones como la aritmética de punto flotante, gráficos, procesamiento de señales, procesamiento de cadenas, encriptación, del filtro de Savitzky±Golay (método para cálculo de derivadas), etc.
Por lo tanto, el coprocesador no es un procesador de propósito general. Algunos coprocesadores no pueden buscar instrucciones desde la memoria, ejecutar instrucciones de control de flujo, hacer operaciones de entrada/salida, administrar la memoria, entre otras cosas, que sí pueden hacer los procesadores de propósito general. antiguamente estaba en el exterior del micro, en otro chip; viene a convertirse en una especie de ayudante del ALU.

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é EL ENCAPSULADO. Es lo que rodea a la oblea de silicio en sí, para darle consistencia, impedir su deterioro (por ejemplo por oxidación con el aire) y permitir el enlace con los conectores externos que lo acoplarán a su zócalo o a la placa base.
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
d d d d

Lcdo. O ar Pérez

–

— —

˜

— —

In ro u ión l
–– ”

™

•

rogr m ión

13

TIPOS DE MICROPROCESADORES Y RESEÑA HISTORICA
Una breve reseña histórica sobre su transformación es la siguiente El primer "PC" o Personal Computer fue inventado por IBM en 1.981 el cual tuvo gran éxito, entre otras cosas porque era fácil de copiar. En su interior había un micro denominado 8088, de una empresa no muy conocida hasta entonces llamada Intel. Las prestaciones de dicho chip resultan inútiles hoy en día: un chip de 8 bits trabajando a 4,77 MHz imposible de trabajar para los actuales programas. El 8088 era una versión de prestaciones reducidas que se mejoró con el 8086, que marcó la aparición de la línea "86" para los siguientes chips Intel: el 80186 (que se usó principalmente para controlar periféricos), el 80286 (con 16 bits y hasta 20 MHz) en el cual aparecen los discos duros. El significado de la expresión de compatibles Intel es fundamental entender antes de avanzar. El mundo PC no es todo el mundo de la informática personal; existen por ejemplo los Apple, que desde el principio confiaron en otra empresa llamada Motorola. Sin embargo, el software de esos ordenadores no es compatible con el tipo de instrucciones de la familia 80x86 de Intel; esos micros, pese a ser en ocasiones mejores que los Intel, sencillamente no entienden las órdenes utilizadas en los micros Intel, por lo que se dice que no son compatibles Intel. Aunque sí existen chips compatibles Intel de otras empresas, entre las que destacan AMD y Cyrix. Este problema de incompatibilidad de instrucciones causo que ciertos elementos como discos, memorias entre otros se vuelvan inservibles en máquinas con procesador Motorola como son la Apple de Macintosh, pero que si trabajen correctamente con micros Intel o empresas que los construyen basados en ese diseño. 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 tr abajaban 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:
Lcdo. O ar Pérez
j

g

h h

i

h h

In ro u ión l
gg e

f

rogr m ión

14

Introducción a la Programación

Está optimizado para aplicaciones de 1 bits. Dispone de 8Kb de caché de instrucciones + 8Kb de caché de datos. Utiliza el zócalo de tipo 5 (socket 5) o el de los MMX (tipo 7). También es conocido por su nombre clave P5 C. Está formado por , millones de transistores

EL PENTIUM MMX
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 1 Mhz, pero sólo para portátiles, es decir la versión SL. Para computadoras de sobremesa la gama empieza en los 1 Mhz., 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: Sigue siendo un procesador optimizado para aplicaciones de 1 bits. Requiere zócalo de tipo 7 (socket 7). También es conocido como P55C. Trabaja a doble voltaje 3,3/2,8V. Utiliza la misma tecnología de 0,35 micras. Lleva en su interior ,5 millones de transistores. 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.
p o oo nn

PENTIUM II

Este es de Intel. Básicamente es un Pentium Pro al que se ha sacado la memoria caché de segundo nivel del chip y se ha colocado todo ello en un tarjeta de circuito impreso, conectada a la placa a través de un conector parecido al del estándar PCI, llamado Slot 1, y que se es utilizado por dos tipos de cartuchos, el S.E.C. y el S.E.P.P (el de los Celeron).

También se le había incorporado el juego de instrucciones MMX. Está optimizado para aplicaciones de 32 bits. Se comercializa en versiones que van desde los 233 hasta los 00 MHz. Posee 32 Kbytes de caché L1 (de primer nivel) repartidos en 1 Kb. para datos y los otros 1 para instrucciones. La caché L2 (segundo nivel) es de 512 Kb. y trabaja a la mitad de la frecuencia del procesador.
o p

Lcdo. Omar Pérez

15

o

k

m m

l

Introducción a la Programación

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. Debemos distinguir entre dos empaquetados distintos. El primero es el S.E.P.P que es compatible con el Slot 1 y que viene a ser parecido al empaquetado típico de los Pentium II (el S.E.C.) pero sin la carcasa de plástico. 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. Está optimizado para aplicaciones de 32 bits. Se comercializa en versiones que van desde los 266 MHz hasta los 2.8 Ghz La caché L2 trabaja a la misma velocidad que el procesador (en los modelos en los que la incorpora). Posee 32 Kbytes de caché L1 (de primer nivel) repartidos en 16Kb. para datos y los otros 16 para instrucciones. No poseen caché de nivel 2 los modelos 266-300 y sí el resto (128 KB). Posee el juego de instrucciones MMX. Incorpora 7,5 millones de transistores en los modelos 266-300 y 9,1millones a partir del 300A (por la memoria caché integrada).

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 progra madores se ven obligados a escoger entre uno u otro. Otra de las novedades introducidas y también la más polémica es la incorporación de un número de serie que permite identificar unívocamente a cada una de las unidades, con lo que se obtiene una especie de "carné de identidad" único para cada PC. Este ID se puede utilizar para realizar transacciones más seguras a través de Internet, y facilitar la vida a los administradores de redes, pero también ha sido duramente criticado por algunos grupos de presión como una invasión de la privacidad, con lo que Intel se ha visto obligada a ofrecer una utilidad que permite desactivar dicha función.

Lcdo. Omar Pérez
q

1

r

Incorpora 7,5 millones de transistores. Los modelos de 0,35 µ pueden tener caché hasta 512 Mb, los de 0,25 hasta

GB.

Introducción a la Programació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: Está optimizado para aplicaciones de 32 bits. Se comercializa en versiones que van desde los 50 hasta los 800 MHz. Posee 32 Kbytes de caché L1 (de primer nivel) repartidos en 16Kb. para datos y los otros 16 para instrucciones. La caché L2 (segundo nivel) es de 512 Kb. y trabaja a la mitad de la frecuencia del procesador. Incorpora 9,5 millones de transistores. Pueden cachear hasta GB. Los modelos actuales todavía están fabricados con tecnología de 0,25 micras.

PENTIUM 4
El Pentium 4, es un microprocesador de séptima generación basado en la arquitectura x86 y fabricado por Intel. Es el primer microprocesador con un diseño completamente nuevo desde el Pentium Pro de 1995. El Pentium original, denominado Willamette, trabajaba a 1, y 1,5 GHz; y fue lanzado en noviembre de 2000. Para la sorpresa de la industria informática, el Pentium no mejoró el viejo diseño P6 según las dos tradicionales formas para medir el rendimiento: velocidad en el proceso de enteros u operaciones de coma flotante. La estrategia de Intel fue sacrificar el rendimiento de cada ciclo para obtener a cambio mayor cantidad de ciclos por segundo y una mejora en las instrucciones SSE. Al igual que los demás procesadores de Intel, el Pentium se comercializa en una versión para equipos de bajo presupuesto (Celeron), y una orientada a servidores de gama alta (Xeon). Las distintas versiones son: Willamette, Northwood, Extreme Edition, Prescott y Cedar Mill.
t t t t

Willamette
Willamette, la primera versión del Pentium , sufrió de importantes demoras durante el diseño. De hecho, muchos expertos aseguran que los primeros modelos de 1,3, 1, y 1,5 GHz fueron lanzados prematuramente para evitar que se extienda demasiado el lapso d demora de los e Pentium . Fueron fabricados utilizando un proceso de 180 nanómetros y utilizaban el Socket 23 para conectarse a la placa madre. Vendió una cantidad moderada de unidades.
t

Northwood
En octubre de 2001, el Athlon XP reconquistó el liderazgo en la velocidad de los procesadores, pero en enero de 2002 Intel lanzó al mercado los nuevos Northwood de 2,9 y 2,2 GHz. Esta

Lcdo. Omar Pérez

17

t

s

s

t

t

nueva versión combina un incremento de 256 a 512 KB en la memoria caché con la transición a la tecnología de producción de 130 nanómetros. Al estar el microprocesador compuesto por transistores más pequeños, podía alcanzar mayores velocidades y a la vez consumir menos energía. El nuevo procesador funcionaba con el Socket 478, el cual se había visto en los últimos modelos de la serie Willamette. El Procesador de 3,06 GHz soporta Hyper Threading, una tecnología originalmente aparecida en los eon 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.
{

Extre e Edition o Edición Extre a
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 F . 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 eon MP, aunque con un Socket 478 (a diferencia del Socket 603 de los eon MP) y poseía un FSB de 800MHz, dos veces más grande que el del eon MP. Una versión para Socket LGA775 también fue producida. El efecto de la memoria adicional tuvo efectos variados. En las aplicaciones de ofimática, la demora ocasionada por el mayor tamaño de la memoria caché hacia qu los Extreme Edition e fuesen menos veloces que los Northwood. Sin embargo, el área donde se destacó fue en la codificación multimedia, que superaba con creces a la velocidad de los anteriores Pentium 4 y a toda la línea de AMD.
| | | |

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 Presc ott 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

Lcdo. O ar Pérez

w

x x

y

x x

In ro u ión l
ww u

z

v

rogr m ión

18

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 do procesadores, no es lo mismo s 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 acceso a memoria inteligente optimiza el ancho de banda de datos. Su arquitectura se basa en la del Pentium M, pues demostró ser mucho más eficiente que la arquitectura de Pentium 4. Los procesadores han sido comparados con los más potentes procesadores hasta el momento de AMD, que hasta la fecha de salida de Intel eran los procesadores más rápidos disponibles, y los procesadores Conroe presumieron de una ejecución mucho más rápida de hasta un 40% más potente que procesador Pentium 4, y con un consumo 40% menor que este. 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. Existen versiones de sobremesa y para portátiles, a diferencia de la división existente desde 2003 entre Pentium M para portátiles y Pentium 4 para ordenadores de sobremesa, unificando el nombre de Core 2 Duo para todas los procesadores de de gama media dejando además el nombre Pentium, utilizado desde 1993 para los procesadores de gama baja (y menor rendimiento) basados en la arquitectura de Core 2 con un cache reducido llamado Pentium Dual Core, quienes a su vez vienen a reemplazar a la familia Celeron en este rol. El microprocesador Core 2 Duo de Intel es la continuación de los Pentium D y Core Duo. Su distribución comenzó el 27 de julio de 2006. El acceso a memoria inteligente optimiza el ancho de banda de datos. Su arquitectura se basa en la del Pentium M, pues demostró ser mucho más eficiente que la arquitectura de Pentium 4. 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

Lcdo. O ar Pérez



€ €



€ €

In ro u ión l
 }

‚

~

rogr m ión

19

ACTIVIDADES
‰

Lcdo. O ar Pérez

Š

Š

5 6

Š

Š

Š

1 2 3 4

¿Cuál es el significado de Hyper-treading? Elabore un cuadro comparativo de todos los procesadores mencionados ¿Qué se comprende por arquitectura abierta y arquitectura cerrada? ¿Una característica de los actuales procesadores es ser multiplataformas que significa ello? Señale tres ventajas de los actuales procesadores sobre Pentium IV ¿Porqué se considera que no es el único elemento importante en un procesador la velocidad del mismo?

…

† †

‡

† †

In ro u ión l
…… ƒ

ˆ

„

rogr m ión

20

Introducción a la Programación

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
Es la memoria de trabajo, significa memoria de acceso randómico o aleatorio; esta se pierde cuando se apaga el computador o se interrumpe el fluido eléctrico; su capacidad se mide en MB o GB también se la llama memoria de lectura y escritura. Físicamente puede ser de tres tipos dependiendo de su capacidad y número de pines:

SIMM

DIMM

SIMM posee tres pulgadas de longitud v ocho o nueve chips de memoria, posee 74 pines, se las conoce como memoria estática, es decir necesitaban electricidad en plazos más largos, fueron las primeras en aparecer y a partir del procesador 486 comenzaron a desaparecer. DIMM es de mayor capacidad que la anterior, existieron de 8 MB, 16, 32, 64 y 128; su tamaño es mayor con 158 pines, se las llama también memorias dinámicas debido a que necesitan recargar eléctricas mas continúas que sus antecesores. RIMM es el último tipo de memoria existente en el mercado posee un tamaño igual a la anterior pero mayor capacidad de almacenamiento; empezó en 512 MB y actualmente hay de 1GB y 2 GB. 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
Lcdo. Omar Pérez

21

Introducción a la Programación

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, el procesador selecciona la posición de memoria, realiza otras tareas y cuando vuelva a consultar la DRAM los datos en la salida seguirán siendo válidos. Synchronous DRAM (SDRAM): Son la introducción de procesadores más rápidos, las tecnologías FPM y EDO han empezado a quedar lentas. La memoria más eficiente es la que trabaja a la misma v elocidad que el procesador. Las velocidades de la DRAM FPM y EDO son de 80, 70 y 60 ns, lo cual es suficientemente rápido para velocidades inferiores a 66MHz. SDRAM funciona de manera totalmente diferente a FPM o EDO. Estas últimas transmiten los datos mediante señales de control, en la memoria SDRAM el acceso a los datos esta sincronizado con una señal de reloj externa. El rendimiento de las memorias FPM y EDO se mide en nanosegundos y es el tiempo que tarda en responder la memoria. En la memoria SDRAM el rendimiento se mide en MHz y es la velocidad máxima de reloj que soportan. Esta velocidad puede llegar a ser de 100 Mhz. Para poder trabajar a velocidades de 100MHz, la SDRAM, está constituida en dos bancos independientes. Esto permite que mientras a un banco está accediendo a la posición de memoria el otro banco, simultáneamente, esté seleccionando la posición siguiente.

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. DDR3 es un tipo de memoria RAM. Forma parte de la familia SDRAM de tecnologías de memoria de acceso aleatorio El Principal beneficio de instalar DDR3 es la habilidad de hacer transferencias de datos ocho veces más rápido, esto nos permite obtener velocidades pico de transferencia y velocidades de bus más altas que las versiones DDR anteriores. 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

Lcdo. Omar Pérez

22

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 3. ¿Cuál es la unidad de medida de la velocidad de trabajo de esta memoria y que representa? 4. ¿Cómo se llaman los actuales módulos de memoria en base a su tecnología y cuál es el significado del acrónimo?

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: y Guardar la configuración del hardware del computador y 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: y PROM (Programmable Read Only Memory), puede ser llenada por el cliente y no exclusivamente por el fabricante del chip y 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 y 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 y 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é?

Lcdo. O ar Pérez



Ž Ž



Ž Ž

In ro u ión l
 ‹



Œ

rogr m ión

23

Es uno de los elementos habituales en los ordenadores, al menos desde los tiempos del 286. Un disco duro está compuesto de numerosos discos de material sensible a los campos magnéticos, colocados unos sobre otros; en realidad se parece mucho a una pila de disquetes, con el mecanismo de giro y el brazo lector incluido en la carcasa. Los discos duros han evolucionado mucho desde los modelos primitivos de 10 ó 20 MB que aparecieron a mediados de los ochenta. Actualmente los tamaños son del orden de varios gigabytes, el tiempo medio de acceso es muy bajo (menos de 20 ms) y su velocidad de transferencia es tan alta que deben girar a más de 5.000 rpm (revoluciones por minuto). Una diferencia fundamental entre unos y otros discos duros es su interfaz de conexión. Antiguamente se usaban diversos tipos, como MFM, RLL o ESDI, aunque en la actualidad sólo se emplean los: IDE y SATA. Está compuesto en su división lógica por pistas y sectores; siendo la pista cero la más , importante, puesto que en ella se ubica el sistema de asignación de archivos y el BOOT SECTOR (sector de arranque). Una pista es una división de forma circular. 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 un de una ión pista con un sector. Entre las principales características podemos anotar las siguientes: y Son confiables y poseen larga vida y Almacenan mayor cantidad de programas que cualquier otro dispositivo

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,
Lcdo. O ar Pérez
–

“

” ”

•

” ”

In ro u ión l
““ ‘

’

rogr m ión

MEMORIA AUXILIARES DISCO DURO

24

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 demasia escasos do para aplicaciones un tanto serias; mucha gente opinó que hasta los 100 MB de un Zip eran insuficientes. Su conformación lógica es similar al disco duro con pistas, sectores y clúster.

CD ± ROM
Estas unidades de almacenamiento están constituidas por un soporte plástico en las que un láser ha realizado unas pequeñas hendiduras, esta capa se recubre con una capa de material reflectante, y ésta con otra capa de protección. En el momento de la lectura un láser de menor intensidad que el de grabación reflejará la luz o la dispersará y así podrán ser leídos los datos almacenados. Las pistas en este soporte se encuentran dispuestas en forma de espiral desde el centro hacia el exterior del CD-ROM, y los sectores son físicamente del mismo tamaño. El lector varia la velocidad de giro del CD-ROM, según se encuentre leyendo datos en el centro o en los extremos, para obtener una velocidad constante de lectura. La velocidad de transferencia de estas unidades ha ido variando, las primeras unidades tenían una velocidad de 150 KB/s y se denominaron de simple velocidad, ya que esta velocidad de transferencia era la que venía recogida en las especificaciones del MPC (Multimedia PC Marketing Council), posteriormente han ido apareciendo unidades 2X (2 x 150 = 300 KB /s), hasta en la actualidad 100X ( 100 x 150 = 15.000 KB/s ). 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 CDROM, 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 CDROM 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.
Lcdo. O ar Pérez
œ

™

š š

›

š š

In ro u ión l
™™ —

˜

rogr m ión

25

3. y y y 4.

Consultar el significado de las siguientes siglas: IDE: SCSI SATA: ¿Qué son los disco blue ray y cómo funcionan?

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 e oria inter edia 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.

Lcdo. O ar Pérez

Ÿ

   

¡

   

In ro u ión l
ŸŸ 

¢

ž

rogr m ión

26

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. Otra característica de novedosa ha sido la resistencia térmica de algunos encapsulados de tarjetas de memoria orientadas a las cámaras digitales de alta gama. Esto permite funcionar en condiciones extremas de temperatura como desiertos o glaciares ya que el rango de temperaturas soportado abarca desde los -25º hasta los 85º. Las aplicaciones más habituales son: y El llavero USB que además del almacenamiento suelen incluir otros servicios como radio FM, grabación de voz, sobre todo como reproductores portátiles de MP3 y otros formatos de audio. y Las PC Card son otra variante de ellos empezaron como reemplazo de los rollos de las cámaras fotográficas pero pronto se han visto en varios aparatos también insertadas Existen varios estándares de encapsulados promocionados y fabricados por la mayoría de las multinacionales dedicadas a la producción de hardware.

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.
y

Los buses de datos transportan de un lugar a otro la información, este es un bus de entrada y salida. Los buses de direcciones selecciona y dirige la información siempre es un bus de salida. 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.

y y

y

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: y PCI: y ISA: y 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

Lcdo. O ar Pérez

¥

¦ ¦

§

¦ ¦

In ro u ión l
¥¥ £

¨

¤

rogr m ión

27

Un puerto en paralelo es un conector de entrada / salida con un conector de 25 pines que transmite la información por varios hilos al mismo tiempo (varios bits a la vez); un dispositivo que generalmente se conecta a este tipo de puerto es la impresora. 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. Universal Serial Bus (USB) El puerto USB (Bus de Serie Universal) proporciona mayor velocidad de transmisión en la conexión de los periféricos que los dos anteriores, pues toma las mejores características de ambos y las unifica en la actualidad este tipo de puerto facilita la conexión de impresoras, scanner, cámaras digitales, etc. Desde que nació el PC de la mano de I.B.M., por motivos de compatibilidad, algunas de sus características han permanecido inalterables al paso del tiempo. Conectores como el de salida paralelo (o Centronics), la salida serie (RS-232) o el conector del teclado han sufrido muy pocas variaciones. Si bien es cierto que estos conectores todavía hoy cumplen su función correctamente en casos como la conexión de un teclado, un ratón o un modem, se han quedado ya desfasados cuando tratamos de conectar dispositivos más rápidos como por ejemplo una cámara de video digital. USB nace como un estándar de entrada/salida de velocidad media-alta que va a permitir conectar dispositivos que hasta ahora requerían de una tarjeta especial para sacarles todo el rendimiento, lo que ocasionaba un encarecimiento del producto además de ser productos propietarios ya que obligaban a adquirir una tarjeta para cada dispositivo. Pero además, USB nos proporciona un único conector para solventar casi todos los problemas de comunicación con el exterior, pudiéndose formar una auténtica red d periféricos de hasta e 127 elementos. Mediante un par de conectores USB que ya hoy en día son estándar en todas las placas base, y en el espacio que hoy ocupa un sólo conector serie de 9 pines nos va a permitir conectar todos los dispositivos que tengamos, desde el teclado al modem, pasando por ratones, impresoras, altavoces, monitores, scanner, cámaras digitales, de video, plotters, etc. sin necesidad de que nuestro PC disponga de un conector dedicado para cada uno de estos elementos, permitiendo ahorrar espacio y dinero. Al igual que las tarjeta ISA tienden a desaparecer, todos los conectores anteriormente citados también desaparecerán de nuestro ordenador, eliminando además la necesidad de contar en la placa base o en una tarjeta de expansión los correspondientes controladores para dispositivos serie, paralelo, ratón PS/2, joystick, etc... Es un estándar necesario para facilitar las tareas diarias, ya que además cuenta con la famosa característica PnP (Plug and Play) y la facilidad de conexión "en caliente", es decir, que se pueden conectar y desconectar los periféricos sin necesidad de reiniciar el ordenador.

ACTIVIDADES 1. Elabore un cuadro comparativo de los tipos de puertos FUENTE DE PODER. Da electricidad a los diferentes dispositivos que se encuentran dentro del chasis. Para esto convierte la corriente alterna en corriente continua, ya que la electricidad no posee polos ni positivo ni negativo y por ese motivo es necesaria que esta electri idad sea c transformada a continua. Está protegida por una caja que por dentro tiene varios dispositivos electrónicos. COMPONENTES DE LA FUENTE DE PODER:
Lcdo. O ar Pérez
®

«

¬ ¬

­

¬ ¬

In ro u ión l
«« ©

ª

rogr m ión

28

Introducción a la Programación

y y y y y y y

Ventilador. Fusible. Transformadores. Disipador de calor. Resistencias. Transistores. Condensadores.

TIPOS DE FUENTE DE PODER: ATX.- Se utilizo desde las Pentium II en adelante. y Contiene un switch digital y un cable conectado al mainboard, realizando un contacto con la tarjeta. y Su conector es uno solo. y Este conector tiene 20 pines. y Posee 20 cables de color. y Se conecta directamente al mainboard. y No tiene el switch de encendido y apagado. y Está formado por una sola pieza. y Tiene 4 cables en donde se conecta el switch. y Existe un switch para el paso de la energía. y En esta fuente el cable negro va al centro. y Cada cable tiene voltaje diferente. AT.- Solo se encuentran en computadores antiguos desde las 386 en adelante, hasta la Pentium I. y Viene por piezas. y Tiene un switch de encendido y apagado. y El orden de los cables no altera la polarización. y Sus conectores son P8 Y P9. y Cada conector tiene 6 pines. y 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 conecto como se res 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.
Lcdo. Omar Pérez

29

Introducción a la Programación

El modelo AT en la actualidad se encuentra descontinuado pero si tuviéramos que conectar estos cables a la tarjeta madre sabemos que los conectores P8 y P9 se ubican unidos con los cables negros hacia el centro; además que varios poseen guías que impiden su conexión errónea.

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.

Monitores de cristal líquido. Funcionamiento:

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.

Lcdo. Omar Pérez

30

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. Ventajas como el ahorro de consumo y de especio (LCD posibilita la fabricación de pantalla extraplanas, de muy poca profundidad), así como la prácticamente nula emisión de radiaciones, aportan un gran interés a este tipo de dispositivos. No obstante, su elevado costo unido a los continuos avances en la tecnología CRT hace que su tecnología no se aplique totalmente aún.

ACTIVIDADES: 1 Elabore un organizador gráfico para identificar los tipos de monitores y sus características 2 ¿Cuál es la función del acelerador gráfico que se conoce como AGP, enumere tres características del mismo IMPRESORAS
Este dispositivo de salida de información representa caracteres y gráficos en papel; aunque existen varios tipos una clasificación muy utilizada es la siguiente: de impacto y sin impacto. Las impresoras de impacto son aquellas que un mecanismo generalmente golpea el papel entre las más difundidas están las de margarita, matriciales I presora Matricial: La matricial utiliza una cabeza de impresión en la que, por medio de electroimanes que lleva en su interior unas agujas golpean una cinta para configurar los caracteres, son ruidosa, lentas y su resolución es de baja calidad al igual que los gráficos; generalmente son en blanco y negro. Hoy en día han sido sustituidas en muchos entornos por sus competidoras, pero todavía son irreemplazables en algunas tareas. Así pues, son las únicas que permiten obtener varias copias de un mismo impreso. Esto resulta muy conveniente cuando tenemos la necesidad de realizar varias copias de un mismo documento con la mayor rapidez y que se ejecuten en distintos impresos. Por ejemplo, cuando necesitamos que cada copia esté hecha en un papel de distinto color, y con algún texto identificativo. En este caso, mediante papel copia de varias hojas lo podemos realizar de una forma rápida y barata, principalmente cuando la información es de tipo textual. Al igual que los otros tipos de impresora, sus características básicas a considerar s la on velocidad, la calidad y la posibilidad de impresión en color. La velocidad se mide en cps o caracteres por segundo, ya que como hemos dicho esta es la principal función que suelen realizar. La calidad normalmente viene marcada por el número de agujas que suelen oscilar , entre las 8 y las 24, siendo mejor cuanto de mayor número disponga. Las impresoras de no impacto pueden ser de tres tipos principalmente: térmicas, de inyección a tinta y láser.
µ µ

IMPRESORAS TERMICAS: Una impresora térmica utiliza punzones que se calientan el papel debe ser sensible al calor; su problema es el precio alto de este tipo de papel y su imposibilidad de realizar copias simultáneas. LAS IMPRESORAS DE INYECCIÓN O CHORRO. Utilizan cartuchos de tinta, la tinta líquida sale a través de la boquilla en forma de gotas cargadas eléctricamente son guiadas al papel por
Lcdo. O ar Pérez
´

±

² ²

³

² ²

In ro u ión l
±± ¯

°

rogr m ión

31

medio de placas de desviación. Su calidad de imágenes es buena puede utilizar colores y son rápidas. Aunque en un principio tuvo que competir duramente con sus adversarias matriciales, hoy son las reinas indiscutibles en el terreno domestico, ya que es un entorno en el que la economía de compra y la calidad, tanto en color como en blanco y negro son factores más importantes que la velocidad o la economía de mantenimiento, ya que el número de copias realizadas en estos entornos es bajo. Algunas impresoras utilizan dos cartuchos, uno para la tinta negra y otro para la de color, en donde suelen están los tres colores básicos. Estas impresoras tienen como virtud la facilidad de manejo, pero en contra, si utilizamos más un color que otro, nos veremos obligados a realizar la sustitución del cartucho cuando cualquiera de los tres colores se agote, aunque en los demás compartimentos todavía nos quede tinta de otros colores. Esto hace que estas impresoras sean bastante más caras de mantenimiento que las que incorporan un cartucho para cada color, pero también suelen ser más económicas en el precio de compra. Las características principales de una impresora de inyección de tinta son la velocidad, que se mide en páginas por minuto (ppm) y que suele ser distinta dependiendo de si imprimimos en color o en monocromo, y la resolución máxima, que se mide en puntos por pulgada (ppp). En ambos valores, cuanto mayores mejor. Como en otros componentes, es importante disponer de los "drivers" adecuados, y que estos estén convenientemente optimizados

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 pas ado 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
¼

Lcdo. O ar Pérez

»

½

½

1 2 3

Elabore un mentefacto sobre las impresoras ¿Qué diferencia y que semejanza tiene un fax con la impresora? ¿Qué es un plotter y como funciona?

¸

¹ ¹

º

¹ ¹

In ro u ión l
¸¸ ¶

·

rogr m ión

32

AUTOEVALUACIÓN 1.- Ubique dentro del paréntesis una V si es verdadero o F si es falso según corresponda ( ( ( ( ) El primer procesador creado se llamo 186 ) Los cd de instalación arrancan automáticamente sin pasos previos que realizar ) El BIOS es programa residente de la memoria RAM ) La memoria SIMM es la última tecnología en módulos de memoria RAM

2.- Señale dos características del procesador Pentium Dual Core «««««««««««««««««««««««««««««««««««««« «««««««««««««««««««««««««««««««««««««« «««««««««««««««««««««««««««««««««««««« «««««««««««««««««««««««««««««««««««««.. 3.- Mencione dos requisitos importantes para considerar al comprar un computador y porqué «««««««««««««««««««««««««««««««««««««« «««««««««««««««««««««««««««««««««««««« «««««««««««««««««««««««««««««««««««««« «««««««««««««««««««««««««««««««««««««« «««««««««««««««. 4.- Escoja la opción correcta encerrándola en un círculo de entre las opciones El primer programa en cargarse en la memoria RAM es: a) WINDOWS b) Sistema Operativo Las particiones permiten a) Crear pistas b) Crea pistas y sectores

El disco duro de última tecnología utiliza como conector: a) SATA b)PCI c)IDE d)ninguno 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 6.- Mencione el significado de los siguientes acrónimos PCI: «««««««««««««««««««««««««««««««««««««« «. USB: «««««««««««««««««««««««««««««««««««««« « LCD:«««««««««««««««««««««««««««««««««««« «««. 7.- Señale dos empresas fabricantes para los siguientes piezas del computador: Mainboard:««««««««««««««««««««««««««««««««« ««««
Lcdo. O ar Pérez
Ã

À

Á Á

Â

Á Á

In ro u ión l
ÀÀ ¾

¿

rogr m ión

c) WORD

d) ninguno d)ninguna

c) Divide al disco

33

RAM «««««««««««««««««««««««««««««««««««««« «. Lector de CD:«««««««««««««««««««««««««« «««««««««.. Procesador:««««««««««««««««««««««««««««««««« ««««

Lcdo. O ar Pérez

Æ

Ç Ç

È

Ç Ç

In ro u ión l
ÆÆ Ä

É

Å

rogr m ión

34

OBJETIVOS

r r r

Conocer los pasos correctos para la formulación de algoritmos Utilizar la simbología de flujogramas para representar procesos Elaborar pseudocódigos utilizando reglas generales para ello

Lcdo. O ar Pérez

Ì

Í Í

Î

Í Í

In ro u ión l
ÌÌ Ê

Ï

Ë

rogr m ión

U IDAD II LOS ALGORITMOS

³TODOS LOS TRIUNFOS COMIENZAN CUANDO NOS ATREVEMOS A EMPE ZAR´

35

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. La palabra ha cambiado de forma que en su definición se incluye a todos los procedimientos finitos para resolver problemas. 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ó. La falta de rigor matemático en la definición de "procedimiento bien definido" para los algoritmos trajo algunas dificultades a los matemáticos y lógicos del siglo XIX y comienzos de XX. Este problema fue en gran parte resuelto con la descripción de la máquina de Turing, un modelo abstracto de computadora formulado por Alan Turing, y la demostración de que cualquier método anticipado por otros matemáticos que pueda encontrarse para describir "procedimientos bien definidos" puede ser emulado en una máquina de Turing (una afirmación conocida como "tesis de Church-Turing"). 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. El concepto de algoritmo, aunque similar y obviamente relacionado, no debe confundirse con el concepto de programa. Mientras el primero es la especificación de un conjunto de pasos (operaciones, instrucciones, órdenes,...) orientados a la resolución de un problema, el segundo es ese conjunto de operaciones especificadas en un determinado lenguaje de programación y para un computador concreto, susceptible de ser ejecutado (o compilado o interpretado). Un algoritmo, estrictamente hablando, no puede ejecutarse hasta que se implementa, ya sea en un lenguaje de programación, en un circuito eléctrico, en un aparato mecánico, usando papel y lápiz, o en algún otro modelo de computación.

CARACTERÍSTICAS
Aunque por ser amplios no se definen como reglas podemos sugerir algunos pasos a seguirse: y Deben estar estrictamente descritos, cada acción debe ser precisa. y 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

Lcdo. O ar Pérez

Ò

Ó Ó

Ô

Ó Ó

In ro u ión l
ÒÒ Ð

Õ

Ñ

rogr m ión

ALGORITMOS

36

y y y

y y y

procedimiento de resolución parte para la multiplicación de 4 x 4, sino que el mismo algoritmo podrá aplicarse a cualquier multiplicación. Finito, tiene fin; un número determinado de pasos; sin que por ello sean necesariamente redundantes Debe ser sencillo, legible, es decir no es necesario utilizar palabras técnicas. Eficiente y Efectivo. Se espera que un algoritmo sea eficaz, en el sentido de que todas las operaciones a realizar en un algoritmo deben ser suficientemente básicas como para que en principio puedan ser hechas de manera exacta y en un tiempo finito por un hombre usando lápiz y papel. Han de desarrollar soluciones en el menor tiempo posible. Carácter finito; un algoritmo siempre debe terminar después de un número finito de pasos. La última de estas características será la resolución, en otras palabras, esto quiere decir que el algoritmo deberá llegar a un resultado específico.

Es de gran importancia aclarar que los algoritmos en sí mismos no resuelven problemas, se resuelven gracias al producto de ejercer las operaciones dictadas por el algoritmo, se puede decir que es por el planteamiento mismo. La realización de algoritmos es natural e innata en el hombre y en la mayoría de los casos es de tipo inconsciente, en otras palabras, las personas suelen resolver problemas sin tener que recurrir a la aplicación de cierto algoritmo. No obstante al encontrarse con problemas de un grado de dificultad mayor es necesario detenerse a analizar y pensar en la solución de éste. Su gran importancia a parte de lo comentado anteriormente en el caso de la Informática es ser paso previo para el diseño de los flujogramas, el cual no es más que la representación gráfica de un algoritmo y el cual es necesario para la realización de un buen programa y también sirven de base para formular los pseudocódigos. 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 m anera 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 resuelt , manejando su o 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. La vida de un algoritmo usualmente se establece en tres niveles:

Descripción de alto nivel. Se establece el problema, se selecciona un modelo matemático y se explica el algoritmo de manera verbal, posiblemente con ilustraciones y omitiendo detalles.
Û

Lcdo. O ar Pérez

Ø

Ù Ù

Ú

Ù Ù

In ro u ión l
ØØ Ö

×

rogr m ión

37

Descripción for al. 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 I ple entació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
Como medida de la eficiencia de un algoritmo, se suelen estudiar los recursos (memoria y tiempo) que consume el algoritmo. El análisis de algoritmos se ha desarrollado para obtener valores que de alguna forma indiquen (o especifiquen) la evolución del gasto de tiempo y memoria en función del tamaño de los valores de entrada. Algunos escritores restringen la definición de algoritmo a procedimientos que deben acabar en algún momento, mientras que otros consideran procedimientos que podrían ejecutarse eternamente sin pararse, suponiendo el caso en el que existiera algún dispositivo físico que fuera capaz de funcionar eternamente. En este último caso, la finalización con éxito del algoritmo no se podría definir como la terminación de éste con una salida satisfactoria, sino que el éxito estaría definido en función de las secuencias de salidas dadas durante un periodo de vida de la ejecución del algoritmo. Por ejemplo, un algoritmo que verifica que hay más ceros que unos en una secuencia binaria infinita debe ejecutarse siempre para que pueda devolver un valor útil. Si se implementa correctamente, el valor devuelto por el algoritmo será válido, hasta que evalúe el siguiente dígito binario. De esta forma, mientras evalúa la siguiente secuencia podrán leerse dos tipos de señales: una señal positiva (en el caso de que el número de ceros sea mayor que el de unos) y una negativa en caso contrario. Finalmente, la salida de este algoritmo se define como la devolución de valores exclusivamente positivos si hay más ceros que unos en la secuencia y, en cualquier otro caso, devolverá una mezcla de señales positivas y negativas. Si deseamos establecer un conjunto general de pasos para formular un algoritmo serían: y Comprender el problema y lo requerido. Esto nace de dos tipos de lecturas una inicial llamada informativa y otra posterior conocida como analítica donde para mejorar el proceso de obtención de datos se sugiere al inicio subrayar lo importante. y De lo subrayado usted obtendrá datos que deberá ir planteando como pasos claros que generalmente son ingreso de datos u obtención de los mismos, clasificación del tipo de dato, etc. (entrada). y Con los datos que posee aplica creatividad para solucionar lo pedido mediante procesos claros (procesamiento) y Una vez realizados los procesos o acciones es necesario devolver los resultados o señalara la terminación de los mismos; siempre recuerde mencionar los resultados (salida). Observemos unos ejemplos de diseños de algoritmos:

Un cliente ejec ta n pedido a na fábrica. La fábrica exa ina en s banco de datos la ficha del cliente, si el cliente es solvente entonces la e presa acepta el pedido de lo contrario lo rechaza. Redactar n al orit o sobre lo expresado. y El cliente se comunica toma el teléfono y marca el número
ENTRADA

y y y

Al hablar con la secretaria de la fábrica expresa el pedido PROCESOS La secretaria examina la ficha del cliente De acuerdo a la solvencia del cliente señala la posibilidad de entregar el pedido o no
SALIDA

Lcdo. O ar Pérez

Þ

ß ß

à

ß ß

In ro u ión l
ÞÞ Ü

á

Ý

rogr m ión

38

Dado n conj nto finito C de nú eros, se tiene el proble a de encontrar el nú ero ás grande. Sin pérdida de generalidad se puede asumir que dicho conjunto no es vacío y que sus elementos están numerados como .
Es decir, dado un conjunto para todo elemento x que pertenece al conjunto C. PROCESO EN ALGORITMO
y

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. Cuando se termina de recorrer la lista, el máximo número que se ha encontrado es el máximo de todo el conjunto.

y

y y

Algorit o para bicar n cd de

Tengamos en cuenta lo señalado antes explicar los procesos de manera sencilla y clara; también la importancia del orden y secuencia. y Abrir la caja que contiene el cd y Extraigo el cd de ella y Presiono el botón de Encendido en el reproductor y Presiono el botón de OPEN y Ubico el cd en la forma apropiada y Presiono el botón de Play

Lcdo. O ar Pérez

ä

å å

æ

å å

In ro u ión l
ää â

ç

ã

rogr m ión

se pide encontrar m tal que

úsica en n reproductor.

39

En la representación de procedimientos administrativos y secuenciales como es el caso de un programa, frecuentemente se precisa contar con una herramienta para representar la lógica y la secuencia de los procesos. Revisemos definiciones sobre este tema: Según Gómez Cejas, Guillermo. 1.997; El Flujograma, es un diagrama que expresa gráficamente las distintas operaciones que componen un procedimiento o parte de este, estableciendo su secuencia cronológica. Según su formato o propósito, puede contener información adicional sobre el método de ejecución de las operaciones, el itinerario de las personas, las formas, la distancia recorrida el tiempo empleado, etc ³El flujograma es la representación gráfica que muestra el comienzo y el fin de un proceso de tratamiento de datos, y las operaciones de decisiones necesarias para cumplirlo, en el orden secuencial correspondiente´. 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. El flujograma es la representación gráfica más ampliamente usada para el diseño procedimental. Desgraciadamente, por ello se ha dejado de lado métodos como son los pseudocógigos y diagramas N-S. 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. Un flujograma contiene dos tipos e elementos: Los bloques y las líneas. 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.

Lcdo. O ar Pérez

ê

ë ë

ì

ë ë

In ro u ión l
êê è

í

é

rogr m ión

FLUJOGRAMAS

40

SÍMBOLOGIA DE LOS FLUJOGRAMAS SIMBOLO NOMBRE
INICIO ± FIN

Lcdo. O ar Pérez

ð

ñ ñ

ò

ñ ñ

In ro u ión l
ðð î

ó

ï

rogr m ión

OPERACIÓN
Indicar el inicio y el fin de un programa Ingreso de datos por teclado

TECLADO

DESPLEGAR

Presenta un mensaje en pantalla

CONDICIÓN o DECISIÓN

Pregunta y toma una decisión de cumplirse o no una condición

FLECHAS DE DIRECCIÓN

Conecta e indica hacia donde seguir el proceso

IMPRIMIR

Imprimir datos

CONECTOR DE PÁGINA

Saltar una página a otra

CONECTOR DE PROCESOS Indica donde sigue un proceso interrumpido BUCLE, LAZO DE REPETICIÓN

Repite procesos

CÁLCULOS O PROCESOS

Sirve para realizar operaciones

41

REGLAS DE LOS FLUJOGRAMAS
Estos poseen ciertas normas generales que mencionaremos a continuación: 1. Todo flujograma tiene un principio y un final. 2. Se escriben de arriba hacia abajo y de izquierda a derecha 3. Cada símbolo tiene una tarea y no puede ser utilizada en otra distinta 4. Generalmente las variables se declaran al inicio 5. Si vamos a realizar operaciones es conveniente que cada una utilicen un símbolo 6. No pueden existir símbolos desconectados ni las líneas deben cruzarse. 7. Para unirlos debemos utilizar las líneas llamadas de flujo que poseen una flecha que indica su orientación. 8. Cuando utilizamos los ciclos de repetición estos se cierran desde el más interno al más externo 9. En el símbolo de condición debe existir una salida por si (verdadero) o por no (falso). 10. Es conveniente evitar procesos que sean innecesarios o puedan ser incluidos dentro de otros. 11. Se escribe dentro de los símbolos (excepto en el caso de la salida por verdadero o falso). 12. Para movernos de una página a otra debemos utilizar los conectores de página.

Corresponde a un conjunto de procesos que describen la ejecución de un programa, es decir un programa escrito en un lenguaje compresible casi técnico a fin de ser traducido a cualquier lenguaje de programación. Otra definición tomada del Ing. Cazar en su o Compendio de bra Computación Siglo XXI dice ³Constituye el procedimiento natural para elaborar un programa de computación, que posteriormente con la guía y ayuda de un lenguaje de programación, será llevado a la computadora, para solucionar un determinado problema. 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. Revisemos otras definiciones que ayudarán a nuestra comprensión: ³Pseudocódigo es la descripción de un algoritmo que asemeja a un lenguaje de programación pero con algunas convenciones del lenguaje natural. Tiene varias ventajas con respect a los o diagramas de flujo, entre las que se destaca el poco espacio que se requiere para representar instrucciones complejas. El pseudocódigo no está regido por ningún estándar. pseudo viene de falso y por ende es un código al que aunque es entendible no se aplica al proceso que debe
Lcdo. O ar Pérez
ù

ö

÷ ÷

ø

÷ ÷

In ro u ión l
öö ô

õ

rogr m ión

DISCO DURO

Grabar en el disco duro

VARIABLES

Declara variables a utilizarse

PSEUDOCODIGO

42

Introducción a la Programación

realizar la máquina´. osé Ñ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.´ Señalemos como un plan general de solución los siguientes pasos:
ú

y y y y y

Comprensión del problema Recolección de datos para definir el tipo de variables y la cantidad necesaria de ellas Búsqueda de datos adicionales Realización de procesos Presentación de resultados

Aclaremos algunos de estos términos:

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. Se puede hacer una división de las constantes en tres clases:

y Constantes literales(sin nombre) y Constantes declaradas (con nombre) y Constantes expresión Constantes literales Son valores de cualquier tipo que se utilizan directamente, no se declaran ya que no tienen nombre. Constantes declaradas También llamadas constantes con nombre, son las que se declaran en la sección Const asignándoles un valor directamente. Por ejemplo: const Pi = 3.141592; (* valor real *) Min = 0; (* entero *) Max = 99; (* entero *) Saludo = 'Hola'; (* cadena caract. *)

Lcdo. Omar Pérez

43

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 diferen cia, 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. Ejemplo de declaración de variables: ... var I=0, J=0, K=0; (* valores enteros *) Radio : 0.0; (* valor real *) Letra : ³ ³;(* un carácter *) ... En este ejemplo se declaran cinco variables. Las tres primeras son de tipo entero. La cuarta es de tipo real, o sea, un número con parte decimal. Y la quinta es un carácter, que no es lo mismo que una cadena de un carácter (String[1]).

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
Lcdo. O ar Pérez

ý

þ þ

ÿ

þ þ

In ro u ión l
ýý û

 

ü

rogr m ión

44

In ro u ión l

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 ... Chequear una condición: si i<10 entonces ... Participar en una expresión: n := (Max - Min) div I

Tipos de datos.
El tipo de un dato es el conjunto de valores que puede tomar durante el programa. Si se le intenta dar un valor fuera del conjunto se producirá un error. El tipo de dato le indica al compilador del lenguaje de programación dos cosas: el número de bytes requeridos para guardar el dato, y la manera en que se manipulara y operara el dato. La asignación de tipos a los datos tiene dos objetivos principales: Por un lado, detectar errores en las operaciones Por el otro, determinar cómo ejecutar estas operaciones Cada lenguaje de programación tiene sus propios tipos de datos, algunos de estos son comunes a todos, entre los tipos de datos comunes están : Entero ( 0), Real ( 0.0), Carácter ( ³ ³), Lógico,

Lcdo. O ar Pérez

£ ¤ ¤ ¥ ¤ ¤ ££ ¢ ¡ ¦

rogr m ión

45

In ro u ión l

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.

Los tipos carácter y cadena
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. Diseñemos entonces un flujograma sencillo para comprender de mejor manera y poner en práctica todo lo descrito anteriormente EJERCICIOS

1.- Realizar un flujogra a que per ita ingresar por teclado dos nú eros sumarlos y realizar el resultado por pantalla.
El primer paso antes de comenzar la graficación o el seudocódigo es entender lo que se pide en el problema, recolectar los datos y analizarlos, saber cuántas variables (espacios de memoria donde almacenar información) , de que tipo deben ser estas variables. 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

Lcdo. O ar Pérez

©      ©© ¨ § 

rogr m ión

46

In ro u ión l

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. Escrito como pseudocódigo es:

INICIO PROGRAMA SUMA 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 FIN PROGRAMA SUMA.

Lcdo. O ar Pérez 

        

rogr m ión

INICIO

S1= 0; S2= 0; ST= 0,

³Ingrese S1 y S2´

ST

S1+ S2

³ST´, ST

FIN

47

In ro u ión l

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.
INICIO ± PROGRAMA- FISICA

Lcdo. O ar Pérez

! " " # " " !!
FIN

rogr m ión

$ 

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

48

In ro u ión l

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.
INICIO ± PROGRAMA- ANGULOS 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

Lcdo. O ar Pérez

' ( ( ) ( ( '' & % 0

rogr m ión

l1=0; l2=0; hip =0;

³ingrese lado1´

l1

³ingrese lado1´

l2

hipotenusa=˜12 + l22

³l1, l 2, hip´,l1,l2,hip

fin

49

In ro u ión l

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.

Entonces su estructura en general funciona así: - se ubica la condición que se desea cumplir dentro del símbolo - salida por SI (verdadera) debe constar un proceso - salida por NO (falsa) también deberá ejecutarse algún procedimiento Un ejercicio sencillo de seudocódigo es el siguiente ejemplo:

Realizar un flujograma y pseudocódigo para un programa que permita ingresar por teclado la nota de un alumno, si la nota es >14 aparecerá ³aprobado´ caso contrario aparecerá ³reprobado´.
INICIO ± PROGRAMA- NOTA Var NOTA = 0; Desplegar: ³ingresar nota´ Ingrese por teclado: NOTA Si NOTA > 14 entonces Desplegar ³aprobado´ caso contrario Desplegar ³reprobado´ Fin del si FIN ± PROGRAMA - NOTA

Lcdo. O ar Pérez

3 4 4 5 4 4 33 2 1 6

rogr m ión

Si(V) Condición No (F)

50

In ro u ión l

Realizar un flujograma, pseudocódigo y prueba de escritorio para un programa que permita ingresar 2 números y comparar cual es el mayor de ellos, imprimir el número mayor y finalizar.
INICIO N1 = 0; N2 = 0; INICIO ± PROGRAMA_ MAYOR Variables: N1 = 0; N2 = 0; Desplegar: ³ingresar dos números´ Ingrese por teclado: N1, N2 Si N1 > N2 entonces Imprimir ³N1´, caso contrario Imprimir ³N2´ FIN DEL Si FIN _ PROGRAMA _ MAYOR

Lcdo. O ar Pérez

9 @ @ A @ @ 99 8 7
³ingresar dos números

rogr m ión

N1, N2

N1 > N2 F
³N2´,N2

V

³N1´, N1

OBSERVACIÓN: Mire en el flujograma como ingresados los números N1, N2 es entonces cuando puedo utilizar la condición para determinar cuál es mayor y por ello dentro del símbolo ubico la comparación N1>N2

FIN

B

51

In ro u ión l

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 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

Lcdo. O ar Pérez

E F F G F F EE D C
INICIO num=0; ³Digite un número: " num num==0 num<0 FIN

rogr m ión

"El número
%d es NULO"

"El número %d es NEGATIVO"

OBSERVACIÓN: Aquí se incluye la posibilidad de ubicar un símbolo de condición a continuación de otro, esto se utiliza cuando tengo múltiples opciones y se conoce como condiciones anidadas.

"El número:num es POSITIVO",num

H

52

In ro u ión l

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 = V.inicial,V.final, aum/dism C = variable 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.

Realizar un programa que permita ingresar la nota final de 48 alumnos, si la nota es mayor o igual que 14 imprimir el nombre y mensaje ³aprobado´

Lcdo. O ar Pérez

Q R R S R R QQ P I
INICIO

rogr m ión

CONTADOR AUTOMATICO

C = 0; N = 0;

C = 1, 48, 1 OBSERVACIÓN: Note que cualquier tipo de acción puede ser ubicada dentro de este llamado bucle o lazo de repetición, en este ejercicio está una condición que permite imprimir el mensaje aprobado sólo en los mayores o iguales a 14 de los 48 estudiantes

³ingrese la nota´

N

N>= 14

³APROBADO´

C

FIN

T

53

In ro u ión l

El pseudocódigo de este ejercicio corresponde a lo siguiente: 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.

Elaborar el flujograma y pseudocódigo para el ingreso de la base y el exponente y luego calcular el número exponencial. Desplegar el resultado
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

Lcdo. O ar Pérez

W X X Y X X WW V U `

rogr m ión

base=0; exponente=0; i=0; intpot=1;

³Ingrese base´

A

54

In ro u ión l

Flujograma y pseudocódigo de un programa que permita obtener las tablas de multiplicar del 1 hasta el doce solicitando al usuario hasta que número se desea desplegar cada tabla
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

Lcdo. O ar Pérez

c d d e d d cc b a f

rogr m ión

A

base

³Ingrese exponente´

exponente

i=1;exponente;1

intpot= intpot*base

j

³base,exponente,intpot´

fin

55

In ro u ión l

Lcdo. O ar Pérez

i p p q p p ii h g r

rogr m ión

inicio

i=0; n=0;

j=0; r=0;

³Ingrese número´

n

i=1;12;1

j=1;n;1

r=i*j

³i * j =r´, i , j, r

j

i

fin

56

In ro u ión l

AUTOEVALUACIÓN 1 Realizare el correspondiente flujograma de estos seudocódigo Obtener el factorial del un número e imprimirlo. (El factorial es el resultado que se obtiene al multiplicar un # por todos sus anteriores) 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

2 Construya el flujograma y seudocódigo del siguiente ejercicio: Ingresar 80 nombres con sus sueldos, descuentos, calcular sueldo final., preguntar si el sueldo final es > 500 obtener el 15% del sueldo total, imprimir los resultados .

3 ¿Puede existir un contador automático donde el valor inicial sea mayor al valor final? Mencione dos ejemplos prácticos 4 Elabore mediante un contador automático el pseudocódigo y flujo para obtener la tabla de multiplicar de un número ingresado por teclado Multiplicar hasta el número 12 5 Se requieren ingresar una lista de temperaturas en Farenheith y transformarlas a centígrados Elabore un flujo y su seudocódigo 6 Corrija los siguientes flujogramas e incluya el seudocódigo 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).

Lcdo. O ar Pérez

57







u v v w v v uu t s  x

rogr m ión

y €    

‘•ƒ“‘† ’ ƒ •ƒ ‘„‡ˆ ‡ƒ† •ƒ“ƒd ƒ„ ‘†ƒ˜— ƒ † ˜ † ’˜ ‡ g ‡ ‘ †‡•ƒ“ƒ •ƒ ™ ‘„‡ “ƒ †‘ ’ ƒ•ƒ† – ƒ• ‘ •‡† ƒ ˜ ‡ ‰“ƒ ƒ ƒ• ” “‡†ƒ ’‘ ‡ f e ƒ ‡ •‘“ †‘ ‡d ‰ †‘ ’ ‡“ ’ ‰˜ ƒ• ™ ‘†ƒ˜— ƒ ‡•ƒ† – ƒ• ƒ„‘„ ” “‡†ƒ ’‘ ‡‰ †‡ˆ ‡ƒ† ƒ…ƒ„ ƒ ‚
7. i t t . li i i li l i i j t li i t i t l i . C t l lti li /* i l l

Lcdo. Omar Pérez

Introducción a la Programación

58

Introducción a la Programación

o v y {k o y qi j s i nm lkji z n llok o lnjikit lij iy xnwnl vo q u i tijil s i nr nil iqp o nm lkji h
8. i i l . li l t l j i ij i

l

9. C l l el salari net de un trabajador en funci n del número de horas trabajadas, precio de la hora de trabajo y considerando unos descuentos fijos al sueldo bruto en concepto de impuestos (20 por 100).

Pseudocódigo Inicio {cálculo salario neto} leer nombre, horas, precio_hora salario_bruto horas * precio impuestos 0.20 * salario_bruto salario_neto salario_bruto_impuestos escribir nombre, salario_bruto, salario_neto_bruto, salario_neto Fin
Diagrama de flujo ± 1er. Ejemplo

Lcdo. Omar Pérez

59



€

€

 | ~} |

In ro u ión l

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], Estudiante1[15], Estudiante2[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)
Lcdo. O ar Pérez

60

ˆ

ˆ

ˆ

ˆ

ˆ

„ … … † … … „„ ƒ ‚ ‡ ˆ

rogr m ión

ˆ

Asignatura2[10], Estudiante3[15];

In ro u ión l

Escribir("Digite Nombre estudiante 2: ") Leer(Estudiante2) Escribir("Digite Nombre estudiante 3: ") Leer(Estudiante3) //A continuación se pedirá digitar las 3 * 2 = 6 calificaciones Escribir("Digite Calificaciones de ", Estudiante1, ":") Escribir("En la asignatura de ", Asignatura1, ": ") Leer(Est1Asig1) Escribir("En la asignatura de ", Asignatura2, ": ") Leer(Est1Asig2) Escribir("Digite Calificaciones de ", Estudiante2 ": ") Escribir("En la asignatura de ", Asignatura1, ": ") Leer(Est2Asig1) Escribir("En la asignatura de ", Asignatura2, ": ") Leer(Est2Asig2) Escribir("Digite Calificaciones de ", Estudiante3, ": ") Escribir("En la asignatura de ", Asignatura1, ": ") Leer(Est3Asig1) Escribir("En la asignatura de ", Asignatura2, ": ") Leer(Est3Asig2) //A continuación los cálculos necesarios PromedioEstudiante1 = (Est1Asig1 + Est1Asig2) / 2 PromedioEstudiante2 = (Est2Asig1 + Est2Asig2) / 2 PromedioEstudiante3 = (Est3Asig1 + Est3Asig2) / 2 PromedioAsignatura1 = (Est1Asig1 + Est2Asig1 + Est3Asig1) / 3 PromedioAsignatura2 = (Est1Asig2 + Est2Asig2 + Est3Asig2) / 3 Escribir("Promedio estudiantes en ", Asignatura1, "=", PromedioAsignatura1) Escribir("Promedio estudiantes en ", Asignatura2, "=", PromedioAsignatura2) Escribir("Promedio ", Estudiante1, " = ", PromedioEstudiante1) Escribir("Promedio ", Estudiante2, " = ", PromedioEstudiante2) Escribir("Promedio ", Estudiante3, " = ", PromedioEstudiante3) FIN.

11 En unas elecciones se presentan tres candidatos a continuación se presenta algoritmo para calcular estadísticas elementales de la elección Se tienen en cuenta los votos en blanco y la población electoral total
INICIO Constante REAL TotalCensoElectoral = 50000 CARACTER Candidato1[15], Candidato2[15], Candidato3[15] REAL VotosCandidato1, VotosCandidato2, VotosCandidato3, VotosEnBlanco, TotalVotosEleccion, PorcentajeCandidato1,PorcentajeCandidato2, PorcentajeCandidato3, PorcentajeVotosEnBlanco,
Lcdo. O ar Pérez

61







‹ Œ Œ  Œ Œ ‹‹ Š ‰ Ž 

rogr m ión

In ro u ión l

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.

Lcdo. O ar Pérez

’ “ “ ” “ “ ’’ ‘  •

rogr m ión

62

In ro u ión l

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 } 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.

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

Lcdo. O ar Pérez

˜ ™ ™ š ™ ™ ˜˜ — – ›

rogr m ión

LAZOS DE REPETICIÓN INDEFINIDOS (DO WHILE Y WHILE)

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

63

In ro u ión l

Lcdo. O ar Pérez

ž Ÿ Ÿ   Ÿ Ÿ žž  œ ¡

rogr m ión

64

In ro u ión l

Lcdo. O ar Pérez

¤ ¥ ¥ ¦ ¥ ¥ ¤¤ £ ¢
r r r

rogr m ión

U IDAD II I TRODUCCIÓ A LENGUAJE C

³SÓLO ALCANZA LA GRANDEZA QUIEN CUIDA DE LOS PEQUEÑOS DETALLES ´

Familiarizarnos son el lenguaje C y sus fundamentos Conocer las herramientas básicas del compilador Borland C++ 5.0 Elaborar programas básicos en C

§

65

In ro u ión l

Este fue creado por el año 1972, mientras se desarrollaba el sistema operativo UNIX, debido a que aparecieron varias versiones con diferencias que no se lograron ponerse de acuerdo, el ANSI (Instituto de Estándares Nacional Americano) al finalizar 1990 establece una implementación sobre la cual basarse. En un principio fue utilizado para programar sistemas pero gracias a su potencia, portabilidad, eficiencia y flexibilidad pronto fue utilizado en cualquier tipo de tareas como uno de los principales lenguajes de alto nivel. 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 co excesivas n 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. Para generar un programa requerimos tener instalado en su computador un compilador describamos brevemente que son y los principales de ellos:

Compiladores de C
Un compilador es un programa que convierte nuestro código fuente en un programa ejecutable. El ordenador trabaja con 0 y 1. Si escribiéramos un programa en el lenguaje del ordenador nos volveríamos locos, puesto que no es un lenguaje natural para nosotros. Para eso están lenguajes como el C. Nos permiten escribir un programa de manera que sea fácil entenderlo por una persona (el código fuente). Luego es el compilador el que se encarga de convertirlo al complicado idioma de un ordenador. En la práctica a la hora de crear un programa nosotros escribimos el código fuente, en nuestro caso en C, que normalmente será un archivo de texto normal y co rriente que contiene las instrucciones de nuestro programa. Luego se lo pasamos al compilador y este se encarga de convertirlo en un programa. 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
El compilador en sí mismo sólo es un programa que traduce nuestro código fuente y lo convierte en un ejecutable. Para escribir nuestros programas necesitamos un editor. La mayoría de los compiladores al instalarse incorporan ya un editor; es el caso de los conocidos Turbo C, Borland C, Visual C++,... Pero otros no lo traen por defecto. No debemos confundir por tanto el editor con el compilador. Estos editores suelen tener unas características que nos facilitan mucho el trabajo: permiten compilar y ejecutar el programa directamente, depurarlo (corregir errores), gestionar complejos proyectos,... 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
Lcdo. O ar Pérez

ª « « ¬ « « ªª © ¨ ­

rogr m ión

LENGUAJE C

HISTORIA Y DIFERENCIA ENTRE C Y C++

66

In ro u ión l

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 Se puede ingresar mediante MI PC o el Explorador con los siguientes pasos: 1. Clic en la unidad donde está almacenada la carpeta TC (Generalmente C:) 2. Seleccione la carpeta INCLUDE 3. Ubicar la carpeta BIN 4. Ubicar el archivo tc.exe y clic Aparecerá la ventana principal de C++ con sus respectivos menús

Lcdo. O ar Pérez

° ± ± ² ± ± °° ¯ ® ³

rogr m ión

INSTALACIÓN DEL COMPILADOR DE C

67

In ro u ión l

Se presiona CTRL + F9 para que funcione o corra el programa La barra de menú en la parte superior de la pantalla es la entrada para los menús. 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.

Tabla 1: Se muestra el significa de ciertos términos 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. Archivo: De forma sencilla podemos decir que un archivo es como un "almacén". En su interior se puede almacenar instrucciones especiales para el ordenador o simplemente algo que el usuario desee guardar. Existen archivos de diferentes naturalezas. Estas naturalezas se ven reflejadas en la extensión del archivo. Por ejemplo un archivo que tenga
Lcdo. O ar Pérez

¶ · · ¸ · · ¶¶ µ ´ ¹

rogr m ión

IDE del lenguaje Borland C++ versión 5.0

Código Objeto: Es el conjunto de instrucciones obtenidas al compilar el código fuente. Compilación: Es la actividad de traducir las instrucciones contenidas en un archivo fuente, en instrucciones máquina.

68

In ro u ión l

extensión JPG significaría que dicho archivo almacena una imagen y sí la extensión fuera EXE eso significaría que dicho archivo almacena instrucciones para el ordenador.

GUI: Es el acrónimo de Graphic User Archivo fuente: Es aquel archivo que contiene Interface (Interfaz Gráfica de Usuario). La GUI el código fuente. se compone de botones, barras de deslizamiento, menus, etc. Imagen 3: Se indica los elementos de ciertos elementos de la GUI de Borland C++

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.

Lcdo. O ar Pérez

¼ ½ ½ ¾ ½ ½ ¼¼ » º ¿

rogr m ión

Consola: En los años 70' existían lo que se llamaban consolas. Estas eran las pantallas oscuras que aparecían al arrancar el ordenador.

Imagen 4: Se muestra una acción (hacer click en Text Edit) con el mouse

69

In ro u ión l

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.

ASCII (léase "as-ki"): American Standard Code for Information Interchange (Código Americano para el intercambio de información). ANSI: American National Standards Institute (Instituto Nacional Estadounidense de Estándares). C: Es un lenguaje de Programación muy famoso en el mundo.

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.

Lcdo. O ar Pérez

Â Ã Ã Ä Ã Ã Â Á À Å

rogr m ión

Imagen 5: Se muestra el nombre de los principales elementos de la IDE Depurar: Corregir un error. Icono: Imágen de dimensiones pequeñas que representa a un programa u objeto cualquiera. IDE: Integrated Development Environment (Entorno Integrado de Desarrollo). Versión: Es un indicador de la evolución (actualización) de un programa. Este generalmente se representa por un numero que acompaña al nombre de un programa.

70

In ro u ión l

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

En Imagen 7 se ve el programa ejecutable. Podemos apreciar que esta aplicación tiene el nombre de Programa 1 y una extensión EXE.

Comentarios y documentación en Borland C++

Lcdo. O ar Pérez

È É É Ê É É ÈÈ Ç Æ Ë

rogr m ión

Imagen 6

Imagen 7: Se ve la imagen de una consola mostrando mensajes

71

In ro u ión l

Comentarios internos
Estos comentarios se hacen en el código fuente. La finalidad de usar estos comentarios es para hacer más comprensible al código fuente. En Borland C++ los comentarios son de una sola línea o de varias líneas. Estos comentarios podrán en cualquier parte del código ya que serán ignorados por el compilador.

Para poder elaborar un manual de un programa se necesita conocer muy bien al programa. No es conveniente desarrollar un manual muy detallado ya que se puede cansar demasiado al Para comentarios de una sola línea se usará: // propietario del programa. Esto es por que las personas no están acostumbrados a leer o es Para comentarios de varias líneas se usará: /**/ que simplemente les aburre demasiado.

Programa 2
Desarrollar un programa que muestre un mensaje en pantalla y espere hasta terminar de leerlo. El mensaje es del gusto del usuario.

Codificación en Borland C++
//Todo lo escrito detrás de las dos barras serán ignoradas

En él código fuente se ve el uso de comentarios de una y de varias líneas. Se incluye la bibioteca conio por que dentro de ella se encuentra la rutina getch. Sí no se usaría esta /*El compilador ignora los comentarios. bibioteca no podríamos usar la función getch. La bibioteca iostream contiene al objeto cout. Recuerde: Los comentarios pueden ir en Se ve a la función principal main. El símbolo { cualquier y } indica el inicio y el fin respectivamente del cuerpo de main. Todo tiene un inicio y un fin. parte del código.*/ Por qué pensó que un programa no!. Debe recordar que toda función tiene un cuerpo. #include<conio.h> //Se incluye (include) la Luego se observa una instrucción. La biblioteca conio 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<<"sera mostrado en la pantalla."<<endl; cout<<endl; cout<<"Presione una tecla para finalizar"; getch(); //Espera hasta que se presione una

Lcdo. O ar Pérez

Î Ï Ï Ð Ï Ï ÎÎ Í Ì Ñ

rogr m ión

Documentación
La documentación hace referencia a los manuales de uso que puede tener una programa ejecutable.

Explicación

72

In ro u ión l

tecla } 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:

En primera instancia nos muestra el estado de la compilación.

"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.

Lcdo. O ar Pérez

Ô Õ Õ Ö Õ Õ ÔÔ Ó Ò ×

rogr m ión

Imagen 8

73

In ro u ión l

Esta ventana será mostrada cada vez que compilemos nuestro código fuente. El programa compilado se encuentra en un determinado directorio o carpeta del disco duro de nuestro ordenador. Pero si te dá pereza buscarlo puedes presionar la combinación de teclas Ctrl + F9 que dará la orden de compilar y luego ejecutar la aplicación recién creada por compilador. Abajo se muestra la imagen del programa que hemos creado.

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 y avisos en el código de un programa 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.

Lcdo. O ar Pérez

Ú Û Û Ü Û Û ÚÚ Ù Ø Ý

rogr m ión

Imagen 9

74

In ro u ión l

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á.

Depuración o corrección de los errores
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
Desarrollar un programa al gusto del usuario.

Código fuente con errores
#include<iostream.h> #include<conio.h> int main(int a) {

cout<<"Borland C++ tiene muchas libertades"; cout<<"Borland C++ tiene muchas libertades"; cout<<endl<<"pero es muy estricto en cuestiones"; cout<<" de sintaxis." //A esta instrucción le falta el ; getch; //A getch le falta () por ser una función return 10; return 10; } } Al tratar de compilar el código fuente de la izquierda no se podrá crear el programa ejecutable ya que este código contiene errores de sintaxis. La ventana de compilación aparece: cout<<endl<<" pero es muy estricto en cuestiones"; cout<<" de sintaxis."; getch();

Lcdo. O ar Pérez

à á á â á á àà ß Þ ã

rogr m ión

Código fuente sin errores
#include<iostream.h> #include<conio.h> int main() {

75

In ro u ión l

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:

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í:

Lcdo. O ar Pérez

æ ç ç è ç ç ææ å ä é

rogr m ión

Imagen 10

Imagen 11

Imagen 12

76

In ro u ión l

Se compone de varios elementos que en su orden general de construcción puede se el siguiente: 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: y int: permite almacenar datos numéricos enteros cuyo valor va entre el rango de -32768 y 32767. y float: guarda valores flotantes es decir con decimales, el rango que almacena es 3.4 x 10-38 y -3.4 x 10 -38. y 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. y 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. y bolean: presenta o almacena valores que solo corresponden a 0 o 1. y void: cuando no se desea devolver un valor su tamaño es de cero.

Lcdo. O ar Pérez

ì í í î í í ìì ë ê ï

rogr m ión

ESTRUCTURA GENERAL DE UN PROGRAMA C ++

77

In ro u ión l

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. Mencionemos además que el programa al iniciar y finalizar se encuentran ubicados llaves { }. Elaboremos ahora algunos programas básicos en este lenguaje:

PROGRAMA PARA DESPLEGAR UN MENSAJE
# incluye <stdio. h> # incluye <conio. h> void main ( ) { printf (³hola´); getch ( ); } Hemos elaborado un programa donde #include permite llamar a las bibliotecas. La primera biblioteca stdio h controla las funciones de entrada y salida como printf que permite presentar mensajes en pantalla. La segunda biblioteca conio h controla las funciones de consola, es decir de pantalla y la citamos porque en ella se ubica la función getch( ), que permite hacer una pausa hasta presionar una tecla; generalmente se la incluye al final de los programas en C para evitar que al finalizar se salte al compilador sin observar resultados. 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í:
Lcdo. O ar Pérez

ö

ö

ò ó ó ô ó ó òò ñ ð õ

rogr m ión

78

In ro u ión l

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:

Caracteres de control de línea
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); Ahora utilizare estas instrucciones en un programa observe

Realizar un programa para sumar 2 números
# include <stdio. h> # include <conio. h> main ( ) { int x, y, z; clrscr ( ); printf (³ingrese un número:´); scanf (³%i´ ,& x); printf (³ingrese un número:´); scanf (³%i´ ,& y); x = y + z; printf (³el resultado es: %i´, x) getch ( ); }

CONSTANTES Las constantes son aquellos datos que no pueden cambiar a lo largo de la ejecución de un programa.
#include <stdio.h>
Lcdo. O ar Pérez

ù ú ú û ú ú ùù ø ÷ ü

rogr m ión

printf(³ mensaje´);

79

In ro u ión l

rogr m ión

void main() { int radio, perimetro; radio = 20; perimetro = 2 * 3.1416 * radio; printf( "El perímetro es: %i", perimetro ); } radio y perímetro son variables, su valor puede cambiar a lo largo del programa. Sin embargo 20, 2 y 3.1416 son constantes, no hay manera de cambiarlas. El valor 3.1416 no cambia a lo largo del programa, ni entre ejecución y ejecución.

Constantes con nombre
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 c orrectos. 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. Estas constantes se definen de la manera siguiente:

#define nombre_de_la_constante
El ejemplo ya codificado es : #include <stdio.h>

#define PI

3.1416

void main() { int radio, perimetro; radio = 20; perimetro = 20 * PI * radio; printf( "El perímetro es: %i", perimetro ); } De esta forma cada vez que el compilador encuentre el nombre PI lo sustituirá por 3.1416. A una constante no se le puede dar un valor mientras se ejecuta, no se puede hacer PI = 20;. Sólo se le puede dar un valor con #define, y sólo una vez. Tampoco podemos usar el scanf para dar valores a una constante: #define CONSTANTE 14 void main() { ... scanf( "%i", CONSTANTE ); ...
Lcdo. O ar Pérez
¢

ÿ 

 

¡   

ÿÿ þ ý

valor_de_la_constante

80

} 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; precio = ( 4 * 25 * 100 ) * ( 1.16 ); printf( "El precio total es: %i", precio ); } Aunque escrito correctamente nos presenta dificultades de comprensión para hacerlo mas entendible podríamos codificarlo así: #include <stdio.h> #define CAJAS #define UNIDADES_POR_CAJA #define PRECIO_POR_UNIDAD #define IMPUESTOS 4 25 100 1.16

void main() { int precio; precio = ( CAJAS * UNIDADES_POR_CAJA * PRECIO_POR_UNIDAD ) * ( IMPUESTOS ); printf( "El precio total es: %i", precio ); } También podemos definir una constante usando el valor de otras. Por supuesto las otras tienen que estar definidas antes: #include <stdio.h> #define CAJAS #define UNIDADES_POR_CAJA #define PRECIO_POR_UNIDAD #define PRECIO_POR_CAJA PRECIO_POR_UNIDAD #define IMPUESTOS void main() { int precio; 4 25 100

Lcdo. O ar Pérez

¥

§

In ro u ión l
¥¥ £

rogr m ión

¦ ¦

¦ ¦

¨

¤

UNIDADES_POR_CAJA *
1.16

81

precio = ( CAJAS * PRECIO_POR_CAJA ) * ( IMPUESTOS ); printf( "El precio total es: %i", 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.

Programa para calcular el área de un círculo
#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; .
Lcdo. O ar Pérez   

In ro u ión l 
©

rogr m ión 

 

 

82

} 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;

Operaciones entre tipos básicos
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): = = (igualdad, utilizando 2 signos de ³igual´) < (Menor) > (Mayor) <= (menor o igual... les queda como ejercicio imaginarse el mayor o igual) !=(distinto) 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)

Modificadores de entrada y salida de datos
%c %d %u %x %o %f %e %s %% %c %d %u %x %o %f %e %s %% un carácter número entero número entero sin signo entero sin s igno en base hexadecimal número sin signo en base octal número real con signo en notación científica en e 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 \.

Secuencias de escape \n
\r \t \a

Lcdo. O ar Pérez  

In ro u ión l 


rogr m ión 

 

 

Descripción Esta secuencia ordena a la pantalla ubicar el cursor al principio del renglón siguiente.
Ubica el cursor al inicio del renglón en el que estaba. Desplaza el cursor una distancia igual a una tabulación. Enciende un pitido del sonido del sistema.

83

###BOT_TEXT###quot; \

EJERCICIOS PROPUESTOS 1. Utilizando pseudocódigos, flujogramas y la codificación correspondiente realice dos ejemplos de codificación con las sentencias revisadas que permitan solucionar problemas novedosos. 2. En cada uno de los ejercicios resueltos señale una instrucción en c ++ que le resulte confusa o no conozca. Consulte en la ayuda del compilador, traduzca y escriba lo que consultó. 3. Elabore Organizadores gráficos para cada sentencia.

Lcdo. O ar Pérez

#

%

In ro u ión l
## !

rogr m ión

$ $

$ $

&

"

Muestra un apostrofe en la pantalla. Muestra una comilla en la pantalla. Muestra una barra invertida en la pantalla.

84

SENTENCIAS DE SELECCIÓN Y REPETICIÓN EN C++
COMANDO IF, ELSE
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.
# include <stdio. h> # include <conio. h> void main ( ) { clrscr ( );
Lcdo. O ar Pérez
2

)

1

In ro u ión l
)) '

rogr m ión

0 0

0 0

(

85

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.
# include <stdio. h> # include <conio. h> void main ( ) { clrscr ( ); flota A, B, X; int op; gotoxy (4,6); printf (³ingrese dos números´); scanf (³%f %f ´, &A, &B); gotoxy (4,8); printf (³Ingresar 1 para sumar y 2 para restar´); scanf (³%i´, & op); if (op== 1) { X = A + B; printf (³el resultado es: %f´, X´); getch ( ); } else { X = A - B; printf (³el resultado es: %f´, X); getch ( ); } }

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() {
Lcdo. O ar Pérez
8

5

7

In ro u ión l
55 3

rogr m ión

6 6

6 6

4

86

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"); }

Lcdo. O ar Pérez

A

C

In ro u ión l
AA 9

rogr m ión

B B

B B

D

@

87

Notas sobre las condiciones
Las condiciones de las sentencias se evalúan al ejecutarse. De esta evaluación obtenemos un número. Las condiciones son falsas si este número es igual a cero. Son verdaderas si es distinto de cero (los números negativos son verdaderos). Ahí van unos ejemplos: a=2; b=3 If(a ==b)« Aquí a==b sería igual a O, luego falso. If (O)« Como la condición es igual a cero, es falsa. If (1)« Como la condición es distinta de cero, es verdadera. If (-100)« Como la condición es distinta de cero, es verdadera. Supongamos que queremos mostrar un mensaje si una variable es distinta de cero: It ( a!=O) printf( ³Hola\n´); Esto sería redundante, bastaría con poner: If (a) printf (³Hola\n´); Esto sólo vale si queremos comprobar que es distinto de cero. Si queremos comprobar queesiguala3: It (a == 3) printf (³Es tres\n´); Como vemos las condiciones no sólo están limitadas a comparaciones, se puede poner cualquier función que devuelva un valor. Dependiendo de sí este val r es cero o no, la condición será o falsa o verdadera. También podemos probar varias condiciones en una sola usando && (AND), ll (OR). EJEMPLOSDE && (AND) If (a==3 && b==2) printf (³Hola/n´), /*Se cumple si a es Y b es dos*/ If (>10 && a<100) printf (³Hola/n´), /* Se cumple si a es mayor Que 10 Y menor que 100*/ If (a==10 && b<300) printf (Hola/n´), /* Se cumple si a es igual a 10 Y b es menor que 100*/ If (a<100ll b<200) printf (³Hola/n´); /* Se cumple si a menor que 100 O b mayor que 200*/ Se pueden poner más de dos condiciones: If (a>10 && a<100 && b>200 && b<5009 /* Se deben cumplir las cuatro Condiciones*/ Esto se cumple si a está entre 1º y 100 y b esta _entre 200 y 500. También se pueden agrupar mediante paréntesis varias condiciones: If ((a>10 && a<100) ll (b>200 && b<500)) Esta condición se leería como sigue: Si a es mayor que 10 y menor que 100 Si b es mayor que 200 y menor que 500 Es decir que si se cumple el primer paréntesis o si se cumple el segundo la condición es cierta.

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.

Lcdo. O ar Pérez

G

I

In ro u ión l
GG E

rogr m ión

H H

H H

P

F

88

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)

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); if (num==1) printf (³es un 1/n´); else if (num==2) printf (³es un ³/n´) else if (num==3) printf (³es un 3/n´); else printf (³no era ni 1, ni 2, ni 3/n´); }
Lcdo. O ar Pérez
V

S

U

In ro u ión l
SS Q

rogr m ión

T T

T T

R

SWITCH

89

Ahora 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);
Lcdo. O ar Pérez
b

Y

a

In ro u ión l
YY W

rogr m ión

` `

` `

X

SENTENCIAS DE SALTO GOTO

90

goto linea3; línea3 */

printf ( ³línea 2\n´); línea3: /* esta es la etiqueta */ printf (³línea 3\n); } resultado: línea 1 línea 3 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

Lcdo. O ar Pérez

e

g

In ro u ión l
ee c

rogr m ión

f f

f f

h

d

/ le decimos al goto que busque la etiqueta

91

Realiza la acción de repetir proceso. Su sintaxis correcta es la siguiente: for (valor inicial; valor final; incr. o decr. ) { sentencias; } 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. Observemos el ejemplo en programación bajo el lenguaje C++ que permitirá presentar en la pantalla todos los números que van desde uno hasta cien. 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++)
Lcdo. O ar Pérez
t

q

s

In ro u ión l
qq i

rogr m ión

r r

r r

p

FOR

92

{ 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.

Realizar un programa que calcule la ³media geométrica´ de una lista de n números, utilizando la fórmula: Xmedia = [x1x2x3«xn]1/n
#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++) {
Lcdo. O ar Pérez
€

w

y

In ro u ión l
ww u

rogr m ión

x x

x x

v

93

cprintf("\n\r %i",m); } p=m^(1/r); gotoxy(26,8); printf(" resultado: %f",p); getch(); }

2. Realizar un programa que ingrese 40 estudiantes y despliegue el siguiente mensaje si las notas ingresadas son: 19o20 ³sobresaliente´ 16,17 o 18 ³muy buena´ 14 o 15 ³buena´ Menor o igual a 11 ³insuficiente
#include<stdio.h> #include<conio.h> void main () { clrscr (); int nota 1; for (1= 1; l<= 40; i++) { printf (³DIGITE NOTA´); scanf (´%i¶, &nota); 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;
Lcdo. O ar Pérez
† ‡

ƒ

…

In ro u ión l
ƒƒ 

rogr m ión

„ „

„ „

‚

94

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.

SENTENCIAS DE REPETICIÓN INDEFINIDAS
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´);
Lcdo. O ar Pérez
“



’

In ro u ión l
 ˆ

rogr m ión

‘ ‘

‘ ‘

‰

95

scanf (´%i´, &cifra); num =0 while (cifra>O) { r= (cifra % 10); num=num*10+r; cifra=(cifra/1 O); } printf (³%i´, &num); getch (); } Conforme se puede observar en la línea de programación donde consta el while todo el proceso para invertir el número no se ejecuta si la cifra ingresada en cero.

Realizar un programa que calcule la masa del aire de un neumático de automóvil utilizando la fórmula, el programa continua hasta que el usuario ingrese la n (no): PV = 0.37 (T + 460) #include<stdio .h> #include<conio .h> void main() { char p,v,m,t; op= s ; while(op== s ) { clrscr(); printf( Ingrese la presión del neumático: ) scanf(³%f´, &p); printf(´Ingrese el volumen del neumático: ³); scanf(³ %f´ ,&v); printf(³Ingrese la temperatura del neumático:´); scanf(³%f´, &t); m=(p*v)/(O.3 7*(t+460));; printf(³La masa del aire del neumático es: %f´,m); getchQ; printf(³\n\rDesea Continuar (s/n): ³); scanf( %s ,&op); getch (); } 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 );
Lcdo. O ar Pérez
™ d d d d d d

–

˜

In ro u ión l
–– ”

rogr m ión

— —

— —

•

96

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(); }

Lcdo. O ar Pérez

g

i

In ro u ión l
gg e

rogr m ión

h h

h h

j

f

97

‡ Ñ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

Lcdo. O ar Pérez

m

o

In ro u ión l
mm k

rogr m ión

n n

n n

p

l

BIBLIOGRAFIA Y NETGRAFÍA

98

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 ................................ .... Error! Bookmark not defined. Comentarios y documentación en Borland C++ ................................ .................. 71 Errores y avisos en el código de un programa ................................ ..................... 74 ESTRUCTURA GENERAL DE UN PROGRAMA C ++ ................................ ........... 77 CONSTANTES ................................ ................................ ................................ ...... 79 Constantes con nombre ................................ ................................ ........................... 80 EJERCICIOS PROPUESTOS ................................ ................................ ............. 83 SENTENCIAS DE SELECCIÓN Y REPETICIÓN EN C++ ................................ ...... 85 ................................ ................................ ................................ ................................ ... 86 SWITCH ................................ ................................ ................................ .................... 89 SENTENCIAS DE SALTO GOTO ................................ ................................ ............ 90 FOR ................................ ................................ ................................ ............................ 92 SENTENCIAS DE REPETICIÓN INDEFINIDAS ................................ ..................... 95 BIBLIOGRAFIA Y NETGRAFÍA ................................ ................................ ............. 98

Lcdo. O ar Pérez

s

u

In ro u ión l
ss q

rogr m ión

t t

t t

v

r

99

Related Interests

###BOT_TEXT###quot; \

EJERCICIOS PROPUESTOS 1. Utilizando pseudocódigos, flujogramas y la codificación correspondiente realice dos ejemplos de codificación con las sentencias revisadas que permitan solucionar problemas novedosos. 2. En cada uno de los ejercicios resueltos señale una instrucción en c ++ que le resulte confusa o no conozca. Consulte en la ayuda del compilador, traduzca y escriba lo que consultó. 3. Elabore Organizadores gráficos para cada sentencia.

Lcdo. O ar Pérez

#

%

In ro u ión l
## !

rogr m ión

$ $

$ $

&

"

Muestra un apostrofe en la pantalla. Muestra una comilla en la pantalla. Muestra una barra invertida en la pantalla.

84

SENTENCIAS DE SELECCIÓN Y REPETICIÓN EN C++
COMANDO IF, ELSE
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.
# include <stdio. h> # include <conio. h> void main ( ) { clrscr ( );
Lcdo. O ar Pérez
2

)

1

In ro u ión l
)) '

rogr m ión

0 0

0 0

(

85

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.
# include <stdio. h> # include <conio. h> void main ( ) { clrscr ( ); flota A, B, X; int op; gotoxy (4,6); printf (³ingrese dos números´); scanf (³%f %f ´, &A, &B); gotoxy (4,8); printf (³Ingresar 1 para sumar y 2 para restar´); scanf (³%i´, & op); if (op== 1) { X = A + B; printf (³el resultado es: %f´, X´); getch ( ); } else { X = A - B; printf (³el resultado es: %f´, X); getch ( ); } }

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() {
Lcdo. O ar Pérez
8

5

7

In ro u ión l
55 3

rogr m ión

6 6

6 6

4

86

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"); }

Lcdo. O ar Pérez

A

C

In ro u ión l
AA 9

rogr m ión

B B

B B

D

@

87

Notas sobre las condiciones
Las condiciones de las sentencias se evalúan al ejecutarse. De esta evaluación obtenemos un número. Las condiciones son falsas si este número es igual a cero. Son verdaderas si es distinto de cero (los números negativos son verdaderos). Ahí van unos ejemplos: a=2; b=3 If(a ==b)« Aquí a==b sería igual a O, luego falso. If (O)« Como la condición es igual a cero, es falsa. If (1)« Como la condición es distinta de cero, es verdadera. If (-100)« Como la condición es distinta de cero, es verdadera. Supongamos que queremos mostrar un mensaje si una variable es distinta de cero: It ( a!=O) printf( ³Hola\n´); Esto sería redundante, bastaría con poner: If (a) printf (³Hola\n´); Esto sólo vale si queremos comprobar que es distinto de cero. Si queremos comprobar queesiguala3: It (a == 3) printf (³Es tres\n´); Como vemos las condiciones no sólo están limitadas a comparaciones, se puede poner cualquier función que devuelva un valor. Dependiendo de sí este val r es cero o no, la condición será o falsa o verdadera. También podemos probar varias condiciones en una sola usando && (AND), ll (OR). EJEMPLOSDE && (AND) If (a==3 && b==2) printf (³Hola/n´), /*Se cumple si a es Y b es dos*/ If (>10 && a<100) printf (³Hola/n´), /* Se cumple si a es mayor Que 10 Y menor que 100*/ If (a==10 && b<300) printf (Hola/n´), /* Se cumple si a es igual a 10 Y b es menor que 100*/ If (a<100ll b<200) printf (³Hola/n´); /* Se cumple si a menor que 100 O b mayor que 200*/ Se pueden poner más de dos condiciones: If (a>10 && a<100 && b>200 && b<5009 /* Se deben cumplir las cuatro Condiciones*/ Esto se cumple si a está entre 1º y 100 y b esta _entre 200 y 500. También se pueden agrupar mediante paréntesis varias condiciones: If ((a>10 && a<100) ll (b>200 && b<500)) Esta condición se leería como sigue: Si a es mayor que 10 y menor que 100 Si b es mayor que 200 y menor que 500 Es decir que si se cumple el primer paréntesis o si se cumple el segundo la condición es cierta.

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.

Lcdo. O ar Pérez

G

I

In ro u ión l
GG E

rogr m ión

H H

H H

P

F

88

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)

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); if (num==1) printf (³es un 1/n´); else if (num==2) printf (³es un ³/n´) else if (num==3) printf (³es un 3/n´); else printf (³no era ni 1, ni 2, ni 3/n´); }
Lcdo. O ar Pérez
V

S

U

In ro u ión l
SS Q

rogr m ión

T T

T T

R

SWITCH

89

Ahora 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);
Lcdo. O ar Pérez
b

Y

a

In ro u ión l
YY W

rogr m ión

` `

` `

X

SENTENCIAS DE SALTO GOTO

90

goto linea3; línea3 */

printf ( ³línea 2\n´); línea3: /* esta es la etiqueta */ printf (³línea 3\n); } resultado: línea 1 línea 3 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

Lcdo. O ar Pérez

e

g

In ro u ión l
ee c

rogr m ión

f f

f f

h

d

/ le decimos al goto que busque la etiqueta

91

Realiza la acción de repetir proceso. Su sintaxis correcta es la siguiente: for (valor inicial; valor final; incr. o decr. ) { sentencias; } 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. Observemos el ejemplo en programación bajo el lenguaje C++ que permitirá presentar en la pantalla todos los números que van desde uno hasta cien. 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++)
Lcdo. O ar Pérez
t

q

s

In ro u ión l
qq i

rogr m ión

r r

r r

p

FOR

92

{ 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.

Realizar un programa que calcule la ³media geométrica´ de una lista de n números, utilizando la fórmula: Xmedia = [x1x2x3«xn]1/n
#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++) {
Lcdo. O ar Pérez
€

w

y

In ro u ión l
ww u

rogr m ión

x x

x x

v

93

cprintf("\n\r %i",m); } p=m^(1/r); gotoxy(26,8); printf(" resultado: %f",p); getch(); }

2. Realizar un programa que ingrese 40 estudiantes y despliegue el siguiente mensaje si las notas ingresadas son: 19o20 ³sobresaliente´ 16,17 o 18 ³muy buena´ 14 o 15 ³buena´ Menor o igual a 11 ³insuficiente
#include<stdio.h> #include<conio.h> void main () { clrscr (); int nota 1; for (1= 1; l<= 40; i++) { printf (³DIGITE NOTA´); scanf (´%i¶, &nota); 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;
Lcdo. O ar Pérez
† ‡

ƒ

…

In ro u ión l
ƒƒ 

rogr m ión

„ „

„ „

‚

94

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.

SENTENCIAS DE REPETICIÓN INDEFINIDAS
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´);
Lcdo. O ar Pérez
“



’

In ro u ión l
 ˆ

rogr m ión

‘ ‘

‘ ‘

‰

95

scanf (´%i´, &cifra); num =0 while (cifra>O) { r= (cifra % 10); num=num*10+r; cifra=(cifra/1 O); } printf (³%i´, &num); getch (); } Conforme se puede observar en la línea de programación donde consta el while todo el proceso para invertir el número no se ejecuta si la cifra ingresada en cero.

Realizar un programa que calcule la masa del aire de un neumático de automóvil utilizando la fórmula, el programa continua hasta que el usuario ingrese la n (no): PV = 0.37 (T + 460) #include<stdio .h> #include<conio .h> void main() { char p,v,m,t; op= s ; while(op== s ) { clrscr(); printf( Ingrese la presión del neumático: ) scanf(³%f´, &p); printf(´Ingrese el volumen del neumático: ³); scanf(³ %f´ ,&v); printf(³Ingrese la temperatura del neumático:´); scanf(³%f´, &t); m=(p*v)/(O.3 7*(t+460));; printf(³La masa del aire del neumático es: %f´,m); getchQ; printf(³\n\rDesea Continuar (s/n): ³); scanf( %s ,&op); getch (); } 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 );
Lcdo. O ar Pérez
™ d d d d d d

–

˜

In ro u ión l
–– ”

rogr m ión

— —

— —

•

96

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(); }

Lcdo. O ar Pérez

g

i

In ro u ión l
gg e

rogr m ión

h h

h h

j

f

97

‡ Ñ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

Lcdo. O ar Pérez

m

o

In ro u ión l
mm k

rogr m ión

n n

n n

p

l

BIBLIOGRAFIA Y NETGRAFÍA

98

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 ................................ .... Error! Bookmark not defined. Comentarios y documentación en Borland C++ ................................ .................. 71 Errores y avisos en el código de un programa ................................ ..................... 74 ESTRUCTURA GENERAL DE UN PROGRAMA C ++ ................................ ........... 77 CONSTANTES ................................ ................................ ................................ ...... 79 Constantes con nombre ................................ ................................ ........................... 80 EJERCICIOS PROPUESTOS ................................ ................................ ............. 83 SENTENCIAS DE SELECCIÓN Y REPETICIÓN EN C++ ................................ ...... 85 ................................ ................................ ................................ ................................ ... 86 SWITCH ................................ ................................ ................................ .................... 89 SENTENCIAS DE SALTO GOTO ................................ ................................ ............ 90 FOR ................................ ................................ ................................ ............................ 92 SENTENCIAS DE REPETICIÓN INDEFINIDAS ................................ ..................... 95 BIBLIOGRAFIA Y NETGRAFÍA ................................ ................................ ............. 98

Lcdo. O ar Pérez

s

u

In ro u ión l
ss q

rogr m ión

t t

t t

v

r

99

","doc_promotions_enabled":false,"static_promo_banner_cta_url":""},"eligible_for_exclusive_trial_roadblock":false,"eligible_for_seo_roadblock":false,"exclusive_free_trial_roadblock_props_path":"/doc-page/exclusive-free-trial-props/50408882","flashes":[],"footer_props":{"urls":{"about":"/about","press":"/press","blog":"http://literally.scribd.com/","careers":"/careers","contact":"/contact","plans_landing":"/subscribe","referrals":"/referrals?source=footer","giftcards":"/giftcards","faq":"/faq","accessibility":"/accessibility-policy","faq_paths":{"accounts":"https://support.scribd.com/hc/sections/202246346","announcements":"https://support.scribd.com/hc/sections/202246066","copyright":"https://support.scribd.com/hc/sections/202246086","downloading":"https://support.scribd.com/hc/articles/210135046","publishing":"https://support.scribd.com/hc/sections/202246366","reading":"https://support.scribd.com/hc/sections/202246406","selling":"https://support.scribd.com/hc/sections/202246326","store":"https://support.scribd.com/hc/sections/202246306","status":"https://support.scribd.com/hc/en-us/articles/360001202872","terms":"https://support.scribd.com/hc/sections/202246126","writing":"https://support.scribd.com/hc/sections/202246366","adchoices":"https://support.scribd.com/hc/articles/210129366","paid_features":"https://support.scribd.com/hc/sections/202246306","failed_uploads":"https://support.scribd.com/hc/en-us/articles/210134586-Troubleshooting-uploads-and-conversions","copyright_infringement":"https://support.scribd.com/hc/en-us/articles/210128946-DMCA-copyright-infringement-takedown-notification-policy","end_user_license":"https://support.scribd.com/hc/en-us/articles/210129486","terms_of_use":"https://support.scribd.com/hc/en-us/articles/210129326-General-Terms-of-Use"},"publishers":"/publishers","static_terms":"/terms","static_privacy":"/privacy","copyright":"/copyright","ios_app":"https://itunes.apple.com/us/app/scribd-worlds-largest-online/id542557212?mt=8&uo=4&at=11lGEE","android_app":"https://play.google.com/store/apps/details?id=com.scribd.app.reader0&hl=en","books":"/books","sitemap":"/directory"}},"global_nav_props":{"header_props":{"logo_src":"/images/landing/home2_landing/scribd_logo_horiz_small.svg","root_url":"https://www.scribd.com/","search_term":"","small_logo_src":"/images/logos/scribd_s_logo.png","uploads_url":"/upload-document","search_props":{"redirect_to_app":true,"search_url":"/search","query":"","search_page":false}},"user_menu_props":null,"sidebar_props":{"urls":{"bestsellers":"https://www.scribd.com/bestsellers","home":"https://www.scribd.com/","saved":"/saved","subscribe":"/archive/pmp_checkout?doc=50408882&metadata=%7B%22context%22%3A%22pmp%22%2C%22action%22%3A%22start_trial%22%2C%22logged_in%22%3Afalse%2C%22platform%22%3A%22web%22%7D","top_charts":"/bestsellers","upload":"https://www.scribd.com/upload-document"},"categories":{"book":{"icon":"icon-ic_book","icon_filled":"icon-ic_book_fill","url":"https://www.scribd.com/books","name":"Books","type":"book"},"news":{"icon":"icon-ic_articles","icon_filled":"icon-ic_articles_fill","url":"https://www.scribd.com/news","name":"News","type":"news"},"audiobook":{"icon":"icon-ic_audiobook","icon_filled":"icon-ic_audiobook_fill","url":"https://www.scribd.com/audiobooks","name":"Audiobooks","type":"audiobook"},"magazine":{"icon":"icon-ic_magazine","icon_filled":"icon-ic_magazine_fill","url":"https://www.scribd.com/magazines","name":"Magazines","type":"magazine"},"document":{"icon":"icon-ic_document","icon_filled":"icon-ic_document_fill","url":"https://www.scribd.com/docs","name":"Documents","type":"document"},"sheet_music":{"icon":"icon-ic_songbook","icon_filled":"icon-ic_songbook_fill","url":"https://www.scribd.com/sheetmusic","name":"Sheet Music","type":"sheet_music"}},"categories_array":["mixed","book","audiobook","magazine","news","document","sheet_music"],"selected_content_type":"mixed","username":"","search_overlay_props":{"search_input_props":{"focused":false,"keep_suggestions_on_blur":false}}}},"recommenders":{"related_titles_recommender":{"ids":[215102774,103274764,217160299,201114660,58842495,163323786,382555582,64122474,387552936,52503583,133181512,296345582,232525232,245401451,33412153,350859944,341808869,4088973,319054375,275793823,60587947,214501242,96887507,291057553,176141995,66125519,237314946,375551644,104361190,248960167,61979665,61681968,62031583,61632310,46754692,52705847],"title_link":null,"title":null,"track_opts":{"compilation_id":"WOcU2s2NLrVFiYnyeisS+x7lCuQ=","module_id":"4n3bSwv1gWObYP4Io+LBQ86qfSY=","widget_name":"right sidebar","track_id":"flattened_recommender"}},"footer_recommenders":{"recommenders":[{"ids":[215102774,103274764,217160299,201114660,58842495,163323786,382555582,64122474,387552936,52503583,133181512,296345582,232525232,245401451,33412153,350859944,341808869,4088973,319054375,275793823,60587947,214501242,96887507,291057553,176141995,66125519,237314946,375551644,104361190,248960167],"title_link":null,"title":"Documents Similar To Modulo PROGR I Semestre 2010-2011","track_opts":{"compilation_id":"WOcU2s2NLrVFiYnyeisS+x7lCuQ=","module_id":"KU8j/hB6azhI+aUXMH8VTS7kzDc=","widget_name":"document_carousel"}},{"ids":[61979665,61681968,62031583,61632310,46754692,52705847],"title_link":null,"title":"More From hamioperezn","track_opts":{"compilation_id":"WOcU2s2NLrVFiYnyeisS+x7lCuQ=","module_id":"pEnrxFIJpaapDZGgOGvlXgPS0O4=","widget_name":"document_carousel"}}]},"seo_new_docs_recommenders":{"recommenders":[]},"documents":{"4088973":{"type":"document","id":4088973,"thumb_url":"https://imgv2-1-f.scribdassets.com/img/document/4088973/108x144/6fb3cd99dc/1370902464?v=1","retina_thumb_url":"https://imgv2-1-f.scribdassets.com/img/document/4088973/216x288/4b0fd19a1b/1370902464?v=1","title":"manual de usuario web","short_title":"manual de usuario web","author":"elkin09","tracking":{"object_type":"document","object_id":4088973,"track":"flattened_recommender","doc_uuid":"XCaPj9RL4//eGx4ln+eQAVCRyt4="},"url":"https://www.scribd.com/document/4088973/manual-de-usuario-web"},"33412153":{"type":"document","id":33412153,"thumb_url":"https://imgv2-2-f.scribdassets.com/img/document/33412153/108x144/7af3d4b3d5/1373522529?v=1","retina_thumb_url":"https://imgv2-2-f.scribdassets.com/img/document/33412153/216x288/ab48cba2a8/1373522529?v=1","title":"3er. año Habilidades Informática","short_title":"3er. año Habilidades Informática","author":"espacionewlands","tracking":{"object_type":"document","object_id":33412153,"track":"flattened_recommender","doc_uuid":"76iuDtomAOs2goTRoylVB/RFs4s="},"url":"https://www.scribd.com/document/33412153/3er-ano-Habilidades-Informatica"},"46754692":{"type":"document","id":46754692,"thumb_url":"https://imgv2-1-f.scribdassets.com/img/document/46754692/108x144/14163747e0/1383786022?v=1","retina_thumb_url":"https://imgv2-2-f.scribdassets.com/img/document/46754692/216x288/10df2cebdf/1383786022?v=1","title":"Proyecto Grupod Hamilton Perez","short_title":"Proyecto Grupod Hamilton Perez","author":"hamioperezn","tracking":{"object_type":"document","object_id":46754692,"track":"flattened_recommender","doc_uuid":"Z8uTCWSUTGLIk8+7AznDbVkd9E8="},"url":"https://www.scribd.com/doc/46754692/Proyecto-Grupod-Hamilton-Perez"},"52503583":{"type":"document","id":52503583,"thumb_url":"https://imgv2-1-f.scribdassets.com/img/document/52503583/108x144/ebcbcd3c94/1302195380?v=1","retina_thumb_url":"https://imgv2-1-f.scribdassets.com/img/document/52503583/216x288/d6ef0a3fbb/1302195380?v=1","title":"Manual BIOS p4pm-102","short_title":"Manual BIOS p4pm-102","author":"jolaria79","tracking":{"object_type":"document","object_id":52503583,"track":"flattened_recommender","doc_uuid":"lt5458bYypQFqc6/JFDWZQwX050="},"url":"https://www.scribd.com/document/52503583/Manual-BIOS-p4pm-102"},"52705847":{"type":"document","id":52705847,"thumb_url":"https://imgv2-1-f.scribdassets.com/img/document/52705847/108x144/c47d423023/1312486600?v=1","retina_thumb_url":"https://imgv2-2-f.scribdassets.com/img/document/52705847/216x288/f2935d57a6/1312486600?v=1","title":"REALIDAD EDUCATIVA EN LA CARRERA DE INFORMÁTICA DE LA UNIVERSIDAD CENTRAL DEL ECUADOR","short_title":"REALIDAD EDUCATIVA EN LA CARRERA DE INFORMÁTICA DE LA UNIVERSIDAD CENTRAL DEL ECUADOR","author":"hamioperezn","tracking":{"object_type":"document","object_id":52705847,"track":"flattened_recommender","doc_uuid":"0WHyiVtMYsth3PR8NsKjgiYCktA="},"url":"https://www.scribd.com/doc/52705847/REALIDAD-EDUCATIVA-EN-LA-CARRERA-DE-INFORMATICA-DE-LA-UNIVERSIDAD-CENTRAL-DEL-ECUADOR"},"58842495":{"type":"document","id":58842495,"thumb_url":"https://imgv2-2-f.scribdassets.com/img/document/58842495/108x144/facca20ec1/1309209723?v=1","retina_thumb_url":"https://imgv2-2-f.scribdassets.com/img/document/58842495/216x288/34a3e818ea/1309209723?v=1","title":"Instalacion de Procesador Pentium 4","short_title":"Instalacion de Procesador Pentium 4","author":"Rocky David Mancilla Escobar","tracking":{"object_type":"document","object_id":58842495,"track":"flattened_recommender","doc_uuid":"Wd66o0ruUO7/TIo88n8RA9wZYlk="},"url":"https://www.scribd.com/document/58842495/Instalacion-de-Procesador-Pentium-4"},"60587947":{"type":"document","id":60587947,"thumb_url":"https://imgv2-2-f.scribdassets.com/img/document/60587947/108x144/6026118e4a/1311289520?v=1","retina_thumb_url":"https://imgv2-2-f.scribdassets.com/img/document/60587947/216x288/bfd3ded822/1311289520?v=1","title":"CONTPAQi_ReqEquipo_CONTABILIDAD","short_title":"CONTPAQi_ReqEquipo_CONTABILIDAD","author":"mihkmi","tracking":{"object_type":"document","object_id":60587947,"track":"flattened_recommender","doc_uuid":"5ZNodBKGF0jtVRCb5So3lUXxig0="},"url":"https://www.scribd.com/document/60587947/CONTPAQi-ReqEquipo-CONTABILIDAD"},"61632310":{"type":"document","id":61632310,"thumb_url":"https://imgv2-2-f.scribdassets.com/img/document/61632310/108x144/39db86d679/1312486600?v=1","retina_thumb_url":"https://imgv2-1-f.scribdassets.com/img/document/61632310/216x288/f00e20eb4b/1312486600?v=1","title":"Skimming","short_title":"Skimming","author":"hamioperezn","tracking":{"object_type":"document","object_id":61632310,"track":"flattened_recommender","doc_uuid":"pwP+YRiHp4uXK5wP6GGjU/IgdYM="},"url":"https://www.scribd.com/doc/61632310/Skimming"},"61681968":{"type":"document","id":61681968,"thumb_url":"https://imgv2-1-f.scribdassets.com/img/document/61681968/108x144/1db100230f/1312554054?v=1","retina_thumb_url":"https://imgv2-2-f.scribdassets.com/img/document/61681968/216x288/ab192e78a0/1312554054?v=1","title":"EL SUBRAYADO","short_title":"EL SUBRAYADO","author":"hamioperezn","tracking":{"object_type":"document","object_id":61681968,"track":"flattened_recommender","doc_uuid":"nt/XcBhnfmHg9FARDWsk4y3NAus="},"url":"https://www.scribd.com/doc/61681968/EL-SUBRAYADO"},"61979665":{"type":"document","id":61979665,"thumb_url":"https://imgv2-2-f.scribdassets.com/img/document/61979665/108x144/85922b265e/1312942995?v=1","retina_thumb_url":"https://imgv2-2-f.scribdassets.com/img/document/61979665/216x288/63062cea2d/1312942995?v=1","title":"INTELIGENCIA LÓGICO","short_title":"INTELIGENCIA LÓGICO","author":"hamioperezn","tracking":{"object_type":"document","object_id":61979665,"track":"flattened_recommender","doc_uuid":"Hiho7nSyjcdOSA6WYN3mr3ejRtw="},"url":"https://www.scribd.com/doc/61979665/INTELIGENCIA-LOGICO"},"62031583":{"type":"document","id":62031583,"thumb_url":"https://imgv2-1-f.scribdassets.com/img/document/62031583/108x144/5b45445c6a/1401229495?v=1","retina_thumb_url":"https://imgv2-1-f.scribdassets.com/img/document/62031583/216x288/c38c417df4/1401229495?v=1","title":"INTELIGENCIA ESPACIAL","short_title":"INTELIGENCIA ESPACIAL","author":"hamioperezn","tracking":{"object_type":"document","object_id":62031583,"track":"flattened_recommender","doc_uuid":"8TaWHY11tXU7VIIs5AEDA5sRjrs="},"url":"https://www.scribd.com/doc/62031583/INTELIGENCIA-ESPACIAL"},"64122474":{"type":"document","id":64122474,"thumb_url":"https://imgv2-2-f.scribdassets.com/img/document/64122474/108x144/84277afad2/1432471690?v=1","retina_thumb_url":"https://imgv2-1-f.scribdassets.com/img/document/64122474/216x288/178d0568ab/1432471690?v=1","title":"lenguaje ensamblador","short_title":"lenguaje ensamblador","author":"Gamaliel Mendoza Vasquez","tracking":{"object_type":"document","object_id":64122474,"track":"flattened_recommender","doc_uuid":"kjreblW+L5rCc49U+Mdl9wRjLSo="},"url":"https://www.scribd.com/doc/64122474/lenguaje-ensamblador"},"66125519":{"type":"document","id":66125519,"thumb_url":"https://imgv2-1-f.scribdassets.com/img/document/66125519/108x144/dd79dd76e3/1393821345?v=1","retina_thumb_url":"https://imgv2-2-f.scribdassets.com/img/document/66125519/216x288/705cfc7533/1393821345?v=1","title":"Tipos de Perifericos","short_title":"Tipos de Perifericos","author":"Jhorman Alexander","tracking":{"object_type":"document","object_id":66125519,"track":"flattened_recommender","doc_uuid":"6Jdg4UNUqNmvxZHd02bfVs9WvGE="},"url":"https://www.scribd.com/document/66125519/Tipos-de-Perifericos"},"96887507":{"type":"document","id":96887507,"thumb_url":"https://imgv2-1-f.scribdassets.com/img/document/96887507/108x144/9f519de94e/1370535453?v=1","retina_thumb_url":"https://imgv2-1-f.scribdassets.com/img/document/96887507/216x288/c1214dedf1/1370535453?v=1","title":"Drivers Llave","short_title":"Drivers Llave","author":"Gary Eduardo Medrano Ruck","tracking":{"object_type":"document","object_id":96887507,"track":"flattened_recommender","doc_uuid":"APzHxhWsJ8lEmSOFYXn35Bt/nM0="},"url":"https://www.scribd.com/document/96887507/Drivers-Llave"},"103274764":{"type":"document","id":103274764,"thumb_url":"https://imgv2-2-f.scribdassets.com/img/document/103274764/108x144/e8688778e0/1354078285?v=1","retina_thumb_url":"https://imgv2-1-f.scribdassets.com/img/document/103274764/216x288/a729280df4/1354078285?v=1","title":"Manual2[1].4","short_title":"Manual2[1].4","author":"ALARCONISTA","tracking":{"object_type":"document","object_id":103274764,"track":"flattened_recommender","doc_uuid":"GsBhsi8NqAtITN+VtY17YFMcY7I="},"url":"https://www.scribd.com/document/103274764/Manual2-1-4"},"104361190":{"type":"document","id":104361190,"thumb_url":"https://imgv2-2-f.scribdassets.com/img/document/104361190/108x144/b789c1799c/1387274480?v=1","retina_thumb_url":"https://imgv2-2-f.scribdassets.com/img/document/104361190/216x288/b12b228acb/1387274480?v=1","title":"Manual Corel Draw 10","short_title":"Manual Corel Draw 10","author":"Ulises Arcos","tracking":{"object_type":"document","object_id":104361190,"track":"flattened_recommender","doc_uuid":"CM6Xwylgrs5HPQp1KcZUPDWWjNw="},"url":"https://www.scribd.com/document/104361190/Manual-Corel-Draw-10"},"133181512":{"type":"document","id":133181512,"thumb_url":"https://imgv2-2-f.scribdassets.com/img/document/133181512/108x144/73bfa93df4/1364691122?v=1","retina_thumb_url":"https://imgv2-1-f.scribdassets.com/img/document/133181512/216x288/6a5d903b03/1364691122?v=1","title":"Compu","short_title":"Compu","author":"Raul Terrazas Ramos","tracking":{"object_type":"document","object_id":133181512,"track":"flattened_recommender","doc_uuid":"tacUUmFbhUa0AGTJ+Pk77u1BCA8="},"url":"https://www.scribd.com/document/133181512/Compu"},"163323786":{"type":"document","id":163323786,"thumb_url":"https://imgv2-2-f.scribdassets.com/img/document/163323786/108x144/ca16b5897c/1437329437?v=1","retina_thumb_url":"https://imgv2-2-f.scribdassets.com/img/document/163323786/216x288/255d017b04/1437329437?v=1","title":"Teórico TP N 3","short_title":"Teórico TP N 3","author":"infobachmdq","tracking":{"object_type":"document","object_id":163323786,"track":"flattened_recommender","doc_uuid":"Pru0do3bY8D+mceLDFX0JGSdtG8="},"url":"https://www.scribd.com/document/163323786/Teorico-TP-N-3"},"176141995":{"type":"document","id":176141995,"thumb_url":"https://imgv2-2-f.scribdassets.com/img/document/176141995/108x144/be3b464521/1381800426?v=1","retina_thumb_url":"https://imgv2-1-f.scribdassets.com/img/document/176141995/216x288/7c5922ee0e/1381800426?v=1","title":"Historia de Los Microprocesadores Pentium Iza","short_title":"Historia de Los Microprocesadores Pentium Iza","author":"Crystal Turner","tracking":{"object_type":"document","object_id":176141995,"track":"flattened_recommender","doc_uuid":"dAMhSl/lyMbpWX504+miFPL/i+M="},"url":"https://www.scribd.com/document/176141995/Historia-de-Los-Microprocesadores-Pentium-Iza"},"201114660":{"type":"document","id":201114660,"thumb_url":"https://imgv2-2-f.scribdassets.com/img/document/201114660/108x144/c6bedd7c4a/1390289823?v=1","retina_thumb_url":"https://imgv2-2-f.scribdassets.com/img/document/201114660/216x288/5f680b6ac9/1390289823?v=1","title":"Trabajo 7","short_title":"Trabajo 7","author":"LisSet Tlahuetl","tracking":{"object_type":"document","object_id":201114660,"track":"flattened_recommender","doc_uuid":"TwbLD3Z0goIo2PITUE2neg/Uu5A="},"url":"https://www.scribd.com/presentation/201114660/Trabajo-7"},"214501242":{"type":"document","id":214501242,"thumb_url":"https://imgv2-2-f.scribdassets.com/img/document/214501242/108x144/97c9369cb5/1395778418?v=1","retina_thumb_url":"https://imgv2-1-f.scribdassets.com/img/document/214501242/216x288/b74c13a056/1395778418?v=1","title":"Hmate.docx","short_title":"Hmate.docx","author":"mikinero","tracking":{"object_type":"document","object_id":214501242,"track":"flattened_recommender","doc_uuid":"/+RntwgfNIQgWRNGIxV1y/4TzG8="},"url":"https://www.scribd.com/document/214501242/Hmate-docx"},"215102774":{"type":"document","id":215102774,"thumb_url":"https://imgv2-2-f.scribdassets.com/img/document/215102774/108x144/2196880de5/1396033916?v=1","retina_thumb_url":"https://imgv2-1-f.scribdassets.com/img/document/215102774/216x288/cb9d77fcfc/1396033916?v=1","title":"Tolvas Dicificadoras de Preconcreto","short_title":"Tolvas Dicificadoras de Preconcreto","author":"Fernando Contreras Atuesta","tracking":{"object_type":"document","object_id":215102774,"track":"flattened_recommender","doc_uuid":"Mo+5TaC3k+TdHSVnctZe/pFQLCc="},"url":"https://www.scribd.com/presentation/215102774/Tolvas-Dicificadoras-de-Preconcreto"},"217160299":{"type":"document","id":217160299,"thumb_url":"https://imgv2-1-f.scribdassets.com/img/document/217160299/108x144/48fa272d35/1397011056?v=1","retina_thumb_url":"https://imgv2-1-f.scribdassets.com/img/document/217160299/216x288/b57adf9cb4/1397011056?v=1","title":"programacion1","short_title":"programacion1","author":"Andres Gap Gap","tracking":{"object_type":"document","object_id":217160299,"track":"flattened_recommender","doc_uuid":"Q+4AlltJmDX/f9232i3JLTxT2EQ="},"url":"https://www.scribd.com/document/217160299/programacion1"},"232525232":{"type":"document","id":232525232,"thumb_url":"https://imgv2-2-f.scribdassets.com/img/document/232525232/108x144/9cbf053bf7/1404430689?v=1","retina_thumb_url":"https://imgv2-2-f.scribdassets.com/img/document/232525232/216x288/ab0189a292/1404430689?v=1","title":"Guia Practica1","short_title":"Guia Practica1","author":"michaelblanc","tracking":{"object_type":"document","object_id":232525232,"track":"flattened_recommender","doc_uuid":"dwh5obZx6XPsO4wJMk/rOxGoPeY="},"url":"https://www.scribd.com/document/232525232/Guia-Practica1"},"237314946":{"type":"document","id":237314946,"thumb_url":"https://imgv2-1-f.scribdassets.com/img/document/237314946/108x144/6d3f191c28/1436781399?v=1","retina_thumb_url":"https://imgv2-1-f.scribdassets.com/img/document/237314946/216x288/82c3aed815/1436781399?v=1","title":"TEORIA 11.pdf","short_title":"TEORIA 11.pdf","author":"CarlosRamos","tracking":{"object_type":"document","object_id":237314946,"track":"flattened_recommender","doc_uuid":"rWaawUcBy978bDgfSbyzVtsNDOQ="},"url":"https://www.scribd.com/document/237314946/TEORIA-11-pdf"},"245401451":{"type":"document","id":245401451,"thumb_url":"https://imgv2-1-f.scribdassets.com/img/document/245401451/108x144/905d781077/1415041176?v=1","retina_thumb_url":"https://imgv2-2-f.scribdassets.com/img/document/245401451/216x288/77459ec96a/1415041176?v=1","title":"Tarea de Micro 2","short_title":"Tarea de Micro 2","author":"Tania Cruz","tracking":{"object_type":"document","object_id":245401451,"track":"flattened_recommender","doc_uuid":"LHQM8kMSpziNY+8hpUsuG5Ww/14="},"url":"https://www.scribd.com/document/245401451/Tarea-de-Micro-2"},"248960167":{"type":"document","id":248960167,"thumb_url":"https://imgv2-1-f.scribdassets.com/img/document/248960167/108x144/7b3f69ce28/1440364201?v=1","retina_thumb_url":"https://imgv2-2-f.scribdassets.com/img/document/248960167/216x288/f8ca87d2d6/1440364201?v=1","title":"1_CAD","short_title":"1_CAD","author":"Manuel Reyes","tracking":{"object_type":"document","object_id":248960167,"track":"flattened_recommender","doc_uuid":"bUeZ5sWezROOT9D49d48bkDS7hk="},"url":"https://www.scribd.com/document/248960167/1-CAD"},"275793823":{"type":"document","id":275793823,"thumb_url":"https://imgv2-2-f.scribdassets.com/img/document/275793823/108x144/2467a1fa8b/1440461790?v=1","retina_thumb_url":"https://imgv2-1-f.scribdassets.com/img/document/275793823/216x288/a480f75076/1440461790?v=1","title":"Spaceball 4000FLX","short_title":"Spaceball 4000FLX","author":"catio000","tracking":{"object_type":"document","object_id":275793823,"track":"flattened_recommender","doc_uuid":"t7Tz56C25N4c7q1wTBHRyiQvOLg="},"url":"https://www.scribd.com/document/275793823/Spaceball-4000FLX"},"291057553":{"type":"document","id":291057553,"thumb_url":"https://imgv2-1-f.scribdassets.com/img/document/291057553/108x144/f144d66007/1448421969?v=1","retina_thumb_url":"https://imgv2-1-f.scribdassets.com/img/document/291057553/216x288/c4094629ff/1448421969?v=1","title":"Componentes de La Computadora","short_title":"Componentes de La Computadora","author":"Jesus Chavarria Ramirez","tracking":{"object_type":"document","object_id":291057553,"track":"flattened_recommender","doc_uuid":"1NxuP3jmKE9zqLcdWDMojvIg84s="},"url":"https://www.scribd.com/document/291057553/Componentes-de-La-Computadora"},"296345582":{"type":"document","id":296345582,"thumb_url":"https://imgv2-1-f.scribdassets.com/img/document/296345582/108x144/7309f4c303/1453506072?v=1","retina_thumb_url":"https://imgv2-1-f.scribdassets.com/img/document/296345582/216x288/176dfa8ff7/1453506072?v=1","title":"manual de luis","short_title":"manual de luis","author":"Luis Alberto Rdz Oritz","tracking":{"object_type":"document","object_id":296345582,"track":"flattened_recommender","doc_uuid":"+olepOHr7EepdnG8Y8XuboF8jF4="},"url":"https://www.scribd.com/document/296345582/manual-de-luis"},"319054375":{"type":"document","id":319054375,"thumb_url":"https://imgv2-1-f.scribdassets.com/img/document/319054375/108x144/e54dac51a5/1469241122?v=1","retina_thumb_url":"https://imgv2-2-f.scribdassets.com/img/document/319054375/216x288/b813700827/1469241122?v=1","title":"1planicompumarzo","short_title":"1planicompumarzo","author":"Vincent Welch","tracking":{"object_type":"document","object_id":319054375,"track":"flattened_recommender","doc_uuid":"u2vAXc8O/ZC/GPK504jaRCzxitg="},"url":"https://www.scribd.com/document/319054375/1planicompumarzo"},"341808869":{"type":"document","id":341808869,"thumb_url":"https://imgv2-2-f.scribdassets.com/img/document/341808869/108x144/d7b0290a50/1489458955?v=1","retina_thumb_url":"https://imgv2-2-f.scribdassets.com/img/document/341808869/216x288/15ad4565c5/1489458955?v=1","title":"Procesadores.docx","short_title":"Procesadores.docx","author":"EriicdanC","tracking":{"object_type":"document","object_id":341808869,"track":"flattened_recommender","doc_uuid":"ujjBlSODsPX00kJ3heOarI7XXA0="},"url":"https://www.scribd.com/document/341808869/Procesadores-docx"},"350859944":{"type":"document","id":350859944,"thumb_url":"https://imgv2-2-f.scribdassets.com/img/document/350859944/108x144/7798dcb3f0/1497050527?v=1","retina_thumb_url":"https://imgv2-1-f.scribdassets.com/img/document/350859944/216x288/099758927d/1497050527?v=1","title":"Unidad II Seccion Grupo","short_title":"Unidad II Seccion Grupo","author":"Jose Mariano","tracking":{"object_type":"document","object_id":350859944,"track":"flattened_recommender","doc_uuid":"JwFRrttW0SN6sX5Wh0GWqHPQnhg="},"url":"https://www.scribd.com/presentation/350859944/Unidad-II-Seccion-Grupo"},"375551644":{"type":"document","id":375551644,"thumb_url":"https://imgv2-2-f.scribdassets.com/img/document/375551644/108x144/5575aa2e06/1522872823?v=1","retina_thumb_url":"https://imgv2-2-f.scribdassets.com/img/document/375551644/216x288/266af98f75/1522872823?v=1","title":"WP2006.3.056 - Muro Cortina","short_title":"WP2006.3.056 - Muro Cortina","author":"Paul Sevan","tracking":{"object_type":"document","object_id":375551644,"track":"flattened_recommender","doc_uuid":"7owxO4OIgFOUvkOhWdNr+0lcbTI="},"url":"https://www.scribd.com/document/375551644/WP2006-3-056-Muro-Cortina"},"382555582":{"type":"document","id":382555582,"thumb_url":"https://imgv2-1-f.scribdassets.com/img/document/382555582/108x144/9879d746b2/1529960536?v=1","retina_thumb_url":"https://imgv2-2-f.scribdassets.com/img/document/382555582/216x288/f4d35dfeb1/1529960536?v=1","title":"Manual 2.5","short_title":"Manual 2.5","author":"Hugo Luengo","tracking":{"object_type":"document","object_id":382555582,"track":"flattened_recommender","doc_uuid":"wzGQtG9EIVuoD4x0HOKvdpcUxJQ="},"url":"https://www.scribd.com/document/382555582/Manual-2-5"},"387552936":{"type":"document","id":387552936,"thumb_url":"https://imgv2-1-f.scribdassets.com/img/document/387552936/108x144/a85e3eca14/1535839902?v=1","retina_thumb_url":"https://imgv2-2-f.scribdassets.com/img/document/387552936/216x288/e7cc02be22/1535839902?v=1","title":"Robotica Industrial 002 - Introducción a Robotstudio","short_title":"Robotica Industrial 002 - Introducción a Robotstudio","author":"xendika","tracking":{"object_type":"document","object_id":387552936,"track":"flattened_recommender","doc_uuid":"v/Ft3LLLh5k8QKXb1raW4/Vrjeg="},"url":"https://www.scribd.com/document/387552936/Robotica-Industrial-002-Introduccion-a-Robotstudio"}}},"seo_roadblock_props_path":"/doc-page/seo-roadblock-props/50408882","signup_context":null,"toolbar":{"search_path":"/search-4gen?allowed_pages=&auth_token=EDQVKHA5i7aDRrcEpGW%2BeculLjM%3D&authenticity_token=BK2836jrDntXa7RoF9OvVYjngP%2BcAZXgyXxqb%2BWqL30UlSMBlhfIOw6rpaX2snDc0KvcDPJ4ficTwTjMFLM9Tw%3D%3D&expires=1538514061&wordDocumentId=50408882&wordUploadId=53196637"},"renewal_nag_props":null}-->