Arreglos En C Y Biografias
gerardocastelan26 de Julio de 2013
2.315 Palabras (10 Páginas)354 Visitas
Arreglos
En clase ya conocimos algunos tipos básicos como por ejemplo los tipos char, int y float. El lenguaje C++ permite, además, construir estructuras más complejas a partir de estos tipos básicos.
Una de las construcciones que podemos definir son los arreglos.
Arreglo: Colección ordenada de elementos de un mismo tipo. Ordenada significa que cada elemento tiene una ubicación determinada dentro del arreglo y debemos conocerla para accederlo.
Sintaxis:
Definición de un arreglo:
<tipo> nombre_variable[longitud];
Con esto diremos que nombre_variable es un arreglo de longitud elementos del tipo <tipo>. Cabe destacar que longitud debe ser cualquier expresión entera constante mayor que cero.
Asignación de un arreglo:
nombre_variable[índice] = expresión del tipo <tipo>
Esta instrucción asigna el valor asociado de la expresión a la posición índice del arreglo nombre_variable. El índice debe ser una expresión del tipo entero en el rango [0, longitud-1]. Cabe destacar que C++ no chequea que el valor de la expresión sea menor a longitud, simplemente asigna el valor a esa posición de memoria como si formara parte del arreglo, pisando, de esta manera, otros datos que no forman parte del mismo, con lo que finalmente el programa no funciona correctamente.
Acceso al contenido de un arreglo:
nombre_variable[índice] es valor del tipo <tipo>
Puede ser asignado a una variable, o pasado como parámetro, imprimirlo, etc. Aquí también vale la aclaración de que el índice debe estar dentro del rango de definición del arreglo, C++ no chequeará que esto sea cierto y devolverá lo contenido en la posición de memoria correspondiente a un arreglo de mayor longitud, el dato obtenido de esta manera es basura.
Ejemplo:
int a[5]; // Definición de un arreglo de 5 posiciones
void main()
{
int i;
// Pedimos el ingreso de 5 números
for(i=0; i<4; i++) //No olvidar que los arreglos van de 0 a longitud-1
{
cout << Ingrese el elemento Nro: << i <<endl;
cin >> a[i];
}
// Los imprimimos
imprimir(a,5);
}
void imprimir(int b[], int tamano)
{
int i;
for(i=0; i<tamano; i++)
{
cout << Nro: << i <<” “<<b[i]<<endl;
}
}
Notar que el parámetro b de la función imprimir es un arreglo, pero no se indica la longitud del mismo. Esto no es necesario ya que solo especificamos que recibiremos un arreglo sin importar su longitud (en este caso particular su longitud viene indicada en tamano). De esta manera la función imprimir funciona para arreglos de cualquier longitud.
Donald Ervin Knuth,
Nacido el 10 de enero de 1938 en Milwaukee, Wisconsin, es uno de los más reconocidos expertos en ciencias de la computación por su fructífera investigación dentro del análisis de algoritmos y compiladores.
Es Profesor Emérito de la Universidad de Stanford.
Se le conoce principalmente por ser el autor de la obra The Art of Computer Programming (El arte de programar computadoras), una de las más respetadas referencias en el campo de las ciencias de la computación. Sentó las bases y dio nombre al análisis de algoritmos, y ha realizado numerosos aportes a varias ramas teóricas de la informática. Es el creador de TEX, del sistema de diseño de tipos METAFONT y del estilo de programación conocido como programación literaria (Literate programming).
Knuth es un programador conocido por su humor geek: ofrece una recompensa de 2,56 dólares a quien encuentre errores conceptuales o tipográficos en sus libros (la razón detrás de la extraña cifra es que «256 centavos son 1 dólar hexadecimal»), y por otro lado ofrecía 3,16 por errores en 3:16 Bible Texts Illuminated. Numeró las distintas versiones de TEX de manera que se aproximaran al número π (3, 3.1, 3.14, etc.), al igual que los números de versión de MetaFont se van aproximando a e. Su cita más célebre, al enviarle sus comentarios a un colega autor de un algoritmo, es: «Cuidado con los errores en el código anterior; sólo he demostrado que es correcto, no lo he probado».
El Premio Donald Ervin Knuth
Es un premio que se otorga a aquellos que realizan contribuciones destacadas sobre los fundamentos de ciencias de la computación. Su nombre se debe al matemático Donald Knuth.
El Premio Knuth se otorga cada un año y medio desde 1996, e incluye, además del distintivo, un aporte de 5 mil dólares. El premio es dado por la ACM SIGACT (Association for Computing Machinery's Special Interest Group on Algorithms and Computing Theory) y el Instituto de Ingenieros Eléctricos y Electrónicos (IEEE). Las condecoraciones se realizan alternadamente en el Simposium en Teoría de Computación de la ACM y la Conferencia en Fundamentos de Ciencias de Computación de la IEEE, dos de las conferencias más prestigiosas en el área de teoría de la computación.
Así como el Premio Gödel reconoce a los autores de artículos destacados, el Premio Knuth se da a los investigadores por su importante aporte general en el área.
Galardonados
• 1996 - Andrew Chi-Chih Yao
• 1997 - Leslie Valiant
• 1999 - László Lovász
• 2000 - Jeffrey Ullman
• 2002 - Christos Papadimitriou
• 2003 - Miklós Ajtai
• 2005 - Mihalis Yannakakis
• 2007 - Nancy Lynch
• 2008 - Volker Strassen
• 2010 - David Johnson
• 2011 - Ravi Kannan1
• 2012 – Leonid Levin2
Niklaus Wirth
Winterthur Suiza, 15 de febrero de 1934, científico de la computación, en 1959 obtiene el título de Ingeniero en Electrónica en la Escuela Politécnica Federal de Zúrich (ETH) en Suiza. En 1960 obtuvo un M.Sc. de la Universidad de Laval, Canadá. En 1963 obtiene un Doctorado (Ph.D.) en la Universidad de California, Berkeley.
De 1963 a 1967 sirvió como profesor auxiliar de Informática en la Universidad de Stanford y de nuevo en la Universidad de Zúrich. A partir de 1968 se convirtió en profesor de Informática en la ETH en Suiza, tomándose dos años sabáticos en la Xerox PARC de California.
Wirth fue el jefe de diseño de los lenguajes de programación Euler, Algol W, Pascal, Modula, Modula-2 y Oberon. También ocupó gran parte de su tiempo en el equipo de diseño e implementación de sistemas operativos Lilith y Oberon para el Lola en el diseño del hardware digital y el sistema de simulación.
Su artículo de desarrollo de un programa por refinamiento sucesivo ("program development by stepwise refinement") es considerado un texto clásico en la ingeniería del software, así como su libro Algoritmos + Estructuras de datos = Programas, que recibió un amplio reconocimiento, y que aun hoy en día es útil en la enseñanza de la programación. Recibió el Premio Turing por el desarrollo de estos lenguajes de programación en 1984. Se jubiló en 1999.
Utilizar cadenas C#
Visual Studio 2005 Otras versiones Visual Studio 2010 Visual Studio 2008 Visual Studio 2012
Una cadena de C# es una matriz de caracteres que se declara utilizando la palabra clave string. Un literal de cadena se declara utilizando las comillas, como se muestra en el siguiente ejemplo:
C#Copiar string s = "Hello, World!";
Puede extraer subcadenas y concatenar cadenas de la siguiente manera:
C#Copiar string s1 = "orange";
string s2 = "red";
s1 += s2;
System.Console.WriteLine(s1); // outputs "orangered"
s1 = s1.Substring(2, 5);
System.Console.WriteLine(s1); // outputs "anger"
Los objetos de cadena son inmutables, lo que significa que no se pueden cambiar una vez creados. Los métodos que actúan sobre las cadenas, devuelven los nuevos objetos de cadena. En el ejemplo anterior, cuando el contenido de s1 y s2 se concatenan para formar una sola cadena, las dos cadenas que contienen "orange" y "red" no se modifican. El operador += crea una nueva cadena que contiene el contenido combinado. Como resultado, s1 ahora hace referencia a una cadena totalmente diferente. Todavía existe una cadena que sólo contiene "orange" , pero deja de hacerse referencia a ella cuando se concatena s1.
Nota
Tenga cuidado cuando cree referencias a cadenas. Si crea una referencia a una cadena y después "modifica" la cadena, la referencia seguirá señalando al objeto original y no al nuevo objeto que se creó cuando se modificó la cadena. Esta situación peligrosa se ilustra en el código siguiente:
Copiar string s1 = "Hello";
string s2 = s1;
s1 +=
...