Você está na página 1de 22

Problemas propuestos para reforzar estructuras de repeticin

1. Calcular la suma de todos los nmeros positivos enteros inferiores o igual a N (N>0) que son
mltiplos de 3 o de 5.
Ingrese un nmero: 10
Los nmeros a sumar son:
3
5
6
9
10
la suma es: 33
Ingrese un nmero: 7
Los nmeros a sumar son:
3
5
6
la suma es: 14
2. Imprimir los primeros N (N<100) nmeros romanos
Ingrese un nmero: 6
Los nmeros son
I
II
III
IV
V
3. Calcular el factorial de N
por ejemplo el factorial de 5 se calcula como:
5! = 5*4*3*2*1
Ingrese un nmero: 5
5! = 120
Ingrese un nmero: 8
8! = 40320

4. Calcular xn usando multiplicaciones. Suponga n entera.


./a.out
8
3
8 ^ 3 = 512
./a.out
8
4
8 ^ 4 = 4096
./a.out
9
3
9 ^ 3 = 729
./a.out
2
8
2 ^ 8 = 256
5. Calcular el cociente y residuo de la divisin de dos enteros usando restas.
./a.out
12
5
cociente 2
Residuo 2
./a.out
3501
4
cociente 875
Residuo 1

6. Calcular los factores primos de N


./a.out
120
22235
./a.out
150
2355
./a.out
10000
22225555
./a.out
19420
2 2 5 971
7. Multiplicacin usando sumas
./a.out
8
9
El producto es 72
./a.out
12
25
El producto es 300
./a.out
36
52
El producto es 1872

8. Secuencia de Collatz
La secuencia se calcula de la siguiente manera, iniciando en n,
si n es impar, el siguiente valor es 3n
si n es par, el siguiente valor es n/2
detenerse cuando n sea 1
por ejemplo n=5
por ser impar el siguiente valor es 3*5 + 1 = 16
16 es par por lo tanto el siguiente valor es 8,
8 es par entonces el siguiente valor es 4
4 es par entonces el siguiente valor es 2
2 es par entonces el siguiente valor es 1
1 --- ALTO
./a.out
9
9 28 14 7 22 11 34 17 52 26 13 40 20 10 5 16 8 4 2 1
./a.out
17
17 52 26 13 40 20 10 5 16 8 4 2 1
./a.out
5
5 16 8 4 2 1
./a.out
22
22 11 34 17 52 26 13 40 20 10 5 16 8 4 2 1
./a.out
19
19 58 29 88 44 22 11 34 17 52 26 13 40 20 10 5 16 8 4 2 1
./a.out
29
29 88 44 22 11 34 17 52 26 13 40 20 10 5 16 8 4 2 1
./a.out
101
101 304 152 76 38 19 58 29 88 44 22 11 34 17 52 26 13 40 20 10 5 16 8 4 2 1

9. Dibujar un tringulo de *'s usando ciclos anidados de n a 1:


./a.out
9
*********
********
*******
******
*****
****
***
**
*
./a.out
5
*****
****
***
**
*
./a.out
15
***************
**************
*************
************
***********
**********
*********
********
*******
******
*****
****
***
**
*

10. Dibujar un tringulo de *'s usando ciclos anidados de 1 a n:


./a.out
15
*
**
***
****
*****
******
*******
********
*********
**********
***********
************
*************
**************
***************
./a.out
8
*
**
***
****
*****
******
*******
********
./a.out
3
*
**
***

11. Dibujar un rombo usando ciclos anidados


./a.out
15
*
***
*****
*******
*********
***********
*************
***************
*************
***********
*********
*******
*****
***
*
./a.out
9
*
***
*****
*******
*********
*******
*****
***
*
./a.out

27
*
***
*****
*******
*********
***********
*************
***************
*****************
*******************
*********************
***********************
*************************
***************************
*************************
***********************
*********************
*******************
*****************
***************
*************
***********
*********
*******
*****
***
*

12. Espacio + Tringulo


./a.out
15
***************
**************
*************
************
***********
**********
*********
********
*******
******
*****
****
***
**
*
./a.out
9
*********
********
*******
******
*****
****
***
**
*
./a.out
6
******
*****
****
***
**
*

13. Espacio + Triangulo (v 2)


$ ./a.out
12
*
**
***
****
*****
******
*******
********
*********
**********
***********
************
$ ./a.out
8
*
**
***
****
*****
******
*******
********
$ ./a.out
4
*
**
***
****

14. Tablero de ajedrez de m x n


./a.out
10
-*-*-*-*-*
*-*-*-*-*-*-*-*-*-*
*-*-*-*-*-*-*-*-*-*
*-*-*-*-*-*-*-*-*-*
*-*-*-*-*-*-*-*-*-*
*-*-*-*-*./a.out
6
-*-*-*
*-*-*-*-*-*
*-*-*-*-*-*
*-*-*15. Rombo vaco
./a.out
11
*
**
* *
* *
*
*
*
*
*
*
* *
* *
**
*
./a.out
5
*
**
* *
**
*

16. Lnea de rombos


./a.out
Dame el tamao del rombo (impar>0) 1
Dame de rombos en la fila 9
*********
./a.out
Dame el tamao del rombo (impar>0) 9
Dame de rombos en la fila 5
*
*
*
*
*
*** *** ***
*** ***
***** ***** ***** ***** *****
******* ******* ******* ******* *******
*********************************************
******* ******* ******* ******* *******
***** ***** ***** ***** *****
*** *** ***
*** ***
*
*
*
*
*
./a.out
Dame el tamao del rombo (impar>0) 15
Dame de rombos en la fila 3
*
*
*
***
***
***
*****
*****
*****
*******
*******
*******
********* ********* *********
*********** *********** ***********
************* ************* *************
*********************************************
************* ************* *************
*********** *********** ***********
********* ********* *********
*******
*******
*******
*****
*****
*****
***
***
***
*
*
*

17. Matriz de Rombos


./a.out
Dame el tamao del rombo (impar>0) 9
Dame el numero de filas 3
Dame el columnas 4
*
*
*
*
*** *** ***
***
***** ***** ***** *****
******* ******* ******* *******
************************************
******* ******* ******* *******
***** ***** ***** *****
*** *** ***
***
*
*
*
*
*
*
*
*
*** *** ***
***
***** ***** ***** *****
******* ******* ******* *******
************************************
******* ******* ******* *******
***** ***** ***** *****
*** *** ***
***
*
*
*
*
*
*
*
*
*** ***
*** ***
***** ***** ***** *****
******* ******* ******* *******
************************************
******* ******* ******* *******
***** ***** ***** *****
*** *** ***
***
*
*
*
*
./a.out
Dame el tamao del rombo (impar>0) 5
Dame el numero de filas 9
Dame el columnas 2
* *
*** ***
**********
*** ***
* *
* *
*** ***
**********
*** ***
* *
* *
*** ***
**********

*** ***
* *
* *
*** ***
**********
*** ***
* *
* *
*** ***
**********
*** ***
* *
* *
*** ***
**********
*** ***
* *
* *
*** ***
**********
*** ***
* *
* *
*** ***
**********
*** ***
* *
* *
*** ***
**********
*** ***
* *

18. Cuadrado con rombo vaco


./a.out
15
***************
******* *******
****** ******
***** *****
****
****
***
***
**
**
*
*
**
**
***
***
****
****
***** *****
****** ******
******* *******
***************
./a.out
9
*********
**** ****
*** ***
** **
*
*
** **
*** ***
**** ****
*********
./a.out
19
*******************
********* *********
******** ********
******* *******
******
******
*****
*****
****
****
***
***
**
**
*
*
**
**
***
***
****
****
*****
*****
******
******
******* *******
******** ********

********* *********
*******************
19. Tringulo vaco
./a.out
16
****************
*
*
*
*
*
*
*
*
*
*
*
*
*
*
* *
* *
* *
* *
* *
**
**
*
./a.out
10
**********
*
*
* *
* *
* *
* *
* *
**
**
*
./a.out
3
***
**
*

20. Serie de nmeros en trangulo


./a.out
Dame un nmero 5
1
2 3
4 5 6
7 8 9 10
11 12 13 14 15
./a.out
Dame un nmero 9
1
2 3
4 5 6
7 8 9 10
11 12 13 14 15
16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31 32 33 34 35 36
37 38 39 40 41 42 43 44 45
./a.out
Dame un nmero 11
1
2 3
4 5 6
7 8 9 10
11 12 13 14 15
16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31 32 33 34 35 36
37 38 39 40 41 42 43 44 45
46 47 48 49 50 51 52 53 54 55
56 57 58 59 60 61 62 63 64 65 66

21. Serie de nmeros en tringulo (orden inverso)


$ ./a.out
Dame un nmero 9
1
3 2
6 5 4
10 9 8 7
15 14 13 12 11
21 20 19 18 17 16
28 27 26 25 24 23 22
36 35 34 33 32 31 30 29
45 44 43 42 41 40 39 38 37
$ ./a.out
Dame un nmero 6
1
3 2
6 5 4
10 9 8 7
15 14 13 12 11
21 20 19 18 17 16
$ ./a.out
Dame un nmero 12
1
3 2
6 5 4
10 9 8 7
15 14 13 12 11
21 20 19 18 17 16
28 27 26 25 24 23 22
36 35 34 33 32 31 30 29
45 44 43 42 41 40 39 38 37
55 54 53 52 51 50 49 48 47 46
66 65 64 63 62 61 60 59 58 57 56
78 77 76 75 74 73 72 71 70 69 68 67

22. Invertir un nmero usando mdulos y divisiones


./a.out
123456789
987654321
./a.out
25487
78452
./a.out
15236478952
7463847412
23 Suma de dgitos de un nmero hasta obtener un dgito
./a.out
Dame un nmero 123456789
Valores temporales: 45 9
sol: 9
./a.out
Dame un nmero 123456999
Valores temporales: 48 12 3
sol: 3
./a.out
Dame un nmero 9999999999
Valores temporales: 46 10 1
sol: 1

24. Cambio de un cajero automtico


./a.out
dame el monto del retiro (multiplo de 50)
1 billetes de 1000
2 billetes de 500
2 billetes de 200
2 billetes de 100
3 billetes de 50
g++-4.2 plantilla.c
./a.out
dame el monto del retiro (multiplo de 50)
1 billetes de 1000
2 billetes de 500
2 billetes de 200
2 billetes de 100
3 billetes de 50
./a.out
dame el monto del retiro (multiplo de 50)
2 billetes de 1000
2 billetes de 500
1 billetes de 200
2 billetes de 100
2 billetes de 50
./a.out
dame el monto del retiro (multiplo de 50)
2 billetes de 1000
1 billetes de 500
3 billetes de 200
2 billetes de 100
2 billetes de 50
./a.out
dame el monto del retiro (multiplo de 50)
2 billetes de 1000
1 billetes de 500
3 billetes de 200
1 billetes de 100
3 billetes de 50

2750

2750

3500

3400

3350

25. Convertir un texto de minsculas a maysculas


$ more entrada.txt
El proyecto GNU fue iniciado por Richard Stallman con el objetivo de crear un sistema operativo
completamente libre: el sistema GNU . El 27 de septiembre de
1983 se anunci pblicamente el proyecto por primera vez en el grupo de noticias net.unix-wizards. Al
anuncio original, siguieron otros ensayos escritos por
Richard Stallman como el "Manifiesto GNU", que establecieron sus motivaciones para realizar el
proyecto GNU, entre las que destaca "volver al espritu de coo
peracin que prevaleci en los tiempos iniciales de la comunidad de usuarios de computadoras".
Historia
UNIX es un Sistema Operativo no libre muy popular, porque est basado en una arquitectura que ha
demostrado ser tcnicamente estable. El sistema GNU fue dise
ado para ser totalmente compatible con UNIX. El hecho de ser compatible con la arquitectura de
UNIX implica que GNU est compuesto de pequeas piezas indivi
duales de software, muchas de las cuales ya estaban disponibles, como el sistema de edicin de textos
TeX y el sistema grfico X Window, que pudieron ser ada
ptados y reutilizados; otros en cambio tuvieron que ser reescritos.
Para asegurar que el software GNU permaneciera libre para que todos los usuarios pudieran
"ejecutarlo, copiarlo, modificarlo y distribuirlo", el proyecto deb
a ser liberado bajo una licencia diseada para garantizar esos derechos al tiempo que evitase
restricciones posteriores de los mismos. La idea se conoce en
Ingls como copyleft -'copia permitida'- (en clara oposicin a copyright -'derecho de copia'-), y est
contenida en la Licencia General Pblica de GNU (GPL).
$ ./a.out <entrada.txt
EL PROYECTO GNU FUE INICIADO POR RICHARD STALLMAN CON EL OBJETIVO DE
CREAR UN SISTEMA OPERATIVO COMPLETAMENTE LIBRE: EL SISTEMA GNU . EL 27 DE
SEPTIEMBRE DE 1983 SE ANUNCI PBLICAMENTE EL PROYECTO POR PRIMERA VEZ EN
EL GRUPO DE NOTICIAS NET.UNIX-WIZARDS. AL ANUNCIO ORIGINAL, SIGUIERON
OTROS ENSAYOS ESCRITOS POR RICHARD STALLMAN COMO EL "MANIFIESTO GNU",
QUE ESTABLECIERON SUS MOTIVACIONES PARA REALIZAR EL PROYECTO GNU,
ENTRE LAS QUE DESTACA "VOLVER AL ESPRITU DE COOPERACIN QUE PREVALECI
EN LOS TIEMPOS INICIALES DE LA COMUNIDAD DE USUARIOS DE COMPUTADORAS".
HISTORIA
UNIX ES UN SISTEMA OPERATIVO NO LIBRE MUY POPULAR, PORQUE EST BASADO EN
UNA ARQUITECTURA QUE HA DEMOSTRADO SER TCNICAMENTE ESTABLE. EL
SISTEMA GNU FUE DISEADO PARA SER TOTALMENTE COMPATIBLE CON UNIX. EL
HECHO DE SER COMPATIBLE CON LA ARQUITECTURA DE UNIX IMPLICA QUE GNU
EST COMPUESTO DE PEQUEAS PIEZAS INDIVIDUALES DE SOFTWARE, MUCHAS DE
LAS CUALES YA ESTABAN DISPONIBLES, COMO EL SISTEMA DE EDICIN DE TEXTOS
TEX Y EL SISTEMA GRFICO X WINDOW, QUE PUDIERON SER ADAPTADOS Y
REUTILIZADOS; OTROS EN CAMBIO TUVIERON QUE SER REESCRITOS.

PARA ASEGURAR QUE EL SOFTWARE GNU PERMANECIERA LIBRE PARA QUE TODOS
LOS USUARIOS PUDIERAN "EJECUTARLO, COPIARLO, MODIFICARLO Y DISTRIBUIRLO",
EL PROYECTO DEBA SER LIBERADO BAJO UNA LICENCIA DISEADA PARA
GARANTIZAR ESOS DERECHOS AL TIEMPO QUE EVITASE RESTRICCIONES
POSTERIORES DE LOS MISMOS. LA IDEA SE CONOCE EN INGLS COMO COPYLEFT 'COPIA PERMITIDA'- (EN CLARA OPOSICIN A COPYRIGHT -'DERECHO DE COPIA'-), Y
EST CONTENIDA EN LA LICENCIA GENERAL PBLICA DE GNU (GPL).
26. Mostrar las vocales de un texto
dado un archivo de entrada, en el ejemplo es "entrada.txt", para cada lnea deben imprimir las vocales
$ more entrada.txt
El proyecto GNU fue iniciado por Richard Stallman con el objetivo de crear un sistema operativo
completamente libre: el sistema GNU . El 27 de septiembre de 1983 se anunci pblicamente el
proyecto por primera vez en el grupo de noticias net.unix-wizards. Al anuncio original, siguieron otros
ensayos escritos por Richard Stallman como el "Manifiesto GNU", que establecieron sus motivaciones
para realizar el proyecto GNU, entre las que destaca "volver al espritu de cooperacin que prevaleci
en los tiempos iniciales de la comunidad de usuarios de computadoras".
Historia
UNIX es un Sistema Operativo no libre muy popular, porque est basado en una arquitectura que ha
demostrado ser tcnicamente estable. El sistema GNU fue diseado para ser totalmente compatible con
UNIX. El hecho de ser compatible con la arquitectura de UNIX implica que GNU est compuesto de
pequeas piezas individuales de software, muchas de las cuales ya estaban disponibles, como el sistema
de edicin de textos TeX y el sistema grfico X Window, que pudieron ser adaptados y reutilizados;
otros en cambio tuvieron que ser reescritos.
Para asegurar que el software GNU permaneciera libre para que todos los usuarios pudieran
"ejecutarlo, copiarlo, modificarlo y distribuirlo", el proyecto deba ser liberado bajo una licencia
diseada para garantizar esos derechos al tiempo que evitase restricciones posteriores de los mismos.
La idea se conoce en Ingls como copyleft -'copia permitida'- (en clara oposicin a copyright -'derecho
de copia'-), y est contenida en la Licencia General Pblica de GNU (GPL).
$ ./a.out <entrada.txt
EoeoUueiiiaooiaaaoeoeioeeauieaoeaiooeaeeieeieaUEeeieeeeauiiaeeeoeooieaeeeuoeoiiaeuiiaAauiooiiai
uieoooeaoeiooiaaaooeaiieoUueeaeieouoiaioeaaeaiaeoeoUeeaueeaaoeaeiueooeaiueeaeieoieoiiiaeeaouiae
uuaioeouaoa
ioia
UIeuieaOeaiooieuouaoueeaaoeuaauieuaueaeoaoeiaeeeaeEieaUueieaoaaeoaeeoaieoUIEeoeeoaieoaauieu
aeUIiiaueUeoueoeeueaieaiiiuaeeoaeuaeauaeaeaaioieooeieaeeiieeoeeieaioioueuieoeaaaoeuiiaoooeaiouie
oueeeeio
aaaeuaueeoaeUeaeieaieaaueooouuaiouieaeeuaooiaooiiaoiiuioeoeoeaeieaoaouaieiaieaaaaaaiaeoeeoaieou
eeiaeeiioeoeioeeoioaieaeooeeIoooeoiaeiiaeaaooiiaoieeoeoiaeoeiaeaieiaeeaiaeU