#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;
}
miércoles, 14 de diciembre de 2011
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;
}
Matriz aleatoria
#include<stdlib.h>
#include<time.h>
#include<stdio.h>
#define col 22
#define fil 22
#include<time.h>
#include<stdio.h>
#define col 22
#define fil 22
int main(){
int i,j,x,y;
srand(time(NULL));
int m[col][fil];
printf("introduce el numero de filas de la matriz1");
scanf("%d",&x);
printf("introduce el numero de columnas de la matriz1");
scanf("%d",&y);
int i,j,x,y;
srand(time(NULL));
int m[col][fil];
printf("introduce el numero de filas de la matriz1");
scanf("%d",&x);
printf("introduce el numero de columnas de la matriz1");
scanf("%d",&y);
for(i=0;i<x;i++){
for(j=0;j<y;j++){
m[i][j]= 1+rand()%15;
printf(" %2.d ",m[i][j]);
}
printf("\n");
}
return 0;
}
for(j=0;j<y;j++){
m[i][j]= 1+rand()%15;
printf(" %2.d ",m[i][j]);
}
printf("\n");
}
return 0;
}
Vectores aleatorios
#include <iostream>
#include <stdlib.h>
#include <time.h>
#define DIM 15
using namespace std;
int main()
{
int v[DIM], w[DIM];
int i, j;
cout<<"Dime la dimension de los vectores: ";
cin>>j;
srand(time(NULL));
for(i=0;i<j;i++)
v[i]=rand()%15;
cout<<"El primer vector es: ( ";
for(i=0;i<j;i++)
cout<<v[i]<<" ";
cout<<")"<<endl;
for(i=0;i<j;i++)
w[i]=rand()%15;
cout<<"El segundo vector es: ( ";
for(i=0;i<j;i++)
cout<<w[i]<<" ";
cout<<")"<<endl;
return 0; }
#include <stdlib.h>
#include <time.h>
#define DIM 15
using namespace std;
int main()
{
int v[DIM], w[DIM];
int i, j;
cout<<"Dime la dimension de los vectores: ";
cin>>j;
srand(time(NULL));
for(i=0;i<j;i++)
v[i]=rand()%15;
cout<<"El primer vector es: ( ";
for(i=0;i<j;i++)
cout<<v[i]<<" ";
cout<<")"<<endl;
for(i=0;i<j;i++)
w[i]=rand()%15;
cout<<"El segundo vector es: ( ";
for(i=0;i<j;i++)
cout<<w[i]<<" ";
cout<<")"<<endl;
return 0; }
MEDIA DE NÚMEROS Y DESVIACIÓN RESPECTO A ELLA (ARRAYS)
#include <stdio.h>
int main()
{
int n, cont;
float media,d,suma=0;
float lista [100];
/*leer el valor de n*/
printf("¿Cuantos numeros para calcular la media?");
scanf("%d", &n);
printf("\n");
/*leer los números y calcular su suma*/
for (cont=0; cont<n; ++cont)
{
printf("i=%d x= ", cont+1);
scanf("%f", &lista[cont]);
suma+=lista[cont];
}
/*Calcular la media y escribir la respuesta*/
media=suma/n;
printf("La media es %5.2f\n\n", media);
/*Calcular y escribir las desviaciones respecto a la media */
for(cont=0; cont<n; ++cont)
{
d=lista[cont]-media;
printf("i= %d x= %5.2f d= %5.2f\n", cont+1,lista[cont],d);
}
}
int main()
{
int n, cont;
float media,d,suma=0;
float lista [100];
/*leer el valor de n*/
printf("¿Cuantos numeros para calcular la media?");
scanf("%d", &n);
printf("\n");
/*leer los números y calcular su suma*/
for (cont=0; cont<n; ++cont)
{
printf("i=%d x= ", cont+1);
scanf("%f", &lista[cont]);
suma+=lista[cont];
}
/*Calcular la media y escribir la respuesta*/
media=suma/n;
printf("La media es %5.2f\n\n", media);
/*Calcular y escribir las desviaciones respecto a la media */
for(cont=0; cont<n; ++cont)
{
d=lista[cont]-media;
printf("i= %d x= %5.2f d= %5.2f\n", cont+1,lista[cont],d);
}
}
Suscribirse a:
Entradas (Atom)