Hola Agustín,<br><br><div class="gmail_quote">2011/8/27 Agustín Sánchez <span dir="ltr"><<a href="mailto:agus_pehua_06@hotmail.com">agus_pehua_06@hotmail.com</a>></span><br><blockquote style="margin: 0px 0px 0px 0.8ex; padding-left: 1ex; border-left-color: rgb(204, 204, 204); border-left-width: 1px; border-left-style: solid;" class="gmail_quote">




<div><div dir="ltr">
Buenas noches a todos, les pido disculpas por la forma en que me dirigí a ustedes, y es lógico que se haya mal interpretado mi intención en utilizar esta lista de correo para comunicarme con ustedes. Es que son tantas las dudas que me surgen desde el tema de Vectores y Matrices, y todos los trabajos posteriores al mismo tratan de ese tema como base, y cuando me quiero poner a resolverlo, me resulta imposible, porque carezco de los conocimientos de Programación de vectores y matrices en C. Les mando preguntitas sueltas, que, a mi entender, son las más relevantes.<br>
</div></div></blockquote><div> </div><div>Veamos las dudas.</div><div> </div><blockquote style="margin: 0px 0px 0px 0.8ex; padding-left: 1ex; border-left-color: rgb(204, 204, 204); border-left-width: 1px; border-left-style: solid;" class="gmail_quote">
<div><div dir="ltr">¿Cómo declarar y trabajar con vectores y subíndices?<br></div></div></blockquote><div> </div><div>La sintaxis de la declaración de un array (o vector) es:</div><div> </div><div><tipo> <nombre> [ <expresión_constante_entera> ];</div>
<div> </div><div>Aquí,</div><div> </div><div><tipo> es el tipo de dato de cada elemento del array,</div><div><nombre> es el nombre del array en sí,</div><div><expresión_constante_entera> representa la cantidad máxima de elementos en el array.</div>
<div> </div><div>Por ejemplo,</div><div> </div><div>int enteros[500];</div><div> </div><div>Acabamos de declarar y de definir un array llamado 'enteros' que consiste de 500 elementos de tipo 'int'; o sea, un array de 500 enteros.</div>
<div> </div><div>Para usar este array y acceder a sus elementos, usamos el nombre del array, el operador [], y una expresión entera que representa el índice con base 0 (cero), lo cual indica el primer elemento. Por ejemplo,</div>
<div> </div><div>enteros[0] = 10;</div><div> </div><div>Con esto, accedemos al primer elemento, de índice 0 (cero), del array, 'enteros', y asignamos el valor de 10 a tal elemento.</div><div> </div><div>enteros[1] = enteros[0] * 3;</div>
<div> </div><div>Ahora accedemos al segundo elemento - índice 1 - para asignar el resultado de multiplicación del primer elemento del array, 'enteros', y el valor literal 3. En este caso, el resultado es 30, cuyo valor se asigna a este segundo elemento de 'enteros'.</div>
<div> </div><div>Sugiero que eches un vistazo a estos capítulos de nuestro curso de C++. No te preocupes, los temas son válidos para C también:</div><div>- Cap. 8: <a href="http://c.conclase.net/curso/?cap=008#inicio">http://c.conclase.net/curso/?cap=008#inicio</a></div>
<div>- Cap. 10: <a href="http://c.conclase.net/curso/?cap=010#inicio">http://c.conclase.net/curso/?cap=010#inicio</a></div><div> </div><div>Hay una relación muy estrecha entre arrays y punteros, por lo que sugiero que también eches un vistazo a este tema de punteros:</div>
<div>- Cap. 13: <a href="http://c.conclase.net/curso/?cap=013#inicio">http://c.conclase.net/curso/?cap=013#inicio</a></div><div><div>- Cap. 14: <a href="http://c.conclase.net/curso/?cap=014#inicio">http://c.conclase.net/curso/?cap=014#inicio</a></div>
</div><div><div>- Cap. 17: <a href="http://c.conclase.net/curso/?cap=017#inicio">http://c.conclase.net/curso/?cap=017#inicio</a></div></div><div> </div><blockquote style="margin: 0px 0px 0px 0.8ex; padding-left: 1ex; border-left-color: rgb(204, 204, 204); border-left-width: 1px; border-left-style: solid;" class="gmail_quote">
<div><div dir="ltr">¿Cómo declarar y asignar estructuras?<br></div></div></blockquote><div> </div><div>La sintaxis para la declaración es:</div><div> </div><div>struct <nombre> { <declaración_o_varias_declaraciones>; };</div>
<div> </div><div><nombre> es el nombre de la estructura, que en ocasiones puede omitirse, pero no lo recomiendo,</div><div><declaración_o_varias_declaraciones> significa que hay varias declaraciones para cada campo de la estructura; pueden ser enteros, de coma flotante, caracteres, arrays, otras estructuras, punteros, etc..</div>
<div> </div><div>Por ejemplo,</div><div> </div><div>struct Persona</div><div>{</div><div>  char szNombre[64];</div><div>  char szApellidos[128];</div><div>  char szDomicilio[256];</div><div>  char cSexo;</div><div>};</div>
<div> </div><div>Ahora definimos una variable de este tipo,</div><div> </div><div>struct Persona una_persona;</div><div> </div><div>Para usar esta estructura (la variable), usamos su nombre, como cualquier variable. Para acceder a cada campo de la estructura, usamos un operador especial que es el punto. Por ejemplo,</div>
<div> </div><div>una_persona.cSexo = 'V';</div><div> </div><div>Accedemos a 'cSexo' para asignar el carácter 'V' a tal campo.</div><div> </div><div>Sugiero que consultes el capítulo 11 de nuestro curso de C++: <a href="http://c.conclase.net/curso/?cap=011#inicio">http://c.conclase.net/curso/?cap=011#inicio</a>  Me temo que sí hay diferencias entre C y C++ en este aspecto; por ejemplo,</div>
<div> </div><div>- C no permite funciones como miembros, pero C++ sí.</div><div>- C requiere el vocablo 'struct' al usar el nombre de la estructura, mientras que en C++ esto es optativo. Por ejemplo,</div><div> </div>
<div>struct Persona una_persona;  // C y C++</div><div>Persona una_persona;  // C++ solamente</div><div> </div><blockquote style="margin: 0px 0px 0px 0.8ex; padding-left: 1ex; border-left-color: rgb(204, 204, 204); border-left-width: 1px; border-left-style: solid;" class="gmail_quote">
<div><div dir="ltr">¿Cuándo usar puts en vez de printf y cuando gets en vez de scanf?<br></div></div></blockquote><div> </div><div>Si vas a mostrar una cadena de caracteres, usa 'puts()', la cual agregará un carácter de nueva línea, '\n', al final. La función 'printf()' sirve para construir una cadena de caracteres a partir de una cadena de formato.</div>
<div> </div><div>Lo mismo sucede con 'gets()' y 'scanf()', pero para la lectura. Eso sí, se desaconseja el uso de 'gets()' que en su lugar se debería usar 'fgets()', aunque se guarde el carácter de fin-de-línea en la cadena.</div>
<div> </div><div> </div><div>Espero que todo esto te aclare las dudas.</div><div> </div><div>Steven</div><div> </div></div>