06.05.2013 Views

CONTENIDO DE LA LECCIÓN 18

CONTENIDO DE LA LECCIÓN 18

CONTENIDO DE LA LECCIÓN 18

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

MIGUEL Á. TOLEDO MARTÍNEZ<br />

a) Cree un arreglo con todos los elementos inicializados a 1 (verdadero) Los elementos del arreglo que<br />

tengan índices primos permanecerán en 1. Los demás elementos del arreglo en algún momento se<br />

establecerán a cero.<br />

b) Comenzando por índice 2 (el índice 1 debe ser primo), cada vez que se encuentre un elemento del<br />

arreglo que sea 1, haga un ciclo por el resto del arreglo y establezca a cero todos los elementos cuyo<br />

índice sea un múltiplo de dicho índice. Para el índice 2, todos los elementos por encima de 2 que sean<br />

múltiplos de 2 se establecerán a cero (los índices 4, 6, 8, 10, etc.); en el caso del índice 3, todos los<br />

elementos por encima de 3 que sean múltiplos de 3 se establecerán a cero (índices 6, 9, 12, 15, etc.); y<br />

así sucesivamente.<br />

Terminado este proceso, los elementos del arreglo que aún estén establecidos a 1 indicarán que el índice<br />

es un número primo, así que podrán imprimirse. Escriba un programa con un arreglo de 1000<br />

elementos que determine e imprima los números primos entre 1 y 999. Ignore el elemento 0 del<br />

arreglo.<br />

6. Por medio de un arreglo de un solo índice resuelva el siguiente problema. Una compañía paga a sus<br />

vendedores con base en una comisión. Los vendedores reciben $200 a la semana más 9% de sus ventas<br />

netas durante la semana. Por ejemplo, un vendedor cuyas ventas brutas son de $5000, a la semana recibe<br />

$200 más 9% de $5000, es decir un total de $650. Escriba un programa (con un arreglo de contadores) que<br />

determine la cantidad de vendedores que ganaron salarios dentro de los siguientes rangos (suponga que el<br />

salario de cada vendedor se cierra a una cifra entera):<br />

a) $200 - $299<br />

b) $300 - $399<br />

c) $400 - $499<br />

d) $500 - $599<br />

e) $600 - $699<br />

f) $700 - $799<br />

g) $800 - $899<br />

h) $900 - $999<br />

i) $1000 o más<br />

7. El ordenamiento por el método de la burbuja elaborado en el ejemplo <strong>18</strong>.26. es ineficiente en el caso de<br />

arreglos grandes. Haga las siguientes modificaciones sencillas que mejorarán el desempeño del<br />

ordenamiento de burbuja.<br />

a) Después de la primera pasada, se garantiza que la cifra mayor es el elemento de mayor índice del<br />

arreglo, tras la segunda pasada, los dos números mayores están en su lugar, etc. En lugar de hacer<br />

nueve comparaciones con cada pasada, modifique el ordenamiento de burbuja para que efectúe ocho<br />

comparaciones en la segunda pasada, siete en la tercera, etc.<br />

b) Los datos en el arreglo tal vez ya estén en el orden adecuado, o casi, así que ¿por qué hacer nueve<br />

pasadas si tal vez baste con menos? Modifique el ordenamiento para comprobar al final de cada pasada<br />

si se han hecho intercambios. Si no ha sucedido ninguno, entonces los datos ya estarán en orden y<br />

deberá terminar el programa. Si han sucedido intercambios, entonces se necesita cuando menos otra<br />

pasada.<br />

8. Escriba instrucciones que lleven a cabo las siguientes operaciones sobre arreglos de un solo índice. Debe ser<br />

una sola instrucción por cada una.<br />

a) Inicialice a cero los 10 elementos del arreglo de enteros contador.<br />

b) Sume 1 a cada uno de los 15 elementos del arreglo de enteros bonos.<br />

c) Lea del teclado 12 valores para el arreglo float temperaturaMensual.<br />

d) Imprima los 5 valores del arreglo de enteros mejoresCalificaciones en formato de columnas<br />

9. Encuentre el error o los errores en las siguientes instrucciones:<br />

a) Suponga que: char cadena[5];<br />

cin >> cadena; //El usuario teclea bello<br />

b) Suponga que: int a[3];<br />

cout

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!