Está en la página 1de 21

w ww . f i s i c a e i n g e n i e r i a . e s ww w. c a l c u l a d o r a s o n l i n e s .

e s
2012
Problemas resueltos de
programacin en C++
www.fisicaeingenieria.es
Luis Muoz Mato
www.fisicaeingenieria.es
1.- Escribir un programa que haga el producto de dos matrices 3x3. El programa debe
incluir un procedimiento que lea las matrices, una funcin que haga el producto y
otro procedimiento que escriba el resultado:

SOLUCIN

#include <cstdlib>
#include <iostream>

using namespace std

!oid leermatri" #float m$%&$%&'
(
int i)*
for #i+,i<+%i--'
(
for #*+,*<+%*--'
(
cout<<.introducir el elemento .<<i<<.).<<*<<endl
cin>>m$i&$*&
/
/
/

!oid producto0matrices #float a $%&$%&)float b$%&$%&)float p$%&$%&'
(
int i)*)1
for #i+,i<+%i--'
(
p$i&$*&+2
for #*+,*<+%*--'
(
p$i&$*&+p$i&$*&-a$i&$1&3b$1&$*&
/
/
/

!oid escribir0matri" #float m$%&$%&'
(
int i)*
for #i+,i<+%i--'
(
for #*+,*<+%*--'
(
cout<<m$i&$*&<<. .
/
cout<<endl
/
/




int main#'
(
float a$%&$%&
leermatri" #a'
leermatri" #b'
producto0matrices #a)b)p'
escribir0matri" #p'

s4stem#.56US7.'
return 78I90SUCC7SS
/
2.- adas las coordenadas tridimensionales de tres puntos, debe construirse un
programa que haga el per!metro del tri"ngulo que forman. El programa debe incluir
una funcin para leer las coordenadas de los puntos y una funcin que haga el
per!metro:

SOLUCIN

#include <cstdlib>
#include <iostream>
#include <cmat:>

using namespace std

!oid leer0cordenadas #float p$%&'
(
int i
for #i+,i<+%i--'
(
cout<<.coordenada.<<i<<.;.
cin>>p$i&
/
/

float distancia #float p,$%&)float p<$%&'
(
float dist
dist+s=rt##p,$,&>p<$,&'3#p,$,&>p<$,&'-#p,$<&>p<$<&'3#p,$<&>p<$<&'-#p,$%&>
p<$%&'3#p,$%&>p<$%&''
return #dist'
/

int main#int argc) c:ar 3arg!$&'
(
float 6$%&)?$%&)C$%&
float perimetro
leer0cordenadas #6'
leer0cordenadas #?'
leer0cordenadas #C'
perimetro+distancia #6)?'-distancia #?)C'-distancia #C)6'
cout<<.7l perimetro es;.<<perimetro<<endl

s4stem#.56US7.'
return 78I90SUCC7SS
/
3.- Escribir un programa que haga una serie de #aylor de la funcin seno, sabiendo
que la funcin seno desarrollada en serie de #aylor tiene la forma
( ) ( )
( )
2 1
0
sin 1
2 1 !
n n
n
i
x
x
n
+
=
=
+


SOLUCIN

#include <cstdlib>
#include <iostream>
#include <cmat:>

using namespace std

int factorial #int n'
(
int fact)i
fact+,
for #i+,i<+ni--'
(
fact+fact3i
/
return #fact'
/

int main#'
(
float @
float suma
int i
cout<<.@;.
cin>>@
suma+2.2
for #i+2i<+,22i--'
(
suma+suma-pow#float #>,.2')float#i''3pow#@)float##<3i'-,''Afactorial #<3i-,'
/
cout <<.el !alor de la serie es;.<<suma
s4stem#.56US7.'
return 78I90SUCC7SS
/
$.- %asar un n&mero a hexadecimal

SoluciBn

#include <cstdlib>
#include <iostream>

using namespace std

int main#int argc) c:ar 3arg!$&'
(
int numero
int cifras $%<&
int i)*
cout<<.Numero;.
cin>>numero
i+,
w:ile #numero>+,C'
(
cifras $i&+numeroD,C
numero+numeroA,C
i--
/
cifras $i&+numero

for #*+i*>+,*>>'
(
cout<<cifras$*&<<endl
/
s4stem#.56US7.'
return 78I90SUCC7SS
/
'.- Escribir un programa que dados tres n&meros que representan 3 longitudes nos
diga si existe y un tri"ngulo que tenga esas dimensiones ( %ara que haya un tri"ngulo
que tenga esas dimensiones, la suma de cualesquiera dos lados tiene que ser mayor
que el tercer lado)

SOLUCIN

#include <cstdlib>
#include <iostream>

using namespace std

int main#'
(
float a)b)c
bool d
cout<<.lado a;.
cin>>a
cout<<.lado b;.
cin>>b
cout<<.lado c;.
cin>>c

if #a-b>c EE a-c>b EE b-c>a'
(
cout<<.el triangulo e@iste.<<endl
d+true
/

else
(
cout<<.7l triangulo no e@iste.<<endl
d+false
/

if #d++true'
(

if #a++b EE b++c'
(
cout<<.el triangulo es e=uilatero.<<endl
/

else if #aF+b EE bF+c EEaF+c'
(
cout<<.7l triangulo es escaleno.<<endl
/
else
(
cout<<.el triangulo es isosceles.<<endl
/

/

s4stem#.56US7.'
return 78I90SUCC7SS
/
*.- Escribir un programa que me de el m"ximo com&n di+isor de dos n&meros

SOLUCIN

#include <cstdlib>
#include <iostream>

using namespace std

int main#'
(
int a)b)i
cout<<.numero ma4or;.<<endl
cin>>a
cout<<.numero menor;.<<endl
cin>>b
for #i+bi>+,i>>'
(
if #aDi++2 EE bDi++2'
(
cout<<.7l ma@imo comun di!isor es;.<<i<<endl
brea1
/
/
s4stem#.56US7.'
return 78I90SUCC7SS
/
,.- Escribir un programa que me de el m"ximo y el m!nimo de un +ector introducido
por el usuario por teclado. El programa debe incluir un procedimiento para leer el
+ector y otro para el m"ximo y m!nimo de un +ector.

SOLUCIN

#include <cstdlib>
#include <iostream>

using namespace std

!oid leer0!ector #int n)float !$&'
(
int i
for #i+,i<+ni--'
(
cout<<.Componente .<<i<<endl
cin>>!$i&
/
/

float ma@imo #int n)float !$&'
(
int i
float ma@
ma@+!$,&
for #i+,i<+ni--'
(
if #!$i&>ma@'
(
ma@+!$i&
/
/
return #ma@'
/

float minimo #int n)float !$&'
(
int i
float min
min+!$,&
for #i+,i<+ni--'
(
if #!$i&<min'
(
min+!$i&
/
/
return #min'
/

int main#'
(
int n
cout<<.numero de componentes;.<<endl
cin>>n
float !$n&
leer0!ector #n)!'
cout<<.el ma@imo es;.<<ma@imo #n)!'<<. el minimo es;.<<minimo #n)!'<<endl

s4stem#.56US7.'
return 78I90SUCC7SS
/
-.- .acer un programa que cambie de unidades usando un s/itch case en concreto,
el usuario le proporcionar" una longitud y la unidad en la que est" medida
(cent!metros, 0ilmetros, o pulgadas) y el programa pasar" la cantidad introducida a
metros
SOLUCIN

#include <cstdlib>
#include <iostream>

using namespace std

int main#int argc) c:ar 3arg!$&'
(
float l)resultado
int opcion
cout<<.Longitud;.<<endl
cin>>l
cout<<.Unidad;,.>cm <.> pulgadas %.> 1m.<<endl)
cin>>opcion

switc: #opcion'
(
case ,;
resultado+lA,22
cout<<.La longitud en metros es;.<<resultado<<endl
brea1
case <;
resultado+lA<GH
cout<<.La longitud en metros es;.<<resultado<<endl
brea1
case %;
resultado+l3,222
cout<<.La longitud en metros es;.<<resultado<<endl
brea1
default;
cout<<.7IIOI.<<endl
brea1
/






s4stem#.56US7.'
return 78I90SUCC7SS
/
1.- .acer una funcin que reciba un n&mero entero y que de+uel+a el mismo n&mero
con+ertido en entero largo

SOLUCIN

#include <cstdlib>
#include <iostream>

using namespace std

long int transformar #int n'
(
return #n'
/

int main#'
(
s4stem#.56US7.'
return 78I90SUCC7SS
/
12.- Escribir una funcin que calcule el producto de la primera y de la &ltima cifra de
un n&mero entero:

SOLUCIN

#include <cstdlib>
#include <iostream>

using namespace std

int main#int argc) c:ar 3arg!$&'
(
int numero)a)b)producto
cout<<.Numero;.<<endl
cin>>numero
a+numeroD,2
w:ile #numero>,2'
(
numero+numeroA,2
/
b+numero
producto+a3b
cout<<.el resultado de multiplicar la primera por la ultima es;.<<producto<<endl
s4stem#.56US7.'
return 78I90SUCC7SS
/
11.- Escribir un programa que dado un n&mero decimal introducido por el usuario, lo
con+ierta en un n&mero binario y lo almacene en un +ector de enteros de 32 bits

SOLUCIN

#include <cstdlib>
#include <iostream>
#include <cmat:>

using namespace std

int main#int argc) c:ar 3arg!$&'
(
bool a
int i)suma)*
int !$%<&)cifras $,22&
for #i+%,i>+2i>>'
(
cout<<.componente .<<i<<endl
cin>>!$i&
/

suma+2
for #i+2i<+%,i--'
(
suma+suma-!$i&3pow #<.2)double #i''
/
cout<<.7l numero en decimal es;.<<suma<<endl

*+,
w:ile #suma>,2'
(
cifras $*&+sumaD,2
*--
suma+sumaA,2
/
cifras $*&+suma

for #i+,i<+*i--'
(
cout<<cifras $i&<<endl
/

for #i+,i<+*i--'
(
if #cifras $i&++cifras $*-,>i&'
(
a+true
continue
/
else
(
a+false
cout<<.Numero no capicua.<<endl
brea1
/
/
if #a++true'
(
cout<<.Numero capicua.<<endl
/


s4stem#.56US7.'
return 78I90SUCC7SS
/
12.- Escribir un programa que dado un n&mero binario (almacenado en un +ector de
32 bits) lo con+ierta en un n&mero entero y me diga si el n&mero obtenido es
capic&a.

#include <cstdlib>
#include <iostream>
#include <cmat:>

using namespace std

int main#int argc) c:ar 3arg!$&'
(
bool a
int i)suma)*
int !$%<&)cifras $,22&
for #i+%,i>+2i>>'
(
cout<<.componente .<<i<<endl
cin>>!$i&
/

suma+2
for #i+2i<+%,i--'
(
suma+suma-!$i&3pow #<.2)double #i''
/
cout<<.7l numero en decimal es;.<<suma<<endl

*+,
w:ile #suma>,2'
(
cifras $*&+sumaD,2
*--
suma+sumaA,2
/
cifras $*&+suma

for #i+,i<+*i--'
(
cout<<cifras $i&<<endl
/

for #i+,i<+*i--'
(
if #cifras $i&++cifras $*-,>i&'
(
a+true
continue
/
else
(
a+false
cout<<.Numero no capicua.<<endl
brea1
/
/
if #a++true'
(
cout<<.Numero capicua.<<endl
/


s4stem#.56US7.'
return 78I90SUCC7SS
/
13.- 3mplementar un programa que me pregunte la dimensin de un a matri4 y la
opcin a escoger: 1.- todos 1, 2.- todos 2 3.- todos las diagonales 1) y me imprima la
matri4 seleccionada

SOLUCIN

#include <cstdlib>
#include <iostream>

using namespace std

!oid matri"0cero #int t) int m$,2&$,2&'
(
int i)*
for #i+,i<+ti--'
(
for #*+,*<+t*--'
(
m$i&$*&+2
/
/
/


!oid matri"0uno #int t) int m$,2&$,2&'
(
int i)*
for #i+,i<+ti--'
(
for #*+,*<+t*--'
(
m$i&$*&+,
/
/
/


!oid matri"0diagonal #int t) int m$,2&$,2&'
(
int i)*
for #i+,i<+ti--'
(
for #*+,*<+t*--'
(
if #i++*'
(
m$i&$*&+,
/
else if ##i-*'++#t-,''
(
m$i&$*&+,
/
else
(
m$i&$*&+2
/
/
/
/

!oid imprimir #int t)int m$,2&$,2&'
(
int i)*
for #i+,i<+ti--'
(
for #*+,*<+t*--'
(
cout<<m$i&$*&<<. .
/
cout<<endl
/
/



int main#'
(
int t)opcion
cout<<.9amano;.<<endl
cin>>t
int m$,2&$,2&
cout<<.tipo de matri"; ,.> 9odos , <.> 9odos 2 %.> Jiagonal.<<endl
cin>>opcion
switc: #opcion'
(
case ,;
matri"0uno#t)m'
imprimir #t)m'
brea1
case <;
matri"0cero#t)m'
imprimir #t)m'
brea1
case %;
matri"0diagonal #t)m'
imprimir #t)m'
brea1
default;
brea1
/






s4stem#.56US7.'
return 78I90SUCC7SS
/

También podría gustarte