Universidad Nacional Autónoma de México
Facultad de Ingeniería
Laboratorio de Programación Avanzada y Métodos Numéricos
Nombre del Alumno: Mendoza Galván José Luis
No. de Cuenta: 306061545 Grupo Laboratorio: 8
Grupo de teoría: 4
No. de las prácticas: 1,2,3
Títulos de las Prácticas:
1.-Arreglosy Estructuras
2.- Apuntadores
3.- Manejo de Archivos En C
Fecha Entrega: 11/Marzo/2010
1.-Arreglos y Estructuras
Crear un programa escrito en lenguaje C que genere una matriz cuadrada de 100 elementos con números aleatorios del 1 al 100. Una vez creada la matriz, mostrar el contenido de dicha matriz.
Después organiza los datos en pares e impares y muestra por separado ambosgrupos.
Código propuesto como solución al problema:
#include
#include
main(){
int a[10][10];//Declaración de arreglo Para matriz de 100 elementos
int i,j;
for(i=0;ipolB.grado;i–)
polRes.coef[i]=polA.coef[i]; //Se usa apuntador como arreglo
for(i=polB.grado;i>=0;i–)polRes.coef[i]=polA.coef[i]-polB.coef[i];//Hace la resta de los polinomios
}
else //Compara Cual es mayor para hacer la resta correspondiente
{
for(i=gradoMAX;i>polA.grado;i–)
polRes.coef[i]=polB.coef[i];
for(i=polA.grado;i>=0;i–)
polRes.coef[i]=polB.coef[i]-polA.coef[i];//Se hace laresta
}
}
return polRes;
}
polinomio NumGrupo() //Función que genera mi número grupo
{
polinomio pol1; //Se usa estructura
pol1.grado=3;
pol1.coef=NULL;
pol1.coef= (int *)malloc((pol1.grado + 1)*sizeof(int)); //uso de memoria dinámica
pol1.coef[3]=1;
pol1.coef[2]=2;pol1.coef[1]=3;
pol1.coef[0]=4;
return pol1;
}
main()
{
polinomio polA,polC, polB,polS,polR,polN,polNum; //Estructura como tipo de datos
int i=0;
int gradoMAX, polMAX;
printf(“Polinomio A:
“);
polA=LeePolinomio();//Se usa la función para llenar polinomio polA
polC=NumGrupo(); //Se asigna NumGrupo a polC
if(polA.coef !=NULL)
{
printf(”
Polinomio B
“);
polB=LeePolinomio();//Se llena polinomio polB
if(polB.coef != NULL)
{
printf(”
Suma del Polinomio A + B:
“);
polS=SumaPolinomios(polA,polB);//Se llena polS con la suma A+B
if( polS.coef != NULL){
for(i=polS.grado;i>=0;i–)printf(“+(%d)x^%d “, polS.coef[i],i);//Se le da forma al polinomio
}
printf(”
“);
printf(”
Resta del Polinomio A – B:
“);
polR=RestaPolinomios(polA,polB);//polR es igual a polA-polB
if( polS.coef != NULL){
for(i=polR.grado;i>=0;i–)printf(“+(%d)x^%d “, polR.coef[i],i);//Se da forma al polinomio
}
printf(”
“);
// PolinomioA – PolinomioB + PolinomioGrupo
polN=NumGrupo();
if(polR.grado >= polN.grado)
{
gradoMAX=polR.grado;
polMAX=1;
}
else
{gradoMAX=polN.grado;
polMAX=2;
}
polNum.grado=gradoMAX;
polNum.coef=(int *)malloc((gradoMAX + 1)*sizeof(int));//Memoria dinámica
if (polNum.coef != NULL)
{
if(polMAX==1)
{
for(i=gradoMAX;i>polN.grado;i–)
polNum.coef[i]=polR.coef[i];…