Descargar

Estructura selectiva múltiple

Enviado por Kassandra Díaz


  1. El sistema binario: donde empieza todo
  2. Más sobre bits, bytes y binario
  3. Paso de decimal a binario
  4. Estructura selectiva multiple
  5. Estructura selectiva multiple usando rangos

El sistema binario: donde empieza todo

En el sistema binario, todos los números se representan por una condición "encendido/apagado". Veamos un ejemplo rápido de binario en términos fácilmente comprensibles.

Big Ed aprende binario

edu.red

"Big Ed" Hackenbyte es propietario de "Big Ed"s", un restaurante que sirve comidas rápidas y cenas lentas en el área cercana a San José (California). En esta zona, conocida como Valle del Silicio, hay docenas de compañías que fabrican microprocesadores. Ed tiene ocho personas a su servicio: Zelda, Olive, Trudy, Thelma, Fern, Fran, Selma y Sidney. Debido a la despersonalización existente, tiene asignados números para la nómina. Los números asignados son:

edu.red

Cuando Big Ed rellenó por primera vez el panel de llamadas, tenía ocho luces, una para cada persona del servicio, como puede verse en la figura 1.1. Un día, sin embargo, Bob Borrow, ingeniero de diseño de una compañía de microprocesadores conocida como Inlog, llamó a Ed. "Ed, podrías ser mucho más eficiente con tu panel de llamadas, ¿sabes? Puedo mostrarte cómo hemos diseñado el tablón con uno de nuestros microprocesadores."

edu.red

Ed, interesado en la nueva tecnología, siguió su consejo. El nuevo diseño del tablón de anuncios se muestra en la figura 1.2. Tiene tres luces, controladas desde la cocina. Cuando se llama a alguien del servicio, suena un timbre; ¿cómo es posible llamar a alguna de las ocho personas del servicio por medio de combinaciones luminosas de las tres luces?

"¿Ves, Ed? Este panel es muy eficaz. Emplea cinco luces menos que tu primer panel. Hay ocho combinaciones diferentes de luces. En realidad les llamamos permutaciones, pues hay un orden definido en la disposición de las luces. He preparado una tabla de las permutaciones de las luces y la persona del servicio llamada." Dio a Ed la tabla mostrada en la figura 1.3.

edu.red

Sólo hay ocho permutaciones diferentes de luces, Ed, ni más ni menos. Estas luces están ordenadas en forma binaria. Utilizamos el sistema binario en nuestros ordenadores por dos razones: primero, se ahorra espacio. Reducimos el número de luces de ocho a tres. Segundo, los ordenadores baratos sólo, pueden representar normalmente un estado encendido/apagado, igual que las luces están encendidas o apagadas." Hizo una pausa para dar un bocado a su "Big Edburger".

"Daré estos códigos a mis ayudantes para que los memoricen", dijo Ed. "Cada persona del servicio sólo tiene que memorizar su código, Ed. Te daré la clave, de forma que puedas descifrar qué persona del servicio es llamada, sin necesidad de la tabla.

edu.red

¿Ves? Cada luz representa una potencia de dos. La luz de la derecha representa dos elevado a cero. La siguiente, dos elevado a uno, y la de más a la izquierda es dos elevado a dos. En realidad es muy parecido al sistema decimal, donde cada dígito representa una potencia de diez." Garabateó un ejemplo en el mantel, como muestra la figura 1.4.

edu.red

"De la misma forma que podemos emplear las potencias de diez para números altos, podemos utilizar tantas potencias de dos como queramos. Podríamos usar treinta y dos luces, si quisiéramos. Entonces, para pasar las tres luces en binario a su equivalente en decimal, habría que sumar la potencia de dos correspondiente a cada luz encendida." Garabateó otra figura en el mantel (Fig. 1.5).

"Bueno, parece bastante sencillo", admitió Ed. "De derecha a izquierda, las luces representan 1, 2 y 4. Si tuviéramos más camareros y camareras, las luces representarían 1, 2, 4, 8, 16, 32, 64, 128…" Su voz dejó de oírse, al no ser capaz de decir la siguiente potencia de dos.

"Exacto, Ed. Frecuentemente, tenemos el equivalente a ocho o dieciséis luces en nuestros microprocesadores. No usamos luces, por supuesto; utilizamos semiconductores que están apagados o encendidos." Dibujó otra figura en el mantel, que por aquel entonces estaba lleno de diagramas (Fig. 1.6).

"Llamamos bit a cada una de las ocho o dieciséis posiciones. "Bit" es una contracción de dígito binario. Después de todo, eso es de lo que hemos estado hablando; los dígitos binarios forman números binarios, igual que los dígitos decimales forman números decimales. Tu panel representa un número de tres bits.

En 8 bits podemos representar cualquier número entre 0 y 1 + 2 + 4 + 8 + 16 + 32 + 64 + 128. Sumando todos ellos, se obtiene 255, el mayor número que puede ser contenido en 8 bits."

"¿Qué ocurre con los 16 bits?", preguntó Ed.

edu.red

edu.red

edu.red

"Te lo puedes imaginar", dijo Bob. "Tengo que volver al trabajo de diseñar microprocesadores." Ed confeccionó una lista con todas las potencias de dos hasta quince. Entonces, las sumó todas hasta llegar al resultado que muestra la figura 1.7, un total de 65,535 -el mayor número que pueden contener 16 bits.

"El asunto de los microprocesadores es fácil", dijo Ed con una mueca, mientras daba a su Big Ed"s Jumboburger un "mordisco"" de 8 bits.

Más sobre bits, bytes y binario

La explicación de Bob Borrow del binario condensa muy bien la representación binaria de los microordenadores. La unidad básica es un bit o dígito binario. Un bit puede estar encendido o apagado. Porque es mucho más fácil escribir 0 ó 1, estos dígitos se usan en lugar de encendido/apagado cuando representamos valores binarios.

La posición del bit del número binario se refiere a la posición del dígito en el número. La posición del bit en la mayoría de los microordenadores tiene un número asociado, como se muestra en la figura 1.8. Puesto que éstas, en realidad, representan una potencia de dos, es conveniente numerarlas de acuerdo con la potencia de dos representada. El bit de más a la derecha es dos elevado a cero, y la posición del bit es, por tanto, cero. Las posiciones del bit hacia la izquierda se numeran 1 (dos elevado a uno), 2 (dos elevado a dos), 3, 4, 5, etc.

edu.red

En todos los microordenadores actuales, un grupo de ocho bits se denomina un byte. De alguna manera, es obvio el origen de esta palabra si nos imaginamos a los primeros ingenieros informáticos comiendo en el equivalente de "Big Ed"s" 2.

La memoria de un microordenador viene a menudo indicada por el número de bytes de que consta.

Cada byte corresponde aproximadamente a un carácter, como veremos en capítulos posteriores. Las operaciones de entrada y salida de la memoria se hacen generalmente de un byte cada vez.

Los registros en el interior de un microprocesador tienen también la extensión de uno o dos bytes. Estos, en realidad, no son más que posiciones de memoria de acceso rápido que se utilizan para almacenamiento temporal en el microprocesador. Normalmente hay diez bytes de registros en los microprocesadores y hasta 65,535 bytes en la memoria de un microordenador, como ilustran las figuras 1.9 y 1.10

.edu.red

edu.red

¿Hay otras agrupaciones por encima o por debajo de los bytes? Algunos microordenadores hablan de palabras, que pueden ser dos o más bytes, pero, generalmente, byte es el término más utilizado para nombrar un grupo de bits. Algunas veces, las agrupaciones de cuatro bits se denominan nibble3 (los primeros ingenieros informáticos debían estar obsesionados con la comida).

El BASIC, generalmente, opera con ocho o dieciséis bits de datos a la vez -uno o dos bytes-. Un byte se utiliza para las instrucciones PEEK o POKE del BASIC, que permiten al usuario leer o escribir datos en una posición de memoria. Esto es útil cuando se usan para cambiar algunos de los parámetros del sistema que, de otra manera, serían inaccesibles desde el BASIC.

Se utilizan dos bytes para representar variables enteras. En este tipo de formato, una variable del BASIC puede contener valores desde -32,768 hasta +32,767. Este número se almacena como un valor entero con signo, como veremos en el capítulo 3.

Si está interesado en el lenguaje ensamblador de su microordenador, tendrá que operar con bytes para realizar operaciones aritméticas, como suma y resta, y de uno a cuatro bytes para representar el lenguaje máquina correspondiente a la instrucción del microprocesador.

Ya que nos referiremos continuamente a valores de uno y dos bytes, vamos a investigar sobre ellos más a fondo.

Paso de binario a decimal

Big Ed encontró los valores máximos que podían ser almacenados en uno o dos bytes, sumando todas las potencias de dos. Eran 255 para un byte y 65,535 para dos bytes. Cualquier número entre ellos puede ser representado empleando los bits apropiados.

edu.red

Supongamos que tenemos el valor binario de 16 bits 0000101001011101. Para encontrar el número decimal de este valor binario, podríamos utilizar el método de Big Ed de sumar las potencias de dos. Esto se ha hecho en la figura 1.11, donde obtenemos como resultado 2653. ¿Hay alguna forma más sencilla de pasar de binario a decimal? Sí, hay varias.

El primer procedimiento consiste en usar una tabla de valores. Hemos incluido una tabla de este tipo en el apéndice C, que muestra la relación entre los sistemas binarios, octal, decimal y hexadecimal para valores hasta 1023. Como para mostrar valores hasta 65,535 con 16 bits se necesita bastante espacio, tiene que existir un procedimiento más adecuado.

Un método que funciona sorprendentemente bien es el llamado "doblar y sumar". Después de un poco de práctica, resulta muy fácil pasar unos diez bits de binario a decimal. En el siguiente capítulo se muestra un método que sirve para dieciséis o más bits. Doblar y sumar es un procedimiento estrictamente mecánico, que automatiza el proceso de conversión. Es más difícil describirlo que hacerlo. Para utilizarlo, haga lo siguiente:

  • 1. Tome el primer 1 (más a la izquierda) del número binario.

  • 2. Multiplique el 1 por dos y sume el siguiente bit de la derecha, sea 0 ó 1.

  • 3. Multiplique el resultado por dos y sume este resultado al siguiente bit.

  • 4. Repita este proceso hasta que el último dígito haya sido sumado al total.

El resultado es el número decimal equivalente al número binario

edu.red

Este procedimiento se muestra en la figura 1.12 para la cantidad 2653 utilizada en el ejemplo anterior. Después de haber estado operando con números binarios durante algún tiempo, es probable que reconozca 1111 como el decimal 15 y 111 ll como 31. Puede emplear también pequeños trucos, como darse cuenta que 11110 es uno menos que 31; o que 101000 es también 1010 = 10 (en decimal) multiplicado por cuatro para obtener un valor de 40. Por el momento, sin embargo, haga unos pocos ejemplos para acostumbrarse al procedimiento; con el tiempo lo hará automáticamente, y probablemente no vale la pena malgastar el tiempo en convertirse en experto en el sistema binario.

Paso de decimal a binario

¿Cómo se hace a la inversa? Es un proceso diferente. Supongamos que tenemos que pasar el número decimal 250 a binario. Analizaremos varios métodos.

El primer método es el de "inspección de potencias de dos". Podría denominarse también resta sucesiva de potencias de dos, pero tal vez a Big Ed no le gustaría el nombre. En este método, todo lo que hacemos es tratar de restar una potencia de dos y poner un 1 en la posición del bit correcta, si se puede (véase Fig. 1.13). Algunas potencias de dos son: 256, 128, 64, 32, 16, 8, 4, 2, 1, comenzando por las mayores. Es obvio que 256 no se podrá restar, luego pondremos un 0 en esa posición. La potencia 128 vale, quedando 122. Ponemos un 1 en la posición 7. La potencia 64 se resta a 122, quedando 58; luego ponemos un 1 en la posición 6. Este proceso se repite hasta calcular la última posición, como muestra la figura 1.13.

El método anterior es muy aburrido. ¿Hay uno mejor? Uno más eficaz es el llamado "dividir por dos y guardar los restos". En este método se hace lo que indica el nombre; esto se explica en la figura 1.14. La primera división es 250 entre dos, resultando 125. Resto 0. La siguiente división es 125 entre dos, dando 62 y quedando 1. El proceso se repite hasta que el "residuo" es 0. Ahora, los restos se colocan en orden inverso. El resultado es el número binario equivalente al decimal.

Rellenar a ceros hasta ocho o dieciséis bits

Este es un punto no carente de importancia. Las posiciones de la izquierda se rellenan con ceros. Esto es una refinada sutileza que se emplea para "completar con ceros" el número binario hasta ocho o dieciséis bits, según el tamaño con el que se esté operando. Tiene, sin embargo, implicación en los números con signo, luego es mejor empezar a manejarlos en la práctica cuanto antes. En el capítulo siguiente trataremos la notación de los números octales y hexadecimales. Mientras tanto, intente hacer algunos ejercicios de autoevaluación para practicar el paso entre números decimales y binarios.

Ejercicios

  • 1. Hacer una lista de los equivalentes binarios de los números decimales 20 a 32.

20:

  • a) 10100 b) 100110 c) 11101 d) 101010

21:

  • a) 11001 b) 10101 c) 11111 d) 100001

22:

  • a) 11100 b) 001001 c) 10110 d) 1000111

23:

  • a) 11010 b) 00101 c) 1000 d) 10111

24:

  • a) 11000 b) 01001 c) 10010 d) 1100

25:

  • a) 11010 b) 0001 c) 11001 d) 1110

26:

  • a) 100010 b) 0001 c) 11010 d) 110001

27:

  • a) 0010 b) 11011 c) 0010 d) 1010101

28:

  • a) 11100 b) 010101 c) 00010 d) 1011101

29:

  • a) 101000 b) 0001 c) 10010 d) 11101

30:

  • a) 11110 b) 00110 c) 111111 d) 001

31:

  • a) 01101 b) 11001 c) 0010101 d) 11111

32:

  • a) 100000 b) 000001 c) 0101111 d) 1111001

  • 2. Pasar los siguientes números binarios a sus equivalentes decimales: 00110101; 00010000; 01010101; ll 110000; 0011011101101001.

00110101:

  • a) 53 b) 45 c) 35 d) 23

00010000:

  • a) 12 b) 22 c) 16 d) 9

01010101:

  • a) 30 b) 85 c) 59 d) 80

110000:

  • a) 95 b)72 c) 30 d) 48

0011011101101001:

  • a) 854212 b) 54612 c)1265 d) 14185

  • 3. Pasar los siguientes números decimales a su forma binaria: 15, 26, 52, 105, 255, 60000.

15:

  • a) 0100 b) 1111 c) 11110 d) 10101

26:

  • a) 11010 b) 00010 c) 100000 d) 0100111

52:

  • a) 0011 b) 00001 c) 1101001 d) 01110

105:

  • a) 111111 b) 1001111 c) 111 d) 1101001

255:

  • a) 011011 b) 011001 c) 1101101 d) 11111111

60000:

  • a) 1110101001100000 b) 1111100110000 c) 101010101010

d) 0001111000000111 e) 11000000111111

  • 4. "Rellenar a ceros" los siguientes números binarios hasta ocho bits: 101; 110101; 010101.

Estructura selectiva multiple

Permite comparar un valor con diversas alternativas; si la comparación se cumple, se ejecuta el grupo de instrucción que contenga la alternativa selecciona y, luego, sale de la estructura. Si la comparación no se cumple, se ejecuta la alternativa por defecto.

DIAGRAMA DE FLUJO:

edu.red

edu.red

Estructura selectiva multiple usando rangos

Cuando se requiere manejar rangos (>= y , no es divisible con el primer número, entonces devolver como resultado >.

edu.red

PSeint:

Flow Chart:

edu.red

Diagrama Nassi-Shneiderman:

edu.red

Java NetBeans:

edu.red

edu.red

  • 4. Dada una letra, determinar si es una vocal.

edu.red

PSeint:

edu.red

Flow Chart:

edu.red

Diagrama Nassi-Shneiderman:

Java NetBeans:

edu.red

edu.red

  • 5. Al ingresar un número de un mes, devolver la estación del año de acuerdo a la siguiente tabla.

Número

Estación

1,2,3

Verano

4,5,6

Otoño

7,8,9

Invierno

10,11,12

Primavera

PSeint:

edu.red

edu.red

Flow Chart:

edu.red

Diagrama Nassi-Shneiderman:

edu.red

edu.red

Java NetBeans:

  • 6. Dado la nota promedio de un alumno, obtener la categoría, según la siguiente tabla.

Promedio

Categoría

Entre 0 y 5

Pésimo

Entre 6 y 10

Malo

Entre 11 y 14

Regular

Entre 15 y 17

Bueno

Entre 18 y 20

Excelente

edu.red

PSeint:

edu.red

Flow Chart:

edu.red

Diagrama Nassi-Shneiderman:

Java NetBeans:

edu.red

edu.red

  • 7. Al ingresar el día y el número de un mes, devolver la estación del año de acuerdo a la siguiente tabla.

Estación

Tiempo

Verano

Del 21 de diciembre al 20 de marzo

Otoño

Del 21 de marzo al 21 de junio

Invierno

Del 22 de junio al 22 de septiembre

Primavera

Del 23 de septiembre al 20 de diciembre

edu.red

PSeint:

Flow Chart:

edu.red

edu.red

Diagrama Nassi-Shneiderman:

Java NetBeans:

  • 8. En una universidad se ha establecido los siguientes puntajes de ingreso para sus respectivas facultades.

Facultad

Puntaje mínimo

Sistemas

100

Electrónica

90

Industrial

80

Administración

70

De acuerdo al puntaje obtenido por un postulante, determinar la facultad a la cual ingreso o dar un mensaje correspondiente para el caso que no ingrese.

edu.red

PSeint:

edu.red

Flow Chart:

edu.red

Diagrama Nassi-Shneiderman:

Java NetBeans:

edu.red

edu.red

  • 9. Determine el importe a pagar para el examen de admisión de una universidad, cuyo valor depende del nivel socioeconómico y el colegio de procedencia.

Nivel social

Colegio

A

B

C

Nacional

300

200

100

Particular

400

300

200

edu.red

PSeint:

edu.red

Flow Chart:

edu.red

Diagrama Nassi-Shneiderman:

edu.red

Java NetBeans:

edu.red

  • 10. Dado el número del mes y el año (cuatro dígitos) de una fecha, determinar en letras que mes es y cuantos días tiene. Considerar que febrero tiene 28 o 29 días si es año bisiesto, un año es bisiesto si es múltiplo de 4, pero no de 100, y si de 400.

edu.red

PSeint:

Flow Chart:

edu.red

Diagrama Nassi-Shneiderman:

edu.red

 

Java NetBeans:

edu.red

Calidad

Producto

1

2

3

1

5000

4500

4000

2

4500

4000

3500

3

4000

3500

3000

Cree un programa que devuelva el precio a pagar por un producto y una calidad dada.

edu.red

PSeint:

edu.red

Flow Chart:

edu.red

Diagrama Nassi-Shneiderman:

edu.red

edu.red

 

Java NetBeans:

  • 12. Diseñe un algoritmo que califique el puntaje obtenido en el lanzamiento de tres dados en base a la cantidad de seis obtenidos, de acuerdo a lo siguiente:

Tres seis: Oro

Dos seis: Plata

Un seis: Bronce

Ningún seis: Perdió

edu.red

PSeint:

edu.red

Flow Chart:

edu.red

Diagrama Nassi-Shneiderman:

edu.red

Java NetBeans:

edu.red

  • 13. Dado el día, mes y año, determine si es una fecha correcta, considere los años bisiestos.

PSeint:

edu.red

edu.red

Flow Chart:

edu.red

Diagrama Nassi-Shneiderman:

edu.red

edu.red

Java NetBeans:

  • 14. Dada una fecha valida, halle la fecha del siguiente día.

edu.red

PSeint:

edu.red

Flow Chart:

Diagrama Nassi-Shneiderman:

edu.red

edu.red

edu.red

Java NetBeans:

  • 15. Convierta a números romanos, números menores a 4000.

edu.red

PSeint:

edu.red

Flow Chart:

Diagrama Nassi-Shneiderman:

edu.red

Java NetBeans:

edu.red

edu.red

edu.red

PROBLEMAS PROPUESTOS:

  • 1. Dado el número de un mes, devolver el mes en letras

edu.red

PSeint:

edu.red

Flow Chart:

edu.red

Diagrama Nassi-Shneiderman:

edu.red

Java NetBeans:

edu.red

  • 2. Lea un número de 1 al 7 y devuelva el día de la semana, considere que 1 es domingo.

edu.red

PSeint:

edu.red

Flow Chart:

edu.red

Diagrama Nassi-Shneiderman:

edu.red

edu.red

Java NetBeans:

  • 3. Dados los siguientes operadores matemáticos (+, -, * y /), devuelva el nombre del operador.

edu.red

PSeint:

edu.red

Flow Chart:

edu.red

Diagrama Nassi-Shneiderman:

edu.red

edu.red

Java NetBeans:

  • 4. Dado el número de un canal de televisión, determine cuál es el nombre del canal.

edu.red

PSeint:

edu.red

Flow Chart:

edu.red

Diagrama Nassi-Shneiderman:

Java NetBeans:

edu.red

edu.red

SEXO

TARJETA

HOMBRES

MUJERES

OBRERO

15%

10%

EMPLEADO

20%

15%

Determine mediante un programa, cuál será el monto del descuento al sueldo ingresado de un trabajador.

PSeint:

edu.red

edu.red

Flow Chart:

edu.red

Diagrama Nassi-Shneiderman:

edu.red

Java NetBeans:

edu.red

  • 6. Una frutería ofrece las manzanas con descuento, según la siguiente tabla:

KILOS

% DESCUENTO

0 – 2

0%

2.01 – 5

10%

5.01 – 10

20%

Mayor a 10

30%

Determinar cuánto pagara una persona que compre manzanas en esa frutería.

PSeint:

edu.red

edu.red

Flow Chart:

edu.red

Diagrama Nassi-Shneiderman:

edu.red

  • edu.red

Java NetBeans:

  • 7. Obtenga el nombre del estado civil según la siguiente tabla.

CODIGO

ESTADO CIVIL

0

Soltero

1

Casado

2

Divorciado

3

Viudo

edu.red

PSeint:

edu.red

Flow Chart:

edu.red

Diagrama Nassi-Shneiderman:

edu.red

edu.red

 

Java NetBeans:

  • 8. Determinar el monto que recibirá un trabajador por utilidades, después de ingresar el tiempo de servicio y el cargo, según la siguiente tabla.

CARGOTIEMPO DE SERVICIO

ADMINISTRADOR

CONTADOR

EMPLEADO

Entre 0 y 2 años

2000

1500

1000

Entre 3 y 5 años

2500

2000

1500

Entre 6 y 8 años

3000

2500

2000

Mayor a 8 años

4000

3500

1500

 

  • PSeint:

  • Flow Chart:

Diagrama Nassi-Shneiderman:

 

Java NetBeans:

  • 9. Según la siguiente tabla, obtener la ciudad que visitara, después de ingresar su sexo y el puntaje obtenido según su examen.

SEXO

PUNTAJE

MASCULINO

FEMENINO

Entre 18 y 35

Arequipa

Cuzco

Entre 36 y 75

Cuzco

Iquitos

Mayor a 75

Iquitos

Arequipa

 

  • PSeint:

Flow Chart:

Diagrama Nassi-Shneiderman:

Java NetBeans:

 

  • 10. Dada una fecha determine cuantos días faltan para que acabe el año.

PSeint:

 

Flow Chart:

 

Diagrama Nassi-Shneiderman:

Java NetBeans:

INSTITUTO DE EDUCACIÓN SUPERIOR TECNOLÓGICO PÚBLICO "ARGENTINA"

UNIDAD DIDÁCTICA:

Lógica de Programación

DOCENTE:

Sanz Signori, Luis Eduardo

CARRERA:

Computación e Informática

CICLO Y SECCIÓN:

III – B

2017

 

 

 

Autor:

Díaz Ramírez, Kassandra.

Solorzano Chauca, Julio Cesar.

Llanos Ramírez, Gina.

Bautista Chavez, Agustin Elias.

Veramendi Aquije Rosalinda Kimberly.