Está en la página 1de 9

Practica 3.

Ejercicio propuesto 1.
1. Diagrama de Flujo:

I ¿0<n<1001? Genera n veces, num al azar(1 a 5000)

NO

Escribe: “Número de elementos a generar:”


Lee: n
¿num%2=0?

Escribe: num “ es multiplo de 2”
¿num%4=0?
NO

NO SÍ
¿num%8=0?
Escribe: num “ es multiplo de 4”

SÍ NO
Escribe: num “ es multiplo de 8”
¿num%16=0?

NO
Escribe: num “ es multiplo de 16” ¿num%32=0?


NO
¿num%64=0? Escribe: num “ es multiplo de 32”

NO

Escribe: num “ es multiplo de 64” ¿num%128=0?

SÍ NO

Escribe: num “ es multiplo de 128”

Calcula: porcentaje de los n num que son múltiplos de 2, 4, 8, 16, 32, 64 y 128

Escribe: “Múltiplos de {2, 4, 8,


16, 32, 64 y 128}: ”'porcentaje' F

Luciano Rubén Lilloy Fedele


2. Código fuente escrito en C++:

3. Pruebas del programa:


a. Banco de pruebas:

Numero de Múltiplos Múltiplos Múltiplos Múltiplos Múltiplos Múltiplos Múltiplos


elementos a de 2 de 4 de 8 de 16 de 32 de 64 de 128
generar
4 25,000% 25,000% 25,000% 25,000% 25,000% 25,000% 0,000%
6 66,670% 16,670% 0,000% 0,000% 0,000% 0,000% 0,000%
55 50,180% 30,910% 14,550% 12,730% 5,455% 0,000% 0,000%
122 62,300% 33,610% 13,930% 8,197% 0,820% 0,892% 0,892%
200 48,500% 20,000% 10,000% 7,000% 3,000% 2,000% 0,500%
1000 49,200% 23,900% 12,600% 5,900% 3,600% 1,500% 0,800%

Luciano Rubén Lilloy Fedele


b. Muestras:

4. Cuestiones:
-Indique en la memoria de prácticas los errores que ha detectado y corregido, rellenando una
tabla similar a la indicada en el ejercicio de laboratorio

Linea Error Traducción Como lo he arreglado


13 Invalid convesion from Conversion invalida Agregando '&' al
'time_t' to 'time_t*' desde 'time_t' a 'time_t*' parentesis
17 'cout' was not declared in 'cout' no ha sido Agregando la linea:
this scope declarado “using namespace std;”
22 Expected ';' before ')' Esperado ';' antes de ')' Sustituyendo las ',' del
token ciclo for por ';'
24 'num' was no declared in 'num' no ha sido Declarando 'num' como
this scope declarado variable de tipo int
27 Expected ';' before “if” Esperado ';' antes de “if” Agregando ';' en la linea
anterior
40 Non-lvalue in No-valor-en la Agregando el segundo '='
assignment asignación que falta en el “if”
43 Invalid operands of types operandos no válido de Agregando el segundo '<'
'int' and 'const char [19]' 'int' tipos y 'const char que falta antes de 'num'
to binary 'operator <<' [19]' a binario 'operador
<<'
45 Non-lvalue in No-valor-en la Agregando el segundo '='
assignment asignación que falta en el “if”
48 'coot' was not declared in 'coot' no ha sido Sustituyendo 'coot' por

Luciano Rubén Lilloy Fedele


this scope declarado 'cout'
63 'precition' was not 'precition' no ha sido Sustituyendo por ' <<
declared in this scope declarado setprecision(3);' y
agregando '#include
<iomanip>' al principio
del programa
71 Expected primary- Esperado expresión Borrar ','
expression before ',' primaria antes de ','
token
Sin linea [Linker error] Error de unión Escribiendo “main” en
undefined reference to lugar de “Main”
`WinMain@16'
Sin linea Compila pero no se pausa al ejecutarlo Escribiendo “pause” en
lugar de “puase”
Sin linea El 2 siempre sale como múltiplo Agregando '{' y '}' a su
función if
Ejercicio Propuesto 2

1. El fichero acierta.cpp propone un código fuente para un programa en el que


ordenador debe adivinar el número que nosotros hayamos pensado; en cada
intento se indica al ordenador si el número que debe adivinar es igual, menor o
mayor que el que propone, hasta que acierte el número correcto.
Desgraciadamente, este código fuente presenta algunos errores. Cargue dicho
fichero en el entorno y corrija los errores del código. Indique en la memoria los
errores que ha corregido, muestre el programa correcto y las pruebas de su
ejecución.

2. Diagrama de Flujo:
SI NO
I ¿Pulsó 1 o 2? ¿Pulsó 1?
F
NO I
SI N
Mostrar menú: Escribe: “limite ”{inferior, superior}“:”
1. Jugar 2. Salir Lee: {inf, sup} D
E
SI
Mostrar menú: L
1. Sí 2. No, es mayor
3. No, es menor 4. Salir P
numero=(inf+sup)/2 Pulso 4? R
Escribe: “Es: ” (numero) “?”
O
SI NO G
¿Pulsó 2? ¿Pulsó 1o4? R
inf=numero+1 NO A
SI M
NO A
Escribe: “ENHORABUENA”

sup=numero-1

Luciano Rubén Lilloy Fedele


3. Código fuente escrito en C++:

Luciano Rubén Lilloy Fedele


4. Pruebas del programa:
a. Banco de pruebas:

Número pensado Límite inferior Límite superior Intentos antes de acertar


15 1 99 5
1 0 5 3
0 -10 12 4
-150 -156 -100 6
12 15 12 “Creo que te has hecho
un lío”
5 10 12 “Creo que te has hecho
un lío”

b. Muestras:

5. Cuestiones:
-Cargue dicho fichero en el entorno y corrija los errores del código.Indique en la memoria los errores que
ha corregido, muestre el programa correcto y laspruebas de su ejecución.

Linea Error Traducción Como lo he arreglado


10 `viod' was not declared 'viod' no ha sido Sustituyendo por 'void'
in this scope declarado

Luciano Rubén Lilloy Fedele


18 Expected 'while' before Esperado 'while' antes de Agregando'{' en el while
'cout' 'cout'
43 a 48 'cotu' undeclared 'cotu' no ha sido Sustituyendo por 'cout'
declarado
50 Expected ';' before '&&' Esperado ';' antes de '&&' Agregando '(' en el while
token
52 Expected '(' before Esperado '(' antes de duda
“opcion2” “opcion2”
60 Expected ';' before “else” Esperado ';' antes de Agregando ';' en la linea
“else” anterior
63 Expected primary- Esperado expresión Sustituyendo '(' por ')'
expression before ',' primaria antes de ','
token
65 Expected '(' before Esperado '(' antes de Agregando parentesis a
“opcion2” “opcion2” la condicion del while
48 'coot' was not declared in 'coot' no ha sido Sustituyendo 'coot' por
this scope declarado 'cout'
63 'precition' was not 'precition' no ha sido Sustituyendo por ' <<
declared in this scope declarado setprecision(3);' y
agregando '#include
<iomanip>' al principio
del programa
67 'retrun' undeclared 'retrun' no ha sido Sustituir por 'return'
declarado
Sin linea
Sin linea Es por casualidad %d? Sustituyendo '%d' por
" << numero << " en los
cout
Sin linea En el menú inicial no Agregando la linea else cout << "fin"<< endl; como
deja salir alternativa al if y agregando el segundo igual a la
condición del if

Ejercicio Propuesto 3

1. Reescriba el programa acierta.cpp usando al menos las siguientes funciones de dichabiblioteca:


clrscr(), gotoxy(), textcolor(), textbackground() y getch() para hacer el programa más vistoso y fácil
de usar.

Luciano Rubén Lilloy Fedele


2. Muestras:

Luciano Rubén Lilloy Fedele


3. Código fuente escrito en C++:

Luciano Rubén Lilloy Fedele