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:14] – [Ciclo while] 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 y los ejercicios le ayudarán repasar lo visto hasta ahora. +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 ejecuta las soluciones que Ud. dará para cada ejercicio, ayudándole consolidar lo aprendido.
 ===== Ejemplo con varias funciones: quicksort ===== ===== Ejemplo con varias funciones: quicksort =====
  
Línea 358: 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 384: 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.1583795640.txt.gz · Última modificación: 2020/03/09 23:14 por lmateu