Paso de Vectores como Parámetros

Slides:



Advertisements
Presentaciones similares
El lenguaje de programación C - El primer programa -
Advertisements

Abstracción de Datos Arrays.
Instrucciones Básicas Entrada de Información
Funciones y recursividad
LOGROS DEL PERÍODO Utiliza de forma correcta las funciones para entrada y salida de datos en c++. Utiliza los elementos básicos de un programa en c++.
Repaso para la construcción del intérprete 2012
Fundamentos de la Programación Estructurada
Procedimientos y Funciones
Programacion de Computadora Prof. Obadiah Oghoerore.
Programación I Teoría III
Programación, Algoritmos y Estructuras de Datos
Funciones. Programación, Algoritmos y Estructuras de Datos.
FUNCIONES EN C.
INFORMATICA I Arreglos 1 CLASE 17.
INFORMATICA I Arreglos 2 CLASE 18.
INFORMATICA I Funciones CLASE 13.
JDK Ver la figura anexa:
III. DISEÑO DE ALGORITMOS PARA LA SOLUCIÓN DE PROBLEMAS.
UNIVERSIDAD NACIONAL AUTÓNOMA DE MÉXICO
Estructuras de Datos Manipulación de la Especificación de la Lista en C++
Unidad 3 Punteros.
Ejemplos en C /* Ejemplos L/E en C con printf y scanf */ #include #include main(){ int i; int i; char nombre[30]; char nombre[30]; printf ("\nIntroduce.
Tablas y Cadenas CONTENIDO Tablas
String o Cadenas Prof. Gonzalo Pastor. Cadenas o String ► En C, una cadena o texto se define como un vector de caracteres de longitud determinada que.
Funciones “En C” Semestre de Otoño 2006 Claudio Gutiérrez-Soto.
FUNCIONES EN C.
CI TEORIA semana 8 Subprogramas o funciones Definición de funciones.
Diseño de algoritmos “Estructuras”
Programa “Coordenadas” Ing. Arturo Díaz Vargas Departamento de Sistemas División de Ciencias Básicas e Ingeniería UNIVERSIDAD AUTONOMA METROPOLITANA.
Tema 9 Estructuras.
Archivos Programación.
LENGUAJE “C” Programación.
Semana 5 Subprogramas..
Características de “C”
Características de “C” Y Esta conformado por un Ambiente Integrado. Y Es un Lenguaje de Nivel medio. Y Es un compilador. YContiene un conjunto de palabras.
Cadenas y apuntadores Programación.
FUNCIONES EN C.
3.1 Declaración de tablas en C
UNIDAD V Arreglos y Cadenas
Prog. Univ. Rodríguez Rey, Pablo Funciones Programación I.
Archivos.
1 3Tablas o matrices 3.1. Concepto Las tablas corresponden al concepto matemático de matriz. Todos sus elementos deben ser del mismo tipo y se accede a.
Elaborado por Fernando Torre - Universidad Simón Bolívar ARREGLOS CI Computación I Universidad Simón Bolívar Dpto. de Computación y Tecnología de.
TABLAS Definición. El tipo tabla permite definir objetos formados por un conjunto de elementos del mismo tipo. Ejemplos. El tipo tabla se utiliza para.
Descomposición Modular. Funciones
Archivos Programación I MC Beatriz Beltrán Martínez.
Introducción a la Programación “El lenguaje C” Manuel Crisosto M., Claudio Gutiérrez S., Christian Vidal C.
FUNCIONES Conceptos básicos. Retorno de una función Clases de funciones. Paso de parámetros. Funciones y arrays.
Programación en C para electrónicos
Punteros.
Matrices Departamento de Computación Escuela de Ingeniería de Sistemas
Trazado. 1 Intercambio sin error #include void intercambio(int *, int *); /* prototipo */ main(){ int a=1,b=2; printf("a=%d b=%d\n",a,b); intercambio(&a,&b);
Funciones Definidas por el Programador
Matrices Prof. Flor Narciso Departamento de Computación
Registros Prof. Flor Narciso Departamento de Computación Escuela de Ingeniería de Sistemas Facultad de Ingeniería Universidad de Los Andes.
Registros Departamento de Computación
Capitulo 4 Arreglos o Arrays Unidimensionales Bidimensionales Strings
Arreglos: Vectores Departamento de Computación
ALGORITMOS Y ESTRUCTURAS DE DATOS Operaciones sobre cadenas de caracteres y Funciones LIA. Suei Chong Sol.
PRINCIPIOS DE PROGRAMACIÓN

Ejemplos: float R[10] = {2, 32, 4.6, 2, 1, 0.5, 3, 8, 0, 12}; float S[] = {2, 32, 4.6, 2, 1, 0.5, 3, 8, 0, 12}; int N[] = {1, 2, 3, 6}; int M[][3] = {
Arreglos: Vectores Prof. Flor Narciso Departamento de Computación Escuela de Ingeniería de Sistemas Facultad de Ingeniería Universidad de Los Andes.
CONSTANTES DENTRO DE UN CÁLCULO O EN LOS PASOS PARA SOLUCIONAR UN PROBLEMA, EXISTIRÁN VALORES QUE NUNCA VAN A CAMBIAR Y SE LOS CONOCE COMO CONSTANTES.
Paso de Parámetros a una Función Prof. Flor Narciso Departamento de Computación Escuela de Ingeniería de Sistemas Facultad de Ingeniería Universidad de.
Integrantes:  Gómez Desire  Orgelys Linares  Oriannys Linares  Sánchez Alfredo  Wendher Villasmil.
OBJETIVOS DEFINIR LA ESTRUCTURA DE ARREGLOS. DECLARAR ARREGLOS EN C.
Introducción al Lenguaje C (II) Cadenas de caracteres, archivos de cabecera, lectura y escritura Fundamentos de Programación Departamento de Lenguajes.
Computación I :: Prof. Yeniffer Peña Lenguaje C Presentación Computación I.
Funciones y paso de parámetros Fundamentos de Programación Departamento de Lenguajes y Sistemas Informáticos Versión Unidad Didáctica 24.
Transcripción de la presentación:

Paso de Vectores como Parámetros Prof. Judith Barrios Albornoz Departamento de Computación Escuela de Ingeniería de Sistemas Facultad de Ingeniería Universidad de Los Andes Semestre A_2013 Este material toma como base el curso original Prof. Narciso. Año 2000- 2006

Paso de vectores como parámetros Un vector completo se puede pasar como parámetro actual a una función : se especifica únicamente su nombre, sin corchetes ni subíndices char caracteres[80] = “esta cadena es constante”; …… F1(caracteres, longitud); El parámetro formal debe ser definido dentro de la función, se indicará con un par de corchetes vacíos, sin definir el tamaño del vector void F1 (char string[], int lng)

Paso de vectores como parámetros En C/C++ los arreglos en general son pasados como parámetros por referencia Esto es, el nombre del arreglo es la dirección del primer elemento del arreglo En C/C++ un elemento cualquiera de un arreglo puede ser pasado a una función por valor o por referencia, tal y como se hace con una variable simple

Ejemplo 1 de paso de vectores como parámetros float media (int a, float x[]) /* Definición de la función*/ { /* Note que se incluyen los corchetes vacíos */ ……. } void main () { int n; float med; float lista[100]; ……… med = media(n, lista); /* Esta llamada pasa como parámetros*/ /* actuales la longitud del vector y el vector*/ /* No se incluyen los corchetes*/ ……………..

Ejemplo 2 de paso de vectores como parámetros void modificarTemp(int b[], int numEltos) /* Definición de la función*/ { /* Se incluyen los corchetes vacíos*/ ……. } void main () { int tempDiaria[24]; ……… modificarTemp(tempDiaria, 24); /* Esta llamada pasa como */ /* parámetros actuales nombre del */ /* vector y su longitud*/ ………… /* No se incluyen los corchetes*/

Ejemplo 3 de paso de vectores como parámetros #include <ctype.h> #include <string.h> void F1(char string[], int lng) { int i; for (i=0; i!=lng; i++) string[i] = toupper(string[i]); } void main () { char caracteres[80] = “Ejemplo”; int longitud = strlen(caracteres); puts(caracteres); F1(caracteres, longitud); Entrada = Ejemplo Salida = EJEMPLO Main F1 ( ) Strlen ( ) Puts ( ) Toupper ( ) Funciones de librería Función definida por el Programador

Ejemplo 4 de paso de vectores como parámetros Principal - Main modificarReferencia modificarValor modificarVector /*Paso de vector y elementos individuales del vector como parámetros*/ # include <stdio.h> #define numeroEltos 5 void modificarVector(int [], int); /* Prototipo de la función*/ void modificarValor(int); /* Prototipo de la función */ void modificarReferencia(int &); /* Prototipo de la función */ void main() { int vector[numeroEltos] = {0, 1, 2, 3, 4}, j; printf (“Los valores del vector original son: \n” ); for (j = 0; j < numeroEltos; j ++) printf (vector[j]); modificarVector(vector, numeroEltos); printf (“Los valores del vector modificado son:\n”); for (j = 0; j <= numeroEltos – 1; j ++) printf (vector[j]);

Ejemplo 4 de paso de vectores como parámetros - continuación printf (“Efectos de pasar un elemento de un vector como parámetro por valor\n”); modificarValor(vector[3]); printf (“El valor del cuarto elemento del vector es: %d\n”, vector[3]); modificarReferencia(vector[3]); } Principal - Main modificarReferencia modificarValor modificarVector

Ejemplo 4 de paso de vectores como parámetros - continuación Principal - Main modificarReferencia modificarValor modificarVector void modificarVector (int b[], int num) { int k; for (k = 0; k <= num – 1; k ++) b[k] *= 2; } void modificarValor (int e) { e *= 2; printf (“Valor modificado del elemento = %d\n”, e); void modificarReferencia (int &e)

Diagrama de descomposición modular Principal - Main modificarReferencia modificarValor modificarVector

Ejemplo 5 de paso de vectores como parámetros Diseñar un programa que calcule y escriba el área y la circunferencia de n círculos, los n radios se deben almacenar en el vector Radios #include <stdio.h> #define n 100 void leerRadios(float radios[], int &numElementos) /*Parametros de salida: vector radios su numero de elementos numElementos*/ { int j; printf (“¿ Cuantos radios seran introducidos ?\n”); scanf (&numElementos); for (j = 0; j < numElementos; j++) { printf (“radio %d =\n”, j+1); scanf (&radios[j]); }

Ejemplo 5 de paso de vectores como parámetros void AreaCirc (float radio, float &area, float &circulo) /* Parametros de entrada: radio*/ /* Parametros de salida: area y circulo */ { float pi = 3.14159; area = pi * pow(radio, 2); circulo = 2 * pi * radio; } void AreasCircs(float radios[], int numElementos, float areas[], float cirs[]) /* Parametros de entrada: vector radios */ /* Parametros de salida: vectores areas y cirs */ { int I; for (I = 0; I < numElementos; I++) AreaCirc(radios[I], areas[I], cirs[I]);

Ejemplo 5 de paso de vectores como parámetros void escribirAreasCircs (float radios[], int numElementos, float areas[], float cirs[]) { int j; for (j = 0; j < numElementos; j++) { printf (“Para la circunferencia de radio %d\n”, radios[j]); printf (“su area es: %d\n”, areas[j]); printf (“su circunferencia es: %d\n”, cirs[j]); } void main() { float R[n], A[n], C[n]; int nRadios; leerRadios(R, nRadios); AreasCircs(R, nRadios, A, C); escribirAreasCircs (R, nRadios, A, C);

Diagrama de descomposición modular Principal - Main AreaCirc escribirAreasCircs AreasCircs leerRadios

Ejercicios Determinar la salida del siguiente programa si el dato de entrada es el entero 4. #include <stdio.h> int A (int y) { y *= 2; return y; } int B (int x) x += 5; return x; void main () { int x, x1; printf (“Introduzca un numero \n”); scanf (&x); x1 = B(x); printf (“%d\n”, x1); x1 = A(x); }

Ejercicios Determinar la salida del siguiente programa: #include <stdio.h> int reloj, num, temp; void pascal (int num, int &suma) { int reloj; temp = 2 * num + suma; reloj = temp * suma; num++; suma += num; printf (“%d %f %d %d\n”, temp, reloj, num, suma); } void main () { num = 1; reloj = 0; temp = 0; pascal (num, temp); printf (“%d %f %d\n”, num, reloj, temp) ; temp++; pascal (temp, num); printf (“%d %d %d\n”, num, reloj, temp); }

Ejercicios 3) Diseñar un procedimiento con tres parámetros formales reales (por referencia), a, b y c. El procedimiento debe girar los valores de los parámetros hacia la derecha de manera que, después de la ejecución, el valor que originalmente estaba en a quede en b, el que estaba en b quede en c y el que estaba en c quede en a. Deben escribirse los números iniciales y su valor después de la rotación Ejemplo de entrada: 4.7 1.0003 7.5 -12.5 6.5 2.005 Ejemplo de salida 7.5 4.7 1.0003 2.005 -12.5 6.5

Ejercicios 4) Los registros mensuales de visitantes al parque Chorros de Milla durante el año 2011 son los siguientes: Mes Ene Feb Mar Abr May Jun Jul Ago Sep Oct Nov Dic #visitantes 180 300 120 150 210 250 330 510 380 230 160 320 Diseñar un programa, estructurado en funciones que realizan las siguientes tareas: Leer y almacenar los datos en el vector VISITANTES (12) . Cada posición corresponde con un mes del año. Calcular y escribir el promedio de visitantes durante el año 2011 Calcular y escribir los nombres de los meses con el mayor y el menor número de visitantes

Paso de Arreglos bidimensionales como Parámetros

Paso de arreglos como parámetros Un arreglo completo se puede pasar como parámetro actual a una función : se especifica únicamente su nombre, sin corchetes ni subíndices int notas [40] [6] …… F1(notas, filas, columnas); El parámetro formal debe ser definido dentro de la función, se indicará con un par de corchetes vacíos, sin definir el tamaño del vector void F1 (int PR1[] [], int fila, int columna)

Paso de vectores como parámetros En C los arreglos en general son pasados como parámetros por referencia Esto es, el nombre del arreglo es la dirección del primer elemento del arreglo En C un elemento cualquiera de un arreglo puede ser pasado a una función por valor o por referencia, tal y como se hace con una variable simple

Ejemplo 1 de paso de Arreglos como parámetros float PromParciales (int f, int c, int notas[] []) /* Definición de la función*/ { /* Note que se incluyen los corchetes vacíos */ ……. } void main () { int n, m; float media; int listaPR1[40][3]; ……… media = PromParciales(n, m, listaPR1); /* Esta llamada pasa como parámetros actuales numero de filas y de columnas y el arreglo*/ /* No se incluyen los corchetes*/ ……………..

Ejercicio Definir una subprograma que permite leer un arreglo bidimensional NotasParciales compuesto por las 4 notas parciales de los estudiantes de PR1 sección 01. Definir una subprograma para crear un arreglo unidimensional con las NotasDefinitivas de los alumnos, las cuales son el promedio de los 4 parciales almacenados en el arreglo NotasParciales . Definir una subprograma para ordenar el arreglo NotasDefinitivas en orden descendente, considerando que cada vez que cambia cambia de lugar un elemento del arreglo NotasDefinitivas, debe cambiar de lugar toda una fila del arreglo NotasParciales. Esto considerando que ambos arreglos son tratados como paralelos. Definir una subprograma que permita crear un arreglo con los nombres de los estudiantes de PR1 – arreglo de caracteres, el cual se corresponde con las notas parciales y posteriormente con las notas definitivas. Este es igualmente un arreglo paralelo con NotasParciales y NotasDefinitivas.