Académique Documents
Professionnel Documents
Culture Documents
}
//Muestra la matriz de coeficientes
void matrizcoeficientes(int m[F][C]){
int i,j;
for(i=0;i<F;i++){
for (j=0;j<C;j++){
printf("%d\t",m[i][j]);
}
printf("\n\n");
}
}
2.2. He rellenado as mismo otra matriz con un solo valor aleatorio comprendido entre 1 y 16
para representar la intensidad del Sol (Q) en determinado momento del da.
void rellenamatrizintensidad (int m[F][C]){
int i,j;
int numero;
for(i=0;i<1;i++) {
numero=rand()% 16 + 1;
printf("El valor de la intensidad del Sol es: %d\n",numero);
}
for(i=0;i<F;i++){
for (j=0;j<C;j++){
m[i][j] = numero;
}
}
}
void muestramatrizintensidad (int m[F][C]){
int i,j;
for(i=0;i<F;i++){
for (j=0;j<C;j++){
printf("%d\t",m[i][j]);
}
printf("\n\n");
}
}
2.3. Para obtener una matriz que represente el nivel de activacin de cada clula fotovoltaica
dentro del panel S= (Q+E), he creado una tercera matriz, sumando las dos anteriores y que va a
ser la base con la que se va a desarrollar el programa. En esta matriz se cumplir que siempre
que el nivel de activacin (S) de cada clula sea superior al UMBRAL, la clula producir
electricidad.
void sumar(int a[F][C], int b[F][C], int s[F][C]) {
int i,j;
for(i=0;i<F;i++){
for (j=0;j<C;j++){
s[i][j] = a[i][j] + b[i][j];
}
}
}
void mostrarsuma(int m[F][C]){
int i,j;
printf("Esta es la matriz suma\n\n");
for(i=0;i<F;i++){
for (j=0;j<C;j++){
printf("%d\t",m[i][j]);
}
printf("\n\n");
for (j=0;j<C;j++){
if (m[i][j]>UMBRAL){
resultado++;
}
}
}
if (resultado>=30){
printf("Todas las casillas estaran activas en LA ALTERNATIVA 1");
}
else {
printf("el numero de celdas activas rn la ALTERNATIVA 1 es %d", resultado++);
}
}
3.3.ALTERNATIVA2.
A las clulas que ya estn produciendo electricidad porque su nivel de activacin sea superior
al UMBRAL habr que sumarlas aquellas que no estn activas, pero que estn rodeadas de al
menos 4 clulas activas, escojo un radio 1 alrededor de cada clula y fijo las posiciones de cada
clula vecina como si fuesen los posibles movimientos del Rey en un tablero de ajedrez. Si una
clula no activa no est rodeada de al menos 4 clulas activas, no se activar.
Esta alternativa 3 an la estoy desarrollando.
int alternativa2 (int m[F][C]){
int i,j;
for (i = 0; i < F; i++) {
for (j = 0; j < C; j++) {
//si se encuentra con 1 celda activada al noroeste:
if (m[i][j] <UMBRAL &&(m[i - 1][j- 1] >= UMBRAL)) {
m[i][j] = 0;
m[i - 1][j- 1] = 1;
}
//si se encuentra con 1 celda activada noreste:
int matriz[F][C];
int matrizintensidad[F][C];
int matrizsuma[F][C];
int numerodeceldas;
int hora = time(NULL);//Inicializa el sistema de nmeros aleatorios
srand(hora);
rellenamatrizintensidad(matrizintensidad);
muestramatrizintensidad(matrizintensidad);
system("pause");
sumar(matriz, matrizintensidad, matrizsuma);
mostrarsuma(matrizsuma);
system("pause");
numerodeceldas=contarceldas(matrizsuma);
printf("Hay %d celdas activas en el caso general\n",numerodeceldas);
alternativa1(matrizsuma);
alternativa2(matrizsuma);
}
Dificultades encontradas.He tenido que dedicar muchas horas para completar algunas funciones, estudiando teora y
viendo casos prcticos pues a veces la teora por s sola no me permita implementar
correctamente la funcin como en el caso de generacin de nmeros aleatorios.
Estas dificultades se han visto incrementadas al no poder recibir ayuda de ningn conocido
que tuviese conocimientos de programacin