FUNCIONES EN C. SOBRE FUNCIONES... Caja negra in_1 in_N out_1 In_2 Función: Nombre. (Con el cual es invocada). Entradas. (Parámetros de la función). Salida.

Slides:



Advertisements
Presentaciones similares
Repaso para la construcción del intérprete 2012
Advertisements

Fundamentos de la Programación Estructurada
Programación I Teoría III
Direcciones, Arreglos y Argumentos de Funciones
Tipos de Datos Básicos y Estructurados
Una variable en un programa es algo con un nombre, cuyo valor puede variar. La manera en que el compilador y enlazador maneja esto es asignando un bloque.
FUNCIONES EN C.
INFORMATICA I Arreglos 1 CLASE 17.
INFORMATICA I Arreglos 2 CLASE 18.
Ismael Camarero1. 2 ¿Qué es un PUNTERO?: Un puntero es un objeto que apunta a otro objeto. Es decir, una variable cuyo valor es la dirección de memoria.
ARREGLOS Estructuras de datos.
Unidad 3 Punteros.
Ingeniero Anyelo Quintero
Curso Práctica 3 1 Funciones CONTENIDO Consideraciones sobre funciones Estructura de un programa en C Uso de funciones Paso de parámetros Punteros.
¿Qué es un PUNTERO?: Un puntero es un objeto que apunta a otro objeto. Es decir, una variable cuyo valor es la dirección de memoria de otra variable. No.
Vectores en java.
Tema 7: Polimorfismo Antonio J. Sierra. Índice Introducción. Sobrecarga de métodos. Objetos como parámetros. Paso de argumentos. Devolución de objetos.
Funciones en lenguaje C
CI TEORIA semana 8 Subprogramas o funciones Definición de funciones.

Diseño de algoritmos “Punteros”
Introducción a los punteros
Arreglos.
APUNTADORES EN C. MENU DEL DIA Repaso clase anterior Apuntadores. Eso pa que? Solución al problema: Funciones. Ventajas de trabajar un programa usando.
Índice. Revisando conceptos acerca de la memoria.
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.
1 Chapter 12 Arrays Dale/Weems/Headington. 2 Chapter 12 Topics l Declaring and Using a One-Dimensional Array l Passing an Array as a Function Argument.
Descomposición Modular. Funciones
Programación Orientada a Objetos usando CONSTRUCTORES DESTRUCTORES.
Unidad VI Registros (estructuras, uniones y enumeraciones)
COMPUTACIÓN I TEMA 6. Pasaje de parámetros por Referencia. Uso de apuntadores Prof. Mireya Morales.
Tipo de Datos Básicos.
Administración de Proyectos de desarrollo de Software Ciclo de vida de un proyecto Enfoque moderno Temas Componentes Directivas Declaraciones globales.
FIEE VARIABLES Ing. José Antonio Poma G.. FIEE Variables Una variable es un identificador (nombre de la variable) que hace referencia a.
El lenguaje de programación C - Vectores y matrices -
NVA-LNG1 3. SENTENCIAS. NVA-LNG2 Asignación Es una sentencia que almacena: el valor del argumento ubicado a la derecha del símbolo que la representa En.
Elementos básicos del lenguaje
FUNCIONES Conceptos básicos. Retorno de una función Clases de funciones. Paso de parámetros. Funciones y arrays.
Informática Ingeniería en Electrónica y Automática Industrial
Programación Técnica1UVM Tipos de Datos. Programación Técnica2UVM.
Programación en C para electrónicos
Punteros.
Elementos básicos del lenguaje
PUNTEROS Y REFERENCIAS
APUNTADORES.
Programación III Clase 09 Apuntadores. Declaración de Punteros Declaración: type* id; Ejemplo: int* ptr; ptr contendrá entonces una dirección a un entero.
Arreglos Computción.
1 Algunas ideas básicas en C++ Agustín J. González ELO-329.
1 Algunas ideas básicas de C++ Agustín J. González ELO-329.
Los punteros Programación modular.
FUNDAMENTOS DE PROGRAMACIÓN
Programación Básica con “NQC” Pedro F. Toledo – Patricio Castillo 15/08/2006.
Computación II Capitulo VII Punteros. Presentación de la unidad Objetivos: –Ser capaces de utilizar punteros. –Comprender las relaciones entre punteros,
Registros Departamento de Computación
Fundamentos de Programación
LENGUAJE “C” Programación.
Fundamentos de Programación
Algoritmo.
PUNTEROS EN EL LENGUAJE C
Arreglos: Vectores Prof. Flor Narciso Departamento de Computación Escuela de Ingeniería de Sistemas Facultad de Ingeniería Universidad de Los Andes.
 Las funciones son un conjunto de instrucciones que realizan una tarea específica. En general toman unos valores de entrada, llamados parámetros y proporcionan.
Informática Ingeniería en Electrónica y Automática Industrial
MEMORIA DINÁMICA.
TIPOS DE DATOS PARCIAL III Punteros. Un puntero es una variable que hace referencia a una dirección de memoria Sintaxis: Tipo_Dato *nombre_variable_puntero;
OBJETIVOS DEFINIR LA ESTRUCTURA DE ARREGLOS. DECLARAR ARREGLOS EN C.
FUNDAMENTOS DE PROGRAMACIÓN VARIABLES, CONSTANTES Y TIPOS DE DATOS EN C.
Prof. Manuel B. Sánchez. Declaración de Objetos Una vez que la clase ha sido implementada se pueden declarar objetos como variables locales de métodos.
PROF. RAFAEL MONTENEGRO B. UNELLEZ-APURE Introducci Ó n a los Arreglos (“arrays”) en C++
Introducción al Lenguaje C (I) Tipos básicos, arrays y punteros Fundamentos de Programación Departamento de Lenguajes y Sistemas Informáticos Versión
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:

FUNCIONES EN C

SOBRE FUNCIONES... Caja negra in_1 in_N out_1 In_2 Función: Nombre. (Con el cual es invocada). Entradas. (Parámetros de la función). Salida. (Valor de retorno si tiene). capitan_planeta(agua, tierra, aire, fuego, corazon); Por sus poderes reunidos yo soy,… EL CAPITAN PLANETA

MAPA DE MEMORIA float f;

MAPA DE MEMORIA Y APUNTADORES #include int main() { int i; int *p; /* a pointer to an integer */ p = &i; *p=5; printf("%d %d\n", i, *p); return 0; }

APUNTADORES Y VECTORES Operador desreferencia (*): 1.Declarar una como apuntador: tipo *nombreApuntador ; 2.Desreferenciar el apuntador (acceder a la direccion de memoria (Ya sea para leer o escribir) apuntada por el apuntador). Leer: variable = *nombreApuntador; // Puede ir dentro de una //expresion el lado derecho Escribir: *nombreApuntador = valor; //Puede ser tambien una //constante o expresion //cualquiera lo que haya al lado //derecho. Operador referencia (&) Usado para obtener una direccion de memoria: &nombreVariable

APUNTADORES #include void printArray(int *, int); int main() { int a = 3,b,c; int *p1 = NULL; int *p2 = &a; int *p3 = p2; *p3 = a + 1; p1 = &c; *p1 = 2*(*p1 + *p2) - 3; p3 = &b; b = *p2 - 1; *p1 = p2; *p2 = &c; return 0; }

VECTORES Y APUNTADORES Para un vector: El nombre de un vector es la dirección de la posición 0 del vector: int A[5] = {3,2,5,0,6,10,8,-1}; Según lo anterior: A  &A[0] p1p2 *p1 *p2 p1 = A;p2 = &A[3];

ARITMETICA DE APUNTADORES Como un apuntador solo almacena direcciones de memoria las únicas operaciones validas son la + y -. También son validas operaciones los operadores unitarios ++ y --. Para apuntadores cambia un poco el significado de estas operaciones respecto al caso de las variables. Variables Suponga una variable entera a que inicialmente tiene el valor de 5: ¿Cuál sera el resultado despues de la operaciónes a++ y a-=3? int a = 5; a++; a-=3; Apuntadores Suponga que se tiene un apuntador cuyo valor inicial es la direccion 1780 (asignada a una variable cualquiera x): ¿Cuál sera el resultado despues de la operaciónes p++ y p-=3? int *p = x; p++; p-=3;

ARITMETICA DE APUNTADORES El incremento o decremento en apuntadores dependerá del tipo de dato que esta siendo apuntado Suponga que se tiene un apuntador a un entero cuyo valor inicial es la direccion 100 (asignada a una variable cualquiera x): ¿Cuál sera el resultado despues de la operaciónes p++ y p-=3? int *p = x; p++; p-=3; tipoTamaño en bytes char1 short2 int2 o 4 long4 8 float4 double8 Realice lo mismo que en el caso anterior pero asumiendo que ahora se apunta a un dato tipo long long: long long *p = x; p++; p-=3;

ALGO SOBRE LA PRESEDENCIA Y LOS APUNTADORES PrioridadAsociatividad ()De adentro hacia afuera ++,--D  I *,/I  D +,-I  D Algunas expresiones: (*p)++, (*p)--, ++(*p),--(*p) *p++,*p-- *++p;*--p Ojo con los vectores: p+=i; *(p+i)=2;

ARREGLOS Y APUNTADORES Usando subindices int i; int b[5]; for(i=0;i<5;i++){ b[i]=i+1; } Usando apuntadores int i; int b[5]; int *p = b; //int *p = &b[0]; for(i=0;i<5;i++){ *p++ = i + 1; } Usando apuntadores int i; int b[5]; int *p = b; //int *p = &b[0]; for(i=0;i<5;i++){ *(p+ i) = i+ 1; }

PRINCIPALES DIFERENCIAS ENTRE EL PASO DE PARAMETROS POR REFERENCIA Y POR VALOR Declaración void intercambiar1(int,int);void intercambiar2(int *,int *); Definición void intercambiar1(int x, int y){ int aux; aux = x; x = y; y = aux; } void intercambiar2(int *x, int *y){ int aux; aux = *x; *x = *y; *y = aux; } Invocación int a = 3,b = 5; intercambiar1(a,b); int a = 3,b = 5; intercambiar2(&a,&b);

PRINCIPALES DIFERENCIAS ENTRE EL PASO DE PARAMETROS POR VALOR #include void swap(int i, int j) { int t; t=i; i=j; j=t; } void main() { int a,b; a=5; b=10; printf("%d %d\n", a, b); swap(a,b); printf("%d %d\n", a, b); }

PRINCIPALES DIFERENCIAS ENTRE EL PASO DE PARAMETROS POR REFERENCIA #include void swap(int *i, int *j) { int t; t = *i; *i = *j; *j = t; } void main() { int a,b; a=5; b=10; printf("%d %d\n",a,b); swap(&a,&b); printf("%d %d\n",a,b); }

TODO JUNTO – SOLO CODIGO A LO LOCO Hacer una función muestre los elementos de un array Usando subindices void copyArraySub(int A[],int l){ int i; for(i = 0;i<l;i++) { printf(«%d »,A[i]); } printf(«\n»); } Usando Apuntadores void copyArrayPtr(int *p,int l){ int i; for(i = 0;i<l;i++) { printf(«%d »,*p); p1++; } printf(«\n»); }

TODO JUNTO – SOLO CODIGO A LO LOCO Hacer una función que copie un arreglo a otro Usando subindices void copyArraySub(int A[],int B[],int l){ int i; for(i = 0;i<l;i++) { A[i] = B[i]; } Usando Apuntadores void copyArrayPtr(int *p1,int *p2,int l){ int i; for(i = 0;i<l;i++) { *p1 = *p2; p1++; p2++; }