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

    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

    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

    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!

      Comentarios

        Mauricio Hernández

        Mauricio Hernández

        teacher•
        hace 7 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.

        Usuario anónimo

        Usuario anónimo

        user•
        hace 5 años

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

        Aldo Miguel Ortiz Parodi

        Aldo Miguel Ortiz Parodi

        student•
        hace 5 años

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

          Irving Juárez

          Irving Juárez

          student•
          hace 5 años

          Es gracias a los retos

        Jose Guevara

        Jose Guevara

        student•
        hace 6 años

        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; }
        Carlos Nassif Trejo Garcia

        Carlos Nassif Trejo Garcia

        student•
        hace 6 años

        ¿Qué es?

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

        ¿Para qué sirve?

        • Encapsulamiento
        • Reusabilidad
        • Separar tareas
        • Mantenimiento
        Angie Gomez

        Angie Gomez

        student•
        hace 5 años

        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.

          Simon Correa Henao

          Simon Correa Henao

          student•
          hace 5 años

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

          Irving Juárez

          Irving Juárez

          student•
          hace 5 años

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

        Cristian Leonardo Castañeda Olarte

        Cristian Leonardo Castañeda Olarte

        student•
        hace 5 años

        Arigato!!!

        Brian Quiroz López

        Brian Quiroz López

        student•
        hace 5 años

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

        Usuario anónimo

        Usuario anónimo

        user•
        hace 6 años

        sirve mucho, gracias

        Ian Vassallo

        Ian Vassallo

        student•
        hace 6 años

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

        Carlos Herrera

        Carlos Herrera

        student•
        hace 6 años

        Gracias por el resumen!

        Obed Paz

        Obed Paz

        student•
        hace 6 años

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

        Sergio Ruiz Pineda

        Sergio Ruiz Pineda

        student•
        hace 3 años

        Excelente por la Recapitulacion!! Gracias

        Sabrina Poggi

        Sabrina Poggi

        student•
        hace 4 años

        Se agradece mucho los retos y las recapitulaciones

        Carlos Arturo Castelblanco Castellanos

        Carlos Arturo Castelblanco Castellanos

        student•
        hace 7 años

        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.

          Josue Israel Rojas Vilca

          Josue Israel Rojas Vilca

          student•
          hace 4 años

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

        Carlos Lopez

        Carlos Lopez

        student•
        hace 4 años

        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

        Valente IA

        Valente IA

        student•
        hace 4 años

        Este curso es bueno, igual y necesita una renovada.

        Alexander Sebastian Jaramillo Ordiales

        Alexander Sebastian Jaramillo Ordiales

        student•
        hace 4 años

        Excelente resumen! gracias

        Juan Carlos Ortiz Romero

        Juan Carlos Ortiz Romero

        student•
        hace 4 años

        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.

        Juan Carlos Ortiz Romero

        Juan Carlos Ortiz Romero

        student•
        hace 4 años

        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.