Programación Científica

Slides:



Advertisements
Presentaciones similares
Universidad Tecnológica Nacional Facultad Regional Buenos Aires Ingeniería en Sistemas de Información Introducción a C Sistemas Operativos.
Advertisements

Introducción Programación.
Unidad 5 Listas Enlazadas Bibliografía: Algoritmos y Estructuras de datos de Aguilar y Martinez. Unidad 9 Autor: Ing Rolando Simon Titiosky.
Estructura de Datos En C++
Programación Científica
Ingeniería en Sistemas computacionales Fundamentos de programación
Clase 3: Punteros y Referencias
Programación I Teoría III
Funciones. Programación, Algoritmos y Estructuras de Datos.
Tipos de Datos Básicos y Estructurados
Sintaxis básica del lenguaje
Funcionamiento, programación
Programación (Estructura de Datos)
Informática II 1 Diego Fernando Serna RestrepoSemestre 2011/2.
Implementación de Listas
Unidad 3 Punteros.
Herramientas para el acceso directo a memoria en C++
Programación Científica

Material de apoyo Unidad 2 Estructura de datos
Estructura de Datos En C++
Nombre, Alcance y Asociaciones (Bindings). Agenda Definición Nombre y Bindings Binding Time Importancia del Binding Time Eventos relacionados a la Asociación.
Arreglos.
Capítulo 5. Punteros y Cadenas de Caracteres
CS-434: Programación Orientada a Objetos usando Java Semana 1
Estructura de Datos En C++
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.
Introducción a la Programación. Lenguaje de Máquina.
Estructuras.
 2003 Prentice Hall, Inc. All rights reserved. 1 Capítulo 4 - Arrays Índice del Capítulo 4.1Introducción 4.2Arrays 4.3Declaración de Arrays 4.4Ejemplos.
Estructura de Datos En C++
Universidad Domingo Savio Facultad de Ciencias y Tecnología de la Información Carrera Ingeniería en Redes y Telecomunicaciones Materia : Programación I.
Estructura de Datos En C++
COMPUTACIÓN I TEMA 6. Pasaje de parámetros por Referencia. Uso de apuntadores Prof. Mireya Morales.
Programación I Técnico Universitario en Web Dpto. de Informática FCFMyN - UNSL -11-
Tema 10.3: Asignación de Espacio No Contiguo. Tema 10.3: 2 Silberschatz, Galvin and Gagne ©2005 Fundamentos de los Computadores (ITT, Sist. Electr.),
04/02/031 INSURE ++ v6.0 Salvador Benimeli Fenollar Laboratorio de Sistemas de Información Facultad de Informática Universidad Politécnica de Valencia.
Informática Ingeniería en Electrónica y Automática Industrial
El lenguaje de programación C - Vectores y matrices -
1 Asignación Dinámica de Memoria Agustín J. González Versión original de Kip Irvine ELO 329.
Archivos Programación I MC Beatriz Beltrán Martínez.
Manejo de Punteros y objetos en memoria dinámica en C++
Unidad II Introducción a la programación en C++

TEORIA DE LA INFORMACION INGENIERO ANYELO QUINTERO.
Informática Ingeniería en Electrónica y Automática Industrial
Memoria estática versus dinámica con Estructuras
Listas Ligadas Simples. Definíción I  Es, en sencillas palabras. un grupo de datos organizados secuencialmente, pero a diferencia de los arreglos, la.
Estructura de Datos En C++
APUNTADORES.
1 Definición y Conversión de datos Agustín J. González ELO-329.
Memoria dinámica con Estructuras. Memoria dinámica ¿Qué hacer cuando las variables declaradas son insuficientes o cuando no se conoce anticipadamente.
Presentación del cursoUniversidad de AntioquiaInformática II Sesión 01: Presentación del Curso Departamento de Ingeniería Electrónica y de Telecomunicaciones.
Punteros Recomendado: 1. Nivelación Funciones
Objetivo Mostrar los fundamentos de la programación a través de ejemplos y prácticas utilizadas cotidianamente en el desarrollo de aplicaciones.
Computación II Capitulo VII Punteros. Presentación de la unidad Objetivos: –Ser capaces de utilizar punteros. –Comprender las relaciones entre punteros,
1 Asignación Dinámica de Memoria Agustín J. González ELO 329.
Empleando apuntadores una función puede entregar múltiples resultados / /Esta función no funciona #include void intercambiaValores(float a, float b) {
Estructura de Datos En C++
PROGRAMACION DE Pilas o Stacks
Estructura de Datos En C++
Laboratorio de programación
 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.
Conceptos y Lenguaje Imperativo
MEMORIA DINÁMICA.
1 Definición y Conversión de datos Agustín J. González ELO-329.
Diseño y Programación Orientados a Objetos1 Introducción a Java.
Tema 1. Estructuras de datos Objetivo: Objetivo: El alumno resolverá problemas de almacenamiento, recuperación y ordenamiento de datos y las técnicas de.
Gestión de Memoria – Parte 2
Transcripción de la presentación:

Programación Científica Dr. Romeo Sánchez Nigenda. E-mail: romeo.sanchez@gmail.com http://yalma.fime.uanl.mx/~romeo/ Oficina: 1er. Piso del CIDET. Oficina con Dr. Oscar Chacón Horas de Tutoría: 10am-11am Martes y Jueves Website: http://yalma.fime.uanl.mx/~romeo/Prog/ Sesiones: 48 * Slides aumentados con información de Dr. Roger Ríos, y Dr. Fernando López

Fundamentos de Programación en C Apuntadores y Funciones 40% Proyecto 30% Examen Parcial 30% Examen Final 10% Participación Temario: Fundamentos de Programación en C Apuntadores y Funciones Arreglos y Estructuras Manejo de Memoria Recursividad Entrada y Salida de Archivos Desarrollo y Depuración de Proyecto de Programación Total a calificar: 110 puntos!

Material de apoyo: Software: A. KELLY, I. POHL. A Book on C. Addison-Wesley, Reading, EUA, 1998. 2. B. KERNIGHAN, D. RITCHIE. The C Programming Language. Prentice Hall, Second Edition, 1988. 3. D. KNUTH. The Art of Computer Programming. Addison Wesley, 1998. 4. H. DEITEL, P. DEITEL. Como Programar en C/C++. Prentice Hall, Segunda Edición. 1995. 5. L. Joyanes, I. Zahonero. Programación en C - Metodología, Algoritmos y Estructura de Datos. McGraw Hill-Interamericana, 2006. 6. B. Stroustrup. The C++ Programming Language. Addison Wesley. Third Edition. 1997. Software: Compiladores GCC (GNU Compiler Collection) IDEs (Integrated Development Environment): http://www.eclipse.org/downloads/ http://kdevelop.org/ http://www.bloodshed.net/devcpp.html

Asignación Dinámica de Memoria Objetivo General: Entenderá los conceptos relacionados a la asignación de memoria dinámica y manejará las herramientas en C para llevarla a cabo.

Preliminares C/C++ da la flexibilidad al programador de asignar y liberar memoria dinámica La tarea de asignar memoria consiste en encontrar un block de memoria libre del tamaño requerido. La tarea de liberar memoria regresa la memoria asignada para poder ser reutilizada cuando esta ya no es requerida. El Heap es un área de memoria libre que puede ser utilizada para asignarse.

Manejo de Memoria C da acceso al manejo de memoria utilizando funciones de su librería <stdlib.h>: void * malloc(size_t size) Solicita un bloque contiguo de memoria del tamaño requerido por la variable size, y retorna un puntero al bloque asignado, o NULL si no es posible. void free (void* block) Toma un puntero a un bloque de memoria previamente asignado por malloc() y retorna ese bloque al Heap para su reutilización. void* realloc (void* block, size_t size) Toma un bloque de memoria existente, y trata de reasignarlo a un bloque con un nuevo tamaño (más grande o más pequeño). Retorna NULL si no es posible.

Arreglos Dinámicos Los arreglos representan posiciones contiguas de memoria. Podemos entonces asignarlos dinámicamente. int main(){ //Forma usual reservamos un arreglo de 100 enteros int a[100]; //Dinamicamente asignamos un bloque de 100 posiciones int * p = (int *) malloc(sizeof(int) * 100); //Verificamos la asignacion assert(b!=NULL); a[88] = 5; b[88] = 5; //Las dos variables pueden ser usadas igual free(b); }

Ventajas de usar memoria dinámica El tamaño de las estructuras de datos puede definirse en tiempo de ejecución Los datos existirán hasta que explícitamente se libere usando free En tiempo de ejecución se puede modificar el tamaño de memoria asignada. Por ejemplo, para incrementar nuestro arreglo en 100 b = realloc(b, sizeof(int) * 200);

Desventajas de usar memoria dinámica Antes de usar los datos tienes que asignarle memoria Tienes que liberar la memoria explícitamente Los programas con asignación de memoria dinámica son difíciles de depurar porque al compilarlos puede no existir error, pero si la asignación o liberación no se hizo de manera correcta pueden sobreescribirse otras áreas de memoria, corrompiendo datos durante ejecución.