CursosEmpresasBlogLiveConfPrecios

Recapitulación: Funciones

Clase 22 de 27 • Curso de Programación Estructurada

Contenido del curso

Introducción

  • 1
    Qué aprenderás sobre la programación estructurada

    Qué aprenderás sobre la programación estructurada

    00:44 min

Conceptos básicos

  • 2
    Set up de codeblocks y compilador

    Set up de codeblocks y compilador

    02:59 min
  • 3
    Variables y tipos de datos (Asignación y clasificación)

    Variables y tipos de datos (Asignación y clasificación)

    12:10 min
  • 4
    Entrada y salida de datos

    Entrada y salida de datos

    21:55 min
  • 5
    Operadores aritméticos

    Operadores aritméticos

    09:57 min
  • 6
    Operadores de asignación, de incremento y decremento

    Operadores de asignación, de incremento y decremento

    17:48 min
  • 7

    Recapitulación: Conceptos Básicos

    02:02 min

Control de flujo

  • 8
    Condicional if e if - else

    Condicional if e if - else

    18:35 min
  • 9
    Operadores relacionales y lógicos

    Operadores relacionales y lógicos

    13:25 min
  • 10
    Switch

    Switch

    08:27 min
  • 11
    ¿Qué es un iterador? - Ciclo While

    ¿Qué es un iterador? - Ciclo While

    05:54 min
  • 12
    Ciclo For

    Ciclo For

    08:43 min
  • 13
    Ciclo Do-While

    Ciclo Do-While

    05:53 min
  • 14
    Arreglos unidimensionales

    Arreglos unidimensionales

    13:35 min
  • 15
    Arreglos bidimensionales

    Arreglos bidimensionales

    12:36 min
  • 16
    Arreglos e iteradores unidimensionales

    Arreglos e iteradores unidimensionales

    08:52 min
  • 17
    Arreglos e iteradores bidimensionales

    Arreglos e iteradores bidimensionales

    08:47 min
  • 18
    Cadena de caracteres (string)

    Cadena de caracteres (string)

    06:51 min
  • 19

    Recapitulación: Control de Flujo

    04:49 min

Funciones

  • 20
    Funciones: Divide y vencerás

    Funciones: Divide y vencerás

    13:53 min
  • 21
    Variables locales y globales

    Variables locales y globales

    10:14 min
  • 22

    Recapitulación: Funciones

    Viendo ahora

Conceptos avanzados

  • 23
    Recursividad

    Recursividad

    10:10 min
  • 24
    Apuntadores

    Apuntadores

    06:53 min
  • 25
    Struct y manejo de archivos

    Struct y manejo de archivos

    13:00 min
  • 26
    Escritura y lectura de archivos

    Escritura y lectura de archivos

    11:02 min
  • 27
    Manejo de librerías

    Manejo de librerías

    14:56 min
Tomar examen

Escuelas

  • Desarrollo Web
    • Fundamentos del Desarrollo Web Profesional
    • Diseño y Desarrollo Frontend
    • Desarrollo Frontend con JavaScript
    • Desarrollo Frontend con Vue.js
    • Desarrollo Frontend con Angular
    • Desarrollo Frontend con React.js
    • Desarrollo Backend con Node.js
    • Desarrollo Backend con Python
    • Desarrollo Backend con Java
    • Desarrollo Backend con PHP
    • Desarrollo Backend con Ruby
    • Bases de Datos para Web
    • Seguridad Web & API
    • Testing Automatizado y QA para Web
    • Arquitecturas Web Modernas y Escalabilidad
    • DevOps y Cloud para Desarrolladores Web
  • English Academy
    • Inglés Básico A1
    • Inglés Básico A2
    • Inglés Intermedio B1
    • Inglés Intermedio Alto B2
    • Inglés Avanzado C1
    • Inglés para Propósitos Específicos
    • Inglés de Negocios
  • Marketing Digital
    • Fundamentos de Marketing Digital
    • Marketing de Contenidos y Redacción Persuasiva
    • SEO y Posicionamiento Web
    • Social Media Marketing y Community Management
    • Publicidad Digital y Paid Media
    • Analítica Digital y Optimización (CRO)
    • Estrategia de Marketing y Growth
    • Marketing de Marca y Comunicación Estratégica
    • Marketing para E-commerce
    • Marketing B2B
    • Inteligencia Artificial Aplicada al Marketing
    • Automatización del Marketing
    • Marca Personal y Marketing Freelance
    • Ventas y Experiencia del Cliente
    • Creación de Contenido para Redes Sociales
  • Inteligencia Artificial y Data Science
    • Fundamentos de Data Science y AI
    • Análisis y Visualización de Datos
    • Machine Learning y Deep Learning
    • Data Engineer
    • Inteligencia Artificial para la Productividad
    • Desarrollo de Aplicaciones con IA
    • AI Software Engineer
  • Ciberseguridad
    • Fundamentos de Ciberseguridad
    • Hacking Ético y Pentesting (Red Team)
    • Análisis de Malware e Ingeniería Forense
    • Seguridad Defensiva y Cumplimiento (Blue Team)
    • Ciberseguridad Estratégica
  • Liderazgo y Habilidades Blandas
    • Fundamentos de Habilidades Profesionales
    • Liderazgo y Gestión de Equipos
    • Comunicación Avanzada y Oratoria
    • Negociación y Resolución de Conflictos
    • Inteligencia Emocional y Autogestión
    • Productividad y Herramientas Digitales
    • Gestión de Proyectos y Metodologías Ágiles
    • Desarrollo de Carrera y Marca Personal
    • Diversidad, Inclusión y Entorno Laboral Saludable
    • Filosofía y Estrategia para Líderes
  • Diseño de Producto y UX
    • Fundamentos de Diseño UX/UI
    • Investigación de Usuarios (UX Research)
    • Arquitectura de Información y Usabilidad
    • Diseño de Interfaces y Prototipado (UI Design)
    • Sistemas de Diseño y DesignOps
    • Redacción UX (UX Writing)
    • Creatividad e Innovación en Diseño
    • Diseño Accesible e Inclusivo
    • Diseño Asistido por Inteligencia Artificial
    • Gestión de Producto y Liderazgo en Diseño
    • Diseño de Interacciones Emergentes (VUI/VR)
    • Desarrollo Web para Diseñadores
    • Diseño y Prototipado No-Code
  • Contenido Audiovisual
    • Fundamentos de Producción Audiovisual
    • Producción de Video para Plataformas Digitales
    • Producción de Audio y Podcast
    • Fotografía y Diseño Gráfico para Contenido Digital
    • Motion Graphics y Animación
    • Contenido Interactivo y Realidad Aumentada
    • Estrategia, Marketing y Monetización de Contenidos
  • Desarrollo Móvil
    • Fundamentos de Desarrollo Móvil
    • Desarrollo Nativo Android con Kotlin
    • Desarrollo Nativo iOS con Swift
    • Desarrollo Multiplataforma con React Native
    • Desarrollo Multiplataforma con Flutter
    • Arquitectura y Patrones de Diseño Móvil
    • Integración de APIs y Persistencia Móvil
    • Testing y Despliegue en Móvil
    • Diseño UX/UI para Móviles
  • Diseño Gráfico y Arte Digital
    • Fundamentos del Diseño Gráfico y Digital
    • Diseño de Identidad Visual y Branding
    • Ilustración Digital y Arte Conceptual
    • Diseño Editorial y de Empaques
    • Motion Graphics y Animación 3D
    • Diseño Gráfico Asistido por Inteligencia Artificial
    • Creatividad e Innovación en Diseño
  • Programación
    • Fundamentos de Programación e Ingeniería de Software
    • Herramientas de IA para el trabajo
    • Matemáticas para Programación
    • Programación con Python
    • Programación con JavaScript
    • Programación con TypeScript
    • Programación Orientada a Objetos con Java
    • Desarrollo con C# y .NET
    • Programación con PHP
    • Programación con Go y Rust
    • Programación Móvil con Swift y Kotlin
    • Programación con C y C++
    • Administración Básica de Servidores Linux
  • Negocios
    • Fundamentos de Negocios y Emprendimiento
    • Estrategia y Crecimiento Empresarial
    • Finanzas Personales y Corporativas
    • Inversión en Mercados Financieros
    • Ventas, CRM y Experiencia del Cliente
    • Operaciones, Logística y E-commerce
    • Gestión de Proyectos y Metodologías Ágiles
    • Aspectos Legales y Cumplimiento
    • Habilidades Directivas y Crecimiento Profesional
    • Diversidad e Inclusión en el Entorno Laboral
    • Herramientas Digitales y Automatización para Negocios
  • Blockchain y Web3
    • Fundamentos de Blockchain y Web3
    • Desarrollo de Smart Contracts y dApps
    • Finanzas Descentralizadas (DeFi)
    • NFTs y Economía de Creadores
    • Seguridad Blockchain
    • Ecosistemas Blockchain Alternativos (No-EVM)
    • Producto, Marketing y Legal en Web3
  • Recursos Humanos
    • Fundamentos y Cultura Organizacional en RRHH
    • Atracción y Selección de Talento
    • Cultura y Employee Experience
    • Gestión y Desarrollo de Talento
    • Desarrollo y Evaluación de Liderazgo
    • Diversidad, Equidad e Inclusión
    • AI y Automatización en Recursos Humanos
    • Tecnología y Automatización en RRHH
  • Finanzas e Inversiones
    • Fundamentos de Finanzas Personales y Corporativas
    • Análisis y Valoración Financiera
    • Inversión y Mercados de Capitales
    • Finanzas Descentralizadas (DeFi) y Criptoactivos
    • Finanzas y Estrategia para Startups
    • Inteligencia Artificial Aplicada a Finanzas
    • Domina Excel
    • Financial Analyst
    • Conseguir trabajo en Finanzas e Inversiones
  • Startups
    • Fundamentos y Validación de Ideas
    • Estrategia de Negocio y Product-Market Fit
    • Desarrollo de Producto y Operaciones Lean
    • Finanzas, Legal y Fundraising
    • Marketing, Ventas y Growth para Startups
    • Cultura, Talento y Liderazgo
    • Finanzas y Operaciones en Ecommerce
    • Startups Web3 y Blockchain
    • Startups con Impacto Social
    • Expansión y Ecosistema Startup
  • Cloud Computing y DevOps
    • Fundamentos de Cloud y DevOps
    • Administración de Servidores Linux
    • Contenerización y Orquestación
    • Infraestructura como Código (IaC) y CI/CD
    • Amazon Web Services
    • Microsoft Azure
    • Serverless y Observabilidad
    • Certificaciones Cloud (Preparación)
    • Plataforma Cloud GCP

Platzi y comunidad

  • Platzi Business
  • Live Classes
  • Lanzamientos
  • Executive Program
  • Trabaja con nosotros
  • Podcast

Recursos

  • Manual de Marca

Soporte

  • Preguntas Frecuentes
  • Contáctanos

Legal

  • Términos y Condiciones
  • Privacidad
  • Tyc promociones
Reconocimientos
Reconocimientos
Logo reconocimientoTop 40 Mejores EdTech del mundo · 2024
Logo reconocimientoPrimera Startup Latina admitida en YC · 2014
Logo reconocimientoPrimera Startup EdTech · 2018
Logo reconocimientoCEO Ganador Medalla por la Educación T4 & HP · 2024
Logo reconocimientoCEO Mejor Emprendedor del año · 2024
De LATAM conpara el mundo
YoutubeInstagramLinkedInTikTokFacebookX (Twitter)Threads

      En esta lectura vamos a hablar un poco sobre funciones y cómo utilizarlas.

      Las funciones son bloques de código que realizan alguna operación o instrucciones. Estas al igual que en matemáticas pueden aceptar datos de entrada, a estos les llamamos parámetros o argumentos y datos de salida. La función ya creada que hemos estado utilizado hasta ahorita, es la función main(). La estructura sería similar a lo siguiente:

      image2.png

      ¿Con qué finalidad hacemos estas secciones de código?

      • Encapsulamiento
      • Reusabilidad
      • Separar Tareas
      • Cambios a futuro

      La sintaxis para escribir una función es la siguiente:

      image1.png

      Primero se escribe el tipo de dato de la salida de datos, luego el nombre por el que se identificará la función y finalmente entre paréntesis los parámetros o entrada de datos.

      image3.png

      Y entre paréntesis el bloque de instrucciones. No es necesario que una función tenga una entrada y salida de datos, puede tener una, otra, ambas o ninguna. Pero si tiene salida de datos, el dato final necesita ser descrito con el comando return y el dato que vamos a regresar, que tiene que ser el mismo tipo de dato el cual indicamos inicialmente al crear la función. De la misma manera para los parámetros necesitamos declarar las variables dentro de los paréntesis que vayamos a necesitar, cada una es separada por una coma.

      De no necesitar un dato de salida nuestra función puede ser de tipo void, esto quiere decir que no regresa ningún dato.

      Variables globales y locales

      Naturalmente al tener secciones de código, o sea funciones, creamos una necesidad de tener variables que puedan ser compartidas entre estas. Para esto creamos variables globales.

      Hasta ahora las únicas variables que habíamos creado eran variables locales, esto quiere decir que son creadas dentro de una función y solo pueden ser utilizadas en esta función.

      Para crear variables que usemos entre diferentes funciones lo hacemos con la misma sintaxis que hasta ahora hemos hecho, pero lo haremos fuera de cualquier función y lo haremos en la primera sección de nuestro código en la parte superior. Al hacerlo aquí nosotros estamos creando variables globales que podemos utilizar en cualquier función y será compartida. Espero que esta última recapitulación te haya servido para reafirmar los conceptos que aprendimos, ¡nos vemos en la siguiente clase!

      Mauricio Hernández

      Mauricio Hernández

      teacher•
      hace 7 años
      Usuario anónimo

      Usuario anónimo

      user•
      hace 5 años
      Aldo Miguel Ortiz Parodi

      Aldo Miguel Ortiz Parodi

      student•
      hace 5 años
        Irving Juárez

        Irving Juárez

        student•
        hace 5 años
      Jose Guevara

      Jose Guevara

      student•
      hace 6 años
      Carlos Nassif Trejo Garcia

      Carlos Nassif Trejo Garcia

      student•
      hace 6 años
      Angie Gomez

      Angie Gomez

      student•
      hace 5 años
        Simon Correa Henao

        Simon Correa Henao

        student•
        hace 5 años
        Irving Juárez

        Irving Juárez

        student•
        hace 5 años
      Cristian Leonardo Castañeda Olarte

      Cristian Leonardo Castañeda Olarte

      student•
      hace 5 años
      Brian Quiroz López

      Brian Quiroz López

      student•
      hace 5 años
      Usuario anónimo

      Usuario anónimo

      user•
      hace 6 años
      Ian Vassallo

      Ian Vassallo

      student•
      hace 6 años
      Carlos Herrera

      Carlos Herrera

      student•
      hace 6 años
      Obed Paz

      Obed Paz

      student•
      hace 6 años
      Sergio Ruiz Pineda

      Sergio Ruiz Pineda

      student•
      hace 3 años
      Sabrina Poggi

      Sabrina Poggi

      student•
      hace 3 años
      Carlos Arturo Castelblanco Castellanos

      Carlos Arturo Castelblanco Castellanos

      student•
      hace 7 años
        Josue Israel Rojas Vilca

        Josue Israel Rojas Vilca

        student•
        hace 4 años
      Carlos Lopez

      Carlos Lopez

      student•
      hace 4 años
      Valente IA

      Valente IA

      student•
      hace 4 años
      Alexander Sebastian Jaramillo Ordiales

      Alexander Sebastian Jaramillo Ordiales

      student•
      hace 4 años
      Juan Carlos Ortiz Romero

      Juan Carlos Ortiz Romero

      student•
      hace 4 años
      Juan Carlos Ortiz Romero

      Juan Carlos Ortiz Romero

      student•
      hace 4 años

      Excelente aporte! Lo que debemos de tener cuidado es con las variables globales, ya que por su misma naturaleza, pueden ser usadas o modificadas por todos y generar problemas.

      🔆 Este recurso es esencial para comprender y repasar el conocimiento adquirido.

      Sin pensarlo hemos avanzado tanto, habiendo comenzando con cosas tan simples, seguiré practicando los ejemplos para mejorar cada día más.

      Es gracias a los retos

      Se mecionó en un video pasado que el tipo de retorno de una función debía ser el mismo tipo de los parámetros de entrada. Supongo que lo que se quiso dar a entender es que, si se utilizan los parámetros de entrada para realizar procesos de los cuales dependa el valor de salida de dicha función, se deberá asegurar que este valor sea de un tipo compatible con la salida de dicha función.

      #include <stdio.h> #include <stdlib.h> float divide(int a, float b){ return a / b; } int main() { int a = 5; int b = 2; printf("El relustado de dividir dos enteros puede ser un numero decimal: %i / %i = %f", a, b, divide(a,b)); return 0; }

      ¿Qué es?

      • Bloques de código
      • Aceptan parámetros
      • Devuelven un valor

      ¿Para qué sirve?

      • Encapsulamiento
      • Reusabilidad
      • Separar tareas
      • Mantenimiento

      Realizando el reto anterior también pude notar que las variables globales a ser usadas en una función no deben formar parte de los parámetros de tal función, simplemente se usan en el bloque de instrucciones directamente.

      Exacto, ya que son globales se pueden utilizar en las distintas funciones sin necesidad de ingresarlas de alguna forma en ellas.

      Si, las variables y los parámetros pueden ser distintos

      Arigato!!!

      Estas recapitulaciones sirven de mucho, me gustan, y ojala fuera algo permanente en cada clase platzi.

      sirve mucho, gracias

      En el curso de Fundamentos de Javascript hay excelentes clases sobre este tema :)

      Gracias por el resumen!

      Excelente, muy bonito clases. Los retos le dan un plus.

      Excelente por la Recapitulacion!! Gracias

      Se agradece mucho los retos y las recapitulaciones

      Creo que falta explicar mejor el concepto de encapsulamiento, espero más adelante lo ejemplifiquen. Por otro lado codeblocks se puede expresar así la función int Addition( a, b) aunque lo mejor es como lo explican int Addition(int a, int b) colocando el tipo de dato que llega como parámetro a la función.

      Eso se verá en el curso e Programacion Orientada a Objetos 😁

      Les comparto mis prácticas, en caso de que quieran ver un punto de vista diferente al que tienen:

      https://github.com/CarIosLopez/Structured-Programming

      Este curso es bueno, igual y necesita una renovada.

      Excelente resumen! gracias

      Para crear variables que usemos entre diferentes funciones lo hacemos con la misma sintaxis que hasta ahora hemos hecho, pero lo haremos fuera de cualquier función y lo haremos en la primera sección de nuestro código en la parte superior. Al hacerlo aquí nosotros estamos creando variables globales que podemos utilizar en cualquier función y será compartida.

      El tipo de retorno de una función debía ser el mismo tipo de los parámetros de entrada. Supongo que lo que se quiso dar a entender es que, si se utilizan los parámetros de entrada para realizar procesos de los cuales dependa el valor de salida de dicha función, se deberá asegurar que este valor sea de un tipo compatible con la salida de dicha función.