2. Arreglos de registros Arreglos de registros Arreglos de registros Arreglos de registros
Arreglos de
Registro
DEFINICION
Un arreglo de registro es una
estructura de datos homogénea, estática que
se almacena en una memoria RAM y cuyos
elementos son heterogéneos. El arreglo de
registro es como una estructura que contiene
varios Registros, siendo un arreglo un vector,
una matriz, un cubo, entre otros.
Es Estructura estática de información, es
aquella en la que es necesario de manera explícita citar
su requerimiento de memoria que empleará dentro de
todo el programa, de tal manera que si se usa todo ese
espacio no habrá problemas, si se usa menos, se está
desperdiciando y si se usa más de la solicitada, se
incurre en errores lógicos con sus consecuencias
algorítmicas.
3. Como lo Ves?Declaración de Variables
Una característica de C++, es la necesidad de declarar las variables que
se usarán en un programa. Se trata, es cierto, de una característica de bajo nivel, más
cercana al ensamblador que a lenguajes de alto nivel, pero en realidad una
característica muy importante y útil de C++, ya que ayuda a conseguir códigos más
compactos y eficaces, y contribuye a facilitar la depuración y la detección y corrección
de errores y a mantener un estilo de programación elegante.
Uno de los errores más comunes en lenguajes en los que las
variables se crean de forma automática se produce al cometer
errores ortográficos. Por ejemplo, en un programa usamos una
variable llamada prueba, y en un punto determinado le
asignamos un nuevo valor, pero nos equivocamos y escribimos
prueba. El compilador o interprete no detecta el error,
simplemente crea una nueva variable, y continúa como si todo
estuviese bien.
En C++ esto no puede pasar, ya que antes de usar cualquier
variable es necesario declararla, y si por error usamos una
variable que no ha sido declarada, se producirá un error de
compilación.
La declaración de variables es
uno de los tipos de sentencia de
C++. La prueba más clara de esto
es que la declaración terminará
con un ";". Sintaxis:
<tipo> <lista de variables>;
También es posible inicializar las variables dentro de la misma declaración. Por ejemplo: Int a= 1234;
Bool seguir= true, encontrado;
4. EjerciciosAlgunos Ejemplos
Que lea 10 números por teclado, los almacene en un
array y muestre la suma, resta, multiplicación y división
de todos.
#include <stdio.h>
#include <stdlib.h>
nt main(void)
{
int x,tabla[10];
int sum,res,mul,div;
for (x=0;x<10;x++)
{
printf("Introduzca númeron");
scanf("%d",&tabla[x]);
}
sum=tabla[0];
res=tabla[0];
mul=tabla[0];
div=tabla[0];
for (x=1;x<10;x++)
{
sum=sum+tabla[x];
res=res-tabla[x];
mul=mul*tabla[x];
div=div/tabla[x];
}
printf("Suma: %dn",sum);
printf("Resta: %dn",res);
printf("Multiplicación: %dn",mul);
printf("División: %dn",div);
system("PAUSE");
return 0;
}
Que mediante un array almacene
números tanto positivos
como negativos y los muestre
ordenados.
#include <stdio.h>
#include <stdlib.h>
int main()
{
float aux, numeros[10];
int i,j,n=10;
for (i=0;i<n;i++){
printf("Escriba un número");
scanf("%f",&numeros[i]);
}
for(i=0;i<n-1;i++)
{
for(j=i+1;j<n;j++)
{
if(numeros[i]<numeros[j])
{
aux=numeros[i];
numeros[i]=numeros[j];
numeros[j]=aux;
}
}
}
for (i=n-1;i>=0;i--){
printf("%fn",numeros[i]);
}
system("PAUSE");
return 0;
}
5. Que muestre los primeros 100 números de izquierda a
derecha usando un array de dos dimensiones,
la última fila a mostrará la suma de sus respectivas
columnas.
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char *argv[])
{
int x,y,sum, numeros[11][10];
for (y=0;y<10;y++)
{
sum=0;
for (x=0;x<10;x++)
{
numeros[x][y]=(x*10)+1+y;
sum=sum+numeros[x][y];
}
numeros[10][y]=sum;
}
for (x=0;x<11;x++)
{
for (y=0;y<10;y++)
{
printf("%d ",numeros[x][y]);
}
printf("n");
}
system("PAUSE");
return 0;
}
EjerciciosAlgunos Ejemplos
Que muestre los primeros 100 números de
izquierda
a derecha usando un array de dos
dimensiones.
#include <stdio.h>
#include <stdlib.h>
nt main(int argc, char *argv[])
{
int x,y, numeros[10][10];
for (x=0;x<10;x++)
{
for (y=0;y<10;y++)
{
numeros[x][y]=(x*10)+1+y;
}
}
for (x=0;x<10;x++)
{
for (y=0;y<10;y++)
{
printf("%d ",numeros[x][y]);
}
printf("n");
}
system("PAUSE");
return 0;
}
6. Diferencia con los arreglos
unidimensionales y multidimensionales
Los arreglos son una colección de variables del mismo tipo que se referencian
utilizando un nombre común. Un arreglo consta de posiciones de memoria contigua. La dirección
más baja corresponde al primer elemento y la más alta al último. Un arreglo puede tener una o varias
dimensiones. Para acceder a un elemento en particular de un arreglo se usa un índice.
Un arreglo unidimensional es un tipo de datos
estructurado que está formado de una colección finita y
ordenada de datos del mismo tipo. Es la estructura natural
para modelar listas de elementos iguales.
El tipo de acceso a los arreglos unidimensionales es el
acceso directo, es decir, podemos acceder a cualquier
elemento del arreglo sin tener que consultar a elementos
anteriores o posteriores, esto mediante el uso de un
índice para cada elemento del arreglo que nos da su
posición relativa.
Los arreglos multidimensionales tienen más de una
dimensión. En C#, las dimensiones se manejan por
medio de un par de corchetes, dentro de los que se
escriben los valores de cada dimensión, separados por
comas.
SUS DIFERENCIAS?
7. Declaración con
typedef
Typedef es una palabra reservada en el lenguaje de
programación C y C++. Su función es asignar un nombre
alternativo a tipos existentes, a menudo cuando su
declaración normal es aparatosa, potencialmente
confusa o probablemente variable de una
implementación a otra.
Una declaración typedef se interpreta igual que una
declaración de variable o de función, pero el
identificador, en lugar de suponer el tipo especificado por
la declaración, se convierte en un sinónimo del tipo.
Sintaxis
declaration:
declaration-specifiers init-declarator-list opt ;
declaration-specifiers:
storage-class-specifier declaration-
specifiers opt
type-specifier declaration-specifiers opt
type-qualifier declaration-specifiers opt
storage-class-specifier:
typedef
type-specifier:
Void,Char, Short,Int, Long, Float,Double, Signed,
unsigned
struct-or-union-specifier
enum-specifier
typedef-name
typedef-name:
identifier