Estructuras de Datos Memoria y Variables. Conceptos Computador: CPU + Memoria + Dispositivos E/S La memoria se encarga de almacenar los datos y los programas.

Slides:



Advertisements
Presentaciones similares
Curso de java básico (scjp)
Advertisements

DATSI, FI, UPM José M. Peña Programación en C DATSI, FI, UPM José M. Peña Programación en C.
Curso de java básico (scjp)
Definición de Clases y Variables de referencia.
SCJP Sun Certified Programmer for Java 6
EQUIPO ·# 3 SISTEMAS OPERATIVOS
Programación, Algoritmos y Estructuras de Datos
FUNCIONES EN C.
INFORMATICA I Arreglos 1 CLASE 17.
Programación en C (Segunda Parte) DATSI, FI, UPM José M. Peña
Funcionamiento, programación
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.
VECTORES.
Implementación de Listas
Gestión de Entrada / Salida
Estructuras de Datos Punteros y algo más.
Unidad 3 Punteros.
17/09/2014Catedra de Programacion I1 Programación I Funciones.
¿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.

Material de apoyo Unidad 2 Estructura de datos
Clases y objetos La unidad fundamental de programación OO son las clases. Conjunto de métodos y semántica Qué se va a hacer POO Clase: que define la implementación.
Tema 6: Clases Antonio J. Sierra.
Programación en C para electrónica
Arquitectura del Computador
SCJP Sun Certified Programmer for Java 6
LENGUAJE “C” Programación.
Semana 5 Subprogramas..
Programación III Clase 07 Funciones.
Introducción a los punteros
Índice. Revisando conceptos acerca de la memoria.
Archivos.
Estructuras.
Conocimiento de la PC. Alejandra Vera Guzmán.
Estructuras de Datos Arreglos.
Métodos de búsqueda Unidad 6.
Descomposición Modular. Funciones
Programa Vespertino de Automatización Equipos y Sistemas de Control Digital Lenguaje C Profesor: Felipe Páez Mejías D e p a r t a m e n t o d e I n g e.
COMPUTACIÓN I TEMA 6. Pasaje de parámetros por Referencia. Uso de apuntadores Prof. Mireya Morales.
Streams. / En casi todo programa se necesita traer o enviar información a una fuente externa. / Dicha información puede estar en un archivo en el disco.
PUNTEROS Ing Anghello Quintero.
FIEE VARIABLES Ing. José Antonio Poma G.. FIEE Variables Una variable es un identificador (nombre de la variable) que hace referencia a.
Unidad II Introducción a la programación en C++
FUNCIONES Conceptos básicos. Retorno de una función Clases de funciones. Paso de parámetros. Funciones y arrays.

COMPONENTES DEL SISTEMA OPERATIVO.
 En computación es un conjunto de líneas de señal que el microprocesador o CPU utilizan para intercambiar datos con otros componentes como teclados,
Términos algoritmo diseñar algoritmo implementar algoritmo
Computación II Capitulo VII Punteros. Presentación de la unidad Objetivos: –Ser capaces de utilizar punteros. –Comprender las relaciones entre punteros,

LENGUAJE “C” Programación.
Fundamentos de Programación
ARREGLOS (arrays).
Capítulo 2 “Subprogramas/Funciones - Arreglos”
Arreglos unidimensionales
1.  En el Lenguaje C, los nombres usados para referirse a las variables, las constantes, las funciones y otros objetos definidos por el usuario se conocen.
P.G.F Ventana de trabajo del S7 Manager P.G.F
Hardware Son todos los componentes y dispositivos físicos y tangibles que forman una computadora. ¿ Cómo describir un hardware?
PERIFERICOS ¿Qué son? Reciben este nombre todos los dispositivos que se encuentran alrededor de motherboard de la computadora, algunos dentro y otros fuera.
 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.
Funciones Copyright © 2005 Unidad 1. Copyright © 2005 Objetivos del Aprendizaje Explicar la naturaleza y usos de las funciones. Describir algunas funciones.
Conceptos y Lenguaje Imperativo
MEMORIA DINÁMICA.
DISPOSITIVOS PERIFERICOS
Métodos en Java. Estructura de un programa en Java ► La relación con la vida misma la podemos ver en el siguiente comentario: Imaginemos que dos clases.
UNIVERSIDAD TECNOLÓGICA DE PANAMÁ Facultad de Ingeniería de Sistemas Computacionales Programa de Lic. en Informática Educativa Computación.
Transcripción de la presentación:

Estructuras de Datos Memoria y Variables

Conceptos Computador: CPU + Memoria + Dispositivos E/S La memoria se encarga de almacenar los datos y los programas La memoria puede verse como un arreglo lineal En cada posición (“posición de memoria”) del arreglo se puede almacenar un byte (8 bits)

Dato Dirección Posición de memoria Byte (8 bits) Memoria

Paso de argumentos por valor Las funciones reciben argumentos, que son los valores de entrada sobre los cuales se llevará a cabo el proceso especificado por la función Si un argumento se pasa por valor significa que al enviar una variable como argumento a una función, la función tomará el valor guardado en la variable y creará una copia de esta sobre la cual operará Esta copia, ocupa un espacio diferente en memoria y es totalmente independiente de la primera Luego se verá el paso de argumentos por referencia…

Ámbito y Visibilidad de los Datos La declaración de una variable asocia un nombre (identificador) a un espacio de memoria en el cual puede guardarse un dato del tipo indicado en la declaración El tipo determina cuanto espacio de memoria se le asigna a una variable La variable adquiere un ámbito y una visibilidad y estos dependen del lugar* donde se haga la declaración * Y de otras “cosas” que no se detallarán aquí como los cualificadores static, extern etc…

Ámbito El ámbito de una variable es la parte del programa en la cual la variable existe Cuando el programa sale del ámbito de una variable, el espacio asociado a esta se libera (la variable se destruye) Se verán 2 tipos de ámbitos: –Local (o de bloque) –Global (o de archivo)

Ámbito local Tienen ámbito local aquellas variables que se declaran dentro de un bloque: dicho ámbito empieza en el punto de declaración y termina en la llave ( } ) que cierra el bloque Los argumentos pasados por valor y las variables declaradas al inicio de una función tienen un ámbito local, que corresponde al bloque que define la función

Ejemplo void imprimir10siguientes(int a) { for(int i=0; i<10; i++) { printf(" %d ", a+i); } Ámbito de i Ámbito de a

Nota: El ámbito de una variable definida en la expresión de inicio de un ciclo for depende del compilador (o de como se configure) int main(void) { for(int i=0; i<10; i++) { cout << "Dentro del ciclo, i = " << i; } cout << "Fuera del bucle, i = " << i; //Puede producir error... }

Ámbito Global Las variables con ámbito global son aquellas que son declaradas por fuera de todos los bloques (incluido el bloque de la función main()) y de las clases Pueden usarse en cualquier parte del archivo fuente (programa)

Ejemplo int a=3; void sumar5() { int b=5; a=a+5; } void main() { void sumar5(); a = a+4; } Ámbito de a (global) Ámbito de b (local)

Visibilidad La visibilidad se refiere a las partes del programa en las que puede accederse al espacio de memoria asignado a una variable. En algunas ocasiones una declaración de variable puede ocultar otra variable con el mismo nombre:

Ejemplo int a=8; int sumar5(int a) { cout <<a; // Imprime 4 (parámetro)  Oculta la vble a global a=a+5; cout <<a; // Imprime 9 return a; } void main() { int b=4; b=sumar5(b); cout <<b; // Imprime 9 cout <<a;// Imprime 8 (vble global) }

MAPAS DE MEMORIA La memoria lógicamente se divide en: –Stack (pila)  Almacena todas las vables con duración local, como las declaradas dentro de funciones y los parámetros por valor pasados a las funciones –Segmento de Datos  En él se almacenan todas las variables globales y las constantes. Considérese el siguiente programa:

#include int p=4; float b=30.2; int sumar1(int a) { a = a+1; return a; } int buscar(char e) { char cadena[4]; int i=0; scanf("%s",cadena); while(cadena[i]!='\0') { if( cadena[i]==e ) return 1; i=sumar1(i); } return 0; } void main() { int resp=0; char letra='u'; resp=buscar(letra); cout<<resp; }

Ver seguimiento paso a paso de los Mapas de Memoria correspondientes en el Módulo 5