Videotutorial 08: Paso por valor y referencia (Programación)

Document Details

CostEffectiveRationality3754

Uploaded by CostEffectiveRationality3754

ILERNA

2021

Raúl Sacristán

Tags

programming programming tutorial value passing reference passing

Summary

Este documento detalla videotutoriales sobre programación modular, paso por valor y paso por referencia. Se proporcionan ejemplos y ejercicios.

Full Transcript

MÓDULO 03 Videotutoría 08: Paso por valor y paso por referencia Ciclo Formativo Grado Superior Aplicaciones Multiplataforma – DAM Ciclo Formativo Grado Superior Aplicaciones Web – DAW Ciclo Formativo Grado Superior Administración de Sistemas y Redes – ASIR ...

MÓDULO 03 Videotutoría 08: Paso por valor y paso por referencia Ciclo Formativo Grado Superior Aplicaciones Multiplataforma – DAM Ciclo Formativo Grado Superior Aplicaciones Web – DAW Ciclo Formativo Grado Superior Administración de Sistemas y Redes – ASIR Tabla de contenido 01. Programación modular. Ventajas y desventajas 02. Paso por valor VS Paso por referencia 03. Ejercicios voluntarios Profesor: Raúl Sacristán | MP08: Despliegue de Aplicaciones Web | Curso 2021/22 PROGRAMACIÓN MODULAR El diseño descendente es una técnica que permite diseñar la solución de un problema con base en la modularización o segmentación, dándole un enfoque de arriba hacia abajo (top down). Esta solución se divide en módulos que se estructuran e integran jerárquicamente. Este diseño se basa en el principio “divide y vencerás”. DEPENDE DEL imprimir() PROBLEMA A RESOLVER sumar() generarNumeros() PASO POR VALOR Y PASO POR REFERECIA Paso de parámetros por valor Paso de parámetros por referencia PASO POR VALOR Cuando ejecutamos una función que tiene parámetros pasados por valor, se realiza una copia del parámetro que se ha pasado, es decir, que todas las modificaciones y/o cambios que se realicen se están haciendo en esta copia que se ha creado. El original no se modifica, de manera que no se altera su valor en la función. PASO POR REFERENCIA Sin embargo, cuando ejecutamos una función que tiene parámetros pasados por referencia, todas aquellas modificaciones que se realicen en la función van a afectar a sus parámetros, ya que se trabaja con los originales. params, in y out static void Ejemplo(params int numero) static void Ejemplo(in int numero) static void Ejemplo(out int numero) Ejemplos PASO POR VALOR DE VARIABLE PASO POR REFERENCIA DE VECTOR static int sumar(int a, int b) { static int sumar(int[] lista) a = 20; { return a + b; int suma = 0; } foreach (int n in lista) suma += n; static void Main(string[] args) return suma; { } int v1 = 3; static void Main(string[] args) int v2 = 4; { int[] a = new int[] { 2, 4, 6 }; Console.WriteLine(sumar(v1,v2)); Console.WriteLine(sumar(a)); Console.WriteLine(v1+v2); } } PASO POR REFERENCIA DE VARIABLE static int sumar(ref int a, ref int b { a = 20; Return a + b; } static void Main(string[] args) { int v1 = 3; int v2 = 4; Console.WriteLine(sumar(ref v1,ref v2)); Console.WriteLine(v1+v2); } Ejercicio en vivo 1 Debéis escribir un programa que cumpla con las siguientes especificaciones: Debe tener un subprograma que genere números aleatorios entre 0 y 50 ambos inclusive y los guarde en un array de tamaño 10 CREADO EN EL MAIN. Debe tener un subprograma que imprima el vector resultante. Ejercicio en vivo 2 Debéis escribir un programa que cumpla con las siguientes especificaciones: Tenga una función que dada cantidad de segundos devuelva un tiempo dado en horas, minutos y segundos. Tenga una función que dada cantidad de dado en horas, minutos y segundos devuelva un tiempo dado en segundos. En el programa principal habrá un menú donde se pueda elegir la opción de convertir a segundos, convertir a horas, minutos y segundos o salir del programa. Propuesta ejercicio 1 Implementa un programa en que realice una cuenta regresiva desde 10 hasta 1, simulando la cuenta atrás para el despegue de un cohete. Al llegar a 1, el programa debe mostrar un mensaje indicando que el cohete ha despegado. La cuenta atrás debe implementarse mediante una función recursiva. GRACIAS

Use Quizgecko on...
Browser
Browser