Herramientas de usuario

Herramientas del sitio


principios

Diferencias

Muestra las diferencias entre dos versiones de la página.

Enlace a la vista de comparación

Ambos lados, revisión anteriorRevisión previa
Próxima revisión
Revisión previa
principios [2020/03/09 23:20] – [Trabajo personal] lmateuprincipios [2022/09/27 13:01] (actual) – [Agrupación de instrucciones] lmateu
Línea 245: Línea 245:
 </code> </code>
  
-El estilo de la izquierda sí se usa ampliamente y es legible.  El estilo del medio casi no se usa.  El estilo de la derecha es horrible y merece la reprobación.  El principio de la indentación es hacer los programas más legibles.  Pueden haber muchos estilos bonitos y legibles, pero si cada alumno usa estilos distintos, será más dificil que el equipo docente entienda sus programas y por lo tanto podrían recibir una calificación injusta porque no se entiendó su programa.  Por ello urge acordar un solo estilo y este será el de Kernighan.+El estilo de la izquierda sí se usa ampliamente y es legible.  El estilo del medio casi no se usa.  El estilo de la derecha es horrible y merece la reprobación.  El principio de la indentación es hacer los programas más legibles.  Pueden haber muchos estilos bonitos y legibles, pero si cada alumno usa estilos distintos, será más difícil que el equipo docente entienda sus programas y por lo tanto podrían recibir una calificación injusta porque no se entendió su programa.  Por ello urge acordar un solo estilo y este será el de Kernighan.
  
 ==== El ciclo for ==== ==== El ciclo for ====
Línea 298: Línea 298:
  
 Debe realizar el siguiente trabajo personal antes de la segunda clase de este curso (clase del jueves): Debe realizar el siguiente trabajo personal antes de la segunda clase de este curso (clase del jueves):
-estudie y complete los ejercicios de la parte //Learn the Basics// de este [[https://www.learn-c.org/|tutorial del lenguaje C]].  Es un tutorial muy corto que va un poco más allá de lo que contiene esta sección.  Además la misma página compila y ejecuta las soluciones que Ud. dará para cada ejercicio, ayudándole a consolidar lo aprendido.+estudie y complete los ejercicios de la parte //Learn the Basics// de este [[https://www.learn-c.org/|tutorial del lenguaje C]].  No haga la última sección //Static// y tampoco la parte //Advanced//.  Es un tutorial muy corto que va un poco más allá de lo que contiene esta sección.  Además la misma página compila y ejecuta las soluciones que Ud. dará para cada ejercicio, ayudándole a consolidar lo aprendido.
 ===== Ejemplo con varias funciones: quicksort ===== ===== Ejemplo con varias funciones: quicksort =====
  
Línea 357: Línea 357:
   - Esto se denomina declaración de encabezado de función.  Se requiere porque la función //swap// se usa en la función //quicksort// antes de su definición.  Sin este encabezado el compilador reclamaría.  El encabezado es similar a una definición de función, pero la parte { instrucciones } se reemplaza por punto y coma.   - Esto se denomina declaración de encabezado de función.  Se requiere porque la función //swap// se usa en la función //quicksort// antes de su definición.  Sin este encabezado el compilador reclamaría.  El encabezado es similar a una definición de función, pero la parte { instrucciones } se reemplaza por punto y coma.
   - Se usa la instrucción //return// para anticipar el retorno de una función.  Como la función es //void//, no se especifica el valor retornado.   - Se usa la instrucción //return// para anticipar el retorno de una función.  Como la función es //void//, no se especifica el valor retornado.
-  - Acá es donde se usa la función //swap// Por eso se incluyo la declaración de su encabezado en la nota 1.+  - Acá es donde se usa la función //swap// Por eso se incluyó la declaración de su encabezado en la nota 1.
   - Observe que las llaves no son necesarias acá.  Pero su uso le entrega legibilidad al programa.   - Observe que las llaves no son necesarias acá.  Pero su uso le entrega legibilidad al programa.
   - C es recursivo.  La invocación recursiva de funciones es igualmente eficiente que cualquier otra función.   - C es recursivo.  La invocación recursiva de funciones es igualmente eficiente que cualquier otra función.
   - Esta es la definición de //swap//, que fue usada antes en la nota 3, por lo que se necesitó la declaración de su encabezado en la nota 1.   - Esta es la definición de //swap//, que fue usada antes en la nota 3, por lo que se necesitó la declaración de su encabezado en la nota 1.
-  - Esa es la sintaxis para declarar un arreglo de //n// elementos de tipo //double// Los arreglos son de tamaño fijo, lo que significa que una vez que se declaran no pueden crecer.  El primer elemento es a[0] y el último a[n-1].  ¡Cuidado!  Se no verifica el correcto uso de los índice si Ud. accede a //a[n]// el resultado puede ser cualquiera.  O peor aún, si modifica //a[n]// el programa podría terminar en //segmentation fault//.+  - Esa es la sintaxis para declarar un arreglo de //n// elementos de tipo //double// Los arreglos son de tamaño fijo, lo que significa que una vez que se declaran no pueden crecer.  El primer elemento es a[0] y el último a[n-1].  ¡Cuidado!  No se verifica el correcto uso de los índices.  Si Ud. accede a //a[n]// el resultado puede ser cualquiera.  O peor aún, si modifica //a[n]// el programa podría terminar en //segmentation fault//.
   - Use el formato %g para desplegar reales con //printf//.   - Use el formato %g para desplegar reales con //printf//.
-  - La función //main// debe retornar obligatoriamente un entero. Este se llama el código de retorno del programa y se puede mostrar en el shell echo el comando echo %%$?%%.  Por convención un valor 0 indica que el programa tuvo éxito.  Un valor distinto de 0 significa que ocurrió algún problema.+  - La función //main// debe retornar obligatoriamente un entero. Este se llama el código de retorno del programa y se puede mostrar en el shell con el comando echo %%$?%%.  Por convención un valor 0 indica que el programa tuvo éxito.  Un valor distinto de 0 significa que ocurrió algún problema.
  
 He aquí cómo compilar y un ejemplo de ejecución con el resultado del programa: He aquí cómo compilar y un ejemplo de ejecución con el resultado del programa:
Línea 383: Línea 383:
 ===== Ejercicio final: factorial ===== ===== Ejercicio final: factorial =====
  
-  * Escriba en una archivo //fact.c// un programa que calcule recursivamente el factorial de un entero.+  * Escriba en un archivo //fact.c// un programa que calcule recursivamente el factorial de un entero.
   * El resultado debe ser un número real.   * El resultado debe ser un número real.
-  * Despliegue el resultado en pantalla con printf.+  * Despliegue el resultado en pantalla con //printf//.
  
 Ejemplo de uso: Ejemplo de uso:
principios.1583796053.txt.gz · Última modificación: 2020/03/09 23:20 por lmateu