Vous êtes sur la page 1sur 8

Carrera: Ingeniera en Telemtica Nivel: 1 Semestre

Algoritmos y Estructura de datos


Practica No. 3
Nombres del equipo: Carlos Ignacio Villalpando Curiel, Ral
Alejandro Andrade Alvarado y Luis Guerrero
Maestra(o): Joel Antonio Trejo Snchez

1. Escribir un programa que calcule las races, incluyendo las imaginarias, de


una ecuacin de segundo grado. El programa debe considerar con
ecuaciones de primer grado.
#include <stdio.h>
#include <math.h>
int main(){
float a,b,c;
float x1,x2;
float r,rad;
printf("Dame el valor de a:\n ");
scanf("%f",&a);
printf("Dame el valor de b:\n");
scanf("%f",&b);
printf("Dame el valor de a:\n");
scanf("%f",&c);
if (a==0)
{
x1=-c/b;
printf("Es linal, El valor de la raiz es: %f",x1);
}
else
{
if (4*a*c > b*b )
{
rad=sqrt(-1*(b*b-4*a*c));
r=-b/(2*a);
printf("x1=%f+i%f",r,rad);
printf("x2=%f-i%f",r,rad);
}
else
{
x1=(-b+sqrt(b*b-4*a*c))/(2*a);
x2=(-b-sqrt(b*b-4*a*c))/(2*a);
printf("x1=%f-x2=%f",x1,x2);
}
}
return 0;
}

2. Escribir un programa que pida un ao, e indique si ste es bisiesto o no.


Un ao es Bisiesto si es mltiplo de 4 y que no sea mltiplo de 100 (excepto
el 400). Por ejemplo el 2000 es bisiesto, pero el 1900 no.
#include <iostream>
using namespace std;
int main(){
int a;
cout<<"
\n\nIngresa el ao: "<<endl;
cin>>a;
if(a % 4 == 0 && (a % 100 != 0 || a % 400 == 0)){
cout<<"El ao "<<a<<"\n\n El ao Si es bisiesto ";
}else{
cout<<"El ao "<<a<<" \n\nEl ao No es bisiesto ";
}
return 0;
}

3. Leer desde el teclado las coordenadas (x,y) de un punto del plano


cartesiano y, mediante un men, elegir una de las siguientes opciones:
a) Comprobar si el punto est dentro, sobre o fuera de la circunferencia de
radio 10 y centro (0,0).
b) Averiguar el cuadrante en que se encuentra en punto.

4. Escribir, utilizando switch case un programa que permita efectuar el


clculo del rea de un cuadrado, un crculo o un tringulo equiltero segn
la opcin seleccionada por un usuario en un men.
#include <iostream>
using namespace std;
#include "stdlib.h"
#include <stdio.h>
#include <math.h>
#define PI 3.1415926535897932384626433832795029L
main () {
int Opc;
int Salir = 0;
float area;
float lado, base, alt;
do {

cout << "1) Area de un Cuadrado" << endl;


cout << "2) Area de un Triangulo" << endl;
cout << "3) Rectangulo" << endl;
cout << "4) Salir" << endl;
cin >> Opc;
cout << endl << endl;
switch (Opc) {
case 1:
cout << "Area de un cuadrado" << endl << endl;
cout << "Dame el valor del lado: " << endl;
cin >> lado;
area = lado * lado;
cout << "El rea del cuadrado dado es de " << area;
cout << endl << endl;
break;
case 2:
cout << "Area de un Tringulo" << endl << endl;
cout << "Dame el valor de la base: " << endl;
cin >> base;
cout << "Dame el valor de la altura: " << endl;
cin >> alt;
area = (base * alt) / 2;
cout << "El rea del tringulo dado es de " << area;
cout << endl << endl;
break;
case 3: // Opcin 3
float ra,a;
cout << "Circulo" << endl << endl;
cout << "Ingresa la radio del circulo: " << endl;
cin >> ra;
a=PI*(ra*ra);
cout << "El area del circulo es: " << a;
cout << endl << endl;
break;
case 4:
Salir = 1;
break;
default:
cout << "Esa opcin no existe" << endl << endl;
break;
}

} while (Salir == 0);


system("pause");
}

5. Escribir un programa que pida dos caracteres alfabticos y los imprima


ordenados. Validar que los valores solicitados sean alfabticos.
#include <iostream>
#include <cstring>
using namespace std;
void llenado_arr(char **, int);
void burbuja(char **, int);
void mostrar(char **, int);
void limpiar(char **, int);
int main()
{
int tam, i;
char **nombre;
cout<<"Cuantas letras deseas introducir?: ";
cin>>tam;
nombre = new char*[tam];
for(i=0; i<tam; i++)

nombre[i]= new char[30];


cin.ignore();
llenado_arr(nombre, tam);
mostrar(nombre, tam);
burbuja(nombre, tam);
mostrar(nombre, tam);
limpiar(nombre, tam);
return 0;
}
void llenado_arr(char **nombre, int tam)
{
int i;
for(i=0;i<tam;i++)
{
cout<<"Letras"<<i+1<<" = ";
cin.getline(nombre[i],30);
}
}
void burbuja(char **nombre, int tam)
{
int j, i;
char temp[30];
for(i = 0; i < tam-1; i++)
for(j = tam-1; j > i; j--)
if(strcmp(nombre[j-1],nombre[j]) > 0)
{
strcpy(temp, nombre[j-1]);
strcpy(nombre[j-1], nombre[j]);
strcpy(nombre[j], temp);
}
}
void limpiar(char **nombre, int tam)
{
int i;
for(i=0; i<tam; i++)
delete nombre[i];
delete nombre;
}
void mostrar(char **nombre, int tam)
{

int i;
cout << "Letras ordenadas" << endl;
for(i=0; i<tam; i++)
cout << nombre[i] << endl;
}

Vous aimerez peut-être aussi