jueves, 29 de enero de 2015

Arrays bidimensional

5 ejemplos de arrays bidimensionales:

Para declarar arreglos de dimensiones se declaran de acuerdo al siguiente esquema:

<Tipo de variable><nombre_matriz>[Filas][Columnas];  

Ejemplo 1:
String nombredelconjunto[2][5];

Ejemplo 2:
Int alumnos[1][3];

Ejemplo 3:
Int participantes[4][2];

Ejemplo 4:
String nombres[1][3];

Ejemplo 5:
Int estudiantes[5][4];

Explicación:
El ejemplo 5 en la declaración de ese Arrays dice que los elementos son de tipo enteros que constan de 5 filas y 4 columnas.       


 Gráficar Ideas sobre los punteros de los arrays bidimensionales.






martes, 27 de enero de 2015

Mentefacto sobre matrices


Cinco deficiones sobre matrices

Definición 1:
Las matrices nos van a permitir hacer referencia a un conjunto de variables por el mismo nombre y utilizar un índice para diferenciarlas. Una matriz puede tener una o varias dimensiones (más allá de tres cuesta representar el contenido). El índice más grande de la matriz es, por lo tanto igual al tamaño de esta menos uno.

Bibliografía:
Thierry Groussard, Los fundamentos del lenguaje - Desarrollar con Visual Studio 2010, Ediciones ENI, 2011

Definición 2:
Una matriz es una estructura de datos interna que almacena un conjunto de datos del mismo tipo bajo un nombre de variable común. La posición de un elemento dentro de la matriz viene identificada por uno o varios índices, de tal modo que a cada elemento se accede mediante el nombre de la matriz y sus índices.

Bibliografía:
Steven L. Heston, El Modelo Heston y sus extensiones en Matlab y C # , John Wiley & Sons, 2013

Definición 3:
Un arreglo es una estructura de datos, o más técnicamente, un espacio de memoria que permite almacenar una colección de elementos, todos del mismo tipo. Conviene imaginar un arreglo como una secuencia contigua de celdas (espacios de memoria), o casillas, en cada una de las cuales se puede guardar un elemento de la colección.

Bibliografía:
Yolanda Cerezo López, Olga Peñalba Rodríguez, Rafael Caballero Roldán, Iniciación a la programación en C#: un enfoque práctico, Delta Publicaciones, 2006

Definición 4:
Desde el punto de vista del programa, una matriz (array ó vector) es una zona de almacenamiento contiguo, que contiene una serie de elementos del mismo tipo, los elementos de la matriz. Desde el punto de vista lógico podemos considerarlas como un conjunto de elementos ordenados en fila. Así pues, en principio todas las matrices son de una dimensión, la dimensión principal, pero veremos que los elementos de esta fila pueden ser a su vez matrices (un proceso que puede ser recursivo), lo que nos permite hablar de la existencia de matrices multi-dimensionales, aunque las más fáciles de "ver" o imaginar son las de dos y tres dimensiones.

Bibliografía:
Vinny Cahill, Aprender a programar el Camino orientada a objetos con C #, Springer Science & Business Media, 2002

Definición 5:
Puede afirmarse que las matrices son un recurso de programación simple y socorrido; en realidad pueden considerarse como las "estructuras" de datos más simples que cabe imaginar (todos los elementos del mismo tipo). Presentan la ventaja de que sus elementos son rápidamente accesibles, en especial si utiliza punteros en vez de subíndices, pero presentan una notable limitación: son de tamaño fijo; es preciso definir su tamaño desde el principio y no pueden ser fácilmente incrementadas o disminuidas sino mediante complejos procesos de copia.

Bibliografía:
Rajeev A. Parida,  El poder de C #, Laxmi Publications, 2009

martes, 6 de enero de 2015

TAREA EN CLASE 06/01/2015



Cadenas dinámicas y estáticas

Existen dos tipos de cadenas:
Cadenas dinámicas: Las cadenas pueden ser de naturaleza dinámica (pueden alterar su longitud durante el tiempo de ejecución).
Mediante un carácter de fin de cadena ("\0" en C) para las cadenas de tipo dinámico.
Sintaxis

charmi_cadena [5] = {‘M’,’u’,‘n’,’d’,’o’,’\0’};

Cadenas estáticas: De naturaleza estática (su longitud es fija a lo largo del tiempo de ejecución).

Mediante una propiedad de la cadena que delimite su longitud (Count en C#) para las de tipo estático.

Usos de las cadenas
§  Usados para describir las características de las personas y cosas.

  • Copia de una cadena
  • Cálculo de la longitud,
  • Comparación,
  • Concatenación,
  • Extracción de subcadenas,
  • Búsqueda de información dentro de las cadenas,
  • Conversiones. 
Operaciones con cadenas

Asignación: asignarle una cadena a otra
char *strcpy(char [], const char[]); # en C
cadena1=cadena2;                     # en C++
cadena1 := cadena2                   # en Smalltalk

Concatenación: unir dos cadenas de caracteres.
$pareja = "Joshua"." y "."Marina"     # en Perl y PHP;
pareja = "Luisa" & " y " & "Carmen"  # en Visual Basic;
pareja = "Luisa" + " y " + "Carmen"; # en C++ y Java con la clase String.
pareja := 'Luisa' , ' y ' , 'Carmen'.  # en Smalltalk
strcat(cadena1,cadena2); strcat(cadena1, cadena3); # en C (Debe haber suficiente espacio en la primera)

Nº de caracteres de una cadena
int strlen(const char[]); # en C Devuelve el nº de caracteres sin contar el '\0'
cadena.length();          # en C++
cadena size.              # en Smalltalk

Comparación: Compara dos cadenas en orden lexicográfico
int strcmp(const char[], const char[]); # en C Devuelvee <0 si la 1ª es menor, >0 si es mayor y 0 si son iguales
cadena1==cadena2; cadena1>cadena2; etc. # en C++ Devuelve un valor de verdad
cadena1 = cadena2                       # en Smalltalk Devuelve true o false.
Multiplicar una cadena: repetir una cadena un número de veces
$puntos ="." x 5 # pone 5 puntos en Perl
puntos := Generator generateJoin: '.' repeat: 5.   # Genera una cadena de 5 puntos en Smalltalk


Acceder a las letras que forman una cadena
Podemos leer (o modificar) una de las letras de una cadena de igual forma que leemos los elementos de cualquier array: si la cadena se llama "texto", el primer elemento será texto [0], el segundo será texto [1] y así sucesivamente.
Eso sí, las cadenas en C# no se pueden modificar letra a letra: no podemos hacer texto [0]=’a’. Para eso habrá que usar una construcción auxiliar, que veremos más adelante.

Longitud de la cadena.
Podemos saber cuántas letras forman una cadena con "cadena.Length". Esto permite que podamos recorrer la cadena letra por letra, usando construcciones como "for".
Ejercicio propuesto: Un programa te pida tu nombre y lo muestre en pantalla separando cada letra de la siguiente con un espacio. Por ejemplo, si tu nombre es "Juan", debería aparecer en pantalla "J u a n".

Extraer una subcadena
Podemos extraer parte del contenido de una cadena con "Substring", que recibe dos parámetros: la posición a partir de la que queremos empezar y la cantidad de caracteres que queremos obtener. El resultado será otra cadena:
saludo = frase.Substring(0,4);
Podemos omitir el segundo número, y entonces se extraerá desde la posición indicada hasta el final de la cadena.

Buscar en una cadena
Para ver si una cadena contiene un cierto texto, podemos usar IndexOf ("posición de"), que nos dice en qué posición se encuentra (o devuelve el valor -1 si no aparece):
if (nombre.IndexOf("Juan") >= 0) Console.Write("Bienvenido, Juan");
Podemos añadir un segundo parámetro opcional, que es la posición a partir de la que queremos buscar:
if (nombre.IndexOf("Juan", 5) >= 0) ...
La búsqueda termina al final de la cadena, salvo que indiquemos que termine antes con un tercer parámetro opcional:
if (nombre.IndexOf("Juan", 5, 15) >= 0) ...
De forma similar, LastIndexOf ("última posición de") indica la última aparición (es decir, busca de derecha a izquierda).


Sintaxis
public static void Main()
  {
    tipoFicha[] fichas  = new tipoFicha[1000];
}  



Referencias: