universidad católica boliviana “san pablo”programacionucb.pbworks.com/f/inf101... · lo apoyo...

140
Universidad Católica Boliviana “San Pablo” Facultad de Ciencias Exactas e Ingeniería Ingeniería de Sistemas GUIA DE ESTUDIO INF-101 INTRODUCCION A LA PROGRAMACION DOCENTES MSc. Ing. Orlando Rivera Jurado MSc. Ing. Jheser Guzmán Illanes 1-2010

Upload: lamtruc

Post on 20-Sep-2018

245 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Universidad Católica Boliviana “San Pablo”programacionucb.pbworks.com/f/INF101... · lo apoyo para crear el proyecto de una máquina de diferencias, un dispositivo mecánico

Universidad Católica Boliviana “San Pablo” Facultad de Ciencias Exactas e Ingeniería

Ingeniería de Sistemas

GUIA DE ESTUDIO

INF-101 INTRODUCCION A LA PROGRAMACION

DOCENTES

MSc. Ing. Orlando Rivera Jurado

MSc. Ing. Jheser Guzmán Illanes

1-2010

Page 2: Universidad Católica Boliviana “San Pablo”programacionucb.pbworks.com/f/INF101... · lo apoyo para crear el proyecto de una máquina de diferencias, un dispositivo mecánico

INF-101 Introducción a la Programación 1-2010

Ingeniería de Sistemas – Universidad Católica Boliviana “San Pablo” Pagina - 2

El desarrollo de algoritmos es un tema fundamental en el diseño de

programas, por lo cual el alumno debe adquirir adecuada base que le

permitan desarrollar de manera más fácil y rápida programas de

computadora.

Estos apuntes servirán de apoyo a la cátedra de la materia “Introducción a

la Programación”, que se dicta en el primer semestre para todas las

carreras de Ingeniería de la facultad de Ciencias Exactas e Ingeniería de la

Universidad católica Boliviana “San Pablo”, permitiendo al estudiante

facilitar el proceso de desarrollo de su capacidad analítica y creadora, para

de esta manera mejorar su destreza en la elaboración de algoritmos que

sirven como base para la construcción de programas en distintos

lenguajes de programación.

Page 3: Universidad Católica Boliviana “San Pablo”programacionucb.pbworks.com/f/INF101... · lo apoyo para crear el proyecto de una máquina de diferencias, un dispositivo mecánico

INF-101 Introducción a la Programación 1-2010

Ingeniería de Sistemas – Universidad Católica Boliviana “San Pablo” Pagina - 3

Tema #1 – Introducción a la Informática

1.1 Definición y origen del término informática

A lo largo de la historia el hombre ha necesitado transmitir y tratar información de forma

continua. Aun están en el recuerdo las señales de humo y los destellos de espejos que

fueron utilizados hace varios años, y más recientemente los mensajes de transmitidos a

través de cables utilizando el código Morse o la propia voz por medio del teléfono o radio.

La informática nace de la idea de ayudar al hombre en aquellos trabajos rutinarios y

repetitivos, generalmente de cálculo y gestión, donde es frecuente la repetición de tareas.

La idea es que una maquina puede realizarlos mejor, aunque siempre bajo la supervisión

del hombre.

El término informática nació en Francia el año 1962, y adoptado formalmente en España

en 1968 como INFORmación autoMÁTICA. También es reconocido el término con el

nombre de “Ciencias de la Computación”.

Para poder definir a la Informática, debemos conocer previamente los siguientes

términos:

La ciencia (del latín scientia 'conocimiento') se define como el conjunto de

conocimientos obtenidos mediante la observación y el razonamiento,

sistemáticamente estructurados y de los que se deducen principios y leyes generales.

La información es un fenómeno que proporciona significado o sentido a las cosas. En

sentido general, la información es un conjunto organizado de datos procesados, que

constituyen un mensaje sobre un determinado ente o fenómeno.

La INFORMATICA es la ciencia que estudia el tratamiento automático y

racional de la información.

Page 4: Universidad Católica Boliviana “San Pablo”programacionucb.pbworks.com/f/INF101... · lo apoyo para crear el proyecto de una máquina de diferencias, un dispositivo mecánico

INF-101 Introducción a la Programación 1-2010

Ingeniería de Sistemas – Universidad Católica Boliviana “San Pablo” Pagina - 4

1.2 Elementos y conceptos fundamentales

Desde el punto de vista informático, el elemento físico utilizado para el tratamiento de la

información es el computador, computadora u ordenador, que puede ser definido de la

siguiente manera (Figura 1.1):

Computadora (Ordenador) es una maquina compuesta de elementos

físicos, en su mayoría de origen electrónico, capaz de realizar una gran

variedad de trabajos a gran velocidad y con gran precisión, siempre que se

le den instrucciones adecuadas.

Figura 1.1: Computadora (ordenador)

El conjunto de órdenes que se dan a una computadora para realizar un proceso

determinado se denomina programa, mientras que el conjunto de uno o varios programas

más la documentación correspondiente para realizar un determinado trabajo, se

denomina aplicación informática (Figura 1.2).

Figura 1.2: Aplicación informática

Page 5: Universidad Católica Boliviana “San Pablo”programacionucb.pbworks.com/f/INF101... · lo apoyo para crear el proyecto de una máquina de diferencias, un dispositivo mecánico

INF-101 Introducción a la Programación 1-2010

Ingeniería de Sistemas – Universidad Católica Boliviana “San Pablo” Pagina - 5

Al conjunto de operaciones que se realizan sobre una información se le denomina

tratamiento de la información. Estas operaciones siguen una división lógica que se

representa en el Esquema 1.1.

Esquema 1.1: Tratamiento de la información

ENTRADA: Es el conjunto de operaciones cuya misión es tomar los datos del

exterior y enviarlos a la computadora; en ocasiones es necesario realizar

operaciones de depuración y validación de datos.

PROCESO: Operaciones que trabajan con los datos de entrada para obtener

resultados. Estas operaciones son llamadas procesos o algoritmos, y consiste

generalmente en una combinación adecuada de operaciones de origen aritmético

y test de tipo lógico.

SALIDA: Son operaciones que proporcionan los resultados de un proceso a las

personas correspondientes.

La informática está sustentada en tres pilares básicos, que son:

Elemento físico (HARDWARE).

Elemento lógico (Software).

Elemento humano (Personal informático).

Actualmente se utiliza el término firmware para denominar cierta parte del software que

las computadoras traen pregrabadas desde su fabricación y que puede estar en memorias

de solo lectura (ROM – Read Only Memory) o incorporada en su propia circuitería. El

programa más conocido de este tipo es el que entra en funcionamiento cuando se

enciende una computadora y que permite el arranque de la misma; se denomina

arrancador o bootstrap.

1.3 Esquema básico del elemento físico (HARDWARE)

El hardware es el elemento físico de un sistema informático, es decir, todos los materiales

que lo componen, como la propia computadora, dispositivos externos, los cables, los

soportes de la información y en definitiva todos aquellos elementos que tienen entidad

física.

ENTRADA PROCESO SALIDA

Page 6: Universidad Católica Boliviana “San Pablo”programacionucb.pbworks.com/f/INF101... · lo apoyo para crear el proyecto de una máquina de diferencias, un dispositivo mecánico

INF-101 Introducción a la Programación 1-2010

Ingeniería de Sistemas – Universidad Católica Boliviana “San Pablo” Pagina - 6

Esquema 1.2: Esquema básico del Hardware

Central Process Unit – CPU (Unidad Central de Proceso): Es el elemento principal o centro

neurálgico de una computadora y su misión consiste en coordinar y realizar todas las

operaciones del sistema informático. Consta de los siguientes elementos:

Procesador: Es el elemento encargado del control y ejecución de las operaciones y

está formado por:

Unidad de Control (CU – Control Unit): Es la parte del procesador

encargada de gobernar al resto de las unidades, además de interpretar y

ejecutar las instrucciones controlando su secuencia.

Unidad Aritmético Lógica (ALU – Arithmetic Logic Unit): Es la parte del

procesador encargada de realizar todas las operaciones elementales de tipo

aritmético lógica.

Memoria Central (CM – Central Memory): También denominada memoria interna

o principal (main memory), es el elemento de la CPU encargado de almacenar los

programas y los datos y los elementos necesarios para que el sistema informático

realice un determinado trabajo. Es importante decir que para que un programa

pueda ser ejecutado en una computadora tiene que estar en esta memoria, así

como los datos que necesiten ser procesados en ese momento.

Page 7: Universidad Católica Boliviana “San Pablo”programacionucb.pbworks.com/f/INF101... · lo apoyo para crear el proyecto de una máquina de diferencias, un dispositivo mecánico

INF-101 Introducción a la Programación 1-2010

Ingeniería de Sistemas – Universidad Católica Boliviana “San Pablo” Pagina - 7

La memoria interna consta de dos aéreas de memoria:

Memoria RAM (Random Access Memory): Recibe el nombre de memoria

principal o memoria del usuario, en ella se almacena información mientras

la computadora está encendida. Cuando se apaga o se reinicia la

computadora, la información se pierde, por lo que se dice que la memoria

RAM es una memoria volátil.

Memoria ROM (Read Only Memory): Es una memoria estática que no

puede cambiar, la computadora puede leer los datos almacenados en la

memoria ROM, pero no se pueden introducir datos en ella, o cambiar los

datos que ahí se encuentran; por lo que se dice que esta memoria es de

solo lectura. Los datos de la memoria ROM están grabados en forma

permanente y son introducidos por el fabricante de la computadora.

Elementos de Entrada: sirven para introducir datos (información) en la computadora para

su proceso. Los datos se leen de los dispositivos de entrada y se almacena en la memoria

central o interna.

Ejemplos: Teclado, Scanner, mouse, trackball, joystick, lápiz óptico, etc.

Elementos de Salida: Muestran la información procesada y cumplen la finalidad esperada

por una persona. Los dispositivos más comunes son: el monitor, la impresora, plotter, etc.

Memoria Auxiliar (memoria externa): Es donde se almacenan todos los programas o

datos que el usuario desee. Los dispositivos de almacenamiento o memorias auxiliares

(externas o secundarias) más comúnmente utilizados son: Discos magnéticos, discos

ópticos y dispositivos extraíbles (flash drives).

Adicionalmente debemos en la actualidad añadir a los Dispositivos de Comunicación de

datos, puesto que forman parte de un Sistema de Procesamiento de Información, tales

como modems, concentradores, routers, switches, etc.

1.4 Esquema básico del elemento lógico (SOFTWARE)

El Software es la parte lógica que dota al equipo físico de capacidad para

realizar cualquier tipo de trabajo.

Un elemento lógico, para estar presente en un sistema informático, debe almacenarse en

un soporte físico. Estos soportes son la memoria central y auxiliar.

Page 8: Universidad Católica Boliviana “San Pablo”programacionucb.pbworks.com/f/INF101... · lo apoyo para crear el proyecto de una máquina de diferencias, un dispositivo mecánico

INF-101 Introducción a la Programación 1-2010

Ingeniería de Sistemas – Universidad Católica Boliviana “San Pablo” Pagina - 8

El elemento lógico de un sistema informático puede clasificarse como aparece

representado en:

Software de base (Sistema Operativo - OS): Es el soporte lógico que controla el

funcionamiento del equipo físico, ocultando los detalles del hardware y haciendo sencillo

el uso de la computadora.

Figura 1.3: Sistemas Operativos (GNU/Linux, Mac OS X y Windows Vista)

Los componentes de un Sistema Operativo son:

Programas de control: Tiene el objetivo de controlar todo el elemento físico.

Interfaces del usuario.

Administración de recursos.

Administración de tareas.

Administración de Archivos.

Servicios de soporte.

Utilidades: Ayudan al usuario a realizar trabajos típicos con el elemento físico,

como dar formato a discos, manejo de archivos, etc.

Software de aplicación: está compuesto por el conjunto de programas que ha sido

diseñado para que la computadora pueda desarrollar un trabajo. Pertenece a este

determinado grupo de denominados paquetes de software, que consisten en un conjunto

de programas que nos permiten editar texto, guardar datos, obtener informes, hacer

cálculos, comunicarnos entre usuarios y algunos trabajos típicos en el uso de

computadoras.

Page 9: Universidad Católica Boliviana “San Pablo”programacionucb.pbworks.com/f/INF101... · lo apoyo para crear el proyecto de una máquina de diferencias, un dispositivo mecánico

INF-101 Introducción a la Programación 1-2010

Ingeniería de Sistemas – Universidad Católica Boliviana “San Pablo” Pagina - 9

1.5 Esquema básico del elemento humano (Personal Informático)

El elemento humano es el más importante de los que constituyen la informática. Sin

personas estas maquinas serian totalmente inútiles.

Personal informático: conjunto de personas que desarrollan las distintas funciones

relacionadas con el uso de las computadoras de la empresa.

Usuario: Personas que utilizan en última instancia la computadora y el software de

aplicación como herramienta para desarrollar su trabajo o ayudarse en su

actividad.

Figura 1.4: Organigrama del Departamento de Sistemas

1.6 Historia de la computación

Uno de los primeros dispositivos mecánicos para contar fue el ábaco, cuya historia se

remonta a las antiguas civilizaciones griega y romana. Este dispositivo es muy sencillo,

consta de cuentas ensartadas en varillas que a su vez están montadas en un marco

rectangular. Al desplazar las cuentas sobre varillas, sus posiciones representan valores

almacenados, y es mediante dichas posiciones que este representa y almacena datos. A

este dispositivo no se le puede llamar computadora por carecer del elemento

fundamental llamado programa.

Gerencia de Sistemas

Desarrollo de Sistemas

Administradores de proyectos

Analisis de Sistemas

Desarrolladores

Produccion

Help Desk

Operaciones

Servidores

Seguridad de Informacion

Inteligencia de Negocios

Telecomunicaciones

Redes de Datos

Telefonia (VoIP)

Page 10: Universidad Católica Boliviana “San Pablo”programacionucb.pbworks.com/f/INF101... · lo apoyo para crear el proyecto de una máquina de diferencias, un dispositivo mecánico

INF-101 Introducción a la Programación 1-2010

Ingeniería de Sistemas – Universidad Católica Boliviana “San Pablo” Pagina - 10

Figura 1.5: Abaco chino

Otro de los inventos mecánicos fue la Pascalina inventada por Blaise Pascal (1623 - 1662)

de Francia y la de Gottfried Wilhelm von Leibniz (1646 - 1716) de Alemania. Con estas

máquinas, los datos se representaban mediante las posiciones de los engranajes, y los

datos se introducían manualmente estableciendo dichas posiciones finales de las ruedas,

de manera similar a como leemos los números en el cuenta kilómetros de un automóvil.

Figura 1.6: Maquina aritmética de Blaise Pascal

La primera computadora fue la máquina analítica creada por Charles Babbage, profesor

matemático de la Universidad de Cambridge en el siglo XIX. La idea que tuvo Charles

Babbage sobre un computador nació debido a que la elaboración de las tablas

matemáticas era un proceso tedioso y propenso a errores. En 1823 el gobierno Británico

lo apoyo para crear el proyecto de una máquina de diferencias, un dispositivo mecánico

para efectuar sumas repetidas.

Page 11: Universidad Católica Boliviana “San Pablo”programacionucb.pbworks.com/f/INF101... · lo apoyo para crear el proyecto de una máquina de diferencias, un dispositivo mecánico

INF-101 Introducción a la Programación 1-2010

Ingeniería de Sistemas – Universidad Católica Boliviana “San Pablo” Pagina - 11

Figura 1.7: Maquina analítica de Babbage

Mientras tanto Charles Jacquard (francés), fabricante de tejidos, había creado un telar que

podía reproducir automáticamente patrones de tejidos leyendo la información codificada

en patrones de agujeros perforados en tarjetas de papel rígido. Al enterarse de este

método Babbage abandonó la máquina de diferencias y se dedico al proyecto de la

máquina analítica que se pudiera programar con tarjetas perforadas para efectuar

cualquier cálculo con una precisión de 20 dígitos. La tecnología de la época no bastaba

para hacer realidad sus ideas.

Figura 1.8: Telar de Joseph M. Jacquard

Page 12: Universidad Católica Boliviana “San Pablo”programacionucb.pbworks.com/f/INF101... · lo apoyo para crear el proyecto de una máquina de diferencias, un dispositivo mecánico

INF-101 Introducción a la Programación 1-2010

Ingeniería de Sistemas – Universidad Católica Boliviana “San Pablo” Pagina - 12

En 1944 se construyó en la Universidad de Harvard, la Mark I, diseñada por un equipo

encabezado por Howard H. Aiken. Esta máquina no está considerada como computadora

electrónica debido a que no era de propósito general y su funcionamiento estaba basado

en dispositivos electromecánicos llamados relevadores.

En 1947 se construyó en la Universidad de Pennsylvania la ENIAC (Electronic Numerical

Integrator And Calculator) que fue la primera computadora electrónica, el equipo de

diseño lo encabezaron los ingenieros John Mauchly y John Eckert. Esta máquina ocupaba

todo un sótano de la Universidad, tenía más de 18 000 tubos de vacío, consumía 200 KW

de energía eléctrica y requería todo un sistema de aire acondicionado, pero tenía la

capacidad de realizar cinco mil operaciones aritméticas en un segundo.

Figura 1.9: La computadora ENIAC

El proyecto, auspiciado por el departamento de Defensa de los Estados Unidos, culminó

dos años después, cuando se integró a ese equipo el ingeniero y matemático húngaro

John von Neumann (1903 - 1957). Las ideas de von Neumann resultaron tan

fundamentales para su desarrollo posterior, que es considerado el padre de las

computadoras.

La EDVAC (Electronic Discrete Variable Automatic Computer) fue diseñada por este nuevo

equipo. Tenía aproximadamente cuatro mil bulbos y usaba un tipo de memoria basado en

tubos llenos de mercurio por donde circulaban señales eléctricas sujetas a retardos.

Page 13: Universidad Católica Boliviana “San Pablo”programacionucb.pbworks.com/f/INF101... · lo apoyo para crear el proyecto de una máquina de diferencias, un dispositivo mecánico

INF-101 Introducción a la Programación 1-2010

Ingeniería de Sistemas – Universidad Católica Boliviana “San Pablo” Pagina - 13

La idea fundamental de Von Neumann fue: permitir que en la memoria coexistan datos

con instrucciones, para que entonces la computadora pueda ser programada en un

lenguaje, y no por medio de alambres que eléctricamente interconectaban varias

secciones de control, como en la ENIAC.

1.7 Generaciones de las computadoras

Todo este desarrollo de las computadoras suele divisarse por generaciones y el criterio

que se determinó para determinar el cambio de generación no está muy bien definido,

pero resulta aparente que deben cumplirse al menos los siguientes requisitos:

Forma en que están construidas.

Forma en que el ser humano se comunica con ellas.

1.7.1 Primera generación (1940 - 1952)

La constituyen todas aquellas computadoras diseñadas a base de válvulas al vacio como

principal elemento de control y cuyo uso fundamental fue la realización de aplicaciones en

los campos científico y militar. Utilizaban como lenguaje de programación el lenguaje de

máquina y como únicas memorias para conservar información las tarjetas perforadas, la

cinta perforadora y las líneas de mercurio.

Figura 1.10: Computador que utiliza válvulas al vacio.

Page 14: Universidad Católica Boliviana “San Pablo”programacionucb.pbworks.com/f/INF101... · lo apoyo para crear el proyecto de una máquina de diferencias, un dispositivo mecánico

INF-101 Introducción a la Programación 1-2010

Ingeniería de Sistemas – Universidad Católica Boliviana “San Pablo” Pagina - 14

1.7.2 Segunda generación (1952 - 1964)

Al sustituirse la válvula de vacio por el transistor, comenzó la llamada segunda generación

de computadores. En ella, las maquinas ganaron potencia y fiabilidad, perdiendo tamaño,

consumo y precio, lo que las hacía mucho mas practicas y asequibles. Los campos de

aplicación en aquella época fueron, además del científico y militar, el administrativo y

gestión; es decir, las computadoras empezaron a utilizarse en empresas que se dedicaban

a los negocios. Comenzaron además a utilizarse los llamados lenguajes de programación

evolucionados, que hacían más sencilla la programación; entre ellos podemos citar el

Ensamblador y algunos de los denominados de alto nivel, como FORTRAN, COBOL y

ADGOL. Asimismo, comenzaron a utilizarse como memoria interna los núcleos de ferrita y

el tambor magnético, como memoria externa la cinta magnética y los tambores

magnéticos.

Figura 1.11: Computador de transistores.

1.7.3 Tercera generación (1964 - 1971)

En esta generación el elemento más significativo es el circuito integrado aparecido en

1964, que consistía en el encapsulamiento de una gran cantidad de componentes

discretos. (Resistencias, condensadores, diodos y transistores), conformando uno o varios

circuitos con una función determinada, sobre una pastilla de silicona o plástico. La

miniaturización se extendió a todos los circuitos de la computadora, apareciendo las

minicomputadoras. Se utilizaron tecnologías SSI y MSI. Asimismo, el software evoluciono

de forma considerable con un gran desarrollo de los sistemas operativos, en los que se

Page 15: Universidad Católica Boliviana “San Pablo”programacionucb.pbworks.com/f/INF101... · lo apoyo para crear el proyecto de una máquina de diferencias, un dispositivo mecánico

INF-101 Introducción a la Programación 1-2010

Ingeniería de Sistemas – Universidad Católica Boliviana “San Pablo” Pagina - 15

incluyo la multiprogramación, el tiempo real y el modo interactivo. Comenzaron a

utilizarse las memorias de semiconductores y los discos magnéticos.

Figura 1.12: Computador basado en circuitos integrados.

1.7.4 Cuarta generación (1971 - 1981)

En 1971 aparece el microprocesador, consistente en la integración de toda la CPU de una

computadora en un solo circuito integrado. La tecnología utilizada es LSI que permitió la

fabricación de microprocesadores y computadoras personales (PC), así como las

computadoras mono-pastilla. Se utilizo además el diskette (floppy disk) como unidad de

almacenamiento externo. Aparecieron una gran cantidad de lenguajes de programación

de todo tipo y las redes de transmisión de datos (teleinformática) para la interconexión de

computadoras.

Figura 1.13: Computador de cuarta generación.

Page 16: Universidad Católica Boliviana “San Pablo”programacionucb.pbworks.com/f/INF101... · lo apoyo para crear el proyecto de una máquina de diferencias, un dispositivo mecánico

INF-101 Introducción a la Programación 1-2010

Ingeniería de Sistemas – Universidad Católica Boliviana “San Pablo” Pagina - 16

1.7.5 Quinta generación (1981 a la actualidad)

En 1981 los principales países productores de nuevas tecnologías (fundamentalmente

Estados Unidos y Japón) anunciaron una nueva generación, cuyas características

principales iban a ser:

Utilización de componentes a muy alta escala de integración (VLSI).

Computadoras con Inteligencia Artificial.

Utilización de lenguaje natural (lenguajes de quinta generación).

Interconexión entre todo tipo de computadoras, dispositivos y redes (redes

integradas).

Integración de datos, imágenes y voz (entornos multimedia).

Figura 1.14: Computador de quinta generación.

1.8 Tipos de computadoras

Dentro de la evolución de las computadoras, han surgido diferentes equipos con

diferentes tamaños y características según su tipo de labor. Los computadores son

utilizados desde las plantas nucleares como controladores de labores de alto riesgo hasta

la simple tarea de calentar la comida con el microondas.

Page 17: Universidad Católica Boliviana “San Pablo”programacionucb.pbworks.com/f/INF101... · lo apoyo para crear el proyecto de una máquina de diferencias, un dispositivo mecánico

INF-101 Introducción a la Programación 1-2010

Ingeniería de Sistemas – Universidad Católica Boliviana “San Pablo” Pagina - 17

1.8.1 Súper - Computadoras

Es una maquina diseñada especialmente para cálculos que precisan una gran velocidad de

proceso. Generalmente poseen un gran número de procesadores que trabajan en

paralelo, con lo que se consiguen realizar billones de operaciones por segundo.

Figura 1.15: Súper - computador.

1.8.2 Macro Computadoras – Main Frame

Es una maquina diseñada principalmente para dar servicio a grandes empresas y

organizaciones. Su potencia de cálculo es inferior a la anterior, cifrándose en la ejecución

de varios millones de operaciones por segundo. Una de sus características principales es la

de soportar un gran número de terminales o estaciones de trabajo. Además pueden

intervenir en procesos distribuidos en los que se conectan dos o más computadoras en

paralelo, de tal forma que se reparten todo el trabajo a realizar.

Figura 1.16: Macro - computador.

Page 18: Universidad Católica Boliviana “San Pablo”programacionucb.pbworks.com/f/INF101... · lo apoyo para crear el proyecto de una máquina de diferencias, un dispositivo mecánico

INF-101 Introducción a la Programación 1-2010

Ingeniería de Sistemas – Universidad Católica Boliviana “San Pablo” Pagina - 18

1.8.3 Mini Computadoras

Son maquinas de tipo medio, es decir, su capacidad de proceso es menor a las anteriores y

por tanto pueden controlar un menor número de terminales.

Figura 1.17: Mini - computador.

1.8.4 Micro Computadoras

Se trata de una maquina cuyo funcionamiento interno se basa en el uso del

microprocesador, y con él se consigue una serie de prestaciones, que en potencia,

manejabilidad, portabilidad, precio, etc.., cubren la gama más baja de necesidades en el

mundo de la informática. Hoy se puede decir que el mundo de la microinformática o el de

las microcomputadoras es el más importante y también el más popular. Dentro de las

microcomputadoras se pueden distinguir dos grupos importantes.

Estación de trabajo (workstation): Es una microcomputadoras de gran potencia

que se utiliza para trabajos de ingeniería o similares y permite la conexión a través

de una red con una computadora de mayor potencia.

Computadora personal (PC – Personal Computer): Es una microcomputadora fácil

de usar y con grandes prestaciones. Generalmente posee un solo puesto de

trabajo, aunque puede tener varios. Actualmente la mayor gama de equipos

Page 19: Universidad Católica Boliviana “San Pablo”programacionucb.pbworks.com/f/INF101... · lo apoyo para crear el proyecto de una máquina de diferencias, un dispositivo mecánico

INF-101 Introducción a la Programación 1-2010

Ingeniería de Sistemas – Universidad Católica Boliviana “San Pablo” Pagina - 19

hardware y de aplicaciones software que existen en el mercado pertenecen al

grupo de computadoras personales.

Figura 1.18: Micro – computador (Computadora Personal).

Computadora Portátil: (también laptop, término proveniente del inglés) es una

pequeña computadora personal móvil, que pesa normalmente entre 1 y 3 kg. Las

computadoras portátiles son capaces de realizar la mayor parte de las tareas que

realizan las computadoras de escritorio, con la ventaja de que son más pequeñas,

más livianas y tienen la capacidad de operar por un período determinado sin estar

conectadas a la electricidad.

Figura 1.19: Laptop (Computadora Portátil).

Netbook: Son una nueva clase de portátiles que eliminan la unidad de CD, y a

veces otros componentes como tarjeta gráfica, con el fin de reducir el tamaño

físico de las máquinas (y en ocasiones el costo), capaces de entrar en el bolsillo de

un pantalón, como en el caso de los VAIO serie P. Su capacidad de procesamiento

Page 20: Universidad Católica Boliviana “San Pablo”programacionucb.pbworks.com/f/INF101... · lo apoyo para crear el proyecto de una máquina de diferencias, un dispositivo mecánico

INF-101 Introducción a la Programación 1-2010

Ingeniería de Sistemas – Universidad Católica Boliviana “San Pablo” Pagina - 20

es notablemente menor que las portátiles normales, por eso necesitan sistemas

operativos diseñados específicamente, además del uso de almacenamiento

remoto.

Figura 1.20: Netbook.

PDA (Personal Digital Assistent): es un computador de mano originalmente

diseñado como agenda electrónica (calendario, lista de contactos, bloc de notas y

recordatorios) con un sistema de reconocimiento de escritura.

Hoy día estos dispositivos, pueden realizar muchas de las funciones de una

computadora de escritorio (ver películas, crear documentos, juegos, correo

electrónico, navegar por Internet, reproducir archivos de audio, etc.) pero con la

ventaja de ser portátil. Los últimos años se combinaron las funciones de la

telefonía celular con la de los PDA, obteniendo así los denominados Smartphones.

NOTA: Los PDA son la evolución tecnológica de las denominadas Palmtops que

solamente realizaban funciones muy básicas (block de notas, lista de contactos,

etc.).

Figura 1.21: Palmtop, PDA y Smartphone .

Page 21: Universidad Católica Boliviana “San Pablo”programacionucb.pbworks.com/f/INF101... · lo apoyo para crear el proyecto de una máquina de diferencias, un dispositivo mecánico

INF-101 Introducción a la Programación 1-2010

Ingeniería de Sistemas – Universidad Católica Boliviana “San Pablo” Pagina - 21

Tema #2 – Unidades funcionales de la computadora

2.1 Introducción

El elemento hardware de un sistema básico de proceso de datos se puede estructurar en

tres partes claramente diferenciadas en cuanto a sus funciones:

La Unidad Central de Proceso (CPU – Central Process Unit).

La Memoria central (CM – Central Memory).

Las unidades de entrada / salida (I/O – Input/Output).

Estos componentes se comunican entre sí mediante el bus de sistema y los controladores.

La placa base, placa madre, tarjeta madre o board (en inglés motherboard, mainboard)

es una tarjeta de circuito impreso a la que se conectan las demás partes de la

computadora. Tiene instalados una serie de circuitos integrados, entre los que se

encuentra el Chipset que sirve como centro de conexión entre el procesador, la memoria

central, los buses de expansión y otros dispositivos de entrada/salida.

Figura 2.1: Tarjeta madre (motherboard).

Page 22: Universidad Católica Boliviana “San Pablo”programacionucb.pbworks.com/f/INF101... · lo apoyo para crear el proyecto de una máquina de diferencias, un dispositivo mecánico

INF-101 Introducción a la Programación 1-2010

Ingeniería de Sistemas – Universidad Católica Boliviana “San Pablo” Pagina - 22

2.2 La Unidad Central de Proceso (CPU)

La CPU o Procesador central es el verdadero cerebro de la computadora. Su misión

consiste en controlar y coordinar o realizar todas las operaciones del sistema. Para ello

extrae, una a una, las instrucciones del programa que se tiene alojado en la memoria

central, las analiza y emite las órdenes necesarias para su completa realización.

Físicamente está formado por circuitos de naturaleza electrónica que en una

microcomputadora se encuentran integrados en una pastilla o chip denominado

microprocesador.

Figura 2.2: Microprocesador.

Los microprocesadores más conocidos son los de la familias x86 (32 bits) o x64 (64 bits) de

las marcas Intel, AMD, y Motorola.

La CPU está compuesta por las siguientes unidades:

Unidad de Control (CU – Control Unit)

Unidad Aritmético Lógica (ALU - Arithmetic Logic Unit).

2.2.1 Unidad de Control (CU)

Es el centro nervioso de la computadora ya que desde ella se controlan y gobiernan todas

las operaciones. Para realizar su función, consta de las siguientes partes:

Contador de programa (PC – Program Counter): Contiene la dirección de memoria

con la siguiente instrucción.

Registro de instrucción (IR – Instruction Register): Contiene la instrucción que se

está ejecutando.

Decodificador: Se encarga de extraer el código de operación de la instrucción en

curso, lo analiza y emite las señales necesarias al resto de elementos para su

ejecución atraves del secuenciador.

Page 23: Universidad Católica Boliviana “San Pablo”programacionucb.pbworks.com/f/INF101... · lo apoyo para crear el proyecto de una máquina de diferencias, un dispositivo mecánico

INF-101 Introducción a la Programación 1-2010

Ingeniería de Sistemas – Universidad Católica Boliviana “San Pablo” Pagina - 23

Reloj (Clock): Proporciona una sucesión de impulsos o ciclos a intervalos

constantes, que marcan los instantes en que han de comenzar los distintos pasos

de que consta cada instrucción.

Frecuencia AbreviaturaNro.

ciclos / segundo

Hertz Hz 1

Kilo Hertz KHz 1.000

Mega Hertz MHz 1.000.000

Giga Hertz GHz 1.000.000.000

Tera Hertz THz 1.000.000.000.000

Secuenciador: En este dispositivo se generan ordenes muy elementales (micro-

ordenes) que, sincronizadas por los impulsos de reloj, hacen que vaya ejecutando

poco a poco la instrucción que está cargada en el IR.

2.2.2 Unidad Aritmético Lógica (ALU)

Esta unidad es la encargada de realizar las operaciones elementales de tipo aritmético

(sumas, restas, productos y divisiones) y de tipo lógico (comparaciones AND, OR, NOT,

NOR, NAND, XOR). Para comunicarse con las otras unidades funcionales utiliza el

denominado bus de datos y para realizar su función necesita los siguientes elementos:

Circuito operacional.

Registros de entrada.

Registro acumulador.

Registro de estado.

2.2.3 La memoria central

La memoria central interna es la unidad donde están almacenados las instrucciones y los

datos necesarios para poder realizar un determinado proceso. Está constituida por

multitud de celdas o posiciones de memoria, numeradas de forma consecutiva, capaces

de retener, mientras la computadora este conectada, la información depositada en ella.

La memoria interna consta de dos áreas de memoria:

La memoria RAM (RAM – Random Access Memory): Recibe el nombre de

memoria principal o memoria de usuario, en ella se almacena información solo

mientras la computadora está encendida. Cuando se apaga el computador o

Page 24: Universidad Católica Boliviana “San Pablo”programacionucb.pbworks.com/f/INF101... · lo apoyo para crear el proyecto de una máquina de diferencias, un dispositivo mecánico

INF-101 Introducción a la Programación 1-2010

Ingeniería de Sistemas – Universidad Católica Boliviana “San Pablo” Pagina - 24

arranca nuevamente la computadora, la información se pierde, por lo que se dice

que la memoria RAM es una memoria volátil.

Figura 2.3: Memoria RAM.

La memoria ROM (Read Only Memory): Es una memoria estática que no puede

cambiar, la computadora puede leer los datos almacenados en la memoria ROM,

pero no se pueden introducir datos en ella, o cambiar los datos que ahí se

encuentran; por lo que se dice que esta memoria es de solo lectura. Los datos de la

memoria ROM están grabados en forma permanente y son introducidos por el

fabricante de la computadora.

Page 25: Universidad Católica Boliviana “San Pablo”programacionucb.pbworks.com/f/INF101... · lo apoyo para crear el proyecto de una máquina de diferencias, un dispositivo mecánico

INF-101 Introducción a la Programación 1-2010

Ingeniería de Sistemas – Universidad Católica Boliviana “San Pablo” Pagina - 25

Tema #3 – Soporte de la información y unidades de

Entrada/Salida

3.1 Introducción

Como se vio en el tema 2, el núcleo principal de una computadora es la CPU; ahora bien,

para el funcionamiento de esta es necesario que los datos y la información este

soportados en un elemento físico al que al que la propia computadora tenga acceso; estos

elementos son los denominados soportes de la información; asimismo es necesario

disponer de dispositivos conectados a la computadora capaces de leer en estos soportes

de información y escribirla en ellos según se trate de realizar operaciones de lectura o

escritura. A estos dispositivos se les denomina unidades de entrada y/o salida (unidades

E/S).

Un soporte de información es un medio físico que permite almacenar

datos de forma que una computadora pueda manejarlos o proporcionarlos

a las personas de manera inteligibles.

Una unidad de entrada/salida es un dispositivo físico capaz de comunicar

información entre el usuario y la computadora o capaz de manejar un

soporte de información.

Los soportes de la información se pueden clasificar por su naturaleza física en:

Soportes perforados.

Soportes magnéticos.

Soportes ópticos.

Otros soportes.

Por su parte los periféricos podemos clasificarlos según funciones que realizan en los

siguientes grupos.

Unidades de entrada: Son las unidades que realizan la función de introducir

información de la memoria central para su tratamiento como por ejemplo Teclado,

ratón, scanner, etc.

Page 26: Universidad Católica Boliviana “San Pablo”programacionucb.pbworks.com/f/INF101... · lo apoyo para crear el proyecto de una máquina de diferencias, un dispositivo mecánico

INF-101 Introducción a la Programación 1-2010

Ingeniería de Sistemas – Universidad Católica Boliviana “San Pablo” Pagina - 26

Unidades de salida: Son unidades que realizan la función de extraer la información

de la memoria central al exterior como por ejemplo Monitor, impresora, etc.

Unidades de Entrada/Salida: Realizan las dos funciones, introducir información en

memoria central extraerla de memoria central como por ejemplo Discos duros,

cintas, diskettes, modem, etc.

También existe otra clasificación de los periféricos dependiendo de la localización de los

mismos respecto a la CPU en que están conectados, y tenemos:

Unidades locales: Situados cerca del ordenador, sin sobrepasar unos límites (unos

pocos metros) como por ejemplo una red local (LAN).

Unidades remotas: Están lejos del ordenador, conectados a través de una red de

telecomunicación como por ejemplo una red extensa (WAN)

3.2 Unidad métrica de almacenamiento de información

El sistema binario es el sistema de numeración que utilizan internamente los circuitos

digitales que configuran el hardware de las computadoras actuales.

Cada cifra digito de un número representado en este sistema se denomina bit

(contracción de Binary Digit).

Para la medida de cantidades de información representadas en binario se utilizan una

serie de múltiplos de bit que poseen nombre propio; estos son los siguientes:

Bit (b): Digito binario (1 o 0).

Nibble o cuarteto: Es el conjunto de cuatro bits (1001).

Bytes u Octeto (B): Es el conjunto de 8 bits (11110000).

Kilo Bytes (KB): Es el conjunto de 1024 Bytes (210 Bytes).

Mega Bytes (MB): Es el conjunto de 1024 KBytes (220 Bytes).

Giga Bytes (GB): Es el conjunto de 1024 MBytes (230 Bytes).

Tera Bytes (TB): Es el conjunto de 1024 GBytes (240 Bytes).

Peta Bytes (PB): Es el conjunto de 1024 PBytes (250 Bytes).

Exa Bytes (EB): Es el conjunto de 1024 EBytes (260 Bytes).

Zeta Bytes (ZB): Es el conjunto de 1024 ZBytes (270 Bytes).

Yotta Bytes (YB): Es el conjunto de 1024 YBytes (280 Bytes).

Page 27: Universidad Católica Boliviana “San Pablo”programacionucb.pbworks.com/f/INF101... · lo apoyo para crear el proyecto de una máquina de diferencias, un dispositivo mecánico

INF-101 Introducción a la Programación 1-2010

Ingeniería de Sistemas – Universidad Católica Boliviana “San Pablo” Pagina - 27

3.3 Medios almacenamiento

3.3.1 Medios perforados

Los medios perforados fueron los primeros en utilizarse; su primera aplicación fue la de

soportar la información sobre estampados de tejidos en el telar de Joseph Marie Jacquard

y la aplicación más consistente fue la de soportar la información del censo de Estados

Unidos en la maquina censadora de Herrman Holerith.

La forma de grabación de datos en estos elementos se realizaba a través de perforaciones

en un soporte generalmente de papel, en el que quedaban permanentemente sin

posibilidad de modificación, por lo que eran soportes de información que no podían

volverse a modificar (solo lectura).

Figura 3.1: tarjetas perforadas.

3.3.2 Medios magnéticos

Los medios magnéticos son los que se basan en las propiedades magnéticas de algunos

materiales para el registro de la información. Comenzaron a utilizarse a partir de la

aparición de memorias de bases de núcleos de ferrita (utilizadas como memoria central).

Más tarde surgieron otros medios magnéticos más apropiados para el almacenamiento

masivo debido fundamentalmente a la densidad de grabación que permitían y por ellos a

la importante reducción del tamaño del soporte.

Como ejemplos de dispositivos de almacenamiento masivo magnéticos tenemos:

Tambor magnético.

Cinta magnética (Casettes).

Discos flexibles (Diskettes).

Discos duros (HDD – Hard Disk Drive).

Page 28: Universidad Católica Boliviana “San Pablo”programacionucb.pbworks.com/f/INF101... · lo apoyo para crear el proyecto de una máquina de diferencias, un dispositivo mecánico

INF-101 Introducción a la Programación 1-2010

Ingeniería de Sistemas – Universidad Católica Boliviana “San Pablo” Pagina - 28

3.3.2.1 Unidad de Disco Duro

Un disco duro o disco rígido (en inglés Hard Disk Drive) es un dispositivo no volátil, que

conserva la información aun con la pérdida de energía, que emplea un sistema de

grabación magnética digital. Dentro de la carcasa hay una serie de platos metálicos

apilados girando a gran velocidad. Sobre los platos se sitúan los cabezales encargados de

leer o escribir los impulsos magnéticos.

Figura 3.2: Disco Duro.

Hay distintos estándares para comunicar un disco duro con la computadora (Interfaces),

entre los cuales tenemos los siguientes:

Integrated Drive Electronics (IDE, también llamado PATA o solamente ATA).

Serial ATA (SATA).

SCSI generalmente usado en servidores.

Fiber Cable (FC) exclusivo para servidores.

Figura 3.3: Interfaces IDE y SATA de un Disco Duro.

Page 29: Universidad Católica Boliviana “San Pablo”programacionucb.pbworks.com/f/INF101... · lo apoyo para crear el proyecto de una máquina de diferencias, un dispositivo mecánico

INF-101 Introducción a la Programación 1-2010

Ingeniería de Sistemas – Universidad Católica Boliviana “San Pablo” Pagina - 29

Tal y como sale de fábrica, el disco duro no puede ser utilizado por un sistema operativo.

Antes se deben definir en él un formato de bajo nivel, una o más particiones y luego

hemos de darles un formato que pueda ser entendido por nuestro sistema.

Estructura de un Disco Duro

Dentro de un disco duro hay uno o varios platos (entre 2 y 4 normalmente, aunque hay

hasta de 6 ó 7 platos), que son discos (de aluminio o cristal) concéntricos y que giran todos

a la vez. El cabezal (dispositivo de lectura y escritura) es un conjunto de brazos alineados

verticalmente que se mueven hacia dentro o fuera según convenga, todos a la vez. En la

punta de dichos brazos están las cabezas de lectura/escritura, que gracias al movimiento

del cabezal pueden leer tanto zonas interiores como exteriores del disco.

Hay varios conceptos para referirse a zonas del disco:

Plato: cada uno de los discos que hay dentro del disco duro.

Cara: cada uno de los dos lados de un plato.

Cabeza: número de cabezales;

Pista: una circunferencia dentro de una cara; la pista 0 está en el borde exterior.

Cilindro: Conjunto de varias pistas; son todas las circunferencias que están

alineadas verticalmente (una de cada cara).

Sector: Cada una de las divisiones de una pista.

Cluster: La unión de varios sectores de una pista. Su tamaño estándar actual es de

512 Bytes.

Figura 3.4: Pista (A), Sector (B), Sector de una Pista (C) y Cluster (D).

Un master boot record (MBR) es el primer sector ("sector cero") de un dispositivo de

almacenamiento de datos. A veces, se emplea para el arranque del sistema operativo con

Page 30: Universidad Católica Boliviana “San Pablo”programacionucb.pbworks.com/f/INF101... · lo apoyo para crear el proyecto de una máquina de diferencias, un dispositivo mecánico

INF-101 Introducción a la Programación 1-2010

Ingeniería de Sistemas – Universidad Católica Boliviana “San Pablo” Pagina - 30

bootstrap, otras veces es usado para almacenar una tabla de particiones y, en ocasiones,

se usa sólo para identificar un dispositivo de disco individual, aunque en algunas máquinas

esto último no se usa y es ignorado.

En la Pista Cero (Pista 0) se encuentra el direccionamiento lógico de los archivos

almacenados en un disco magnético.

3.3.3 Medios Ópticos

Los medios ópticos son aquellos que se basan en propiedades ópticas generalmente

relacionadas con la reflexión de la luz. En la actualidad se están utilizando como

elementos reconocedores de estas propiedades dispositivos basados en rayos láser.

Los soportes ópticos son documentos de papel, cartulina o plástico sobre los que se

escriben caracteres normalizados o marcas fácilmente reconocibles tanto por las

máquinas como por las personas. Dichos caracteres o marcas pueden ser escritos de

forma automática por máquinas de escribir o impresoras de computadora o también de

forma manual.

3.3.3.1 Discos Ópticos

El soporte de información en disco óptico, también denominado disco compacto

(compact disc-CD), aparece como consecuencia de su alta difusión en el mundo de la

música y la imagen, donde recibe el nombre de compact-disk o video-disk, y se utiliza en

este ámbito para el registro de señales analógicas digitalizadas, tanto musicales como de

vídeo, con una alta calidad y densidad de grabación. Por lo tanto, y debido a sus

características, el disco óptico configura un soporte de información de alta densidad y por

ello de alta capacidad de almacenamiento de datos sensiblemente superior a la de discos

magnéticos y que puede oscilar entre varios cientos de megabytes y un gigabyte por cara

del disco.

La información se registra, en el caso más general, en una superficie donde se genera

minúsculas perforaciones denominadas pits. Capaces de ser detectadas mediante la

incisión sobre ellas de un rayo láser que será reflejado de distinta forma si existe o no

dicha perforación.

Page 31: Universidad Católica Boliviana “San Pablo”programacionucb.pbworks.com/f/INF101... · lo apoyo para crear el proyecto de una máquina de diferencias, un dispositivo mecánico

INF-101 Introducción a la Programación 1-2010

Ingeniería de Sistemas – Universidad Católica Boliviana “San Pablo” Pagina - 31

Figura 3.5: Unidad de lectura de Blu-Ray Disc.

3.4 Terminales de Pantalla

El monitor o pantalla de computadora, aunque también es común llamarlo "pantalla", es

un dispositivo de salida que, mediante una interfaz, muestra los resultados del

procesamiento de una computadora.

Los primeros monitores surgieron en el año 1981 y eran monitores monocromáticos (de

un solo color). Poco después y en el mismo año salieron los monitores CGA (Color

Graphics Adapter) fueron comercializados en 1981 al desarrollarse la primera tarjeta

gráfica a partir del estándar CGA de IBM.

Tres años más tarde surgió el monitor EGA (Enhaced Graphics Adapter) estándar

desarrollado por IBM para la visualización de gráficos, este monitor aportaba más colores

(16 colores) y una mayor resolución. En 1987 surgió el estándar VGA (Video Graphics

Array) fue un estándar muy acogido y dos años más tarde se mejoró y rediseñó para

solucionar ciertos problemas que surgieron, desarrollando así SVGA (Super VGA), que

también aumentaba colores y resoluciones, para este nuevo estándar se desarrollaron

tarjetas graficas de fabricantes hasta día de hoy conocidos como NVIDIA GeForce o ATI

entre otros.

Figura 3.6: Tarjeta de Video ATI.

Page 32: Universidad Católica Boliviana “San Pablo”programacionucb.pbworks.com/f/INF101... · lo apoyo para crear el proyecto de una máquina de diferencias, un dispositivo mecánico

INF-101 Introducción a la Programación 1-2010

Ingeniería de Sistemas – Universidad Católica Boliviana “San Pablo” Pagina - 32

3.4.1 Tipos de monitores

Figura 3.7: Monitor CRT y LCD.

3.4.1.1 Monitores CRT

Los primeros monitores eran monitores de tubo de rayos catódicos (CRT), completamente

analógicos, realizaban un barrido de la señal a lo largo de la pantalla produciendo cambios

de tensión en cada punto, generando así imágenes.

3.4.1.2 Monitores LCD

Más tarde surgieron los monitores planos de cristal liquido, que empezaban a ser digital-

analógicos, internamente trabajaban en digital y exteriormente les llegaban las señales en

analógico, actualmente la fuente de datos puede ser también digital. Se adaptan bastante

mal a resoluciones no nativas de la pantalla. Son ligeros y planos.

3.4.1.3 Monitores plasma

No mucho más tarde que los LCD se desarrollaron la tecnología del plasma, que parecía

iba a desbancar al LCD, sin embargo actualmente siguen ambas tecnologías vivas. En el

presente se están desarrollando monitores de unas 30 pulgadas de plasma, normalmente

estos monitores tienden a ser más grandes que los LCD ya que contra más grandes son

estos monitores mejor es la relación tamaño-calidad/precio.

3.4.1.4 Monitores LEDs

Se están investigando tecnologías usando LEDs para desarrollar monitores OLED,

completamente flexibles, económicos y con poco consumo, podrían ser una revolución

dentro de los monitores, por sus propiedades, actualmente se desarrollan los primeros

prototipos para PDA y dispositivos móviles.

Page 33: Universidad Católica Boliviana “San Pablo”programacionucb.pbworks.com/f/INF101... · lo apoyo para crear el proyecto de una máquina de diferencias, un dispositivo mecánico

INF-101 Introducción a la Programación 1-2010

Ingeniería de Sistemas – Universidad Católica Boliviana “San Pablo” Pagina - 33

3.5 Terminales de Teclado

Un teclado (keyboard en ingles) es un periférico o dispositivo que consiste en un sistema

de teclas, como las de una máquina de escribir, que permite introducir datos u órdenes a

una computadora o dispositivo digital.

Sobre la distribución de los caracteres en el teclado surgieron dos variantes principales: la

francesa AZERTY y la alemana QWERTY. Ambas se basaban en cambios en la disposición

según las teclas más frecuentemente usadas en cada idioma.

Figura 3.8: Teclado QWERTY inalámbrico.

3.6 Dispositivos de comunicación de datos

Adicionalmente debemos en la actualidad añadir a los dispositivos de comunicación de

datos, puesto que forman también parte de un Sistema de Procesamiento de la

información.

Entre estos tenemos:

Routers.

Switches.

Hubs.

Repetidores.

Módems.

Tarjetas de red.

Una red de computadoras, también llamada red de ordenadores o red informática, es un

conjunto de equipos (computadoras y/o dispositivos) conectados por medio de cables,

señales, ondas o cualquier otro método de transporte de datos, que comparten

información (archivos), recursos (CD-ROM, impresoras, etc.), servicios (acceso a internet,

e-mail, chat, juegos), etc.

Page 34: Universidad Católica Boliviana “San Pablo”programacionucb.pbworks.com/f/INF101... · lo apoyo para crear el proyecto de una máquina de diferencias, un dispositivo mecánico

INF-101 Introducción a la Programación 1-2010

Ingeniería de Sistemas – Universidad Católica Boliviana “San Pablo” Pagina - 34

Las redes de computadoras se pueden clasificar en las siguientes según el área geográfica

que abarcan:

PAN (Personal Area Network): Redes de Área personal.

Ej.: Interconexión entre un mouse o teclado inalámbrico a un computador

mediante tecnología bluetooth o infrarroja.

LAN (Local Area Network): Redes de Área Local.

Ej.: La red de computadoras de un laboratorio o centro de computo de una

universidad, La conexión de red de un café internet, o la interconexión de

una área de trabajo en una empresa.

CAN (Campus Area Network): Redes de Área de Campus.

Ej.: Red que interconecta varias unidades de una empresa. Red que

interconecta los laboratorios, y áreas administrativas de una universidad.

MAN (Metropolitan Area Network): Redes de Área Metropolitana.

Ej.: Red que interconecta los cajeros automáticos de un banco con sus

agencias distribuidas por una ciudad.

WAN (Wide Area Network): Red de Área Extensa.

Ej.: red que interconecta las redes de computadoras de ciudades, países y

continentes (Internet).

SAN (Storage Area Network): Red de Área de Almacenamiento.

Ej.: Discos Duros interconectados entre sí que almacenan información de

varios servidores.

Page 35: Universidad Católica Boliviana “San Pablo”programacionucb.pbworks.com/f/INF101... · lo apoyo para crear el proyecto de una máquina de diferencias, un dispositivo mecánico

INF-101 Introducción a la Programación 1-2010

Ingeniería de Sistemas – Universidad Católica Boliviana “San Pablo” Pagina - 35

Tema #4 – Sistemas Operativos y Traductores

4.1 Introducción

Un Sistema operativo (SO) es un programa informático que actúa de interfaz entre los

dispositivos de hardware y el usuario. Es responsable de gestionar, coordinar las

actividades y llevar a cabo el intercambio de recursos de un computador. Actúa como

estación para las aplicaciones que se ejecutan en la máquina.

Cuando se aplica voltaje al procesador de un dispositivo electrónico, éste ejecuta un

reducido código en lenguaje ensamblador localizado en una dirección concreta en la ROM,

que a su vez ejecuta una rutina con la que se inicializa el hardware que acompaña al

procesador.

Un sistema operativo se puede encontrar en la mayoría de los aparatos electrónicos que

utilicen microprocesadores para funcionar, ya que gracias a éstos podemos entender la

máquina y que ésta cumpla con sus funciones (teléfonos móviles, reproductores de DVD,

auto-radios, computadoras, radios, etc).

Figura 4.1: Interacción entre el SO y las otras partes.

Page 36: Universidad Católica Boliviana “San Pablo”programacionucb.pbworks.com/f/INF101... · lo apoyo para crear el proyecto de una máquina de diferencias, un dispositivo mecánico

INF-101 Introducción a la Programación 1-2010

Ingeniería de Sistemas – Universidad Católica Boliviana “San Pablo” Pagina - 36

4.2 Funciones básicas

Un Sistema operativo (SO) desempeña 5 funciones básicas en la operación de un sistema

informático:

Interfaces del usuario: Es la parte del sistema operativo que permite comunicarse

con él, de tal manera que se puedan cargar programas, acceder archivos y realizar

otras tareas. Existen tres tipos básicos de interfaces: las que se basan en

comandos, las que utilizan menús y las interfaces gráficas de usuario.

Administración de recursos: Sirven para administrar los recursos de hardware y de

redes de un sistema informático, como la CPU, memoria, dispositivos de

almacenamiento secundario y periféricos de entrada y de salida.

Administración de archivos: Un sistema de información contiene programas de

administración de archivos que controlan la creación, borrado y acceso de archivos

de datos y de programas. También implica mantener el registro de la ubicación

física de los archivos en los discos magnéticos y en otros dispositivos de

almacenamiento secundarios.

Administración de tareas: Los programas de administración de tareas de un

sistema operativo administran la realización de las tareas informáticas de los

usuarios finales. Los programas controlan qué áreas tienen acceso al CPU y por

cuánto tiempo. Las funciones de administración de tareas pueden distribuir una

parte específica del tiempo del CPU para una tarea en particular, e interrumpir al

CPU en cualquier momento para sustituirla con una tarea de mayor prioridad.

Servicios de soporte: Los servicios de soporte de cada sistema operativo

dependerán de la implementación particular de éste con la que estemos

trabajando. Entre las más conocidas se pueden destacar las implementaciones de

Unix, desarrolladas por diferentes empresas de software, los sistemas operativos

de Apple Inc., como Mac OS X para las computadoras de Apple Inc., los sistemas

operativos de Microsoft, y las implementaciones de software libre, como

GNU/Linux o BSD producidas por empresas, universidades, administraciones

públicas, organizaciones sin fines de lucro y/o comunidades de desarrollo. Estos

servicios de soporte suelen consistir en:

Actualización de versiones.

Mejoras de seguridad.

Inclusión de alguna nueva utilidad.

Page 37: Universidad Católica Boliviana “San Pablo”programacionucb.pbworks.com/f/INF101... · lo apoyo para crear el proyecto de una máquina de diferencias, un dispositivo mecánico

INF-101 Introducción a la Programación 1-2010

Ingeniería de Sistemas – Universidad Católica Boliviana “San Pablo” Pagina - 37

Controladores para manejar nuevos periféricos.

Corrección de errores de software.

Figura 4.2: Estimación del uso de Sistemas Operativos (Fuente: W3conter).

No todas las utilidades de administración o servicios forman parte del sistema

operativo, además de éste, hay otros tipos importantes de software de

administración de sistemas, como los sistemas de administración de base de datos

o los programas de administración de redes. El soporte de estos productos deberá

proporcionarlo el fabricante correspondiente (que no tiene porque ser el mismo

que el del sistema operativo).

4.3 Programas de proceso

Los programas de proceso están enfocados preferentemente para ayudar al programador

en la puesta a punto de programas, llegando incluso a proporcionarle pseudo-programas

estándares semi-escritos, que completados con pocas instrucciones mas quedan

perfectamente listos para su ejecución.

Todo sistema operativo posee en su entorno un conjunto de programas para este fin.

Existen dos tipos de programas de proceso, los programas traductores y los programas de

servicio.

4.3.1 Programas traductores

Los programas traductores son meta-programas que toman como entrada un programa

escrito en lenguaje simbólico alejado de la maquina denominado programa fuente y

Page 38: Universidad Católica Boliviana “San Pablo”programacionucb.pbworks.com/f/INF101... · lo apoyo para crear el proyecto de una máquina de diferencias, un dispositivo mecánico

INF-101 Introducción a la Programación 1-2010

Ingeniería de Sistemas – Universidad Católica Boliviana “San Pablo” Pagina - 38

proporcionan como salida otro programa equivalente escrito en un lenguaje comprensible

por el hardware de la computadora denominado programa objeto.

Existen 3 tipos de programas traductores:

a) Programas ensambladores: Son programas traductores que transforman

programas fuente escritos en lenguajes simbólicos de bajo nivel (denominados

lenguajes ensambladores o assemblers), en programas objeto, escritos en

lenguaje de máquina y ejecutables directamente por el hardware de la

computadora.

Figura 4.3: Programa en lenguaje ensamblador.

Page 39: Universidad Católica Boliviana “San Pablo”programacionucb.pbworks.com/f/INF101... · lo apoyo para crear el proyecto de una máquina de diferencias, un dispositivo mecánico

INF-101 Introducción a la Programación 1-2010

Ingeniería de Sistemas – Universidad Católica Boliviana “San Pablo” Pagina - 39

b) Programas compiladores: Son programas traductores encargados de transformar

programas fuente escritos en lenguaje simbólico de alto nivel, en programas

objeto escritos en lenguaje de máquina. La traducción no suele ser directa,

apareciendo un paso intermedio situado en un nivel similar al de ensamblador.

Una característica fundamental de este tipo de traductores es que se realiza la

traducción completa, y en el caso de no existir errores se pasa a la creación del

programa objeto. La traducción del programa fuente se efectúa, además, de forma

que cada instrucción del programa fuente se transforma en una o más

instrucciones en el programa objeto.

Turbo C

C/C++

Pascal

Basic

Figura 4.4: El IDE Codeblocks que utiliza el compilador GNU GCC (Lenguaje C/C++).

c) Programas Interprete: Son programas traductores que transforman programas

fuente escritos en lenguaje de alto nivel en programas objeto escritos en lenguaje

maquina. En estos programas interpretes la traducción se realiza de forma que

después de transformar una instrucción del programa fuente en una o varias

Page 40: Universidad Católica Boliviana “San Pablo”programacionucb.pbworks.com/f/INF101... · lo apoyo para crear el proyecto de una máquina de diferencias, un dispositivo mecánico

INF-101 Introducción a la Programación 1-2010

Ingeniería de Sistemas – Universidad Católica Boliviana “San Pablo” Pagina - 40

instrucciones en lenguaje maquina no se espera a traducir la siguiente instrucción,

sino que inmediatamente se ejecuta. Como ejemplo tenemos los siguiente:

Perl

PHP

Java

ASP

Python

C#

J#

4.3.2 Programas de servicio

Los programas de servicio son un grupo de programas que realizan funciones útiles para él

para el sistema o para el usuario (comúnmente llamados utilidades).

Teniendo en cuenta el campo de actuación de los programas de servicio, se pueden

clasificar en dos grupos.

a) Programas de manipulación de datos: Son aquellos que liberan al programador de

trabajos engorrosos, ya que realizan de forma automática alguna de las siguientes

funciones:

Transferencia de informaciones o archivos entre soportes.

Recodificación (transcodificación) o transformación de informaciones.

Recodificación de la información en archivos.

Ordenación de datos en archivos.

b) Programas de servicio del sistema: Tienen como misión la generación del sistema

operativo completo sobre la computadora, la presentación de los programas y la

creación y mantenimiento de las bibliotecas de programas.

4.4 Proceso de compilación

Por ser los compiladores el tipo de traductores más utilizado en la actualidad,

desarrollamos el proceso de compilación, que consiste en la traducción de un programa

fuente escrito en lenguaje de alto nivel en su correspondiente programa objeto escrito en

lenguaje máquina, dejándolo listo para la ejecución con poca o ninguna preparación

adicional.

Page 41: Universidad Católica Boliviana “San Pablo”programacionucb.pbworks.com/f/INF101... · lo apoyo para crear el proyecto de una máquina de diferencias, un dispositivo mecánico

INF-101 Introducción a la Programación 1-2010

Ingeniería de Sistemas – Universidad Católica Boliviana “San Pablo” Pagina - 41

Para ejecutar la compilación de un programa, éste debe estar en memoria central

simultáneamente con el compilador. El resultado de la compilación puede dar lugar a la

que se denomina listado de compilación, que nos permite ver dichos errores para volver al

programa editor, corregirlos y empezar de nuevo el proceso de compilación.

Obtenido el programa objeto es necesario someterlo a un proceso de montaje donde se

enlazan los distintos módulos, en caso de programas que poseen subprogramas. Además

se incorporan las denominadas rutinas de librería en caso de solicitarlas el propio

programa. Como ya hemos mencionado, este montaje lo realiza un programa denominado

montador que también recibe el nombre de editor de enlace o linker.

Figura 4.5: Proceso de compilación.

Programa fuenteEDITOR

COMPILADOR

Errores?

Programa Objeto

Editor de enlaceLINKER

Programa Ejecutable

LIBRERIAS

Listado de compilación

MAPA

SI

NO

Page 42: Universidad Católica Boliviana “San Pablo”programacionucb.pbworks.com/f/INF101... · lo apoyo para crear el proyecto de una máquina de diferencias, un dispositivo mecánico

INF-101 Introducción a la Programación 1-2010

Ingeniería de Sistemas – Universidad Católica Boliviana “San Pablo” Pagina - 42

Tema #5 – La Información y su representación

5.1 Introducción

Los sistemas de numeración son las distintas formas de representar la información

numérica. Se nombran haciendo referencia a la base, que representa el número de dígitos

diferentes para representar todos los números.

El sistema habitual de numeración para las personas es el Decimal, cuya base es diez y

corresponde a los distintos dedos de la mano, mientras que el método habitualmente

utilizado por los sistemas electrónicos digitales es el Binario, que utiliza únicamente dos

cifras para representar la información: el 0 y el 1.

5.2 Clasificación de los sistemas de numeración

Para simplificar, dividiremos a todos los sistemas en dos tipos.

5.2.1 Sistemas de numeración No-posicionales

Estos son los más primitivos se usaban por ejemplo los dedos de la mano para representar

la cantidad cinco y después se hablaba de cuántas manos se tenía. También se sabe que se

usaba cuerdas con nudos para representar cantidad. Tiene mucho que ver con la

coordinabilidad entre conjuntos.

Entre ellos están los sistemas el antiguo Egipto, el sistema de numeración romana, y los

usados en Mesoamérica por mayas, aztecas y otros pueblos.

Figura 5.1: Sistemas de numeración egipcio y azteca.

Page 43: Universidad Católica Boliviana “San Pablo”programacionucb.pbworks.com/f/INF101... · lo apoyo para crear el proyecto de una máquina de diferencias, un dispositivo mecánico

INF-101 Introducción a la Programación 1-2010

Ingeniería de Sistemas – Universidad Católica Boliviana “San Pablo” Pagina - 43

5.2.2 Sistemas de numeración Posicionales

El número de símbolos permitidos en un sistema de numeración posicional se conoce

como base del sistema de numeración. Si un sistema de numeración posicional tiene base

b significa que disponemos de b símbolos diferentes para escribir los números, y que b

unidades forman una unidad de orden superior.

5.2.3 Sistemas de numeración Semi - posicionales

El sistema de los números romanos no es estrictamente posicional. Por esto, es muy

complejo diseñar algoritmos de uso general (por ejemplo, para sumar, restar, multiplicar o

dividir). Como ejemplo, en el número romano XCIX (99 decimal) los numerales X (10

decimal) del inicio y del fin de la cifra equivalen siempre al mismo valor, sin importar su

posición dentro de la cifra.

Figura 5.2: Sistemas de numeración romano.

5.3 Sistemas Decimal

Desde hace bastante tiempo, el hombre ha utilizado como sistema para contar el

denominado Sistema Decimal, que derivo del sistema numérico indo-arábico,

posiblemente se adopto este sistema por contar con diez dedos en las manos.

Page 44: Universidad Católica Boliviana “San Pablo”programacionucb.pbworks.com/f/INF101... · lo apoyo para crear el proyecto de una máquina de diferencias, un dispositivo mecánico

INF-101 Introducción a la Programación 1-2010

Ingeniería de Sistemas – Universidad Católica Boliviana “San Pablo” Pagina - 44

Figura 5.3: Sistemas decimal.

5.4 Teorema Fundamental de la Numeración (TFN)

Este teorema establece la forma general de construir números en un sistema de

numeración posicional. Primero estableceremos unas definiciones básicas:

Por ejemplo si tenemos el número 153,6 utilizando e sistema octal (base ocho), el paso a

decimal se haría:

1 * 82 + 5*81 + 3 * 80 + 6*8-1 = 64 + 40 + 3 +6/8 = 107,75

5.5 Sistema binario

Los números binarios son los que utilizan las computadoras para almacenar información.

Debido a ello hay términos informáticos que se refieren al sistema binario y que se utilizan

continuamente. Son:

Bit (b): Digito binario (1 o 0).

Nibble o cuarteto: Es el conjunto de cuatro bits (1001).

Bytes u Octeto (B): Es el conjunto de 8 bits (11110000).

Kilo Bytes (KB): Es el conjunto de 1024 Bytes (210 Bytes).

Mega Bytes (MB): Es el conjunto de 1024 KBytes (220 Bytes).

Giga Bytes (GB): Es el conjunto de 1024 MBytes (230 Bytes).

Tera Bytes (TB): Es el conjunto de 1024 GBytes (240 Bytes).

Peta Bytes (PB): Es el conjunto de 1024 PBytes (250 Bytes).

Exa Bytes (EB): Es el conjunto de 1024 EBytes (260 Bytes).

Zeta Bytes (ZB): Es el conjunto de 1024 ZBytes (270 Bytes).

Yotta Bytes (YB): Es el conjunto de 1024 YBytes (280 Bytes).

Page 45: Universidad Católica Boliviana “San Pablo”programacionucb.pbworks.com/f/INF101... · lo apoyo para crear el proyecto de una máquina de diferencias, un dispositivo mecánico

INF-101 Introducción a la Programación 1-2010

Ingeniería de Sistemas – Universidad Católica Boliviana “San Pablo” Pagina - 45

5.5.1 Operaciones aritméticas binarias

5.5.1.1 Suma Binaria

Los números binarios se suman en forma análoga que los de base decimal, es decir de

derecha a izquierda, arrastrando el acarreo (1) a la columna inmediata de la izquierda.

Las condiciones para la suma

0 + 0 = 0

1 + 0 = 1

0 + 1 = 1

1 + 1 = 0 con 1 de acarreo

Ejemplo (suma de 31, en binario 10011, y 28, en binario, 11100).

El resultado es:

Acarreo 1 1 1

1 1 1 1 1

1 1 1 0 0

1 1 1 0 1 1

5.5.1.2 Resta Binaria

El concepto es parecido sólo que en el caso de la resta es importante tener en cuenta el

signo. Semejante a la sustracción decimal con la excepción que trabajamos con base 2 (en

la base decimal cuando tenemos 0-N prestamos 10 unidades al dígito de la izquierda).

Las reglas para la resta son las siguientes:

0 - 0 = 0

1 - 1 = 0

1 - 0 = 1

0 - 1 = 1 (con préstamo del digito que está a la izquierda)

Ejemplo:

1 1 0 0 1 0 1

0 1 1 1 0 1 1

------------------

0 1 0 1 0 1 0

Page 46: Universidad Católica Boliviana “San Pablo”programacionucb.pbworks.com/f/INF101... · lo apoyo para crear el proyecto de una máquina de diferencias, un dispositivo mecánico

INF-101 Introducción a la Programación 1-2010

Ingeniería de Sistemas – Universidad Católica Boliviana “San Pablo” Pagina - 46

Este es el denominado “método directo”, sin embargo es posible efectuar esta operación

mediante el denominado “complemento a 2”, que consiste en complementar (cambiar los

ceros por unos y viceversa) al segundo término sustraendo, luego se ambos suman ambos

términos y a este resultado se agrega un uno (1), finalmente del resultado final se

desprecia el primer digito.

Veamos el ejemplo anterior:

1 1 0 0 1 0 1

0 1 1 1 0 1 1 complementamos en 1 esta cifra y obtenemos:

1 1 0 0 1 0 1 1 0 0 0 1 0 0

------------------ 1 0 1 0 1 0 0 1 + 1

-------------------

(1) 0 1 0 1 0 1 0

El primer (1) se desprecia de valor final y el resultado es 0 1 0 1 0 1 0.

5.6 Sistema hexadecimal

Es un sistema que se utiliza mucho para representar números binarios. Un problema

(entre otros) de los números binarios es que ocupan mucho espacio para representar

información. El sistema hexadecimal es la forma de representar números en base 16. de

modo que en los dígitos del 0 al 9 se utilizan los mismos símbolos que en el sistema

decimal y a partir del 10 se utiliza la letra A y así hasta la letra F que simboliza el 15.

Así el número hexadecimal CA3 sería:

C * 162 + A * 161 + 3 * 160 = 12 * 256 + 10 * 16 + 3 = 3235

Como se observa pasar de hexadecimal a decimal es complejo. La razón del uso de este

sistema es porque tiene una equivalencia directa con el sistema binario. De hecho en una

cifra hexadecimal caben exactamente 4 bits. Por ello la traducción de hexadecimal a

binario se basa en esta tabla:

Page 47: Universidad Católica Boliviana “San Pablo”programacionucb.pbworks.com/f/INF101... · lo apoyo para crear el proyecto de una máquina de diferencias, un dispositivo mecánico

INF-101 Introducción a la Programación 1-2010

Ingeniería de Sistemas – Universidad Católica Boliviana “San Pablo” Pagina - 47

HEX BIN

0 0000

1 0001

2 0010

3 0011

4 0100

5 0101

6 0110

7 0111

8 1000

9 1001

A 1010

B 1011

C 1100

D 1101

E 1110

F 1111

Así el número hexadecimal C3D4 sería el binario 1100 0011 1101 0100. Y el binario 0111

1011 1100 0011 sería el hexadecimal 7BC3.

5.7 Conversiones

5.7.1 CASO A: Método directo para la conversión de números en Base 10 a

base X (Divisiones sucesivas).

En este caso se aplican divisiones sucesivas para la parte entera del número, y

multiplicaciones sucesivas para la parte fraccionaria. Para ello, se siguen los siguientes

pasos.

Parte entera

1) Si el numero es entero, se divide el numero entre la base.

2) Se debe seguir realizando las divisiones hasta que el cociente sea menor a la

base destino.

3) Se copia el resultado de derecha a izquierda el último de los cocientes y los

residuos.

Parte fraccionaria

4) La base fraccionaria se debe multiplicar por la base destino.

5) Se debe copiar la parte de cada multiplicación al resultado.

Page 48: Universidad Católica Boliviana “San Pablo”programacionucb.pbworks.com/f/INF101... · lo apoyo para crear el proyecto de una máquina de diferencias, un dispositivo mecánico

INF-101 Introducción a la Programación 1-2010

Ingeniería de Sistemas – Universidad Católica Boliviana “San Pablo” Pagina - 48

6) Las multiplicaciones se detienen cuando se repite una serie, o cuando se trunca

en 0. También se detiene el proceso cuando se determina el número de dígitos

a llegar.

Nº Decimal Base Cociente Resto

107 2 53 1

53 2 26 1

26 2 13 0

13 2 6 1

6 2 3 0

3 2 1 1

10710= 11010112

Cuando tengamos un número con decimales seguiremos el siguiente procedimiento: multiplicaremos por 2 la parte decimal y se toma como dígito binario su parte entera. El proceso se repite con la fracción decimal resultante del paso anterior, hasta obtener una fracción decimal nula, o bien hasta obtener el número de cifras binarias que se desee. Ejemplo: 107,645. Como anteriormente convertimos 107 a binario, el resultado de la conversión quedaría así:

1101011, 101001012

Fracción

decimal

Multiplicado

por: Resultado

Dígito

binario

0,645 2 1,290 1

0,290 2 0,580 0

0,580 2 1,160 1

0.160 2 0,320 0

0,320 2 0.64 0

0.64 2 1.28 1

0.28 2 0.56 0

0.56 2 1.12 1

5.7.2 CASO B: Método directo para la conversión de números en Base X a

base 10 (TFN).

El Teorema Fundamental de la Numeración nos permite convertir un número de cualquier

base a base decimal. Por ejemplo para el número binario 10011011011 el paso sería (los

ceros se han ignorado):

Ej:

1 * 210 + 1 * 27 + 1*26 + 1* 24 + 1*23 + 1*21 + 1*20 = 1243

Ej Sea el número binario: 1001,11

1 * 23 + 1*20 + 1* 2-1 + 1 * 2-2 = 8 + 1 + 0,5 + 0,25 = 9, 75

Page 49: Universidad Católica Boliviana “San Pablo”programacionucb.pbworks.com/f/INF101... · lo apoyo para crear el proyecto de una máquina de diferencias, un dispositivo mecánico

INF-101 Introducción a la Programación 1-2010

Ingeniería de Sistemas – Universidad Católica Boliviana “San Pablo” Pagina - 49

5.7.3 CASO C: Método directo para la conversión de números de sistema

octal a binario y binario a octal.

Si la conversión es de octal a binario cada cifra se sustituirá por su equivalente binario.

Tendremos en cuenta la siguiente tabla para hacer la conversión de modo más rápido:

Carácter octal Nº binario

0

1

2

3

4

5

6

7

000

001

010

011

100

101

110

111

Ejemplo: 55,358

Resultado: 101 101, 011 1012

Si la conversión es de binario a octal se realiza de modo contrario a la anterior conversión,

agrupando los bits enteros y los fraccionarios en grupos de 3 a partir de la coma decimal.

Si no se consiguen todos los grupos de tres se añadirán, los ceros que sean necesarios al

último grupo, veámoslo con un ejemplo:

Ejemplo: 11011111,111112 Resultado: 237,768

Observa como ha sido necesario añadir un cero en la última agrupación de la parte entera y otro

en la parte fraccionaria para completar los grupos de 3 dígitos.

Agrupación Equivalente octal

010 2

011 3

111 7

, ,

111 7

110 6

5.7.4 CASO D: Método directo para la conversión de números de sistema

hexadecimal a binario y binario a hexadecimal.

La conversión entre binario y hexadecimal es igual al de la conversión octal y binario, pero

teniendo en cuenta los caracteres hexadecimales, ya que se tienen que agrupar de 4 en 4.

La conversión de binario a hexadecimal se realiza según el ejemplo siguiente:

Page 50: Universidad Católica Boliviana “San Pablo”programacionucb.pbworks.com/f/INF101... · lo apoyo para crear el proyecto de una máquina de diferencias, un dispositivo mecánico

INF-101 Introducción a la Programación 1-2010

Ingeniería de Sistemas – Universidad Católica Boliviana “San Pablo” Pagina - 50

Sistema binario Sistema Hexadecimal

0000 0

0001 1

0010 2

0011 3

0100 4

0101 5

0110 6

0111 7

1000 8

1001 9

1010 A

1011 B

1100 C

1101 D

1110 E

1111 F

Ejemplo: 1011111,1100012

Agrupando obtenemos el siguiente resultado: 0101 1111, 1100 01002

Sustituyendo según la tabla logramos la conversión esperada:

5F, C416

La conversión de hexadecimal a binario simplemente sustituiremos cada carácter por su

equivalente en binario, por ejemplo:

69DE16= 0110 1001 1101 11102

5.8 Ejercicios Propuestos.

1. Convertir de binario a decimal

a) 110012 Solución: 2510

b) 10110110112 Solución: 73110

2. Convertir de decimal a binario

a) 86910 Solución: 11011001012 b) 842610 Solución: 100000111010102

3. Convertir de binario a octal

a) 1110101012 Solución: 7258 b) 11011, 012 Solución: 33,28

Page 51: Universidad Católica Boliviana “San Pablo”programacionucb.pbworks.com/f/INF101... · lo apoyo para crear el proyecto de una máquina de diferencias, un dispositivo mecánico

INF-101 Introducción a la Programación 1-2010

Ingeniería de Sistemas – Universidad Católica Boliviana “San Pablo” Pagina - 51

4. Convertir de octal a binario

a) 20668 Solución: 0100001101102 b) 142768 Solución: 0011000101111102

5. Convertir de binario a hexadecimal

a) 1100010002 Solución: 18816 b) 100010,1102 Solución: 22,C

6. Convertir de hexadecimal a binario

a) 86BF16 Solución: 10000110101111112 b) 2D5E16 Solución: 00101101010111102

7. Convertir de octal a decimal

a) 1068 Solución: 7010 b) 7428 Solución: 48210

8. Convertir de decimal a octal:

a) 23610 Solución: 3548

b) 5274610 Solución: 1470128

Page 52: Universidad Católica Boliviana “San Pablo”programacionucb.pbworks.com/f/INF101... · lo apoyo para crear el proyecto de una máquina de diferencias, un dispositivo mecánico

INF-101 Introducción a la Programación 1-2010

Ingeniería de Sistemas – Universidad Católica Boliviana “San Pablo” Pagina - 52

Tema #6 – Algoritmos

6.1 Concepto de algoritmo

Un algoritmo es un conjunto finito de instrucciones o pasos que sirven para ejecutar una

tarea o resolver un problema. De un modo más formal, un algoritmo es una secuencia

finita de operaciones realizables, no ambiguas, cuya ejecución da una solución de un

problema en un tiempo finito.

El término algoritmo no está exclusivamente relacionado con la matemática, ciencias de la

computación o informática realidad, en la vida cotidiana empleamos algoritmos en

multitud de ocasiones para resolver diversos problemas. Algunos ejemplos son el uso de

una lavadora (se siguen las instrucciones), la preparación de una plato especial o el

mismo lenguaje humano que "transforma" nuestros pensamientos en sonidos y hace que

otro humano nos pueda entender. También existen ejemplos de índole matemática, como

el algoritmo de la división para calcular el cociente de dos números, el algoritmo de

Euclides para calcular el máximo Común divisor de dos enteros positivos, o incluso el

método de Gauss para resolver Sistemas Lineales de Ecuaciones.

La resolución de un problema exige el diseño de un algoritmo que resuelva el problema

propuesto.

Figura 6.1: Resolución de un problema.

Los pasos para la resolución de un problema son:

1. Diseño del algoritmo que describe la secuencia ordenada de pasos (sin

ambigüedades) que conducen a la solución de un problema dado. (Análisis del

programa y desarrollo del algoritmo.)

2. Expresar el algoritmo como un programa en un lenguaje de programación

adecuado. (Fase de codificación)

Problema Diseno del algoritmoPrograma de computadora

Page 53: Universidad Católica Boliviana “San Pablo”programacionucb.pbworks.com/f/INF101... · lo apoyo para crear el proyecto de una máquina de diferencias, un dispositivo mecánico

INF-101 Introducción a la Programación 1-2010

Ingeniería de Sistemas – Universidad Católica Boliviana “San Pablo” Pagina - 53

3. Ejecución y validación del programa por la computadora.

Para llegar a la realización de un programa es necesario el diseño previo de un algoritmo,

de modo que sin este no es posible generar un programa basado en computadora.

Los algoritmos son independientes tanto del lenguaje de programación en que se

expresan como de la computadora que los ejecuta. En cada problema el algoritmo se

puede expresar en un lenguaje diferente de programación y ejecutarse en una

computadora distinta; sin embargo, el algoritmo será siempre el mismo. Así, por ejemplo,

en una analogía con la vida diaria, una receta de un plato de cocina se puede expresar en

español, inglés o francés, pero cualquiera que sea el lenguaje, los pasos para la

elaboración del plato se realizarán sin importar el idioma del cocinero.

En la ciencia de la computación y en la programación, los algoritmos son más importantes

que los lenguajes de programación o las computadoras. Un lenguaje de programación es

tan solo un medio para expresar un algoritmo y una computadora es sólo un procesador

para ejecutarlo. Tanto el lenguaje de programación como la computadora son los medios

para obtener un fin: conseguir que el algoritmo se ejecute y se efectúe el proceso

correspondiente.

Dada la importancia del algoritmo en la ciencia de la computación, un aspecto muy

importante será el diseño de algoritmos. A la enseñanza y práctica de esta tarea se dedica

gran parte de este texto.

El diseño de la mayoría de los algoritmos requiere creatividad y conocimientos de

técnicas de la programación. En esencia, la solución de un problema se puede expresar

mediante un algoritmo.

6.2 Características de los algoritmos

Las características fundamentales que debe cumplir todo algoritmo son:

Un algoritmo debe ser preciso e indicar el orden de realización.

Un algoritmo debe estar definido. Si se sigue un algoritmo dos veces, se debe

obtener el mismo resultado cada vez.

Un algoritmo debe ser finito. Si se sigue un algoritmo, se debe terminar en algún

momento; o sea debe tener un número finito de pasos.

La definición de un algoritmo debe describir tres partes: Entrada, proceso y salida. En el

algoritmo de receta de cocina citado anteriormente se tendrá:

Page 54: Universidad Católica Boliviana “San Pablo”programacionucb.pbworks.com/f/INF101... · lo apoyo para crear el proyecto de una máquina de diferencias, un dispositivo mecánico

INF-101 Introducción a la Programación 1-2010

Ingeniería de Sistemas – Universidad Católica Boliviana “San Pablo” Pagina - 54

Entrada: Ingredientes y utensilios empleados

Proceso: Elaboración de la receta en la cocina.

Salida: Terminación del plato (por ejemplo, pollo al horno).

Ejemplo 1

Un cliente ejecuta un pedido a una fábrica. La fábrica examina en su banco de datos la

ficha del cliente, si el cliente es solvente entonces la empresa acepta el pedido; en caso

contrario, rechazará el pedido. Redactar el algoritmo correspondiente.

Los pasos del algoritmo son:

1) Inicio.

2) Leer el pedido.

3) Examinar la ficha del cliente

4) Si el cliente es solvente, aceptar pedido; en caso contrario, rechazar pedido

5) Fin

6.3 Resolución de problemas

La principal razón para que las personas aprendan a programar en general y los lenguajes

de programación en particular, es utilizar la computadora como una herramienta para la

resolución de problemas. Ayudado por una computadora, la resolución de un problema se

puede dividir en tres fases importantes:

• Análisis del problema.

• Diseño o desarrollo del algoritmo.

• Resolución del algoritmo en la computadora.

El Análisis del problema requiere que el problema sea definido y comprendido

claramente para que pueda ser analizado con todo detalle. Una vez analizado el problema,

se debe desarrollar el algoritmo (procedimiento paso a paso para solucionar el problema

dado). Por último, para resolver el algoritmo mediante una computadora, se necesita

codificar el algoritmo en un lenguaje de programación C, C/++, JAVA, etc., es decir,

convertir el algoritmo en programa, ejecutarlo y comprobar que el programa soluciona

verdaderamente el problema. Las fases del proceso de resolución de un problema

mediante computadora se indican en la figura 6.2.

Page 55: Universidad Católica Boliviana “San Pablo”programacionucb.pbworks.com/f/INF101... · lo apoyo para crear el proyecto de una máquina de diferencias, un dispositivo mecánico

INF-101 Introducción a la Programación 1-2010

Ingeniería de Sistemas – Universidad Católica Boliviana “San Pablo” Pagina - 55

Figura 6.2: Etapas en la resolución de un problema en computadora.

6.3.1 Análisis del problema

El propósito del análisis de un problema, es ayudar al programador para llegar a una cierta

comprensión de la naturaleza del problema. El problema debe estar bien definido para así

llegar a una solución satisfactoria.

Para poder definir con precisión el problema, se requiere que las especificaciones de

entrada y salida sean descritas con detalle. Una buena definición del problema, junto con

una descripción detallada de las especificaciones de entrada y salida, son los requisitos

más importantes para llegar a una solución eficaz.

El análisis del problema exige una lectura previa del problema a fin de obtener una idea

general de lo que se solicita. La segunda lectura deberá servir para resolver a las

preguntas:

¿Qué información debe proporcionar la resolución del problema?

¿Qué datos se necesitan para resolver el problema?

La respuesta a la primera pregunta indicará los resultados deseados a las salidas del

problema.

La respuesta a la segunda pregunta indicará que datos se proporcionan a las entradas del

problema.

Resolucion de un problema

Analisis del problema

Diseno del algoritmo

Resolucion del problema en computadora

Page 56: Universidad Católica Boliviana “San Pablo”programacionucb.pbworks.com/f/INF101... · lo apoyo para crear el proyecto de una máquina de diferencias, un dispositivo mecánico

INF-101 Introducción a la Programación 1-2010

Ingeniería de Sistemas – Universidad Católica Boliviana “San Pablo” Pagina - 56

Figura 6.3: Etapas en el Análisis del Problema.

Ejemplo 2

Leer el radio de un círculo e imprimir su superficie y la longitud de la circunferencia.

Las entradas de datos en este problema se concentran en el radio del círculo. Dado que el

radio puede tomar cualquier valor dentro del rango de los números reales, el tipo de

datos radio debe ser real.

Las salidas serán dos variables: superficie y circunferencia, que también serán de tipo real.

• Entradas: Radio del circulo (variable RADIO).

• Salidas: Superficie del circulo (variable Área).

Circunferencia del circulo (variable Circunferencia).

• Variables: Radio, Área y circunferencia (tipo real).

6.3.2 Diseño del algoritmo

Una computadora no tiene capacidad para solucionar problemas más que cuando se le

proporcionan los sucesivos pasos a realizar. Estos pasos sucesivos que indican las

instrucciones a ejecutar por la maquina, constituyen, como ya conocemos, el algoritmo.

La información proporcionada al algoritmo, constituye su entrada y la información

producida por el algoritmo constituye su salida.

Analisis del Problema

Definicion del problema

Especificacion de Entradas

Especificacion de Salidas

Page 57: Universidad Católica Boliviana “San Pablo”programacionucb.pbworks.com/f/INF101... · lo apoyo para crear el proyecto de una máquina de diferencias, un dispositivo mecánico

INF-101 Introducción a la Programación 1-2010

Ingeniería de Sistemas – Universidad Católica Boliviana “San Pablo” Pagina - 57

El aspecto más importante del algoritmo es la elaboración del proceso o los procesos que

a partir de los datos de entrada, se debe en base a ellos producir la salida deseada.

Cuando los problemas son complejos se pueden resolver más eficazmente con la

computadora, cuando se rompen en sub problemas que sean más fáciles de solucionar

que el original. Normalmente los pasos diseñados en el primer esbozo del algoritmo son

incompletos e indicaran solo unos pocos pasos. Tras esta primera descripción, estos se

amplían en una descripción más detallada con más pasos específicos.

Por lo tanto el algoritmo elaborado será:

INICIO

• Leer radio

• Calcular superficie : Superficie=3.1416 * radio^2

• Calcular circunferencia : Circunferencia = 2 * 3.1416 * radio

• Escribir resultados: Imprimir Circunferencia, Superficie

FIN

Como ya se ha comentado anteriormente, el sistema para describir (“escribir”) un

algoritmo consiste en realizar una descripción paso a paso con un lenguaje natural del

citado algoritmo. Recordemos que un algoritmo es un método o un conjunto de reglas

para solucionar un problema. En cálculos elementales estas reglas tienen las siguientes

propiedades:

• Deben de estar seguidas de algunas secuencias definidas de pasos hasta que se

obtenga un resultado coherente,

• Sólo puede ejecutarse una operación a la vez.

• El flujo de control usual de un algoritmo es secuencial

Consideremos el algoritmo que responde a la pregunta:

¿Qué hacer para ver la película Tiburón?

La respuesta es muy sencilla y puede ser descrita en forma de algoritmo, general de modo

similar a:

• Ir al cine

• Comprar una entrada

• Ver la película

• Regresar a casa

Page 58: Universidad Católica Boliviana “San Pablo”programacionucb.pbworks.com/f/INF101... · lo apoyo para crear el proyecto de una máquina de diferencias, un dispositivo mecánico

INF-101 Introducción a la Programación 1-2010

Ingeniería de Sistemas – Universidad Católica Boliviana “San Pablo” Pagina - 58

El algoritmo consta de cuatro acciones básicas, cada una de las cuales debe ser ejecutada

antes de realizar la siguiente. En términos de computadora, cada acción se codificará en

una o varias sentencias que ejecutan una tarea particular.

El algoritmo descrito es muy sencillo; sin embargo, como ya se ha indicado en párrafos

anteriores, el algoritmo general se descompondrá en pasos más simples en un

procedimiento denominado refinamiento sucesivo, ya que cada acción puede

descomponerse a su vez en otras acciones simples.

Así, un primer refinamiento del algoritmo ir al cine se puede describir de la forma

siguiente:

1. Inicio

2. Ver la cartelera de cines en el periódico

3. Si no proyectan “Tiburón” entonces

3.1 Elegir otra actividad

3.2 Bifurcar al paso 7

si_no

3.3 ir al cine.

Fin_si

4.Si hay cola

4.1 ponerse en ella

4.2 mientras haya personas delante hacer

4.2.1 avanzar en la cola

fin_mientras

fin_si

5. Si hay localidades entonces

5.1 comprar una entrada

5.2 pasar a la sala.

5.3 localizar la(s) butaca(s)

5.4 mientras proyectan la película hacer

5.4.1 ver la película

fin_mientras

5.5 abandonar el cine

si_no

5.6 refunfuñar

fin_si

6. volver a casa

7. fin

Page 59: Universidad Católica Boliviana “San Pablo”programacionucb.pbworks.com/f/INF101... · lo apoyo para crear el proyecto de una máquina de diferencias, un dispositivo mecánico

INF-101 Introducción a la Programación 1-2010

Ingeniería de Sistemas – Universidad Católica Boliviana “San Pablo” Pagina - 59

En el algoritmo anterior existen diferentes aspectos a considerar. En primer lugar, ciertas

palabras reservadas se han escrito deliberadamente en negrita (mientras, si no, etc.).

Estas palabras describen las estructuras de control fundamentales y procesos de toma de

decisión en el algoritmo.

La capacidad de decisión permite seleccionar alternativas de acciones a seguir o bien la

repetición una y otra vez de operaciones básicas, como por ejemplo:

Si proyectan la película seleccionada ir al cine

si_no ver la televisión, ir al fútbol o leer el periódico.

Que tiene un carácter estrictamente decisional

mientras haya personas en la cola, ir avanzando

repetidamente hasta llegar a la taquilla.

Que tiene un carácter repetitivo.

6.3.3 Resolución de problema de computadora

Una vez que el algoritmo está diseñado y representado gráficamente mediante una

herramienta de programación (diagrama de flujo o pseudocódigo) se debe pasar a la fase

de resolución práctica del problema con la computadora.

Esta fase se descompone a su vez en las siguientes subfase:

1) Codificación del algoritmo en un programa en base a un lenguaje de

programación (C, C++, Pascal, Java. etc).

2) Ejecución del programa.

3) Comprobación del programa.

En el diseño del algoritmo éste describe en una herramienta de programación tal como un

diagrama de flujo o pseudocódigo .Sin embargo, el programa que implementa el algoritmo

debe ser escrito en un lenguaje de programación y siguiendo las reglas gramaticales o

sintaxis del mismo .La fase de conversión del algoritmo en un lenguaje de programación se

denomina codificación, ya que el algoritmo escrito en un lenguaje específico de

programación se denomina código.

Tras la codificación del programa, deberá ejecutarse en una computadora y a continuación

de comprobar los resultados pasar a la fase final de documentación.

Page 60: Universidad Católica Boliviana “San Pablo”programacionucb.pbworks.com/f/INF101... · lo apoyo para crear el proyecto de una máquina de diferencias, un dispositivo mecánico

INF-101 Introducción a la Programación 1-2010

Ingeniería de Sistemas – Universidad Católica Boliviana “San Pablo” Pagina - 60

6.4 Técnicas para la formulación de algoritmos

Las dos herramientas utilizadas comúnmente para diseñar algoritmos son:

• Diagrama de Flujo

• Pseudocódigo

6.4.1 Diagramas de Flujo

Un diagrama de flujo es la representación gráfica de un algoritmo. También se puede decir

que es la representación detallada en forma gráfica de cómo deben realizarse los pasos en

la computadora para producir resultados.

Esta representación gráfica se da cuando varios símbolos (que indican diferentes procesos

en la computadora), se relacionan entre sí mediante líneas que indican el orden en que se

deben ejecutar los procesos.

Los símbolos utilizados han sido normalizados por el instituto norteamericano de

normalización (ANSI).

Simbolo Descripcion

Indica el inicio y el final del diagrama.

Indica la entrada por teclado.

Símbolo de proceso, indica la asignación de un valor en la

memoria y/o la ejecución de una operación aritmética.

Símbolo de decisión indica la realización de una comparación

de valores.

Se utiliza para representar subprogramas.

Conector dentro de página.

Conector fuera de página.

Indica salida por impresora.

Indica salida por impresora.

Indica salida en la pantalla o monitor

Representa a un ciclo repetitivo.

Page 61: Universidad Católica Boliviana “San Pablo”programacionucb.pbworks.com/f/INF101... · lo apoyo para crear el proyecto de una máquina de diferencias, un dispositivo mecánico

INF-101 Introducción a la Programación 1-2010

Ingeniería de Sistemas – Universidad Católica Boliviana “San Pablo” Pagina - 61

6.4.2 Recomendaciones para el diseño de diagramas de flujo

• Se deben usar solamente líneas de flujo horizontal y/o vertical.

• Se debe evitar el cruce de líneas utilizando los conectores.

• Se deben usar conectores solo cuando sea necesario.

• No deben quedar líneas de flujo son conectar.

• Se deben trazar los símbolos de manera que se puedan leer de arriba hacia

abajo y de izquierda a derecha.

• Todo texto escrito dentro de un símbolo deberá ser escrito claramente,

evitando el uso de muchas palabras.

6.5 Pseudocódigo

Mezcla de lenguaje de programación y español (o ingles o cualquier otro idioma) que se

emplea, dentro de la programación estructurada, para realizar el diseño de un programa.

En esencial, el pseudocódigo se puede definir como un lenguaje de especificaciones de

algoritmos.

Es la representación narrativa de los pasos que debe seguir un algoritmo para dar solución

a un problema determinado. El pseudocódigo utiliza palabras que indican el proceso a

realizar.

Ejemplo:

Suponga que un individuo desea invertir su capital en un banco y desea saber

cuánto dinero ganara después de un mes si el banco paga a razón de 2% mensual.

Inicio

Leer cap_inv

gan = cap_inv * 0.02

Imprimir gan

Fin

6.5.1 Ventaja de utilizar Pseudocódigo a Diagramas de Flujo

• Ocupa menos espacio en una hoja de papel

• Permite representar en forma fácil operaciones repetitivas complejas

• Es muy fácil pasar de pseudocódigo a un programa en algún lenguaje de

programación.

• Si se siguen las reglas se puede observar claramente los niveles que tiene cada

operación.

Page 62: Universidad Católica Boliviana “San Pablo”programacionucb.pbworks.com/f/INF101... · lo apoyo para crear el proyecto de una máquina de diferencias, un dispositivo mecánico

INF-101 Introducción a la Programación 1-2010

Ingeniería de Sistemas – Universidad Católica Boliviana “San Pablo” Pagina - 62

Tema #7 – Entidades Primitivas para el desarrollo de algoritmos

7.1 Tipos de datos

Todos los datos tienen un tipo asociado con ellos. Un dato puede ser un simple carácter,

tal como ‘b’, un valor entero tal como 35. El tipo de dato determina la naturaleza del

conjunto de valores que puede tomar una variable.

Figura 7.1: Tipos de datos simples.

Datos Numéricos: Permiten representar valores escalares de forma numérica, esto

incluye a los números enteros y los reales. Este tipo de datos permiten realizar

operaciones aritméticas comunes.

Datos Lógicos: Son aquellos que solo pueden tener dos valores (cierto o falso) ya que

representan el resultado de una comparación entre otros datos (numéricos o

alfanuméricos).

Datos Alfanuméricos (Cadenas): Es una secuencia de caracteres alfanuméricos que

permiten representar valores identificables de forma descriptiva, esto incluye

nombres de personas, direcciones, etc. Es posible representar números como

alfanuméricos, pero estos pierden su propiedad matemática, es decir no es posible

hacer operaciones con ellos. Este tipo de datos se representan encerrados entre

comillas.

Ejemplo:

“Universidad Católica Boliviana”

“2007”

Page 63: Universidad Católica Boliviana “San Pablo”programacionucb.pbworks.com/f/INF101... · lo apoyo para crear el proyecto de una máquina de diferencias, un dispositivo mecánico

INF-101 Introducción a la Programación 1-2010

Ingeniería de Sistemas – Universidad Católica Boliviana “San Pablo” Pagina - 63

7.2 Expresiones

Las expresiones son combinaciones de constantes, variables, símbolos de operación,

paréntesis y nombres de funciones especiales. Por ejemplo:

a + (b + 3) / c

Cada expresión toma un valor que se determina tomando los valores de las variables y

constantes implicadas y la ejecución de las operaciones indicadas.

Una expresión consta de operadores y operandos. Según sea el tipo de datos que

manipulan, se clasifican las expresiones en:

Aritméticas

Relaciónales

Lógicas

7.3 Operadores y operandos

Los operadores son elementos que relacionan de forma diferente, los valores de una o

más variables y/o constantes. Es decir, los operadores nos permiten manipular valores.

Aritméticos

Tipos de Operadores Relaciónales

Lógicos

7.3.1 Operadores aritméticos

Los operadores aritméticos permiten la realización de operaciones matemáticas con los

valores (variables y constantes).

Los operadores aritméticos pueden ser utilizados con tipos de datos enteros o reales. Si

ambos son enteros, el resultado es entero; si alguno de ellos es real, el resultado es real.

Operando (Operador) Operando

Valor

(Constante o variable)

Page 64: Universidad Católica Boliviana “San Pablo”programacionucb.pbworks.com/f/INF101... · lo apoyo para crear el proyecto de una máquina de diferencias, un dispositivo mecánico

INF-101 Introducción a la Programación 1-2010

Ingeniería de Sistemas – Universidad Católica Boliviana “San Pablo” Pagina - 64

+ Suma

- Resta

* Multiplicación

/ División

Mod Modulo (residuo de la división entera)

Ejemplos:

Expresión Resultado

-----------------------------------------

7 / 2 3.5

12 mod 7 5

4 + 2 * 5 14

7.3.1.1 Prioridad de ejecución en operadores aritméticos

Todas las expresiones entre paréntesis se evalúan primero. Las expresiones con paréntesis

anidados se evalúan de dentro a fuera, el paréntesis más interno se evalúa primero.

Dentro de una misma expresión los operadores se evalúan en el siguiente orden.

1 ^ Exponenciación

2 *, /, mod Multiplicación, división, modulo.

3 +, - Suma y resta.

Los operadores en una misma expresión con igual nivel de prioridad se evalúan de

izquierda a derecha.

Ejemplos:

4 + 2 * 5 = 14 4 + 10

23 * 2 / 5 = 9.2 46 / 5 = 9.2

3 + 5 * (10 - (2 + 4)) = 23 3 + 5 * (10 - 6) = 3 + 5 * 4 = 3 + 20 = 23

3.5 + 5.09 - 14.0 / 40 = 5.09 3.5 + 5.09 - 3.5 = 8.59 - 3.5 = 5.09

2.1 * (1.5 + 3.0 * 4.1) = 28.98 2.1 * (1.5 + 12.3) = 2.1 * 13.8 = 28.98

7.3.2 Operadores relacionales

Se utilizan para establecer una relación entre dos valores. Compara estos valores entre si y

esta comparación produce un resultado de certeza o falsedad (verdadero o falso).

Page 65: Universidad Católica Boliviana “San Pablo”programacionucb.pbworks.com/f/INF101... · lo apoyo para crear el proyecto de una máquina de diferencias, un dispositivo mecánico

INF-101 Introducción a la Programación 1-2010

Ingeniería de Sistemas – Universidad Católica Boliviana “San Pablo” Pagina - 65

Los operadores relaciónales comparan valores del mismo tipo (numéricos o cadenas y

tienen el mismo nivel de prioridad en su evaluación.

Los operadores relaciónales tiene menor prioridad que los aritméticos.

> Mayor que

< Menor que

> = Mayor o igual que

< = Menor o igual que

< > Diferente

= Igual

Ejemplos:

Si los valores de las siguientes variables fueran:

a = 10 b = 20 c = 30

entonces las siguientes expresiones tendrían los siguientes valores de verdad:

a + b > c Falso

a - b < c Verdadero

a - b = c Falso

a * b < > c Verdadero

Ejemplos no lógicos:

a < b < c

10 < 20 < 30

T < 30 (no es lógico porque tiene diferentes operandos).

7.3.3 Operadores lógicos

Estos operadores se utilizan para establecer relaciones entre valores lógicos, estos valores

pueden ser resultado de una expresión relacional.

And Y

Or O

Not Negación

Page 66: Universidad Católica Boliviana “San Pablo”programacionucb.pbworks.com/f/INF101... · lo apoyo para crear el proyecto de una máquina de diferencias, un dispositivo mecánico

INF-101 Introducción a la Programación 1-2010

Ingeniería de Sistemas – Universidad Católica Boliviana “San Pablo” Pagina - 66

Operador AND

Operando 1 Operador Operando 2 Resultado

T AND T T

T AND F F

F AND T F

F AND F F

Operador OR

Operando 1 Operador Operando 2 Resultado

T OR T T

T OR F T

F OR T T

F OR F F

Operador NOT

Operando Operador Resultado

T NOT F

F NOT T

Ejemplos:

(a < b) and (b < c)

(10<20) and (20<30)

T and T

T

7.3.3.1 Prioridad en operadores lógicos

Los operadores lógicos se ejecutan según el siguiente orden de prioridad.

Not

And

Or

7.3.4 Prioridad de todos los operadores

Estos operadores se ejecutan según el siguiente nivel de prioridad.

1.- ( )

2.- ^

3.- *, /, Mod, Not

4.- +, -, And

5.- >, <, > =, < =, < >, =, Or

Page 67: Universidad Católica Boliviana “San Pablo”programacionucb.pbworks.com/f/INF101... · lo apoyo para crear el proyecto de una máquina de diferencias, un dispositivo mecánico

INF-101 Introducción a la Programación 1-2010

Ingeniería de Sistemas – Universidad Católica Boliviana “San Pablo” Pagina - 67

Ejemplos:

a = 10 b = 12 c = 13 d =10

1) ((a > b) or (a < c)) and ((a = c) or (a > = b))

F T F F

T F

F

2) ((a > = b) or (a < d)) and (( a > = d) and (c > d))

F F T T

F T

F

3) not (a = c) and (c > b)

F T

T

T

7.4 Identificadores o variables

Los identificadores representan los datos de un programa (constantes, variables, tipos de

datos). Un identificador es una secuencia de caracteres que sirve para identificar una

posición en la memoria de la computadora, que nos permite accesar a su contenido.

Ejemplo:

Nombre

Num_hrs

Calif2.

7.4.1 Reglas para formar un identificador

Debe comenzar con una letra (A a Z, mayúsculas o minúsculas) y no deben

contener espacios en blanco.

Letras, dígitos y caracteres como la subraya (_) están permitidos después del

primer carácter.

La longitud de identificadores puede ser de hasta 8 caracteres.

7.5 Constantes y Variables

Constante: Una constante es un dato numérico o alfanumérico que no cambia

durante la ejecución del programa.

Ejemplo:

Page 68: Universidad Católica Boliviana “San Pablo”programacionucb.pbworks.com/f/INF101... · lo apoyo para crear el proyecto de una máquina de diferencias, un dispositivo mecánico

INF-101 Introducción a la Programación 1-2010

Ingeniería de Sistemas – Universidad Católica Boliviana “San Pablo” Pagina - 68

pi = 3.1416

Variable: Es un espacio en la memoria de la computadora que permite almacenar

temporalmente un dato durante la ejecución de un proceso, su contenido puede

cambia durante la ejecución del programa. Para poder reconocer una variable en

la memoria de la computadora, es necesario darle un nombre con el cual podamos

identificarla dentro de un algoritmo.

Ejemplo:

área = pi * radio ^ 2

Las variables son: el radio, el área y la constate es pi.

7.6 Constantes y Variables

7.6.1 Por su Contenido

Variable Numéricas: Son aquellas en las cuales se almacenan valores numéricos,

positivos o negativos, es decir almacenan números del 0 al 9, signos (+ y -) y el

punto decimal. Ejemplo:

iva=0.15 pi=3.1416 costo=2500

Variables Lógicas: Son aquellas que solo pueden tener dos valores (cierto o falso)

estos representan el resultado de una comparación entre otros datos.

Variables Alfanuméricas: Esta formada por caracteres alfanuméricos (letras,

números y caracteres especiales). Ejemplo:

letra=’a’ apellido=’lopez’ dirección=”Av. Los leones # 900”

Page 69: Universidad Católica Boliviana “San Pablo”programacionucb.pbworks.com/f/INF101... · lo apoyo para crear el proyecto de una máquina de diferencias, un dispositivo mecánico

INF-101 Introducción a la Programación 1-2010

Ingeniería de Sistemas – Universidad Católica Boliviana “San Pablo” Pagina - 69

7.6.2 Por su Uso

Variables de Trabajo: Variables que reciben el resultado de una operación

matemática completa y que se usan normalmente dentro de un programa.

Ejemplo:

suma=a+b/c

Contadores: Se utilizan para llevar el control del número de ocasiones en que se

realiza una operación o se cumple una condición. Con los incrementos

generalmente de uno en uno.

Ejemplo:

C = C + 1

MN = MN + 1

Acumuladores: Forma que toma una variable y que sirve para llevar la suma

acumulativa de una serie de valores que se van leyendo o calculando

progresivamente.

Ejemplo:

S = S + X

SUM = SUM + ( X / 2)

Multiplicadores: Forma que toma una variable y que sirve para llevar el producto

acumulativo de una serie de valores que se van leyendo o calculando

progresivamente.

Ejemplo:

C = C + 1

M = M * C/ 2

Page 70: Universidad Católica Boliviana “San Pablo”programacionucb.pbworks.com/f/INF101... · lo apoyo para crear el proyecto de una máquina de diferencias, un dispositivo mecánico

INF-101 Introducción a la Programación 1-2010

Ingeniería de Sistemas – Universidad Católica Boliviana “San Pablo” Pagina - 70

PROBLEMAS RESUELTOS

ALGORITMOS BASICOS:

1.- Diseñar un algoritmo que permita convertir coordenadas polares en rectangulares, los valores

de entrada son el radio (r) y el ángulo (a).

X = R * cos(A)

Y = R * sen(A)

Datos de entrada:

R: Variable que representa al radio

A: Angulo que previamente debe convertirse en radianes

Datos de salida:

X : Coordenada rectangular x

Y : Coordenada rectangular y

Inicio

R , A

X = R * cos (A)

Y = R * sin (A)

X , Y

Fin

A = A * 3.1416 / 180

Page 71: Universidad Católica Boliviana “San Pablo”programacionucb.pbworks.com/f/INF101... · lo apoyo para crear el proyecto de una máquina de diferencias, un dispositivo mecánico

INF-101 Introducción a la Programación 1-2010

Ingeniería de Sistemas – Universidad Católica Boliviana “San Pablo” Pagina - 71

2.- Obtener el volumen de una esfera de radio variable

Dato de Entrada:

RADIO: variable donde el dato de entrada se almacena

Dato de Salida:

VOL: variable que almacena el resultado

3.- Convertir grados Fahrenheit en grados centígrados

Inicio

Fin

Gf

Gf = (Gf – 32) * 0,556

Gf

RADIO

VOL = 3.1416* RADIO ^ 3

VOL

Inicio

fin

Page 72: Universidad Católica Boliviana “San Pablo”programacionucb.pbworks.com/f/INF101... · lo apoyo para crear el proyecto de una máquina de diferencias, un dispositivo mecánico

INF-101 Introducción a la Programación 1-2010

Ingeniería de Sistemas – Universidad Católica Boliviana “San Pablo” Pagina - 72

4.- Convertir segundos en horas, minutos y segundos

Variable de entrada:

Seg : Representa los segundos que el usuario ingresa

Variables de salida:

Hra, Min y Seg:

Análisis:

La función trunc permite truncar la parte decimal de un número, y la función mod

permite obtener el residuo de un cociente entre dos números.

Inicio

Seg

Hra = trunc (Seg / 3600)

Min = trunc(Seg mod 3600 /60)

Seg = (Seg mod 3600 ) mod 60

Hra, Min, Seg

Fin

Page 73: Universidad Católica Boliviana “San Pablo”programacionucb.pbworks.com/f/INF101... · lo apoyo para crear el proyecto de una máquina de diferencias, un dispositivo mecánico

INF-101 Introducción a la Programación 1-2010

Ingeniería de Sistemas – Universidad Católica Boliviana “San Pablo” Pagina - 73

5.- Determinar el mayor y el menor valor, a partir de dos números que se leen desde el

teclado.

Variables de entrada:

A, B : Los números que el usuario deberá ingresar

Variables de salida:

Mayor , Menor : Que corresponden los valores solicitados

La función abs permite obtener el valor absoluto de un valor numérico

Inicio

A , B

Mayor = (A + B) + abs(A-B) ) /2

Menor = (A + B) - abs(A-B) ) /2

Fin

Mayor, Menor

Page 74: Universidad Católica Boliviana “San Pablo”programacionucb.pbworks.com/f/INF101... · lo apoyo para crear el proyecto de una máquina de diferencias, un dispositivo mecánico

INF-101 Introducción a la Programación 1-2010

Ingeniería de Sistemas – Universidad Católica Boliviana “San Pablo” Pagina - 74

Tema #8 – Algoritmos decisionales

6.- Escriba un algoritmo para leer un número entero y determinar si es un número par o

impar

7.- Escriba un programa para leer dos números enteros distintos entre si y determine cual

es el mayor y el menor valor.

Inicio

N , M

N > M

N, “ es el mayor”

M, “ es el menor”

M, “ es el mayor”

N, “ es el menor”

Fin

Si No

Inicio

Num

Num mod 2 = 0

“Es impar” “Es Par”

Fin

Si No

Page 75: Universidad Católica Boliviana “San Pablo”programacionucb.pbworks.com/f/INF101... · lo apoyo para crear el proyecto de una máquina de diferencias, un dispositivo mecánico

INF-101 Introducción a la Programación 1-2010

Ingeniería de Sistemas – Universidad Católica Boliviana “San Pablo” Pagina - 75

8.- Escriba un algoritmo para leer un número entero y determine si es un número positivo,

negativo o cero.

9.- Dados dos números N y M, determinar si N es múltiplo de M o

viceversa

Inicio

N , M

N mod M = 0

M mod N= 0 N, “ es

múltiplo de

“, M M, “ es

múltiplo de

“, N

Fin

si no

“no son

múltiplos”

no si

Inicio

Fin

N

N = 0

N > 0

“Es

negativo”

“Es

positivo”

“Es Cero”

si

no si

no

Page 76: Universidad Católica Boliviana “San Pablo”programacionucb.pbworks.com/f/INF101... · lo apoyo para crear el proyecto de una máquina de diferencias, un dispositivo mecánico

INF-101 Introducción a la Programación 1-2010

Ingeniería de Sistemas – Universidad Católica Boliviana “San Pablo” Pagina - 76

10.- Elabore un diagrama de flujo para resolver ax2 + bx + c = 0 en el caso de raíces

reales. Los datos son: a, b, c. Puede usar las operaciones que necesite. Asegúrese que

el resultado sea válido.

Análisis del problema:

Si a <> 0 se presentan tres casos:

Primero con dos soluciones dadas con la fórmula que da la solución de la ecuación de segundo grado cuando el discriminante es positivo.

Segundo con una solución dada por la fórmula cuando el discriminante es cero. Tercero con dos soluciones complejas, dadas por la fórmula cuando el

discriminante es negativo.

Inicio

A , B , C

D = B * B – 4 * A * C

D > 0

X1 =(-B+sqrt(D)) / 2*A

X2 =(-B-sqrt(D)) / 2*A

X1, X2

D < 0

“Soluciones

imaginarias”

X1 = -B / 2*A

X1, X2

X2 = -B / 2*A

Inicio

si no

si no

Page 77: Universidad Católica Boliviana “San Pablo”programacionucb.pbworks.com/f/INF101... · lo apoyo para crear el proyecto de una máquina de diferencias, un dispositivo mecánico

INF-101 Introducción a la Programación 1-2010

Ingeniería de Sistemas – Universidad Católica Boliviana “San Pablo” Pagina - 77

11.- Escribir un algoritmo para leer un número y determinar si el mismo es un entero

positivo par, positivo impar, negativo par o negativo impar o es cero.

Inicio

N

N > 0

N mod 2=0 N < 0

“Positivo

par” “Cero”

N mod 2=0

“Positivo

impar”

“Negativo

impar”

Fin

“Negativo

par”

si no

si no si no

si no

Page 78: Universidad Católica Boliviana “San Pablo”programacionucb.pbworks.com/f/INF101... · lo apoyo para crear el proyecto de una máquina de diferencias, un dispositivo mecánico

INF-101 Introducción a la Programación 1-2010

Ingeniería de Sistemas – Universidad Católica Boliviana “San Pablo” Pagina - 78

12.- Leer tres números enteros y determinar si forman un triangulo isósceles, equilátero o

escaleno. Un triangulo equilátero es aquel que tiene los 3 lados iguales, el triangulo

escaleno tiene los 3 lados diferentes, y un triangulo isósceles (dos lados iguales y uno

desigual, analice en este tipo los 3 casos posibles).

Inicio

A , B , C

A = B

B = C

“Triangulo

equilátero”

“Triangulo

isósceles”

A = C

B = C “Triangulo

isósceles”

“Triangulo

isósceles”

“Triangulo

escaleno”

Fin

si no

si no

si no

no si

Page 79: Universidad Católica Boliviana “San Pablo”programacionucb.pbworks.com/f/INF101... · lo apoyo para crear el proyecto de una máquina de diferencias, un dispositivo mecánico

INF-101 Introducción a la Programación 1-2010

Ingeniería de Sistemas – Universidad Católica Boliviana “San Pablo” Pagina - 79

13.- Dado un número, determinar si es entero o fraccionario.

14.- Escribir un algoritmo en el que dado un número entero determinar si se encuentra en

el intervalo cerrado 51 - 100.

Inicio

N

N>=51 and N<=100

“Se encuentra

en el intervalo

cerrado”

Fin

si no

Inicio

N

N mod 1 = 0

N, “ es un

numero entero”

N, “ es un

numero

fraccionario”

Fin

si no

Page 80: Universidad Católica Boliviana “San Pablo”programacionucb.pbworks.com/f/INF101... · lo apoyo para crear el proyecto de una máquina de diferencias, un dispositivo mecánico

INF-101 Introducción a la Programación 1-2010

Ingeniería de Sistemas – Universidad Católica Boliviana “San Pablo” Pagina - 80

15.- Escriba un algoritmo para leer 3 números enteros distintos entre si e imprimirlos en

orden ascendente.

Inicio

A , B , C

A < B

B < C

A , B , C

A, C , B

A < C

A < B B, A , C

A < C

B , C , A C , B , A C , A , B

Fin

si no

si

si

si no

si no no

Page 81: Universidad Católica Boliviana “San Pablo”programacionucb.pbworks.com/f/INF101... · lo apoyo para crear el proyecto de una máquina de diferencias, un dispositivo mecánico

INF-101 Introducción a la Programación 1-2010

Ingeniería de Sistemas – Universidad Católica Boliviana “San Pablo” Pagina - 81

16.- Escribir un programa que lea el salario de un empleado e incremente este salario

según la escala:

Salario < 500 15 % de incremento

Salario >= 500 pero menor a 1000 10% de incremento

Salario >= 1000 5% de incremento

El programa debe mostrar el salario anterior y el salario nuevo.

Inicio

Sal

Sal < 500

Sal < 1000

Inc = 15

Inc = 10

Inc = 5

Salinc = Sal * Inc /100 + Sal

“Salario original:”, Sal

“Salario nuevo:”, Salinc

Fin

si

no si

no no

Page 82: Universidad Católica Boliviana “San Pablo”programacionucb.pbworks.com/f/INF101... · lo apoyo para crear el proyecto de una máquina de diferencias, un dispositivo mecánico

INF-101 Introducción a la Programación 1-2010

Ingeniería de Sistemas – Universidad Católica Boliviana “San Pablo” Pagina - 82

17.- A un trabajador se le paga según las horas que trabaja en el día una tarifa de pago

por hora. Si la cantidad de horas trabajadas es mayor a 8, la tarifa se incrementa en un

100%, calcular el pago total del trabajador.

Variables de Entrada:

HT: Representa las horas trabajadas

PH: Representa el pago por hora

Variables de Salida:

PT: Representa el pago total

Se consideran horas extras aquellas que exceden a las ocho normales de trabajo.

Inicio

HT, PH

HT > 8

PE = (HT – 8) * 2* PH

PT = PE+ PH* 8

PT= PH * HT

PT

Fin

si no

Page 83: Universidad Católica Boliviana “San Pablo”programacionucb.pbworks.com/f/INF101... · lo apoyo para crear el proyecto de una máquina de diferencias, un dispositivo mecánico

INF-101 Introducción a la Programación 1-2010

Ingeniería de Sistemas – Universidad Católica Boliviana “San Pablo” Pagina - 83

18. Escribir un D.F que permita el pago de comisiones por ventas efectuadas por un

vendedor, según la siguiente escala:

Venta < 100 Bs. 1% de comisión

100<= Venta < 500 5% de comisión

500<= Venta < 1000 7 % de comisión

Venta >= 1000 10 % de comisión

Determinar el valor que se paga en comisiones a un determinado vendedor.

Inicio

V

V < 100

V < 500

V < 1000

CO = 1

CO = 5

CO = 7

CO = 10

VCOM = V * CO/100

VCOM

Fin

si

si

si

no si

no si

no si

Page 84: Universidad Católica Boliviana “San Pablo”programacionucb.pbworks.com/f/INF101... · lo apoyo para crear el proyecto de una máquina de diferencias, un dispositivo mecánico

INF-101 Introducción a la Programación 1-2010

Ingeniería de Sistemas – Universidad Católica Boliviana “San Pablo” Pagina - 84

19.- Escribir un programa que calcule el tiempo de vuelo de una aeronave, considerando

como datos de entrada la hora de salida, el minuto de salida, la hora de llegada y el

minuto de llegada.

Variables de entrada:

HS: Hora de Salida, MS: Minuto de salida, HL: Hora de llegada, ML: Minuto de llegada

Variables de Salida:

TVH: Tiempo de vuelo en horas, TVM : Tiempo de vuelo en minutos

Inicio

HS, MS, HL, ML

HS < HL and MS <=ML

HS < HL and MS > ML

TVH = HL – HS

TVM = ML - MS

HS > HL and MS <= ML

TVH = (HL – HS) -1

TVM= 60 – (MS-ML)

TVH = 24-(HS-HL)

TVM = ML - MS TVH = 24-(HS-HL) -1

TVM = 60 – (MS-ML)

TVH , TVM

Fin

si

si

si

no

no

no

Page 85: Universidad Católica Boliviana “San Pablo”programacionucb.pbworks.com/f/INF101... · lo apoyo para crear el proyecto de una máquina de diferencias, un dispositivo mecánico

INF-101 Introducción a la Programación 1-2010

Ingeniería de Sistemas – Universidad Católica Boliviana “San Pablo” Pagina - 85

Tema #9 – Algoritmos repetitivos - decisionales

20.- Generar la serie:

1, 2, 3, 4, 5, …… 100

Análisis:

La variable K es el denominado contador que permite generar la serie a partir de un valor

inicial (0), que es el primer paso en el algoritmo, luego se establece la condición para que

el proceso de conteo se detenga, en este caso :

K <= 100, es decir que el proceso debe continuar mientras se cumpla esta condición, el

contador K debe ir incrementándose en 1 (K = K + 1) , expresión que permite que una

variable vaya cambiando continuamente (aumentado en 1) hasta que K llegue a 100, por

cada termino que asume el contador este se imprime por pantalla, cuando esto se cumpla

el ciclo repetitivo se “rompe” y el proceso concluye.

Inicio

K = 0

K <= 100

K = K + 1

K

Fin

Page 86: Universidad Católica Boliviana “San Pablo”programacionucb.pbworks.com/f/INF101... · lo apoyo para crear el proyecto de una máquina de diferencias, un dispositivo mecánico

INF-101 Introducción a la Programación 1-2010

Ingeniería de Sistemas – Universidad Católica Boliviana “San Pablo” Pagina - 86

21.- Generar la serie:

50, 48, 46, 44, ……….. 2

En este caso la serie va decrementado en 2, por lo tanto el primer paso es establecer el

valor inicial de 50 a la variable C, luego se establece el limite del proceso mediante la

condición (mientras K sea mayor o igual 2 ) , cuando la variable C llega a 2 este valor aun

se imprime por la condición igual , pero luego al restar en dos, la variable C se convierte

en 0, por lo que la condición ya no se cumple y el ciclo termina.

Inicio

C = 50

C > = 2

C

C = C - 2

Fin

Page 87: Universidad Católica Boliviana “San Pablo”programacionucb.pbworks.com/f/INF101... · lo apoyo para crear el proyecto de una máquina de diferencias, un dispositivo mecánico

INF-101 Introducción a la Programación 1-2010

Ingeniería de Sistemas – Universidad Católica Boliviana “San Pablo” Pagina - 87

22.- Escribir un programa que permita generar la serie:

1 , 2 , 4 , 8 ,16 ,32 .... para N términos

Esta serie se puede expresar como la base de números binarios, es decir:

20, 21, 22, 23, 24, 25, …………..2N-1

Por lo que se puede utilizar una variable que actué como contador para representar los

exponentes, a partir del primer exponente (0) y el valor final (N-1), puesto que el

enunciado indica para N términos, por lo que la condición solo estable por menor (<).

Inicio

N

C = 0

C < N

R = 2 ^ C

C = C + 1

R

Fin

Page 88: Universidad Católica Boliviana “San Pablo”programacionucb.pbworks.com/f/INF101... · lo apoyo para crear el proyecto de una máquina de diferencias, un dispositivo mecánico

INF-101 Introducción a la Programación 1-2010

Ingeniería de Sistemas – Universidad Católica Boliviana “San Pablo” Pagina - 88

23.- Obtener la serie: 1 , 2 , 4 , 7 , 11 , 16 ..... para n términos

Inicio

N

C = 0

K = 1

C < N

C = C + 1

K

K = K + C

Fin

Page 89: Universidad Católica Boliviana “San Pablo”programacionucb.pbworks.com/f/INF101... · lo apoyo para crear el proyecto de una máquina de diferencias, un dispositivo mecánico

INF-101 Introducción a la Programación 1-2010

Ingeniería de Sistemas – Universidad Católica Boliviana “San Pablo” Pagina - 89

24.- Mediante una algoritmo determine si un numero es perfecto o no. En caso de serlo o

no imprima el mensaje respectivo.

(Un numero perfecto es el que sumados sus divisores reproduce el mismo numero)

Ej:

6 divisores: 1, 2 ,3 suma: 1+2+3 = 6

Inicio

N

SUM = 0

D =1 , N/2 ,1

SUM = SUM + D

SUM = N

N, “ Es un numero

perfecto”

N, “ no es un

numero perfecto”

Fin

N mod D = 0

si no

si

no

Page 90: Universidad Católica Boliviana “San Pablo”programacionucb.pbworks.com/f/INF101... · lo apoyo para crear el proyecto de una máquina de diferencias, un dispositivo mecánico

INF-101 Introducción a la Programación 1-2010

Ingeniería de Sistemas – Universidad Católica Boliviana “San Pablo” Pagina - 90

25. Leer dos números enteros y obtener el cociente y su residuo mediante restas

sucesivas

Inicio

A , B

A > B

A = B

COC = 1

RES = 0

COC = 0

RES = A

A > B

A = A - B

C = C + 1

“El cociente es = “,COC

“ El residuo es = “,RES

Fin

COC = C

RES = A

si no

si no

Page 91: Universidad Católica Boliviana “San Pablo”programacionucb.pbworks.com/f/INF101... · lo apoyo para crear el proyecto de una máquina de diferencias, un dispositivo mecánico

INF-101 Introducción a la Programación 1-2010

Ingeniería de Sistemas – Universidad Católica Boliviana “San Pablo” Pagina - 91

26.- Escribir un programa que obtenga la suma de la serie:

2 – 4 + 6 – 8 + .... para n términos

Inicio

N

C = 0

SIG = 1

C < N

C = C + 1

S = S + (2*C ) * SIG

SIG = - SIG

S

FIN

Page 92: Universidad Católica Boliviana “San Pablo”programacionucb.pbworks.com/f/INF101... · lo apoyo para crear el proyecto de una máquina de diferencias, un dispositivo mecánico

INF-101 Introducción a la Programación 1-2010

Ingeniería de Sistemas – Universidad Católica Boliviana “San Pablo” Pagina - 92

27. Dado un número, mostrar cada uno de sus dígitos en forma separada

28.- Determinar el MCD (Máximo Común Divisor) entre dos números enteros

Inicio

V

V > 0

D = V mod 10

D

Fin

V = V / 10

Inicio

A , B

A ! = B

A > B

A = A - B B = B - A

“El MCD DE “, A ,

“ Y ”, B, “ ES: “, B

Fin

si no

Page 93: Universidad Católica Boliviana “San Pablo”programacionucb.pbworks.com/f/INF101... · lo apoyo para crear el proyecto de una máquina de diferencias, un dispositivo mecánico

INF-101 Introducción a la Programación 1-2010

Ingeniería de Sistemas – Universidad Católica Boliviana “San Pablo” Pagina - 93

29.- Leer n números enteros y determinar cual es el mayor valor.

Inicio

K

AUX = 0

C = 0

C < K

NUM

AUX < NUM AUX = NUM

C = C + 1

“El mayor valor

es: “, AUX

FIN

si

no

Page 94: Universidad Católica Boliviana “San Pablo”programacionucb.pbworks.com/f/INF101... · lo apoyo para crear el proyecto de una máquina de diferencias, un dispositivo mecánico

INF-101 Introducción a la Programación 1-2010

Ingeniería de Sistemas – Universidad Católica Boliviana “San Pablo” Pagina - 94

30.- Leer un grupo de números desde el teclado y determinar la cantidad de números que

terminen en 2, el proceso debe detenerse cuando el usuario pulse un cero.

Inicio

C= 0

N

N > 0

D = N mod 10

N

D = 2 C = C + 1

C

Fin

si

no

Page 95: Universidad Católica Boliviana “San Pablo”programacionucb.pbworks.com/f/INF101... · lo apoyo para crear el proyecto de una máquina de diferencias, un dispositivo mecánico

INF-101 Introducción a la Programación 1-2010

Ingeniería de Sistemas – Universidad Católica Boliviana “San Pablo” Pagina - 95

31.- En el intervalo de 1 a n, obtener la sumatoria de todos los números que sean

múltiplos de 3 y 5 a la vez.

Inicio

N

SUM = 0

K = 1 , N , 1

K mod 3 = 0

and

K mod 5 =0

SUM = SUM + K

SUM

Fin

si

no

Page 96: Universidad Católica Boliviana “San Pablo”programacionucb.pbworks.com/f/INF101... · lo apoyo para crear el proyecto de una máquina de diferencias, un dispositivo mecánico

INF-101 Introducción a la Programación 1-2010

Ingeniería de Sistemas – Universidad Católica Boliviana “San Pablo” Pagina - 96

32.- Escriba un algoritmo que lea un número entero y obtenga la suma de sus dígitos

Inicio

N

SUM = 0

N > 0

DIG = N mod 10

SUM = SUM + DIG

N = TRUNC (N / 10)

“La suma de

sus dígitos

es:”, SUM

Fin

Page 97: Universidad Católica Boliviana “San Pablo”programacionucb.pbworks.com/f/INF101... · lo apoyo para crear el proyecto de una máquina de diferencias, un dispositivo mecánico

INF-101 Introducción a la Programación 1-2010

Ingeniería de Sistemas – Universidad Católica Boliviana “San Pablo” Pagina - 97

33.- Escriba un algoritmo para leer un número entero y determinar la cantidad de dígitos

que este tiene.

Inicio

NUM

K = 0

NUM > 0

K = K + 1

NUM = trunc (NUM/10)

“La cantidad de

dígitos es “, K

Fin

Page 98: Universidad Católica Boliviana “San Pablo”programacionucb.pbworks.com/f/INF101... · lo apoyo para crear el proyecto de una máquina de diferencias, un dispositivo mecánico

INF-101 Introducción a la Programación 1-2010

Ingeniería de Sistemas – Universidad Católica Boliviana “San Pablo” Pagina - 98

34.- Dado un número, verificar si es primo.

Análisis:

Debemos considerar en principio un criterio básico para determinar las propiedades de un

número primo, tomaremos en cuenta que un número primo es aquel que tiene solo dos

divisores: el número mismo y el uno. Por tanto el algoritmo esta orientado a contar la

cantidad de divisores que tiene el número en cuestión, si tiene solo dos divisores el

número es primo, de no ser cierta esta condición el número no es primo.

Inicio

N

CD = 0

C = 1

C < = N

N mod C = 0 CD = CD + 1

CD = 2 N, “ es

primo”

N, “ no es

primo

Fin

C = C + 1

si no

si no

Page 99: Universidad Católica Boliviana “San Pablo”programacionucb.pbworks.com/f/INF101... · lo apoyo para crear el proyecto de una máquina de diferencias, un dispositivo mecánico

INF-101 Introducción a la Programación 1-2010

Ingeniería de Sistemas – Universidad Católica Boliviana “San Pablo” Pagina - 99

35.- Escribir un D.F para calcular el promedio de pulsaciones de un grupo de n personas

a deben por cada 10 segundos de ejercicio, la formula es:

# pulsaciones = (220 - edad)/10

Inicio

N

CP = 0

SUM = 0

CP < N

NP = (220 – EDAD) / 10

EDAD

SUM = SUM + NP

PROM = SUM / N

CP = CP + 1

“El promedio es

: “, PROM

Fin

Page 100: Universidad Católica Boliviana “San Pablo”programacionucb.pbworks.com/f/INF101... · lo apoyo para crear el proyecto de una máquina de diferencias, un dispositivo mecánico

INF-101 Introducción a la Programación 1-2010

Ingeniería de Sistemas – Universidad Católica Boliviana “San Pablo” Pagina - 100

36.- Escribir un programa que convierta un número en base n a base 10, emplear el

teorema fundamental de la numeración:

Ej: Convertir 1010 2 base 10

1 * 23 + 0 * 22 + 1 * 21 + 0 * 20 = 10

Inicio

NUM, BASE

SUM = 0

C = 0

NUM > 0

DIG = NUM mod 10

SUM = SUM + DIG * BASE ^ C

C = C + 1

SUM

Fin

NUM = NUM / 10

Page 101: Universidad Católica Boliviana “San Pablo”programacionucb.pbworks.com/f/INF101... · lo apoyo para crear el proyecto de una máquina de diferencias, un dispositivo mecánico

INF-101 Introducción a la Programación 1-2010

Ingeniería de Sistemas – Universidad Católica Boliviana “San Pablo” Pagina - 101

37.- Escriba un algoritmo para leer un número entero y determinar si es capicúa

Inicio

Fin

A

C = A

SUM = 0

C > 0

DIG = C mod 10

SUM = SUM*10 + DIG

C = trunc (C / 10)

A = SUM “El numero

es capicúa”

“El numero no

es capicúa”

si no

Page 102: Universidad Católica Boliviana “San Pablo”programacionucb.pbworks.com/f/INF101... · lo apoyo para crear el proyecto de una máquina de diferencias, un dispositivo mecánico

INF-101 Introducción a la Programación 1-2010

Ingeniería de Sistemas – Universidad Católica Boliviana “San Pablo” Pagina - 102

38.- Determine la suma y la cantidad de múltiplos de m en el intervalo de 1 a n

Inicio

N , M

CM = 0

SM = 0

I = 1 , N , 1

I mod M = 0

CM = CM + 1

SM = SM + 1

“La cantidad de múltiplos es:

“, CM, “ y la suma de estos

es: “, SM

Fin

si

no

Page 103: Universidad Católica Boliviana “San Pablo”programacionucb.pbworks.com/f/INF101... · lo apoyo para crear el proyecto de una máquina de diferencias, un dispositivo mecánico

INF-101 Introducción a la Programación 1-2010

Ingeniería de Sistemas – Universidad Católica Boliviana “San Pablo” Pagina - 103

39.- Leer dos números enteros y mostrar sus divisores comunes

Inicio

N , M

N > M

D = 1 , L , 1

N mod D = 0

and

M mod D =0

“Divisor

común: “, D

Fin

L = N L = M

si

no

si no

Page 104: Universidad Católica Boliviana “San Pablo”programacionucb.pbworks.com/f/INF101... · lo apoyo para crear el proyecto de una máquina de diferencias, un dispositivo mecánico

INF-101 Introducción a la Programación 1-2010

Ingeniería de Sistemas – Universidad Católica Boliviana “San Pablo” Pagina - 104

40.- Obtener la sumatoria de la serie: 1 + 1 + 2 + 3 + 5 + 8 +13 ….. para n

términos. (Serie de Fibonacci).

Inicio

N

A = 1

B = 1

S = A + B

J = 1 , N-2 , 1

C = A + B

S = S + C

A = B

B = C

“La sumatoria es = “, S

Fin

Page 105: Universidad Católica Boliviana “San Pablo”programacionucb.pbworks.com/f/INF101... · lo apoyo para crear el proyecto de una máquina de diferencias, un dispositivo mecánico

INF-101 Introducción a la Programación 1-2010

Ingeniería de Sistemas – Universidad Católica Boliviana “San Pablo” Pagina - 105

41.- Generar n números al azar entre 10 y 99 y determinar la cantidad de números que

terminan en cero.

La función RANDOM genera números al azar.

La formula para el uso del RANDOM es:

RANDOM (Limite superior – Limite inferior +1) + limite inferior

Inicio

N

K = 1 , N , 1

CC = 0

R = RANDOM(90) + 10

D = 0

D = R mod 10

CC = CC + 1

CC

Fin

si

no

Page 106: Universidad Católica Boliviana “San Pablo”programacionucb.pbworks.com/f/INF101... · lo apoyo para crear el proyecto de una máquina de diferencias, un dispositivo mecánico

INF-101 Introducción a la Programación 1-2010

Ingeniería de Sistemas – Universidad Católica Boliviana “San Pablo” Pagina - 106

42.- Escribir un algoritmo para simular el lanzamiento de una moneda un cierto número de veces y determinar cuantas veces salió 'cara' y cuantas 'sello

INICIO

V

CC = 0

CS = 0

J = 1 , V , 1

R = RANDOM * (2)

R = 0 CC = CC + 1

CS = CS + 1

“CARA SALIO: “, CC , “

VECES”

“SELLO SALIO: “, CS, “

VECES”

FIN

si

no

Page 107: Universidad Católica Boliviana “San Pablo”programacionucb.pbworks.com/f/INF101... · lo apoyo para crear el proyecto de una máquina de diferencias, un dispositivo mecánico

INF-101 Introducción a la Programación 1-2010

Ingeniería de Sistemas – Universidad Católica Boliviana “San Pablo” Pagina - 107

43.- Dado un número, obtener su factorial

Por definición:

N ! = N * N -1 * N -2 * N -3 * ….* 1

o N! = 1 * 2 * 3 *……* N

Los multiplicadores a diferencia de los sumadores se inician en 1 (elemento neutro de la

multiplicación), luego la expresión F = F *C permite acumular los valores que se generan

en el ciclo (PARA) desde el valor inicial (1) hasta el valor final (R).

INICIO

R

F = 1

C = 1 , R , 1

F = F * C

“El factorial de “,

R, “ es : “, F

FIN

Page 108: Universidad Católica Boliviana “San Pablo”programacionucb.pbworks.com/f/INF101... · lo apoyo para crear el proyecto de una máquina de diferencias, un dispositivo mecánico

INF-101 Introducción a la Programación 1-2010

Ingeniería de Sistemas – Universidad Católica Boliviana “San Pablo” Pagina - 108

44.- Leer los salarios de un grupo de empleados y determine el promedio de salarios y el

porcentaje de empleados que están por debajo de 1000 Bs, detenga el proceso cuando

ingrese un salario igual a cero.

INICIO

SSAL = 0

CSAL = 0

CAUX = 0

SAL

SAL > 0

CSAL = CSAL + 1

SSAL =SSAL + SAL

SAL < 1000 CAUX = CAUX + 1

SAL

PROM = SAL / CSAL

PORC = CAUX*100 / CSAL

FIN

“PROMEDIO DE SALARIOS : “, PROM

“PORCENTAJE DE SALARIOS < A

1000 : “, PORC

si

no

Page 109: Universidad Católica Boliviana “San Pablo”programacionucb.pbworks.com/f/INF101... · lo apoyo para crear el proyecto de una máquina de diferencias, un dispositivo mecánico

INF-101 Introducción a la Programación 1-2010

Ingeniería de Sistemas – Universidad Católica Boliviana “San Pablo” Pagina - 109

45.- Mediante un algoritmo determine si dos números son “amigos” (dos números son

amigos si la suma de sus divisores del primero es igual segundo y viceversa). Imprimir un

mensaje en cada caso.

Ej: 220 y 284

INICIO

N , M

SUM1= 0

C = 1 , N/2 ,1

N mod C = 0 SUM1 = SUM1 + C

SUM2= 0

K = 1 , M/2, 1

M mod K =0 SUM2 = SUM2 + K

N = SUM2

and

M = SUM1

“Son números

amigos”

“No son números

amigos”

FIN

si

no

si

no

si

si

no

Page 110: Universidad Católica Boliviana “San Pablo”programacionucb.pbworks.com/f/INF101... · lo apoyo para crear el proyecto de una máquina de diferencias, un dispositivo mecánico

INF-101 Introducción a la Programación 1-2010

Ingeniería de Sistemas – Universidad Católica Boliviana “San Pablo” Pagina - 110

46.- Escribir un programa para calcular el cos(x), mediante la siguiente serie:

(detener el proceso cuando el valor absoluto de un término sea menor a 0.001)

.....!6!4!2

1)cos(642 xxx

x

INICIO

X

S = 1

SIG = 1

DEN = 2

T = 0

X = X * 3.1416 /180

abs(T- S ) > 0.001

F = 1

T= S

M = 1 , DEN,1

F = F * M

S = S + (X ^ D / F ) * SIG

D = D + 2

SIG = - SIG

“El valor de la

serie es: “, S

FIN

Page 111: Universidad Católica Boliviana “San Pablo”programacionucb.pbworks.com/f/INF101... · lo apoyo para crear el proyecto de una máquina de diferencias, un dispositivo mecánico

INF-101 Introducción a la Programación 1-2010

Ingeniería de Sistemas – Universidad Católica Boliviana “San Pablo” Pagina - 111

47.- Escribir un algoritmo para determinar si un numero entero de 3 dígitos es un cubo

perfecto, (este es un numero en que la suma de sus dígitos elevados al cubo es igual al

numero), imprima un mensaje según el caso.

Ej:

153 = 13+53+33

INICIO

C = 1 , 9 , 1

D = 0 , 9 , 1

U = 0, 9 , 1

X = C * 100 + D * 10 + U

Y = C*C*C + D*D*D + U*U*U

X = Y

“CUBO

PERFECTO: “, X

FIN

si

no

Page 112: Universidad Católica Boliviana “San Pablo”programacionucb.pbworks.com/f/INF101... · lo apoyo para crear el proyecto de una máquina de diferencias, un dispositivo mecánico

INF-101 Introducción a la Programación 1-2010

Ingeniería de Sistemas – Universidad Católica Boliviana “San Pablo” Pagina - 112

48. Determinar cuantas veces aparece un digito dado (leído desde el teclado) dentro de

un número entero.

EJ: Numero = 42232 Digito = 2 Frecuencia = 3

Inicio

N, DIG

CD = 0

N > 0

D = N mod 10

DIG = D CD = CD + 1

“La frecuencia

es de : ”, CD

Fin

si no

Page 113: Universidad Católica Boliviana “San Pablo”programacionucb.pbworks.com/f/INF101... · lo apoyo para crear el proyecto de una máquina de diferencias, un dispositivo mecánico

INF-101 Introducción a la Programación 1-2010

Ingeniería de Sistemas – Universidad Católica Boliviana “San Pablo” Pagina - 113

49. Dado un número N, mostrar por pantalla los dígitos primos sin importar el orden.

INICIO

N

N > 0

K mod D = 0 F = F + 1

FIN

D = 1 , K /2 , 1

K = N mod 10

F = 0

F = 1

N = N / 10

K

si

si

no

no

Page 114: Universidad Católica Boliviana “San Pablo”programacionucb.pbworks.com/f/INF101... · lo apoyo para crear el proyecto de una máquina de diferencias, un dispositivo mecánico

INF-101 Introducción a la Programación 1-2010

Ingeniería de Sistemas – Universidad Católica Boliviana “San Pablo” Pagina - 114

50.- Obtener el valor de la serie : 1! – 2! + 3! – 4! + 5! - ….. para n términos

INICIO

N

SUM = 0

SIG = 1

C = 1 , N , 1

M = 1

F = 1, C. 1

M = M * F

SUM = SUM + M * SIG

SIG = - SIG

SUM

FIN

Page 115: Universidad Católica Boliviana “San Pablo”programacionucb.pbworks.com/f/INF101... · lo apoyo para crear el proyecto de una máquina de diferencias, un dispositivo mecánico

INF-101 Introducción a la Programación 1-2010

Ingeniería de Sistemas – Universidad Católica Boliviana “San Pablo” Pagina - 115

51.- Generar las secuencias:

1 2 3 4 5

1 2 3 4

1 2 3

1 2

1

INICIO

C = 5 , 1, -1

D = 1 , C, 1

D

FIN

Page 116: Universidad Católica Boliviana “San Pablo”programacionucb.pbworks.com/f/INF101... · lo apoyo para crear el proyecto de una máquina de diferencias, un dispositivo mecánico

INF-101 Introducción a la Programación 1-2010

Ingeniería de Sistemas – Universidad Católica Boliviana “San Pablo” Pagina - 116

52.- Generar :

1

2 2 3 3 3 4 4 4 4 5 5 5 5 5 ............

.............

n ...........

INICIO

N

X = 1 , N , 1

Y = 1, X , 1

X

F I N

Page 117: Universidad Católica Boliviana “San Pablo”programacionucb.pbworks.com/f/INF101... · lo apoyo para crear el proyecto de una máquina de diferencias, un dispositivo mecánico

INF-101 Introducción a la Programación 1-2010

Ingeniería de Sistemas – Universidad Católica Boliviana “San Pablo” Pagina - 117

PROBLEMAS PROPUESTOS - ALGORITMOS

1.- Elabore un diagrama de flujo que teniendo como datos de entrada el radio y la altura

de un cilindro calcule el área total y el volumen del cilindro.

2.- Escriba un algoritmo que permita efectuar la conversión de coordenadas rectangulares

en coordenadas polares.

3.- Convertir grados Centígrados en grados Fahrenheit

4.- Un sistema de ecuaciones lineales:

ax + by = c

dx + ey = f

Se puede resolver con las siguientes fórmulas:

bdae

bfcex

bdae

cdafy

Elabore un algoritmo que lea dos conjuntos de coeficientes (a, b, c, d, e, f) y visualice los

valores de x e y.

5.- Intercambiar el contenido de 2 variables.

6.- Una persona recibe un préstamo de $10,000.00 de un banco y desea saber cuánto

pagará de interés al terminar el mes si el banco le cobra una tasa del 2% mensual.

a) Resuelva este caso particular. b) Generalice este problema para un monto cualquiera de capital y para una

tasa cualquiera.

7.- Dado un tiempo en segundos, calcular los segundos restantes que le correspondan para convertirse exactamente en minutos. 8.- Convertir horas en formato 24 horas a formato 12 horas, para lo cual debe leer las

horas y minutos, además de una variable que indique si es PM o es AM. (Sug. 1: AM, 2 :

PM)

Ej:

Sea la hora : 14:45

La entrada será: 14 por la hora , 45 por los minutos y 2 por ser PM

La salida será:

2 : 45 pm

Page 118: Universidad Católica Boliviana “San Pablo”programacionucb.pbworks.com/f/INF101... · lo apoyo para crear el proyecto de una máquina de diferencias, un dispositivo mecánico

INF-101 Introducción a la Programación 1-2010

Ingeniería de Sistemas – Universidad Católica Boliviana “San Pablo” Pagina - 118

9.- Escribir un programa que acepte dos números enteros diferentes entre si y los

devuelva ordenados del mayor al menor

10.- Escriba un programa para determinar el cuadrante en el que se encuentra un par

ordenado de valores.

11.- Leer 3 números enteros y determinar si forman un triangulo

12.- Escriba un algoritmo para determinar el numero mayor, de tres números enteros

distintos entre si, desde el teclado.

13.- Leer 4 números enteros y determinar si forman un cuadrado, un rectángulo, un

trapecio o un polígono irregular.

14.- Leer cuatro coordenadas (X,Y) , y determine si forman un cuadrado o un rectángulo.

Ej:

15.- Dados 4 números enteros que se lean desde el teclado determinar el mayor y el

menor valor, los números deben ser distintos entre si.

16.- Una agencia automotriz ofrece planes de crédito para la adquisición de los diferentes

modelos de automóviles. Si el automóvil vale más de $25,000 la agencia solicita un 35%

de adelanto y el resto debe cubrirse en 24 mensualidades sin intereses. Si el automóvil

tiene un valor máximo de $25,000 se requiere un adelanto del 25% y el resto se debe

pagar en 18 mensualidades sin intereses.

X1,Y1 X2,Y2

X3,Y3 X4,Y4

Page 119: Universidad Católica Boliviana “San Pablo”programacionucb.pbworks.com/f/INF101... · lo apoyo para crear el proyecto de una máquina de diferencias, un dispositivo mecánico

INF-101 Introducción a la Programación 1-2010

Ingeniería de Sistemas – Universidad Católica Boliviana “San Pablo” Pagina - 119

La agencia desea saber, en base al precio de un automóvil que un determinado cliente

elija, cuál es el monto del adelanto y cuál es el número y el monto de las mensualidades

que éste debe cubrir.

17.- Escribir un algoritmo que permita emitir la factura correspondiente a una compra de un artículo determinado, del que se adquieren una o varias unidades. El IVA es del 15% y si el precio bruto (precio venta mas IVA) es mayor de 50 Bs. se debe realizar un descuento del 5%. 18.- Escribir un algoritmo para leer tres números enteros distintos entre si e imprimir el

numero intermedio (el que no es mayor ni menor)

19.- Realizar un algoritmo que me permita ingresar la hora, minutos y segundos y que

indique a cuantos segundos equivalen.

20.- Determinar si un año es bisiesto (verificar las condiciones)

21.- Un caminante observa la posición en la que se encuentra (X y Y mediante un GPS) a cada trecho. Cuánto caminó en total y cuál fue el trecho más largo ?

22.- Elabore un diagrama de flujo que calcule el área de un triángulo mediante la formula:

))((*)( cpbpappÁrea

donde p es el semiperímetro, p = (a + b + c) / 2, siendo a, b, c los tres lados del triángulo.

Para que el triángulo exista debe cumplirse que los lados sean todos positivos, y además

que la suma de dos lados cualesquiera sea mayor que el otro lado.

23.- El precio de un boleto de viaje redondo en tren se calcula tomando en cuenta el

número de kilómetros que se van a recorrer, siendo el precio $60.00 por Km. Este precio

puede tener un descuento del 30% si el viaje de regreso se hace después de 7 días del

viaje de ida, o si el recorrido supera los 800 Km.

Elabore un diagrama de flujo para calcular cuánto se debe pagar por un boleto de tren dando como datos el total de Km recorridos y el número de días entre el viaje de ida y el viaje de vuelta. Pruebe su diagrama con los siguientes grupos de datos:

a) 850 Km y 10 días. b) 356 Km y 8 días.

24.- Leer el valor de las ventas efectuadas por un vendedor y determinar el porcentaje de

ventas menores a 500 Bs.

25.- Escribir un algoritmo en donde dado un número, si es positivo verificar si se

encuentra en el intervalo abierto (60 – 90) , de lo contrario emitir un mensaje de error.

Page 120: Universidad Católica Boliviana “San Pablo”programacionucb.pbworks.com/f/INF101... · lo apoyo para crear el proyecto de una máquina de diferencias, un dispositivo mecánico

INF-101 Introducción a la Programación 1-2010

Ingeniería de Sistemas – Universidad Católica Boliviana “San Pablo” Pagina - 120

26.- A un trabajador se le paga según las horas que trabaja en la semana una tarifa de

pago por hora. Si la cantidad de horas trabajadas es mayor a 40, la tarifa se incrementa

en un 50%. Calcular el salario total del trabajador, además considere que si existe un

anticipo se debe restar este valor al salario total, mostrando al final el pago neto.

27.- Calcular el descuento efectuado al valor de una venta en base a las siguientes condiciones:

Si la Venta < 100 Bs.. descontar el 1 % del valor de la venta

Si la venta >=100 Bs pero es menor a 500 Bs. descontar el 5% de la venta

Si la venta >= 500 Bs. Pero es menor a 1000 Bs. descontar el 10 %

Si la venta es >= 1000 Bs descontar el 20%

Mostrar como salida el descuento y el valor del producto descontado

28.- Leer el salario básico y la antigüedad de un empleado (en años) y determinar

mediante un algoritmo el bono de antigüedad y el total ganado.

El bono de antigüedad se calcula en base a las siguientes condiciones:

Si la antigüedad < 5 años : 10 % del Salario básico

Si la antigüedad >=5 pero es menor a 10 : 15 % del Salario básico

Si la antigüedad >=10 pero es menor a 15 : 25 % del Salario básico

Si la antigüedad >= 15 : 50 % del Salario básico

El total ganado es la suma del salario básico mas el bono de antigüedad

29.- Obtener el producto entre dos números enteros mediante sumas sucesivas.

30.- Escribir un D.F para determinar la suma de los n primeros números impares

elevados al cuadrado.

31.- Determinar ab mediante productos sucesivos.

32.- Obtener la serie: 1 , -1 , 2 , -2 , 3 , -3 , ………, n , -n

33.- Escribir un D.F o programa para obtener la suma de los 100 primeros números pares.

34.- Escribir un algoritmo para obtener la suma de los cuadrados de los 10 primeros

números pares.

35.- Obtener la suma de los n primeros términos de la serie :

1 – 2 + 3 – 4 + 5 – 6 + ........ para n términos

36.- En el rango de 1 a n determinar el porcentaje de números primos

Page 121: Universidad Católica Boliviana “San Pablo”programacionucb.pbworks.com/f/INF101... · lo apoyo para crear el proyecto de una máquina de diferencias, un dispositivo mecánico

INF-101 Introducción a la Programación 1-2010

Ingeniería de Sistemas – Universidad Católica Boliviana “San Pablo” Pagina - 121

37.- Escribir un algoritmo que permita obtener el valor aproximado de PI, mediante la

serie:

4 - 4/3 + 4/5 - 4/7 + 4/9 - 4/11 +.....para n términos.

38.- Escribir un algoritmo que permita adivinar un numero que sea genere internamente

al azar, el cual esta en el rango de 0 a 50. El usuario debe adivinar este número en base a

aproximaciones, para lo cual se dispone de 5 intentos. Veamos un ejemplo:

Supongamos que el número “pensado” por la computadora sea el 42.

Salida del programa:

Estoy pensando un número entre 0 y 50

Intento 1

? 25

El numero esta entre 25 y 50

Intento 2

? 34

El numero esta entre 34 y 50

Intento 3

? 45

El numero esta entre 34 y 45

Intento 4

? 40

El numero esta entre 40 y 45

Intento 5

? 42

Felicitaciones … Adivinaste el numero

39.- Elabore un diagrama de flujo que dado un entero n > 1, calcule e imprima los

elementos correspondientes a la conjetura de Ullman (en honor al matemático S. Ullman)

que consiste en lo siguiente:

Empiece con cualquier entero positivo.

Si es par, divídalo entre 2; si es impar multiplíquelo por 3 y agréguele 1.

Obtenga enteros sucesivamente repitiendo el proceso.

Al final se obtendrá el número 1, independientemente del entero inicial. Por ejemplo, cuando el entero inicial es 26, la secuencia será:

26 13 40 20 10 5 16 8 4 2 1

Page 122: Universidad Católica Boliviana “San Pablo”programacionucb.pbworks.com/f/INF101... · lo apoyo para crear el proyecto de una máquina de diferencias, un dispositivo mecánico

INF-101 Introducción a la Programación 1-2010

Ingeniería de Sistemas – Universidad Católica Boliviana “San Pablo” Pagina - 122

Elabore un diagrama de flujo para leer una serie de enteros positivos, contar los valores

introducidos y calcular su promedio. El final de los datos se indicará con un número

negativo.

40.- Escriba un algoritmo para leer un número entero y mostrar todos sus divisores

incluido en propio número.

41.- Escriba un algoritmo para leer un número y obtener el producto de los dígitos

distintos de cero.

42.- En una guardería hay 25 niños de 1, 2 y 3 años. Los niños de 1 año consumen 6

pañales al día, los niños de 2 años consumen 3 pañales diarios y los niños de 3 años

consumen 2 pañales diarios. Se desea conocer el consumo total de pañales diarios.

Datos: edad1

edad2

. . . . .

edad25

donde edadi representa la edad del i–ésimo niño en años cumplidos (1, 2 ó 3).

43.- Escriba un algoritmo para leer un número entero y obtener la suma de sus dígitos

pares.

44.- Dado un número, verificar si el producto de sus dígitos mayores a cero, genera un

número par.

45.- Dado un número, verificar si es automórfico.(es aquel que reaparece al final de su

cuadrado)

Ej: 252 = 625 52 = 25

46.- Obtener el Mínimo Común Múltiplo de dos números.

47.- Leer un número y obtener la suma de sus dígitos que sean pares

48.- Escribir un D.F para leer dos números enteros (a,b) y determinar cual de los dos

tiene mas dígitos.

49.- Escribir un programa que muestre en pantalla, con los encabezados

correspondientes, el capital y los intereses ganados por un capital C0 depositado a un

Page 123: Universidad Católica Boliviana “San Pablo”programacionucb.pbworks.com/f/INF101... · lo apoyo para crear el proyecto de una máquina de diferencias, un dispositivo mecánico

INF-101 Introducción a la Programación 1-2010

Ingeniería de Sistemas – Universidad Católica Boliviana “San Pablo” Pagina - 123

interés compuesto I durante N años. C0, I y N se deben leer por teclado. La formula del

interés compuesto es:

Cn = C0(1+I)n

50.- Escribir un algoritmo que obtenga el valor de la serie:

4 – 4/3 + 4/5 – 4/7 + ......... para n términos

El valor de la sumatoria es el valor de PI, por lo tanto introduzca un valor que se aproxime

a este valor.

51.- Leer tres números enteros y determinar cual es que tiene la suma mayor de sus

divisores.

52.- Mediante un algoritmo simule el comportamiento de un semáforo, considerando los tres estados. Establezca ciclos iguales de retardo para el rojo (1) y el verde (3) y un ciclo de retardo menor para el amarillo (2)

53.- Dado un número, obtener su equivalente en base 2.

54.- Leer 10 números enteros y determinar cuantos de estos son capicúa.

55.- Dado un número, verificar si la sumatoria de sus dígitos genera un número primo.

56.- Dado un número, obtener su factorial haciendo uso de operaciones de suma y/o resta

únicamente.

57.- Escribir un algoritmo para invertir n números se lean desde el teclado

Ej . 123 ---- > 321

58.- Escribir un algoritmo para determinar el valor del seno de un ángulo x ( en radianes

), según la serie:

sin x = x – x3/3! + x5/5! – x7/7! ... para n términos

59.- Obtenga la suma de números primos comprendidos entre n y m

60.- Escribir un programa que halle el valor aproximado de ex

ex = x0/0! + x1/1! + x2/2! + x3/3! + x4/4! + ..... para n términos

Page 124: Universidad Católica Boliviana “San Pablo”programacionucb.pbworks.com/f/INF101... · lo apoyo para crear el proyecto de una máquina de diferencias, un dispositivo mecánico

INF-101 Introducción a la Programación 1-2010

Ingeniería de Sistemas – Universidad Católica Boliviana “San Pablo” Pagina - 124

61.- Generar las tablas de multiplicar del 1 al 9

62.- Elabore un diagrama de flujo que dado un valor n entero con n 1, calcule e imprima

la siguiente sumatoria:

n

i

ii1

63.- Los cubos de Nicómaco, considera la siguiente propiedad descubierta por Nicómaco de Gerasa: sumando el primer impar, se obtiene el primer cubo. sumando los dos siguientes se obtiene el segundo cubo, sumando los tres siguientes, se obtiene el tercer cubo, etc.

Es decir: 1 = 13,

3 + 5 = 23 = 8,

7 + 9 + 11 = 33 = 27,

13 + 15 + 17 + 19 = 43 = 64.

Elabore un diagrama que dado un número n entero positivo, imprima los n primeros cubos

utilizando esta propiedad.

64.- De n números que se lean desde el teclado determinar el mayor y el menor valor.

65.- Leer las estaturas (en cm ) de un grupo de personas, a partir de estos valores

obtener el promedio de estaturas, el porcentaje de estaturas por debajo

de 150 cm y el porcentaje de las que estén por encima o igual a este valor. Detener el

proceso cuando el usuario ingrese un cero.

66.- Leer las calificaciones de un grupo de estudiantes que han rendido un examen, a

partir de ello determinar:

- La media de las calificaciones - El porcentaje de alumnos aprobados (nota >= 51) - El porcentaje de reprobados - Las dos mejores notas

67.- Construya un algoritmo que acepte los montos de depósitos y retiros efectuados por

un cliente de un banco, mostrar el saldo final que tiene dicho cliente.

68.- Escribir un algoritmo que permita leer dos números enteros y muestre por pantalla a

los números enteros comprendidos en este intervalo, incluidos los valores de entrada,

considerar que si el primer numero es menor que el segundo, la secuencia será creciente,

Page 125: Universidad Católica Boliviana “San Pablo”programacionucb.pbworks.com/f/INF101... · lo apoyo para crear el proyecto de una máquina de diferencias, un dispositivo mecánico

INF-101 Introducción a la Programación 1-2010

Ingeniería de Sistemas – Universidad Católica Boliviana “San Pablo” Pagina - 125

en caso contrario será decreciente, si el usuario ingresa dos números idénticos, el

algoritmo debe solicitar la entrada de nuevos valores.

69.- Obtener mediante un algoritmo el valor de la serie:

2, 5, 7 ,10, 12, 15 ,17,......., 1800

70.- Construya un algoritmo que las temperaturas registradas en un centro de

metereología, y determine cuantas veces se registro temperaturas menores a cero,

cuantas iguales a cero y finalmente cuantas temperaturas mayores a cero grados, detener

el proceso cuando ingrese una temperatura de 99 o –99.

71.- Obtener el valor final de la serie:

n1 + (n-1)2 + (n-3)3+ ......... 1n

72.- Leer un número entero y determinar si su primer digito es par o impar

73.- Escribir un algoritmo que permita obtener el valor de la serie:

s = 1! / 0! – 2! / 2! + 3! / 4! – 5! /6! + ........ 11!/10!

74.- Mediante un algoritmo generar la serie:

1 , 2 , 6 , 24 , 120 ,....... para n términos

75.- Escribir un algoritmo que determine si 3 números leídos desde el teclado son

“pitagóricos”

76.- Hallar la raíz cuadrada de un número n, empleando la relación:

b = 0,5 * (a + n/a)

c = 0,5 * (b + n/b)

d = 0,5 * (c + n/c)

..........

...........

en donde el valor inicial de a es 1, efectué las iteraciones k veces

77.- Leer el valor de un bien y su vida útil (en años) y muestre por pantalla su

depreciación en cada año, hasta alcanzar la vida útil. Emplear las siguientes relaciones

para determinar el factor de depreciación:

Page 126: Universidad Católica Boliviana “San Pablo”programacionucb.pbworks.com/f/INF101... · lo apoyo para crear el proyecto de una máquina de diferencias, un dispositivo mecánico

INF-101 Introducción a la Programación 1-2010

Ingeniería de Sistemas – Universidad Católica Boliviana “San Pablo” Pagina - 126

FD = Valor original / Vida Útil

Depreciaciónn = Depreciación-1 – FD

FD es el factor de depreciación

78.- Escriba un algoritmo que encuentre la cantidad de números perfectos que existen en el rango de 1 a n.

79.- Calcular potencias con exponentes positivos o negativos, se deben utilizar ciclos repetitivos para tal efecto. 80.- Obtener el valor de la serie: 1/2 + 3/4 + 5/6 + .............n-1/n 81.- Una fuente de datos registra varias edades, la edad 0 indica el final de la entrada de datos, escriba un algoritmo para determinar el promedio de las edades ingresadas y también el porcentaje de personas mayores a los 65 años. 82.- Calcular el valor de la serie: 1/1 + 1/2 + 2/3 + 3/4 + 5/5 + 8/6 + 13/7 + 21 /8 + 34/9 + 55/10 83.- Leer un numero entero y producir un segundo numero con sus dígitos ordenados del menor al mayor. 84.- Leer dos números enteros si no son iguales intercambie el contenido de las variables, de ser iguales sume los mismos y muestre este resultado. 85.- Leer un número entero y determinar si la suma de sus dígitos distintos de cero forman un número primo, de ser así imprima el mensaje respectivo.

86.- Escribir un algoritmo que permita generar 50 números al azar en el rango (1-99) y determine cuantos de estos elementos son números primos. 87.- Mostrar los primeros N números triangulares.

88.- Calcular el coeficiente binomial a partir de la lectura de dos números enteros, a partir

de la relación:

!)!*(

!

mmn

n

m

n

Page 127: Universidad Católica Boliviana “San Pablo”programacionucb.pbworks.com/f/INF101... · lo apoyo para crear el proyecto de una máquina de diferencias, un dispositivo mecánico

INF-101 Introducción a la Programación 1-2010

Ingeniería de Sistemas – Universidad Católica Boliviana “San Pablo” Pagina - 127

89.- Dados dos números determinar si son primos relativos entre si. (por definición, no

tienen ningún factor primo en común, o, dicho de otra manera, si no tienen otro divisor

común más que 1 )

90.- Simular mediante un algoritmo el comportamiento de un reloj digital, mostrando :

hh:mm:ss

91.- Generar las secuencias:

5 5 5 5 5

4 4 4 4

3 3 3

2 2 1

92.- Generar las secuencias: 1 2 3 4 5 5 4 3 2 1 1 2 3 4 4 3 2 1 1 2 3 3 2 1

1 2 2 1 1 1

93.- Generar la tabla:

1 2 3 4 5

2 4 6 8 10

3 6 9 12 15

4 8 12 16 20

5 10 15 20 25

94.- Generar :

1 1 1 1 1

1 1 1 1 5

1 1 1 4 5

1 1 3 4 5

1 2 3 4 5

Page 128: Universidad Católica Boliviana “San Pablo”programacionucb.pbworks.com/f/INF101... · lo apoyo para crear el proyecto de una máquina de diferencias, un dispositivo mecánico

INF-101 Introducción a la Programación 1-2010

Ingeniería de Sistemas – Universidad Católica Boliviana “San Pablo” Pagina - 128

95.- Leer un valor que represente una cierta cantidad de dinero, escribir un algoritmo que

permita convertir el dicho valor en billetes y monedas, de tal forma que sea la menor

cantidad de billetes y monedas a convertir.

Ej: Sea el monto = 655 Bs.

La salida será:

3 billetes de 200 Bs

1 billete de 50 Bs.

1 moneda de 5 Bs.

96.- Leer el nombre completo de una persona y determine si tiene uno o mas de un nombre.

97.- Dada la fecha de nacimiento de una persona escribir un algoritmo que indique su signo zodiacal. 98.- Escribir un algoritmo que permita convertir un numero arábigo en un numero romano

(el rango es de 1 - 3000 )

99.- Escribir un algoritmo que indique la frecuencia de repetición de las vocales de un

frase que se lea desde el teclado.

100.- Leer una cadena de caracteres y verifique si es un palíndromo (palabra que se lee

igual de izquierda a derecha o viceversa).

Ej: ORURO, OSO, ANITA LAVA LATINA, etc

101.- Leer una palabra y determinar si la misma contiene las cinco vocales.

102.- Escribir un algoritmo que acepte un número no mayor a dos dígitos y muestre el

mismo de manera literal:

Ej: 23 : Veintitrés

103.- Leer los nombres de pila, de por lo menos 5 personas y determinar cuantos de

estos nombres tienen como primera letra la „A‟

104.- Leer los nombres las capitales de varios países, deteniendo la entrada con una

cadena nula (“00000”), y luego efectué la búsqueda de alguno de estos e indique el orden

en el que registro.

Page 129: Universidad Católica Boliviana “San Pablo”programacionucb.pbworks.com/f/INF101... · lo apoyo para crear el proyecto de una máquina de diferencias, un dispositivo mecánico

INF-101 Introducción a la Programación 1-2010

Ingeniería de Sistemas – Universidad Católica Boliviana “San Pablo” Pagina - 129

PROBLEMAS PROPUESTOS - PROGRAMACION

1. Asignar valor a cuatro variables e imprímalos.

2. Leer dos números y mostrar el resultado de su suma, resta, división y modulo.

3. Leer 2 números y hallar la resta del mayor menos el menor.

4. Leer 2 números e imprimir el mayor.

5. Leer un número e imprimir su cuadrado.

6. Leer un número e imprimir su raíz cuadrada.

7. Leer 2 números e imprimir de menor a mayor.

8. Leer 2 números y mostrar de mayor a menor.

9. Leer 3 números y mostrar el mayor.

10. Leer 3 números y mostrar de mayor a menor.

11. Asignar valor a 5 variables e imprimir el resultado de su suma, el producto del 1° con el

4° y la diferencia del 5° con el 2°.

12. Asignar valor a 3 variables e imprimir el producto de la suma del 1° con el 3°, por el 2°.

13. Leer 2 números e imprimir el resultado de su suma.

14. Leer 2 números e imprimir el resultado de su resta.

15. Leer 2 números e imprimir el resultado de su producto.

16. Leer 2 números e imprimir el resultado de su división.

17. Leer 2 números e imprimir el resultado de las 5 operaciones fundamentales (CASE).

18. Leer un número y determinar si es positivo.

19. Leer un número y determinar si es positivo, negativo o neutro.

20. Leer un número y determinar si es par.

21. Leer un número y determinar si es par o impar.

22. Leer un número y determinar si es múltiplo de 3.

23. Leer un número y determinar si es múltiplo de 5.

24. Leer un número y determinar si es mayor que 100.

25. Leer un número y determinar si es mayor que 300.

26. Leer un numero y determinar si esta en el rango de 70 y 150.

27. Leer 4 números y hallar la resta del mayor menos el menor.

Page 130: Universidad Católica Boliviana “San Pablo”programacionucb.pbworks.com/f/INF101... · lo apoyo para crear el proyecto de una máquina de diferencias, un dispositivo mecánico

INF-101 Introducción a la Programación 1-2010

Ingeniería de Sistemas – Universidad Católica Boliviana “San Pablo” Pagina - 130

28. Leer 4 números e imprimir de menor a mayor.

29. Leer 2 números y efectuar la resta del mayor menos el menor.

30. Leer 2 números e imprimir el resultado de su división (si se puede) verificando si es

infinito o indeterminado.

31. Calcular los salarios mensuales de los empleados de una empresa, sabiendo que estos

se calculan en base a las horas semanales trabajadas y de acuerdo a un monto por

hora trabajada. Si pasa de 40 horas semanales, las horas extra se pagana razón de 1.5

veces la hora ordinaria.

32. Calcular el área de un triangulo sabiendo que la formula es:

S=(1/2)*b*h

b=Base

h=Altura

33. Convertir una temperatura dada en Celcius a grados Farenheit sabiendo que:

F°=9/5*C°+32

34. Calcular el salario Neto mensual de un trabajador en función a sus horas trabajadas y

la tasa de impuestos, tomar en cuenta que:

a. Las primeras 120 horas se paga a tarifa normal.

b. Las horas extra se pagan a razón de 1.5 veces la hora ordinaria.

c. Las tasas de impuestos son:

i. Los primeros 700 Bs son libres de impuestos.

ii. El resto tiene un impuesto del 13% IVA (se deduce AFP 10% y Fonvis 2%

del salario Bruto).

d. Se paga 20 Bs la hora.

35. Hallar el área y el perímetro de un círculo.

36. Hallar el área y el perímetro de un rectángulo.

37. Hallar el volumen y área de un prisma rectangular.

38. Hallar el volumen y área de un cilindro.

39. Hallar el volumen y área de una esfera.

Page 131: Universidad Católica Boliviana “San Pablo”programacionucb.pbworks.com/f/INF101... · lo apoyo para crear el proyecto de una máquina de diferencias, un dispositivo mecánico

INF-101 Introducción a la Programación 1-2010

Ingeniería de Sistemas – Universidad Católica Boliviana “San Pablo” Pagina - 131

40. Introducir por teclado una fecha en formato (D) día, (M) mes, (Y) año. Determinar la

fecha del día siguiente:

D=24 M=4 Y=1971 D=25 M=4 Y=1971

D=31 M=12 Y=1996 D=1 M=1 Y=1997

41. Leer mes y año, y obtener el número de días del mes.

Estructura While

42. Leer 10 números y hallar su suma de todos los elementos (sin while).

43. Leer 10 números hallar la suma de los primeros 10 números naturales.

44. Hallar su suma de todos los elementos (con while).

45. Hallar la suma de los primeros 5 números pares naturales.

46. Leer 10 números e imprimir la cantidad de positivos.

47. Leer 20 números e imprimir la cantidad de pares y la cantidad de impares.

48. Leer 20 números e imprimir la suma de pares y la suma de impares.

49. Leer 15 números e imprimir la cantidad de números múltiplos de 3 y 5 que existan.

50. Leer 40 números e imprimir la cantidad de números que se encuentran en el rango de

15 a 30.

51. Leer 30 números e imprimir la cantidad de números que sean iguales a 40 y la cantidad

de mayores a 200.

52. Leer 4 números e imprimir su promedio.

53. Leer N números e imprimir el promedio de los múltiplos de 7 y la cantidad de los

múltiplos de 3.

54. Leer N números e imprimir la sumatoria de ellos.

55. Leer N números e imprimir el promedio de impares y la sumatoria de los restantes.

56. Leer un número e imprimir el número de dígitos que tiene.

57. Leer un numero decimal entero e imprimir su equivalente en binario.

58. Leer un numero decimal entero e imprimir su equivalente en octal.

59. Leer un numero decimal entero e imprimir su equivalente en hexadecimal.

60. Leer un número e invertirlo.

Page 132: Universidad Católica Boliviana “San Pablo”programacionucb.pbworks.com/f/INF101... · lo apoyo para crear el proyecto de una máquina de diferencias, un dispositivo mecánico

INF-101 Introducción a la Programación 1-2010

Ingeniería de Sistemas – Universidad Católica Boliviana “San Pablo” Pagina - 132

61. Leer un número y verificar si es capicúa.

62. Leer un número decimal y obtener el primer digito decimal.

63. Leer N números e imprimir la sumatoria de los que se encuentren en el rango del 10 y

100 y el promedio de los múltiplos de 4 y 9.

64. Obtener el producto de 2 números utilizando sumas sucesivas.

65. Obtener la división de 2 números utilizando restas sucesivas.

66. Obtener la potencia de un numero N a la I utilizando multiplicaciones sucesivas.

67. Leer un número e imprimir sus múltiplos.

68. Leer N números e imprimir el promedio de los múltiplos de 8 y el 15vo numero leído.

69. Leer N números e imprimir la 4ta que se encuentre comprendida en el rango del 50 al

100 y el 10mo numero leído.

70. Leer N números e imprimir el porcentaje de pares y el último negativo.

71. Leer N números e imprimir el 4to número leído si este es mayor de 400.

72. Leer N números e imprimir el 10mo numero si este es mayor que 5.

73. Leer N números e imprimir el 15 número si este es igual a la suma del primer par con

el último impar.

74. Leer N números e imprimir el 7mo si es que es el doble del primero.

75. Leer N números e imprimir el 13 si es el doble del quinto impar.

76. Leer N números e imprimir el mayor.

77. Leer N números e imprimir el promedio de pares y el porcentaje de los múltiplos de 4.

78. Leer N números e imprimir el promedio de los menores que 100, porcentaje de los

mayores que 200, y la cantidad de los que se encuentren en el rango de 100 y 200.

79. Hallar 10 números y hallar el promedio.

80. Leer N números e imprimir el 5to leído.

81. Leer N números e imprimir el 5to número impar.

82. Leer N números e imprimir el tercer número par que se encuentre en el rango de 10 y

20 y el número mayor de todos.

83. Leer N números e imprimir la 4ta posición leída y el mayor de los impares.

Page 133: Universidad Católica Boliviana “San Pablo”programacionucb.pbworks.com/f/INF101... · lo apoyo para crear el proyecto de una máquina de diferencias, un dispositivo mecánico

INF-101 Introducción a la Programación 1-2010

Ingeniería de Sistemas – Universidad Católica Boliviana “San Pablo” Pagina - 133

84. Leer N números e imprimir la cantidad de positivos, promedio de los pares, porcentaje

de los múltiplos de 4 y el mayor de los impares.

85. Leer N números e imprimir la cantidad de pares que estén entre los dos primeros

impares.

86. Leer N números hasta que la sumatoria de los pares sea mayor o igual a 500, imprimir

la cantidad de números leídos.

87. Leer números hasta que aparezca el 7mo múltiplo de 4, imprimir la cantidad total de

números leídos, y la primera negativa.

88. Leer 10 números y hallar la cantidad de números que están entre [100-200].

89. Leer 10 números y hallar el último par.

90. Leer 10 números y hallar el primer par.

91. Leer N números y hallar el promedio.

92. Leer un número y mostrar la cantidad de dígitos que tiene.

93. Leer un número y mostrar el número invertido.

94. Verificar si un número es capicúa.

95. Leer el número y mostrar 2 números: uno con los dígitos pares, y el otro con los

impares, pero invertidos.

96. Leer el número y mostrar 2 números: uno con los dígitos pares, y el otro con los

impares, pero ordenados.

Estructura FOR

97. Generar e imprimir los números del 1 al 10.

98. Generar e imprimir los números del 10 al 1.

99. Generar e imprimir N números aleatorios.

100. Generar e imprimir N números aleatorios que se encuentren entre A y B.

101. Generar e imprimir N números pares aleatorios.

102. Generar e imprimir N números aleatorios múltiplos de 7.

103. Leer 10 números y mostrar la cantidad de números pares.

104. Leer N números y mostrar el promedio.

Page 134: Universidad Católica Boliviana “San Pablo”programacionucb.pbworks.com/f/INF101... · lo apoyo para crear el proyecto de una máquina de diferencias, un dispositivo mecánico

INF-101 Introducción a la Programación 1-2010

Ingeniería de Sistemas – Universidad Católica Boliviana “San Pablo” Pagina - 134

105. Generar la serie para N números: 1 3 5 7 8 11 13 …

106. Generar la tabla de sumar del 1 al 10 de un numero X.

107. Generar la tabla de restar del 1 al 10 de un numero X.

108. Generar la tabla de multiplicar del 1 al 10 de un numero X.

109. Generar la tabla de dividir del 1 al 10 de un numero X.

110. Leer un número N y mostrar la cantidad de dígitos pares e impares.

111. Leer 30 números y mostrar el porcentaje de pares e impares.

112. Leer N números y mostrar el mayor de todos.

113. Leer N números y mostrar el menor de todos.

114. Leer N números y mostrar el 1er positivo.

115. Leer N números e imprimir el último múltiplo de 5.

116. Leer N números y mostrar la cantidad de pares que se encuentran entre los dos

primeros impares.

117. Generar la serie para N números: 1 3 5 7 …

118. Generar la serie para N números: 1 2 3 4 5 6 7 8 9 10 11 …

119. Generar la serie para N números: 2 4 6 8 10 12 14 …

120. Generar la serie para N números: 1 2 4 7 11 16 22 29 …

121. Generar la serie para N números: 1 0 0 0 3 0 0 0 5 0 0 0 7 0 0 0 9 0 …

122. Generar la serie para N números: 2 2 4 2 4 6 2 4 6 8 …

123. Generar la tabla de multiplicar de 1 hasta N del numero X.

124. Hallar el factorial de un numero N.

125. Imprimir el resultado de 0!+1!+2!+…+N! (N menor a 20)

126. Imprimir el resultado de 1/1+1/2+1/3+…+1/N

127. Imprimir el resultado para N términos: S=X - X^3/3!+ X^5/5!- X^7/7!+…

128. Generar el factorial de los N números secuenciales.

129. Verificar si un número es perfecto.

N=6 1*2*3 = 1+2+3 (sus múltiplos) Si es perfecto

130. Hallar el mcm y MCD para dos números.

131. Verificar si un número es primo.

Page 135: Universidad Católica Boliviana “San Pablo”programacionucb.pbworks.com/f/INF101... · lo apoyo para crear el proyecto de una máquina de diferencias, un dispositivo mecánico

INF-101 Introducción a la Programación 1-2010

Ingeniería de Sistemas – Universidad Católica Boliviana “San Pablo” Pagina - 135

132. Generar la serie para N números: N=6 100 1 99 2 98 3 97 …

133. Generar la siguiente serie para N términos: N=6 6 1 5 2 4 3 …

134. Generar la siguiente serie para N términos (Fibonacci): 0 1 1 2 3 5 8 13 …

135. Generar la siguiente serie para N términos: 1 0 2 0 3 0 4 0 …

136. Generar la siguiente serie: A B C D E F G ..

137. Generar N Fibonaccis, e imprimir el promedio de los múltiplos de 9 que se

encuentren en el rango de 40 y 80.

138. Generar N Fibonaccis e imprimir el factorial del 5to elemento par.

139. Imprimir la secuencia 100, 1 , 99 , 2 , 98, 3 , …

140. Generar los primeros N números primos.

141. Leer un numero N y mostrar un numero con los dígitos del medio.

N=4521 52

142. Leer un numero N y mostrar la suma de sus dígitos.

143. Leer un número y mostrar la cantidad de dígitos pares y la cantidad de dígitos

impares.

144. Convertir un número entero positivo en su equivalente en romano.

N=3276 MMMCCLXXVI

Vectores

145. Llenar un vector de longitud N y mostrarlo por pantalla.

146. Llenar un vector de longitud N y mostrarlo por pantalla los elementos pares.

147. Llenar un vector de longitud N y mostrar la suma de todos sus elementos.

148. Llenar un vector de tamaño N y mostrar en X la suma de los elementos impares y

en Y la suma de las posiciones pares.

149. Leer dos vectores de tamaño N, e intercambiar sus elementos.

150. Leer un numero N y almacenar los dígitos pares en el vector P y los dígitos impares

en el vector 1.

151. Llenar 2 vectores de tamaño N y mostrar en el vector C la suma de dos vectores.

Page 136: Universidad Católica Boliviana “San Pablo”programacionucb.pbworks.com/f/INF101... · lo apoyo para crear el proyecto de una máquina de diferencias, un dispositivo mecánico

INF-101 Introducción a la Programación 1-2010

Ingeniería de Sistemas – Universidad Católica Boliviana “San Pablo” Pagina - 136

152. Llenar 2 vectores (A y B) de diferentes tamaños y copiar en el vector C de tamaño

del vector mayor. El vector C debe ser llenado con los elementos mayores de cada

celda correspondiente al índice de A y B, y los elementos sobrepasen al Vector de

menor tamaño, cópielos.

153. Llenar un vector de tamaño N con la siguiente serie: 1 0 1 0 1 0 ..

154. Generar 2 vectores de tamaño N con los siguientes elementos:

1 2 3 4 5

5 4 3 2 1

155. Generar un vector de tamaño N con la siguiente serie: 2 4 6 8 10 12 14 …

156. Generar un vector de tamaño N con la siguiente serie: 1 2 4 7 11 16 22 …

157. Generar un vector de tamaño N con la siguiente serie: 0 1 1 2 3 5 8 13 …

158. Llenar un vector de tamaño N y buscar un elemento X introducido por teclado

(imprimir la posición).

159. Llenar un vector y contar cuantos elementos X hay en el vector.

160. Llenar un vector de tamaño N y ordenarlo en forma ascendente.

161. Llenar un vector A de tamaño N, y generar un vector B de tamaño N con los

elementos invertidos de A.

162. Llenar un vector, ordenarlo, leer un elemento X por teclado e introducir en el

vector en la posición que corresponde.

163. 4 7 2 1 8 4 7 2 1 8 4 7 2 1 8

164. 3 1 7 2 3 1 7 2 2 7 1 3

Matrices

165. Calcular la sumatoria de los elementos de la diagonal principal de una matriz

cuadrada.

166. Calcular la sumatoria de los elementos de la diagonal secundaria de una matriz

cuadrada.

167. Hallar la transpuesta de una matriz.

168. Realizar la suma de 2 matrices NxN.

Page 137: Universidad Católica Boliviana “San Pablo”programacionucb.pbworks.com/f/INF101... · lo apoyo para crear el proyecto de una máquina de diferencias, un dispositivo mecánico

INF-101 Introducción a la Programación 1-2010

Ingeniería de Sistemas – Universidad Católica Boliviana “San Pablo” Pagina - 137

169. Verificar si la matriz cuadrada leída es simétrica.

170. Intercambiar los elementos de la triangular superior izquierda de una matriz, por la

triangular inferior derecha.

171. Llenar una matriz N x N de la siguiente forma:

1 1 1 1

1 1 1 1

1 1 1 1

1 1 1 1

172.

1 2 3 4

1 2 3 4

1 2 3 4

1 2 3 4

173.

1 0 0 0

0 1 0 0

0 0 1 0

0 0 0 1

174.

1 0 0 0

1 1 0 0

1 1 1 0

1 1 1 1

175. Generar una Matriz de tamaño NxN, y el elemento X

X 0 0 X

0 X X 0

0 X X 0

X 0 0 X

Page 138: Universidad Católica Boliviana “San Pablo”programacionucb.pbworks.com/f/INF101... · lo apoyo para crear el proyecto de una máquina de diferencias, un dispositivo mecánico

INF-101 Introducción a la Programación 1-2010

Ingeniería de Sistemas – Universidad Católica Boliviana “San Pablo” Pagina - 138

176.

1 1 1 1

1 0 0 1

1 0 0 1

1 1 1 1

177. Llenar una matriz NxM y hallar la suma de sus elementos.

178. Llenar una matriz NxN y mostrar en la variable X la suma de la diagonal principal y

en la variable Y la suma de la diagonal secundaria.

179. Llenar 2 matrices NxM y su suma almacenar en otra matriz C.

180. Llenar una matriz NxM, y generar la suma de los elementos de cada fila.

181. Llenar una matriz Mx2, y generar en un vector la resta de los elementos de las filas.

182. Llenar una matriz NxM, y generar un vector con las suma de cada columna.

183. Llenar un matriz y sumar los elementos de las filas y columnas externas.

184. Generar la siguiente serie.

5 10 15 20

25 30 35 40

45 50 55 60

65 70 75 80

185. Generar la matriz: N=4

0 0 0 1 0 0 0

0 0 1 2 1 0 0

0 1 2 3 2 1 0

1 2 3 4 3 2 1

186. Generar la matriz

1 1 1 1 1

1 2 2 2 1

1 2 3 2 1

1 2 2 2 1

1 1 1 1 1

Page 139: Universidad Católica Boliviana “San Pablo”programacionucb.pbworks.com/f/INF101... · lo apoyo para crear el proyecto de una máquina de diferencias, un dispositivo mecánico

INF-101 Introducción a la Programación 1-2010

Ingeniería de Sistemas – Universidad Católica Boliviana “San Pablo” Pagina - 139

187. Llenar la matriz: n=5 (n impar)

5 5 0 5 5

5 5 0 5 5

0 0 0 0 0

5 5 0 5 5

5 5 0 5 5

188. Llenar la matriz: n=5

1 1 1 1 1

0 1 0 1 0

0 0 1 0 0

0 1 0 1 0

1 0 0 0 1

189. Llenar una matriz Nx3 de tal forma:

m[i,3]=abs(m[i,1]-m[i,2])

2 5 3

6 7 1

4 6 2

6 13 7

190. Llenar la matriz: n=5

1 2 3 4 5

16 17 18 19 6

15 24 25 20 7

14 23 22 21 8

13 12 11 10 9

191. Llenar la matriz: n=5

17 10 5 2 1

18 11 6 3 4

19 12 7 8 9

20 13 14 15 16

21 22 23 24 25

Page 140: Universidad Católica Boliviana “San Pablo”programacionucb.pbworks.com/f/INF101... · lo apoyo para crear el proyecto de una máquina de diferencias, un dispositivo mecánico

INF-101 Introducción a la Programación 1-2010

Ingeniería de Sistemas – Universidad Católica Boliviana “San Pablo” Pagina - 140

192. Llenar la matriz: n=5

1 2 4 7 11

3 5 8 12 0

6 9 13 0 0

10 14 0 0 0

15 0 0 0 0

193. Llenar la matriz: n=5

1 2 6 7 15

3 5 8 14 16

4 9 13 17 22

10 12 18 21 23

11 19 20 24 25

194. Llenar la matriz: n=5

1 10 11 20 21

2 9 12 19 22

3 8 13 18 23

4 7 14 17 24

5 6 15 16 25

195. Llenar la matriz: n=5

1 22 23 14 13

2 21 24 15 12

3 20 25 16 11

4 19 18 17 10

5 6 7 8 9