Está en la página 1de 8

Algoritmos y su codificacin en C++

Volumen 1
(sda edicin)

Csar Liza Avila

Grupo
Creadores
Motivando tu naturaleza Creativa.

La estructura
secuencial
Problema 1.1
Muestre un algoritmo lea 2 valores a, b y los intercambie. Por ejemplo si a=2 y b=5, el algoritmo
debe hacer que a=5 y b=2.
Solucin:
Definicin de variables:
a,b: variables cuyos valores se desean intercambiar.
t : variable de trabajo, sirve como almacenamiento
temporal para evitar que se pierda un valor mientras
se realiza la asignacin.
Diagrama N/S
Leer a,b
t=a
a=b
b=t
Imprimir a,b
El algoritmo es sencillo, el nico cuidado que hay que tener es primero guardar el valor de una de
las variables en una variable temporal tal y como se muestra en el diagrama N/S. Si hubiramos
hecho a=b y luego b=a, se perdera el valor inicial de a, en la primera asignacin. Este tipo de
intercambio se denomina en los crculos informticos swap y se utiliza con frecuencia en otros
algoritmos ms complejos tales como los de ordenamiento.
CODIFICACIN EN C++
#include<iostream.h>
void main(void)
{
int a,b,t;
cout<<Ingrese a: ; cin>>a;
cout<<Ingrese b: ; cin>>b;
t=a;
a=b;
b=t;
cout<<Los valores intercambiados son: <<endl;
cout<<a= <<a<<endl;
cout<<b=<<b;
}

Problema 1.2
A una reunin asistieron n personas, cuantos apretones de mano hubieron?.
Solucin:
Definicin de variables:
n: nmero de personas
a: nmero de apretones de mano
Se sabe que cada persona debe saludar a las (n-1) restantes, por lo que habr n*(n-1) saludos como
en cada saludo intervienen 2 personas la cantidad de apretones de mano ser:
a=

n(n1)
2

Leer n
a = n*(n+1)/2
Imprimir a
CODIFICACIN EN C++
#include <iostream.h>
void main(void)
{
int n, a;
cout<< Ingrese el numero de personas: ;cin>>n;
a=n*(n+1)/2
cout<< El nmero de apretones es: <<a;
}
Problema 1.3
Hallar la suma de los n primeros nmeros naturales.
Solucin:
Definicin de variables:
n : cantidad de nmeros naturales.
s : suma de los primeros n nmeros naturales.
Se pide lo siguiente:
s=1+2+3+ 4+5+ 6+.....+(n4)+(n3)+(n2)+(n1)+n

escribamos esta expresin 2 veces una ascendentemente y la otra descendentemente:


s=1+2+3+ 4+5+ 6+.....+(n4)+(n3)+(n2)+(n1)+n
s=n+(n1)+(n2)+(n3)+(n4 )+...+5+ 4+ 3+2+1
sumando miembro a miembro tenemos:

2 s=(n+1)+(n+1)+(n+1)+(n+1)+...+(n+1)+(n+1)+(n+1)+(n+1)

n trminos

de donde : s=

n(n+1)
2

Diagrama N/S
Leer n
s = n*(n+1)/2
Imprimir s
CODIFICACIN EN C++
#include <iostream.h>
void main(void)
{
int n,s;
cout<< Ingrese nmero de trminos;cin>>n;
s=n*(n+1)/2;
cout<< La suma de los n terminos es : <<s;
}
Problema 1.12
En un triangulo rectngulo, calcule la longitud de la hipotenusa conociendo las longitudes de sus
catetos.
Solucin:
Definicin de variables:
a,b : catetos del tringulos rectngulo.
c : hipotenusa.
2
2
Por teorema de Pitgoras : c= a +b

Diagrama N/S

Leer a, b
Calcular
c= aa+ bb
Imprimir c
CODIFICACION EN C++
#include <iostream.h>
#include <math.h>
void main(void)
{
float a,b;
double c; //tipo double porque el uso del sqrt()
cout<< Ingrese los catetos a y b : ;
cin>>a>>b;
c=sqrt(a*a+b*b);
cout<< La hipotenusa mide : <<c;
}
Problema 1.13:
El teorema del coseno es muy utilizado en geometra para calcular la longitud del tercer lado de un
triangulo, cuando se conocen los otros 2 lados y su angulo que forman. Siendo a el lado
desconocido b y c los lados conocidos, el angulo formado por b y c el teorema del
coseno se enuncia como:
Solucin:
Definicin de variables:

Diagrama N/S
Leer b,a,teta
c= a2 +b 22abcos (teta)
Imprimir c

CODIFICACIN EN C++
#include <iostream.h>
#include <math.h>
void main(void)
{
float a,b,teta;
double c;
cout<< Ingrese lados conocidos del triangulo: ;
cin>>a>>b;
c=sqrt ( a*a+b*b-2*a*b*cos(teta) );
cout<< El lado desconocido es: <<c;
}
Problema 1.14
Calcule la distancia entre 2 puntos de coordenadas conocidas.
Solucion:
Definicion de variables:
x1: abscisa del primer punto
y1: ordenada del primer punto
x2: abscisa del segundo punto
y2: ordenada del segundo punto
Leer x1,x2,y1,y2
d= (x 2x 1)2 +( y 2 y 1)2
Imprimir d

CODIFICACIN EN C++
#include <iostream.h>
#include <math.h>
void main(void)
{

float x1,x2,y1,y2;
double d;
cout<< Ingrese coordenadas (x1,y1) del primer punto: ;
cin>>x1>>y1;
cout<< Ingrese coordenadas (x2,y2) del segundo punto:;
cin>>x2>>y2;
d=sqrt((x2-x1)*(x2-x1)+(y2-y1)*(y2-y1));
cout<< La distancia entre los dos puntos es: <<d;

Problema 1.15
Convierta el complejo c = a+bi, a sus coordenadas polares.
Solucin:
Definicin de variables:
: angulo formado por recta que uno (a,b) con el origen (0,0).
a : parte real del complejo
b : parte imaginaria del complejo
: distancia del punto al origen
Un nmero complejo puede ser representado en el plano cartesiano considerando que su Parte Real
se ubica en el Eje X, mientras que su Parte Imaginaria en el Eje Y. Teniendo en cuenta esto, una
forma alternativa de escribir el complejo c= a +bi, es ponerlo en funcin del ngulo que forma el
punto (a,b) con el eje real y de la distancia del mismo punto al origen.
Del grfico tenemos:
cos = a / a = *cos
seno = b / b = *sen
Remplazando en la ecuacin original c = a + bi, nos queda c = (cos + i*sen )
En donde:
=arctan(b/a) y = a2 +b2
( y son conocidas como coordenadas polares, teniendo en cuenta que para representar un punto
solo se necesita un ngulo y la distancia del punto al origen ).
Leer a , b
= a2 +b2

=arctan(b/a)

Imprimir ,
CODIFICACIN EN C++
#include<iostream.h>
#include<math.h>
void main(void)
{
float a,b;
double w,p;
cout<< Ingrese parte real: ;cin>>a;
cout<< Ingrese parte imaginaria: ;cin>>b;
p = sqrt(a*a+b*b);
w= atan(b/a);
cout<< angulo : <<w<<endl;
cout<< distancia : <<p;
}

También podría gustarte