Anda di halaman 1dari 17

Laboratorio N 6

Variable
Subindicada
Arreglo Lineal
y
Bidimensional
Ejercicios
PROGRAMACION DIGITAL - LABORATORIOS 88
Variable Subindicada
Es una variable que almacena un conjunto de valores del
mismo tipo de dato.
Cada valor del conjunto se identifica con un subndice
entero (0, 1, 2,).
Tambin se le denomina arreglo.
Tipos:
Arreglo Lineal: un solo subndice (vector)*
Arreglo Bidimensional: dos subndices (matriz)
Arreglo Multidimensional: tres o mas subndices
* Una cadena de caracteres equivale a un arreglo lineal de caracteres.
PROGRAMACION DIGITAL - LABORATORIOS 89
Arreglo Lineal
PROGRAMACION DIGITAL - LABORATORIOS 90
Tiene un solo subndice.
Declaracin: tipo nombre_arreglo[N elementos];
Ejemplo: int x[50];
x[0] x[1] x[2] x[49]
50 elementos
subndice
Arreglo Lineal
PROGRAMACION DIGITAL - LABORATORIOS 91
Lectura y Escritura:
scanf(formato,&elemento[i-simo]);
printf(formato,elemento[i-simo]);
Ejemplo:
scanf(%d, &x[i]);
printf(%d, x[i]);
Leer
x
i
~
~
Escribir
x
i
~
~
Ejercicio1
PROGRAMACION DIGITAL - LABORATORIOS 92
Dado un arreglo de n elementos, determinar la media
y la desviacin estndar.
Entradas Salidas
N
x
i
(i 1..N)
media
desv
Codificacin C
/*Obtiene la media y desviacion de n nmeros x*/
#include<stdio.h>
#include<math.h>
int main()
{ int n,i; double s=0,x[100],media,d=0,desv;
printf("Ingrese n:" ); scanf("%d",&n);
for (i=1;i<=n;i++) {
printf("x%d: ",i); scanf("%lf",&x[i]);
s=s+x[i];
}
media=s/n;
for (i=1;i<=n;i++) {
d=d+(x[i]-media)*(x[i]-media);
}
desv=sqrt(d/(n-1));
printf("Media = %8.2lf\nDesviacion = %8.2lf\n",media,desv);
system("pause");
}
PROGRAMACION DIGITAL - LABORATORIOS 93
PROGRAMACION DIGITAL - LABORATORIOS 94
Ejecucin
Ingrese n:6
x1: 4
x2: 1
x3: 11
x4: 13
x5: 2
x6: 7
Media = 6.33
Desviacion = 4.89
Presione una tecla para continuar . . .
Ejercicio2
PROGRAMACION DIGITAL - LABORATORIOS 95
Dado un arreglo de N elementos, determinar cual es
el valor que ms veces se repite y cuntas veces se
presenta.
Entradas Salidas
N
x
i
(i 1..N)
moda
vecesmoda
x
1
x
2
x
3
x
4
x
N

/*Obtiene la(s) moda(s) de n nmeros enteros x*/


#include<stdio.h>
int main()
{ int i,j,k=0,n,x[100],moda[100],vecesmoda=1,veces;
printf("Ingrese n:" ); scanf("%d",&n);
for(i=1;i<=n;i++)
{ printf("x%d: ",i); scanf("%d",&x[i]);
}
for(i=1;i<=n;i++)
{ veces=1;
for(j=i+1;j<=n;j++)
if(x[i]==x[j]) veces++;
if(veces>vecesmoda) {
k=1;
vecesmoda=veces;
PROGRAMACION DIGITAL - LABORATORIOS 96
Codificacin C
moda[k]=x[i];
}
else
if(veces==vecesmoda) {
k++;
moda[k]=x[i];
}
}
if(k*vecesmoda<n)
for(i=1;i<=k;i++)
printf("La moda %d se repite %d
veces\n",moda[i], vecesmoda);
else printf("No hay moda\n");
system("pause");
}
PROGRAMACION DIGITAL - LABORATORIOS 97
PROGRAMACION DIGITAL - LABORATORIOS 98
Ejecucin
Ingrese n:13
x1: 9
x2: 8
x3: 7
x4: 1
x5: 4
x6: 9
x7: 5
x8: 4
x9: 1
x10: 5
x11: 9
x12: 1
x13: 5
La moda 9 se repite 3 veces
La moda 1 se repite 3 veces
La moda 5 se repite 3 veces
Presione una tecla para continuar . . .
Ejercicio3
PROGRAMACION DIGITAL - LABORATORIOS 99
Dadas las matrices A y B de m*n, se pide sumarlas
utilizando arreglos lineales.
Entradas Salidas
m, n
A
i
(i 1..m*n)
B
i
(i 1..m*n)
C
i
(i 1..m*n)
n m
mn n m n m
n n n
n
n m
mn n m n m
n n n
n
B B B
B B B
B B B
A A A
A A A
A A A
*
2 ) 1 ( 1 ) 1 (
2 2 1
2 1
*
2 ) 1 ( 1 ) 1 (
2 2 1
2 1
...
... ... ... ...
...
...
...
... ... ... ...
...
...
|
|
|
|
|
.
|

\
|
+
|
|
|
|
|
.
|

\
|
+ +
+ +
+ +
+ +
A
k
k#col+(#fila-1)*n
B
k
k#col+(#fila-1)*n
/*suma de matrices A(m*n) y B(m*n) usando
arreglos lineales*/
#include<stdio.h>
int main()
{ int i,j,k,m,n;
float A[100],B[100],C[100];
printf("Nro filas: "); scanf("%d",&m);
printf("Nro columnas: "); scanf("%d",&n);
printf("A:\n");
for(i=1;i<=m*n;i++) scanf("%f",&A[i]);
printf("B:\n");
for(i=1;i<=m*n;i++) scanf("%f",&B[i]);
PROGRAMACION DIGITAL - LABORATORIOS 100
Codificacin C
printf("C:\n");
for(i=1;i<=m;i++)
{
for(j=1;j<=n;j++)
{ k=j+(i-1)*n;
C[k]=A[k]+B[k];
printf("%8.1f",C[k]);
}
printf("\n");
}
system("pause");
}
PROGRAMACION DIGITAL - LABORATORIOS 101
PROGRAMACION DIGITAL - LABORATORIOS 102
Ejecucin
Nro filas: 3
Nro columnas: 4
A:
9 3 8 1
8 6 4 0
5 2 3 4
B:
5 7 2 3
9 6 1 1
4 9 3 7
C:
14.0 10.0 10.0 4.0
17.0 12.0 5.0 1.0
9.0 11.0 6.0 11.0
Presione una tecla para continuar . . .
PROGRAMACION DIGITAL - LABORATORIOS 103
Tiene dos subndices.
Declaracin:
tipo nombre_arreglo[N filas][N columnas];
Ejemplo: int x[20][30];
x[0][0] x[0][1] x[0][2] x[0][29]
x[1][0] x[1][1] x[1][2] x[1][29]

x[19][0] x[19][1] x[19][2] x[19][29]
30 columnas
20
filas
fila 0
fila 1
fila 19

col 0
+
col 1
+
col 2
+
col 29
+

Arreglo Bidimensional
PROGRAMACION DIGITAL - LABORATORIOS 104
Arreglo Bidimensional
Lectura y Escritura:
scanf(formato,&elemento[fila-sima][col-sima]);
printf(formato,elemento[fila-sima][col-sima]);
Ejemplo:
scanf(%d, &x[i][j]);
printf(%d, x[i][j]);
Leer
x
i,j
~
~
Escribir
x
i,j
~
~

Anda mungkin juga menyukai