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:57] – [Formato de una función en C] lmateu | principios [2022/09/27 13:01] (actual) – [Agrupación de instrucciones] lmateu | ||
---|---|---|---|
Línea 71: | Línea 71: | ||
* //double// para números reales: 3.14, 2.71, 1.0, -300.2, 10.3e6, etc. | * //double// para números reales: 3.14, 2.71, 1.0, -300.2, 10.3e6, etc. | ||
* //void// se usa para indicar que una función no entrega ningún valor. | * //void// se usa para indicar que una función no entrega ningún valor. | ||
+ | |||
+ | En C también existen los arreglos. | ||
Los tipos dinámicos de Python le otorgan flexibilidad y comodidad. | Los tipos dinámicos de Python le otorgan flexibilidad y comodidad. | ||
Línea 105: | 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 155: | 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 164: | 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 196: | 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 245: | 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 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:// | + | 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 358: | 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 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.1583794625.txt.gz · Última modificación: 2020/03/09 22:57 por lmateu