miércoles, 14 de diciembre de 2011
Matriz dimension N, traza
#include <stdio.h>
#define DIM 100
void LeerMatriz(float A[DIM][DIM])
{
int i,j, n;
printf("Introduce la dimension de tu matriz: \n");
scanf ("%d", &n);
for (i=0; i<n; i++)
{
printf ("Dame los %d elementos la fila %d: \n", n, i+1);
for (j=0; j<n; j++)
scanf ("%f", &A[i][j]);
}
}
void EscribirMatriz(float A[DIM][DIM])
{
int i,j, n;
printf("La matriz introducida es: \n");
for(i=0;i<n;i++)
{
printf("\nFila %d: ", i+1);
for (j=0;j<n;j++)
printf("\t%f", A[i][j]);
}
}
float TrazaMatriz(float A[DIM][DIM])
{
int i,j, fil, col;
float suma=0;
fil=col;
for(i=0;i<fil;i++)
suma+=A[i][i];
printf("\n\nLa traza (suma elementos diagonal principal) de tu matriz es: \n");
printf("%f\n\n", suma);
}
int main()
{
float A[DIM][DIM];
LeerMatriz(A);
EscribirMatriz(A);
TrazaMatriz(A);
return 0;
}
letra mas usada
#include <stdio.h>
#include <string.h>
int main()
{
char texto[20];
int i,max=0,contadores[256];
for(i=0;i <= 255;i++)
contadores[i]=0;
printf("Escribe una palabra: ");
scanf("%s",&texto);
for (i=0;i < strlen(texto);i++)
contadores[texto[i]]++;
for(i=0;i <= 255;i++)
if(contadores[i] > max)
max=contadores[i];
for(i=0;i <= 255;i++)
if(contadores[i]==max) printf("\nLa letra mas usada es la %c",i);
getchar;
return 0;
}
DICE NUMERO DE LETRAS Y ESCRIBE DEL REVES
#include <stdio.h>
int main ()
{
char c, palabra[21];
int i;
printf("Teclea una palabra de menos de 20 letras:\n");
scanf("%s", palabra);
i=0;
while (palabra[i++]!='\0');
printf("%s tiene %d letras.\n", palabra, i-1);
printf("%s escrita al reves es: ", palabra);
while (i>0) printf("%c", palabra[--i]);
printf("\n");
return 0;
}
GENERAR MATRIZ
#include<stdio.h>
#include<conio.h>
void llenar (int M[20][20], int f, int c)
{
int k=1;
for (int i=1;i<=f;i++)
{
if (i%2!=0)
{
for (int j=1;j<=c;j++)
{
M[i][j]=k; k++;
}
}
else
{
for (int j=c;j>=1;j--)
{
M[i][j]=k; k++;
}
}
}
}
void mostrar (int M[20][20], int f, int c)
{
for (int i=1;i<=f;i++)
{
printf("\n");
for (int j=1;j<=c;j++)
{
printf("[%d] ",M[i][j]);
}
}
}
int main ()
{
int f, c;
int M[20][20];
printf("Inserte filas de M: "); scanf("%d",&f);
printf("Inserte columnas de M: "); scanf("%d",&c);
llenar(M, f, c);
mostrar(M, f, c);
getch();
return 0;
}
#include<conio.h>
void llenar (int M[20][20], int f, int c)
{
int k=1;
for (int i=1;i<=f;i++)
{
if (i%2!=0)
{
for (int j=1;j<=c;j++)
{
M[i][j]=k; k++;
}
}
else
{
for (int j=c;j>=1;j--)
{
M[i][j]=k; k++;
}
}
}
}
void mostrar (int M[20][20], int f, int c)
{
for (int i=1;i<=f;i++)
{
printf("\n");
for (int j=1;j<=c;j++)
{
printf("[%d] ",M[i][j]);
}
}
}
int main ()
{
int f, c;
int M[20][20];
printf("Inserte filas de M: "); scanf("%d",&f);
printf("Inserte columnas de M: "); scanf("%d",&c);
llenar(M, f, c);
mostrar(M, f, c);
getch();
return 0;
}
cadenas
fichero de cabecera para estos es
#include<string.h>
y cadenas
#include<ctype.h>
LONGITUD DE CADENA
int strlen(char v[])
{
int n=0, i=0;
while(v[i]!='\0')
{
n++;
i++;
}
return 0;
}
forma mas abreviada de lo anterior
int strlen(char v[])
{
int n=0;
while (v[n++]!='\0');
return n;
}
COPIAR CADENAS
void strcpy(char v[],char w[])
{
int n=0;
while(w[n]!='\0')
{
v[n]=w[n];
n++;
}
v[n]='\0';
}
COMPARAR CADENAS LEXICOGRAFICAMENTE
int strcmp(char v[],char w[])
{
int lon;
lon=(strlen(v)<strlen(w))?strlen(v):strlen(w);
for(i=0;i<=lon;i++)
{
if (v[i]>w[i]) return 1;
else if(v[i]<w[i])return -1;
return 0;
}
#include<string.h>
y cadenas
#include<ctype.h>
LONGITUD DE CADENA
int strlen(char v[])
{
int n=0, i=0;
while(v[i]!='\0')
{
n++;
i++;
}
return 0;
}
forma mas abreviada de lo anterior
int strlen(char v[])
{
int n=0;
while (v[n++]!='\0');
return n;
}
COPIAR CADENAS
void strcpy(char v[],char w[])
{
int n=0;
while(w[n]!='\0')
{
v[n]=w[n];
n++;
}
v[n]='\0';
}
COMPARAR CADENAS LEXICOGRAFICAMENTE
int strcmp(char v[],char w[])
{
int lon;
lon=(strlen(v)<strlen(w))?strlen(v):strlen(w);
for(i=0;i<=lon;i++)
{
if (v[i]>w[i]) return 1;
else if(v[i]<w[i])return -1;
return 0;
}
martes, 13 de diciembre de 2011
Matriz, traspuesta y su producto.
/*Calcula la traspuesta de una matriz y luego el producto de esa matriz y su traspuesta*/
#include <iostream>
#define DIM 3 //Aqui decides la dimension, no lo se hacer como lo intentabas
void matriz_traspuesta(float A[DIM][DIM], float At[DIM][DIM]);
void producto_matriz(float A[DIM][DIM], float At[DIM][DIM]);
using namespace std;
int main()
{
int i, j;
float A[DIM][DIM], At[DIM][DIM];
cout << "Introduce la matriz:\n";
for(i=0;i<DIM;i++)
{
cout << "Introduce la fila "<<i+1<<": ";
for (j=0;j<DIM;j++)
{
cin >> A[i][j];
}
}
for(i=0;i<DIM;i++) //inicializo At con todos los elementos 0 para que lo pueda coger la funcion
{
for (j=0;j<DIM;j++)
{
At[i][j]=0;
}
}
matriz_traspuesta(A, At);
producto_matriz(A, At);
#define DIM 3 //Aqui decides la dimension, no lo se hacer como lo intentabas
void matriz_traspuesta(float A[DIM][DIM], float At[DIM][DIM]);
void producto_matriz(float A[DIM][DIM], float At[DIM][DIM]);
using namespace std;
int main()
{
int i, j;
float A[DIM][DIM], At[DIM][DIM];
cout << "Introduce la matriz:\n";
for(i=0;i<DIM;i++)
{
cout << "Introduce la fila "<<i+1<<": ";
for (j=0;j<DIM;j++)
{
cin >> A[i][j];
}
}
for(i=0;i<DIM;i++) //inicializo At con todos los elementos 0 para que lo pueda coger la funcion
{
for (j=0;j<DIM;j++)
{
At[i][j]=0;
}
}
matriz_traspuesta(A, At);
producto_matriz(A, At);
return 0;
}
}
void matriz_traspuesta(float A[DIM][DIM],float At[DIM][DIM]) //he quitado B, pues solo la usamos en la ultima funcion
{
int i,j;
cout<<"La matriz traspuesta es: \n"; //para copiar los elementos de la matriz y escribirlos en pantalla
for (i=0;i<DIM;i++) //hay que hacer lo mismo que cuando la escribimos, un bucle for
{
for(j=0;j<DIM;j++)
{
At[i][j]=A[j][i];
cout<<At[i][j]<<"\t"; // el \t es para que los elementos esten separados
}
cout<<"\n"; //para que salte de linea cada fila
}
}
{
int i,j;
cout<<"La matriz traspuesta es: \n"; //para copiar los elementos de la matriz y escribirlos en pantalla
for (i=0;i<DIM;i++) //hay que hacer lo mismo que cuando la escribimos, un bucle for
{
for(j=0;j<DIM;j++)
{
At[i][j]=A[j][i];
cout<<At[i][j]<<"\t"; // el \t es para que los elementos esten separados
}
cout<<"\n"; //para que salte de linea cada fila
}
}
void producto_matriz(float A[DIM][DIM], float At[DIM][DIM])
{
int i, j, k, elemento=0, B[DIM][DIM]; //este bucle es el mas dificil y lioso de hacer
for(i=0; i<DIM; i++)
{
for(j=0; j<DIM; j++)
{
for(k=0; k<DIM; k++)
{
elemento=elemento+(A[i][k])*(At[k][j]);
}
B[i][j]=elemento;
elemento=0;
}
}
cout<<"el producto de las matrices anteriores es\n";
for(i=0; i<DIM; i++)
{
for(j=0; j<DIM; j++)
{
cout<<B[i][j]<<"\t";
}
cout<<endl;
}
}
{
int i, j, k, elemento=0, B[DIM][DIM]; //este bucle es el mas dificil y lioso de hacer
for(i=0; i<DIM; i++)
{
for(j=0; j<DIM; j++)
{
for(k=0; k<DIM; k++)
{
elemento=elemento+(A[i][k])*(At[k][j]);
}
B[i][j]=elemento;
elemento=0;
}
}
cout<<"el producto de las matrices anteriores es\n";
for(i=0; i<DIM; i++)
{
for(j=0; j<DIM; j++)
{
cout<<B[i][j]<<"\t";
}
cout<<endl;
}
}
EXAMEN PRÁCTICO MARTES
// Los valores dentro del vector están entre 1 y 15, por eso en el rand se suma 1
#define LANZAMIENTOS 100
#include <iostream>
#include <time.h>
#include <stdlib.h>
#include<math.h>
#define DIM 100
using namespace std;
int main()
{
float productoescalar;
int N, m;
int i[DIM], k[DIM];
float modulo1, modulo2;
modulo1=0;
modulo2=0;
cout << "Introduce la dimension de ambos vectores: "; cin >> N;
srand (time (NULL) );
for(m=0;m<N;m++) i[m]=(rand()%15)+1;
cout << endl << endl<< "Primer vector: ("; cout << " ";
for(m=0;m<N;m++) cout << i[m] << " ";
cout << ")" << endl;
for(m=0;m<N;m++) k[m]=(rand()%15)+1;
cout << endl << endl << "Segundo vector: ("; cout << " ";
for(m=0;m<N;m++) cout<< k[m] <<" ";
cout<< ")" << endl;
cout << endl << endl << "La dimension de estos dos vectores es " << N;
cout << endl << endl;
productoescalar=0;
cout << endl << endl << "Producto escalar de los vectores= ";
for(m=0;m<N;m++)
{
productoescalar=i[m]*k[m]+productoescalar;
}
cout << productoescalar << endl << endl;
for(m=0;m<N;m++)
{
modulo1=modulo1+i[m]*i[m];
}
for(m=0;m<N;m++)
{
modulo2=modulo2+k[m]*k[m];
}
if(modulo1==modulo2)
{
cout << "Tienen el mismo modulo.";
}
else
{
cout << "No tienen el mismo modulo: ";
cout << endl << modulo1;
cout << endl << endl << modulo2;
cout << endl << endl;
}
return 0;
}
#define LANZAMIENTOS 100
#include <iostream>
#include <time.h>
#include <stdlib.h>
#include<math.h>
#define DIM 100
using namespace std;
int main()
{
float productoescalar;
int N, m;
int i[DIM], k[DIM];
float modulo1, modulo2;
modulo1=0;
modulo2=0;
cout << "Introduce la dimension de ambos vectores: "; cin >> N;
srand (time (NULL) );
for(m=0;m<N;m++) i[m]=(rand()%15)+1;
cout << endl << endl<< "Primer vector: ("; cout << " ";
for(m=0;m<N;m++) cout << i[m] << " ";
cout << ")" << endl;
for(m=0;m<N;m++) k[m]=(rand()%15)+1;
cout << endl << endl << "Segundo vector: ("; cout << " ";
for(m=0;m<N;m++) cout<< k[m] <<" ";
cout<< ")" << endl;
cout << endl << endl << "La dimension de estos dos vectores es " << N;
cout << endl << endl;
productoescalar=0;
cout << endl << endl << "Producto escalar de los vectores= ";
for(m=0;m<N;m++)
{
productoescalar=i[m]*k[m]+productoescalar;
}
cout << productoescalar << endl << endl;
for(m=0;m<N;m++)
{
modulo1=modulo1+i[m]*i[m];
}
for(m=0;m<N;m++)
{
modulo2=modulo2+k[m]*k[m];
}
if(modulo1==modulo2)
{
cout << "Tienen el mismo modulo.";
}
else
{
cout << "No tienen el mismo modulo: ";
cout << endl << modulo1;
cout << endl << endl << modulo2;
cout << endl << endl;
}
return 0;
}
Suscribirse a:
Entradas (Atom)