principios
Diferencias
Muestra las diferencias entre dos versiones de la página.
| Ambos lados, revisión anteriorRevisión previaPróxima revisión | Revisión previa | ||
| principios [2020/03/09 22:58] – [El sistema de tipos de C] lmateu | principios [2022/09/27 13:01] (actual) – [Agrupación de instrucciones] lmateu | ||
|---|---|---|---|
| Línea 107: | Línea 107: | ||
| Su sintaxis es: //tipo// //nombre// = // | Su sintaxis es: //tipo// //nombre// = // | ||
| - | //Tipo// especifica el tipo de los valores que almacena la variable. | + | //Tipo// especifica el tipo de los valores que almacena la variable. |
| En el ejemplo se declara la variable //prev// de tipo //int// con valor inicial 0: | En el ejemplo se declara la variable //prev// de tipo //int// con valor inicial 0: | ||
| Línea 157: | Línea 157: | ||
| Algunas funciones son de tipo void, es decir no retornan ningún valor y por lo tanto no tiene sentido invocarlas como parte de una asignación. | Algunas funciones son de tipo void, es decir no retornan ningún valor y por lo tanto no tiene sentido invocarlas como parte de una asignación. | ||
| - | //nombre// ( // | + | //nombre// ( // |
| En donde // | En donde // | ||
| Línea 166: | Línea 166: | ||
| </ | </ | ||
| - | Acá la función se llama //printf// (print formatted) y cumple el mismo propósito que //print// en // | + | Acá la función se llama //printf// (print formatted) y cumple el mismo propósito que //print// en // |
| - | + | ||
| - | El primer parámetro de //printf// es siempre el formato. | + | |
| En realidad en C la invocación de función es válida porque es válida cualquier instrucción con la sintaxis: // | En realidad en C la invocación de función es válida porque es válida cualquier instrucción con la sintaxis: // | ||
| - | De hecho la asignación también es un caso particular de esa sintaxis | + | De hecho la asignación también es un caso particular de esa sintaxis |
| ==== Retorno de función ==== | ==== Retorno de función ==== | ||
| - | Para terminar la ejecución de una función se usa la instrucción return, que usa la siguiente sintaxis: | + | Para terminar la ejecución de una función se usa la instrucción |
| **return** // | **return** // | ||
| - | El valor retornado es el resultado de evaluar la expresión. | + | El valor retornado es el resultado de evaluar la expresión. |
| ===== Instrucciones compuestas ===== | ===== Instrucciones compuestas ===== | ||
| - | Se forman a partir de una o más instrucciones (simples o compuestas). | + | Se forman a partir de una o más instrucciones (simples o compuestas). |
| ==== Ciclo while ==== | ==== Ciclo while ==== | ||
| Línea 198: | Línea 196: | ||
| </ | </ | ||
| - | El último valor que tomará a es 128 porque cuando a sea mayor o igual que 100, ya no se ejecutará la instrucción a=a*2; | + | El último valor que tomará |
| Observe que la indentación no indica cuantas instrucciones están dentro del while. | Observe que la indentación no indica cuantas instrucciones están dentro del while. | ||
| Línea 247: | Línea 245: | ||
| </ | </ | ||
| - | El estilo de la izquierda sí se usa ampliamente y es legible. | + | El estilo de la izquierda sí se usa ampliamente y es legible. |
| ==== El ciclo for ==== | ==== El ciclo for ==== | ||
| Línea 300: | 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:// | + | estudie y complete los ejercicios de la parte //Learn the Basics// de este [[https:// |
| ===== Ejemplo con varias funciones: quicksort ===== | ===== Ejemplo con varias funciones: quicksort ===== | ||
| Línea 360: | Línea 357: | ||
| - Esto se denomina declaración de encabezado de función. | - Esto se denomina declaración de encabezado de función. | ||
| - Se usa la instrucción //return// para anticipar el retorno de una función. | - Se usa la instrucción //return// para anticipar el retorno de una función. | ||
| - | - Acá es donde se usa la función // | + | - Acá es donde se usa la función // |
| - 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. | - C es recursivo. | ||
| - 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 // | + | - Esa es la sintaxis para declarar un arreglo de //n// elementos de tipo // |
| - 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 %%$? | + | - 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 %%$? |
| 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 386: | 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.1583794721.txt.gz · Última modificación: por lmateu
