Hola y bienvenido.
Estamos comenzando una nueva sección.
Nuestra sección se basa en funciones.
Entonces vamos a hablar de algunos de los conceptos básicos de las funciones primero.
Una función es autónoma unidad de código de programa
diseñado para realizar una tarea en particular, esa es una definición de alto nivel.
La función será básicamente algo que puede invocar y que le
ayuda a reducir la duplicación de código.
Pero lo que hace es autónomo
dentro del código mismo, y solo tiene algunas tareas que va a lograr.
Las reglas de sintaxis van a definir la estructura de
una función y cómo se puede utilizar.
Entonces, dependiendo de la programación idioma que utiliza, las funciones
pueden definirse de forma diferente.
Para c, vamos a hablar sobre reglas específicas para c.
La mayoría de los lenguajes de programación son compatibles este concepto de función, y te contaré
las ventajas y por qué son compatibles.
Una función en c es lo mismo que subrutinas o procedimientos en
otros lenguajes de programación.
Así que a menudo escuchas estos términos subrutinas y procedimientos, lo
mismo que una función.
Unidad autónoma que se ejecuta algún código, al que puedes llamar.
Algunas funciones provocan acción que se llevará a cabo.
Entonces estamos familiarizados con un par funciona hasta este punto.
Hemos estudiado la printf función que muestra la salida
en su pantalla que toma una acción, hace algo por ti.
Y luego el resultado también miramos en la función scanf que
toma entrada del teclado.
Una vez más, hace otra acción.
Aunque otras funciones en realidad, puede encontrar un valor
para que lo utilice un programa.
Entonces, por ejemplo, cuando estudiamos cadenas y matrices de caracteres, vamos a
ver funciones para cadenas manipulación y cambio de cosas.
Hay una función en particular llamada longitud de agitación y eso le dirá al
programador cómo de largo es una determinada cadena.
No realiza una acción simplemente te devuelve información.
Entonces las funciones van a realizar tareas dependiendo de la tarea lo
que necesita realizar en su programa, va
a provocar una acción o va a modificar un valor del programa o devolver un valor o decirle alguna
información de estado.
Ventajas de las funciones.
Vamos a usar funciones porque tiene un montón de ventajas.
Las funciones permiten estrategia de dividir y conquistar.
Entonces, si tuvieras que escribir y ir y escribir un programa de
tamaño mediano o un programa grande, va a ser muy, muy difícil de mantener.
Va a ser difícil de probar depure y encuentre y corrija cualquier error si tiene
una sola función grande.
Así que rompiendo y haciendo esto dividir la estrategia de
conquista hará que sea mucho más fácil encuentre y corrija errores en su código.
¿Y te imaginas un solo programa c que todo lo que tenía era la función principal
y había 5000 líneas en ella.
No tendríamos ni idea de cómo para atacar ese problema.
Es una organización muy, muy mala.
No tienes cohesión y simplemente estás zambulléndote ahí mismo para tratar de
resolver un problema.
Entonces usaremos funciones.
Dividir y conquistar básicamente significa que las tareas se pueden dividir en
varias subtareas independientes.
Reduce el total complejidad del código.
Puede crear funciones independientes para cada subtarea, y luego puede
incluso crear más funciones para dividir la subtarea en subtareas más pequeñas.
Cada vez que crea estos funciones, reduce la complejidad.
Tu objetivo debe ser cuando estés creando estas funciones
y usando el divide y vencerás La estrategia es hacer que sus
funciones sean lo más coherentes posible.
Y eso significa asegurarse cada función está haciendo solo una tarea, no tiene una función
hacer 5 diferentes tareas o 10 tareas diferentes.
Si escribe una función que dice entrada desde el teclado, haga que lea
la entrada desde el teclado, no haga que verifique una cadena o muestre la salida
o algo por el estilo.
Las funciones deben ser pequeñas y necesitan ser muy cohesivos.
Pero el divide y vencerás La estrategia es realmente buena
porque reduce esa complejidad.
En lugar de tener una función principal con 5000 líneas de código,
puede tener muchas, muchas funciones que están realizando tareas específicas y
las puede identificar muy rápidamente.
Entonces las funciones van a reducir la duplicación de código.
Y cuando reduce la duplicación de código, le ahorrará
tiempo al escribir, probar y depurar ese código.
También va a volver a reducir el tamaño del código fuente.
¿Y por qué se reducen las funciones? duplicación de código porque
si tiene una tarea en lugar de hacer eso tarea una y otra y
otra vez y escribiendo el mismo código una y otra vez y una vez
más, encapsula esa tarea en una función y simplemente invocar la función, y la función
lo hará por usted cada vez, usted no tiene ninguna duplicación allí.
Si tienes que hacer una determinada tarea varias
veces en un programa, solo necesita escribir un funcionar una vez,
tal como lo mencioné. No es necesario escribe ese código varias veces.
Entonces, un programa puede usar esa función siempre que sea necesario.
Y también puedes usar el mismo funcionan en diferentes programas, y eso es
lo que constituye una biblioteca.
Hemos estado haciendo eso hemos estado usando
la función printf, que es de la biblioteca de entrada y salida estándar.
Y eso solo está escrito una vez, y lo invocamos una y otra vez.
Si esa función no existiera, lo haríamos tenemos
que tomar la implementación de esa función y ponerla en nuestro programa y sigue repitiéndolo.
Entonces las funciones pueden ahorrar mucho de tiempo
y pueden reducir su código fuente y usted puede reutilícelos una y otra vez.
Entonces también es un software técnica de reutilización.
También ayuda con la legibilidad.
Cuando modulas tu programa que es lo que está
haciendo cuando crea estas funciones separadas para realizar tareas específicas, el programa
se organiza mucho mejor.
Como mencioné, si tuvieras un rutina, una función principal y tenía toneladas
de código, va a ser mucho más difícil de seguir que
una rutina principal que llama a 5 funciones y esas funciones realizan tareas específicas.
Así que ayuda con la organización del programa.
Ayuda con el mantenimiento del programa.
Es mucho más fácil de leer y más fácil. para cambiar o corregir cualquier código fuente.
Y recuerda, el mantenimiento La fase es la fase más cara del
ciclo de vida del software, esta es donde está arreglando
sus errores, el programa ha sido lanzado y donde está agregando nuevas funciones.
Cuanto mejor organizado sea tu programa es,
más fácil será mantenerlo.
Entonces esta organización, esta legibilidad, esto es capaz de seguir lo
que sucede en su código fuente es muy importante
y las funciones ayudan mucho.
El enfoque de divide y vencerás también
permite desarrollar, probar partes del programa y depurado de forma independiente.
Cuando salgas en lo real mundo y comienzas
a trabajar en el código, notarás que los programas son realmente grandes.
Y hay mucha gente trabajando en estos programas,
cientos tal vez incluso miles.
Cuando tengas a toda esta gente trabajando en un programa, es mucho más fácil
trabajar en ese programa si Haz este enfoque de dividir conquistar si tienes
pequeñas tareas que la gente lo hace y es independiente.
No estas tocando lo mismo código fuente y puede seguir adelante
e implementar tareas mucho más fácilmente.
Y cuando haces esto y tienes varias personas trabajando en un
proyecto, puede reducir el desarrollo general tiempo que nuevamente reduce los costos
de mantenimiento, reduce los costos de desarrollo.
Las funciones también se pueden reutilizar que de nuevo reducirá el tiempo.
Y de nuevo hacemos eso con el función printf, reutilízala.
Pero tu cuando escribes tu propio usuario funciones definidas, puede reutilizarlas una y
otra vez en el programa.
Así que la reutilización de software es un gran gran ventaja de las funciones.
Cuando estas pensando sobre estas funciones.
La otra cosa buena de diseñar su programa de funciones es si quiere pensar en
él como una caja negra.
Lo que significa cuando tu cuando tu Piense en ello como una caja negra, todo lo
que está pensando es en la entrada a la función y la salida.
Y cuando te enfocas solo en el entrada en la salida, le permite
ver el diseño como un todo antes de comenzar a implementar.
Y así las funciones en general te lleva a este tipo de pensamiento en el
que puedes concentrarte en el diseño.
Y mencioné que el diseño es importante.
El diseño es cuando empiezas a planificar su programa, cómo lo
va a organizar, cómo vas a escribir el código.
Y es importante hacer esta planificación incluso antes de comenzar la implementación que está
escribiendo el código.
Y pensando en funciones y pensando solo en entradas y
salidas, puede pensar en cómo se va a organizar el programa y las
funciones que necesita crear.
Para que no tengas que preocuparte por solo implementación en los detalles.
Y esto es importante porque el Lo primero que
debe hacer antes de escribir código es pensar sobre diseño, no querrás empezar a
pensar en implementar.
Muchos problemas que los estudiantes tienen cuando escriben código por
primera vez simplemente comience la implementación.
Ni siquiera piensan en el problema, no piensan
cómo van a resolver el problema, simplemente comienzan a escribir código.
Nunca es un buen enfoque.
Cuando estás pensando en escribir código y funciones, piense
en ello como entradas y salidas de la función y te
ayudará con tu diseño.
Así que veamos algunos ejemplos.
Hemos utilizado funciones integradas como como printf y scanf, como mencioné.
Esos están en el estándar biblioteca de entrada y salida proporcionada por
el lenguaje de programación c.
Así que estamos familiarizados con lo que una función es porque la hemos usado,
pero no hemos pasado por la multa detalles detallados de
cómo define una función o cómo pasa realmente datos a una función, nada de eso.
Pero con la función printf, debería haber notado
que sí toma datos.
Puede pasar datos a la función.
Los datos son los argumentos entre los paréntesis que siguen al
nombre de la función.
Vamos a tener un todo otra charla sobre
argumentos y parámetros para explicarlos más.
Pero a un alto nivel, comprenda que puede pasar datos a una función.
Y entender que mirando en la función printf.
El primer argumento de la printf función que son
los datos que le estamos pasando era una cadena literal, era todo eso todos
esos caracteres dentro de comillas dobles.
Y luego también tuvimos argumentos que podría haber habido 0 o muchos argumentos variables,
que fueron una serie de variables o expresiones cuyos valores se
iban a mostrar.
Así que recuerda, si tuviéramos algún formato especificadores en el
primer argumento tendremos entonces las variables en esto en los argumentos posteriores.
Entonces pudiste pasar datos a la función printf.
También debería haber notado cómo puede recibir información de una función,
los datos se le pueden devolver.
En la función scanf, uno Uno de los argumentos era cómo ibas a
almacenar los datos.
Y entonces lo pasarías un variable y esa variable tendría un
valor cualquiera el usuario escribió en el teclado.
Así que eso es lo que se puede pensar como valor de retorno en una función.
Entonces las funciones son muy valiosas porque pueden introducir datos en ellos
y luego pueden devolverlos.
Entonces, un ejemplo de codificación de una función y esta sería solo una función que
vamos a invocar, pero esta es la función principal.
Estamos familiarizados con el funciones principales, el punto
de entrada del programa.
Pero mira lo bonito que es esto.
Estamos llamando a funciones leer orden de lista y promedio.
Solo tenemos 3 líneas de código.
Tenemos que ir e implementar esos funciones, pero hace que el programa esté más
organizado porque inmediatamente saber lo que está haciendo este programa.
Este programa va a leer una lista, luego va a
ordenar una lista, luego va a muestra el promedio de la lista,
y la lista contiene flotantes.
Entonces es muy legible, va ser muy fácil de mantener.
Si tenemos algún error en el programa, inmediatamente sabremos cómo
encontrar o aislar ese error.
Si el error no se soluciona, puede ir a la función de clasificación.
Si el error está en el promedio, podemos ir a la función promedio,
muy fácil de aislar errores.
Entonces, cuando implementamos esos funciones en la diapositiva
anterior, solo las llamábamos.
Para implementar funciones, tienes que escribir el código dentro del cuerpo
de la función.
Puede utilizar funciones que son implementados por el lenguaje c como printf
o puede crear sus propias funciones definidas por el usuario.
No tiene que implementar el printf funciones o cualquiera
de las funciones en la biblioteca, usted solo implemente sus propias funciones.
Entonces, en este ejemplo anterior con el orden de la lista de lectura y el
promedio, tendríamos que ir y tiene que implementar esa función.
Tendríamos que proporcionar una función encabezado, un cuerpo de función que en realidad
hace la lectura de la lista, la clasificación de
la lista y el promedio de la lista.
No terminamos simplemente definiendo funciones, tenemos que implementarlas.
Y cuando implementa el funciones, siempre desea
utilizar nombres de funciones descriptivos para dejar claro qué hace el programa
y cómo está organizado.
En el ejemplo anterior, tuvimos un función llamada lista de lectura, bastante claro lo que
está haciendo, orden de nombre de función.
No nombramos la función x yo z.
Describimos esa función.
Es lo mismo cuando estás describiendo
o creando variables, nombres significativos.
Y también si haces estas funciones donde son lo suficientemente
genéricos donde realmente están haciendo algo y están tomando datos genéricos,
de hecho, podría reutilizarlos en otros programas, como
una función de biblioteca.
Nuevamente, apoya la reutilización del software.
Entonces, en estas próximas conferencias, vamos a hablar sobre cómo
podemos definir una función, el sintaxis específica, cómo podemos invocar y llamar
a una función y cómo podemos pasar y devolver datos de ellos.
Eso es en lo que nos vamos a enfocar en las próximas conferencias.
También quería mencionar que nuestra rutina principal que hemos estado
viendo una y otra vez en cada c programa, eso es una función.
La función principal es especialmente nombre reconocido en el
sistema c, indica dónde El programa debe comenzar a ejecutarse.
Todos los programas de c siempre tienen un main.
La función principal puede tomar datos cuando le pasa, los
argumentos de la línea de comando o no tiene que tomar datos.
También tiene opcional datos que puede devolver.
Notarás que usamos funciones principales que devuelven 0.
Por lo general, se usa cuando desea devolver códigos de error.
Pero hemos usado funciones específicas ya y la función
más importante es esa función principal y eso nuevamente ayuda a organizar el código.
Siempre sabemos donde el El programa está comenzando porque solo tenemos
que encontrar el archivo main.
Esta es una descripción de alto nivel de funciones tipo de identificación de las ventajas
de las funciones y qué es exactamente una función.
Ahora queremos hablar sobre la implementación.
Gracias.