Está en la página 1de 24

Informtica II

Clase 1: Introduccin
1

Contenido

1 2 3 4

Funciones

Distribucin de la memoria
El compilador DevC++

Informtica II Ude@ 2011/1

Funciones
Una funcin es, en efecto, un subprograma que puede actuar sobre los datos y devuelve un valor. Un programa se ejecuta lnea por lnea en el orden que aparece en el cdigo fuente hasta que se alcance una funcin. Luego, el programa salta para ejecutar la funcin. Cuando la funcin termina, se devuelve el control a la lnea de cdigo inmediatamente despus de la llamada a la funcin.
3 Informtica II Ude@ 2011/1

Funciones
Programa
Int Main() { int a, b;//Declaraciones Func1(); --------------Func2(); --------------Return 0; }

Func1 __ __ __ return Func2


---Func3() ---return

Func3 __ __ __ return

Informtica II Ude@ 2011/1

Valores de retorno, parmetros y argumentos


int miFuncion(); Se esta declarando que miFuncion() retorna un valor entero. int miFuncion(int entero, float flotante); No solo retorna un entero, toma un valor entero y uno flotante como parmetros. Define el tipo y el nombre. int ValorRetornado = miFuncion(5 , 6.7); los valores enviados a la funcin son llamados argumentos.
5 Informtica II Ude@ 2011/1

Declarando y definiendo funciones


La utilizacin de funciones en su programa requiere que primero se declare y luego se defina la funcin. Prototipo de la funcin : long Area(long largo, long ancho); Definicin de la funcin: long Area(long l, long w) { return l * w ; }
6 Informtica II Ude@ 2011/1

Uso de funciones
#include <iostream> using namespace std; // funcin FuncinDeMuestra // imprime un mensaje til void FuncionDeMuestra() { cout << "Estamos dentro de FuncionDeMuestra\n"; }

// main - imprime un mensaje y luego // llama a FuncionDeMuestra, luego imprime un segundo mensaje. int main() { cout << "Estamos dentro de main\n" ; FuncionDeMuestra(); cout << "Estamos de regreso en main\n"; return 0; }
7 Informtica II Ude@ 2011/1

Casting, tipo C
Existen problemas con el casting tipo C. Usar las castas de C++, mejora el cdigo, hacindolo mas fcil de entender, resistente a errores causados por un mal uso de los tipos y mas fcil de mantener.
int main() { short a; int b; a = (short) b; //Casting return 0; }
8 Informtica II Ude@ 2011/1

Casting, tipo C++


static_cast, convertir de un tipo a otro const_cast, para remover o aadir la condicin de constante dynamic_cast, para navegar entre las herencias de una clase reinterpret_cast, para convertir tipos no relacionados
(MUCHO CUIDADO, DEPENDE DE IMPLEMENTACION)

sintaxis: static_cast<T> (expr) double result = static_cast<double>(4)/5;


9 Informtica II Ude@ 2011/1

Uso del typedef


Puede llegar a ser tedioso, repetitivo y, lo ms importante, propenso a errores para seguir escribiendo unsigned short int. C + + permite crear un alias para esta expresin utilizando la palabra clave typedef. Se usa de la siguiente manera: typedef unsigned short int USHORT;

10

Informtica II Ude@ 2011/1

Variables y Constantes
Una variable es un lugar en memoria para almacenar informacin. Cada variable tiene un tamao especfico que le dice a la mquina cuanta memoria necesita reservar. Existen variables locales y globales. C++ es un lenguaje fuertemente tipado.
11

Tipo
char short int float double

Nmero de Bits 8 16 32 32 64

Informtica II Ude@ 2011/1

Uso de Constantes
Constantes
Hay dos tipos:

Literal
Int Edad = 40;
Edad es una variable tipo int; 40 es una constante literal.

Simblicas
#define estudiantes 5 const unsigned short int estudiantes= 8;

12

Informtica II Ude@ 2011/1

Uso de constantes enumeradas


#include <iostream> using namespace std; int main() { enum Dias { Domingo, Lunes, Martes, Miercoles, Jueves, Viernes, Sabado }; // Lo importante de enum es que crea un tipo. int opcion; cout << "Escriba un da (0-6): "; cin >> opcion; if (opcion == Domingo || opcion == Sabado) cout << "\nYa se le agotaron los fines de semana!\n"; else cout << "\nEst bien, incluir un da de descanso.\n"; return 0; 13 } Informtica II

Ude@ 2011/1

Como se distribuye la memoria?


Existen 5 espacios de memoria que el PC utiliza:

Espacio de nombres globales Free store (heap) Registros Espacio de cdigo Stack

14

Informtica II Ude@ 2011/1

Registros
Son espacios de memoria especial construidos en la Unidad de Procesamiento Central (CPU) Guardan los resultados de las operaciones, siguen el rastro del stack y comandos a ser ejecutados El instruction pointer es el encargado de llevar registro de la siguiente lnea de cdigo a ejecutar (Siempre apunta a la siguiente instruccin).
15

Informtica II Ude@ 2011/1

Espacio de Cdigo
Es el espacio de memoria donde se aloja el cdigo.
//Codigo 100 Int Main() 101 { 102 int x=5; 103 int y=7; 104 cout << x; 105 Func1(x,y); 106 y=9; 107 Func2(); 108 Return 0; }

102

Instruction Pointer

16

Informtica II Ude@ 2011/1

El Stack
Espacio diseado para llevar registro de los datos requeridos por cada funcin.
Utiliza la estructuracin de datos LIFO (Last Input First Output) El registro encargado de la pila se denomina Stack Pointer

17

Informtica II Ude@ 2011/1

Funcionamiento

18

Informtica II Ude@ 2011/1

El Compilador DevC++
Dev-C++ es un compilador y entorno de desarrollo para C/C++. Consiste en un editor de mltiples ventanas integrado con un compilador que nos permitir una compilacin, un enlace y una ejecucin de aplicaciones rpida y de fcil uso. No ignorar los mensajes de advertencia! Estos significan que el compilador puede crear el programa ejecutable a partir del cdigo fuente, pero el compilador no cree que usted realmente quiera hacer lo que escribi en el cdigo.
19 Informtica II Ude@ 2011/1

Etapas de compilacin
La compilacin de un programa consiste en cuatro (4), etapas sucesivas: Preprocesamiento Compilacin Ensamblado Enlazado

Los comandos utilizados en el compilador realizan todos los pasos de una sola vez.
20

Informtica II Ude@ 2011/1

Etapas de compilacin
Texto archivo.i Compilacin

Preprocesamiento

Ensamblador archivo.s

Archivo.cpp
Ensamblado Ejecutable archivo.out Enlazado

Cdigo Objeto archivo.o

21

Informtica II Ude@ 2011/1

Enlace dinmico y esttico


Esttico: los binarios de las funciones se incorporan al cdigo binario de nuestro ejecutable. Dinmico: el cdigo de las funciones permanece en la biblioteca; nuestro ejecutable cargar en memoria la biblioteca y ejecutar la parte de cdigo correspondiente en el momento de correr el programa.

22

Informtica II Ude@ 2011/1

Bibliografa
Como Programar en C++ - Deithel & Deithel Ed. PRENTICE HALL Sams Teach Yourself C++ in One Hour a Day, J. Liberty,S. Rao, B. Jones http://newdata.box.sk/bx/c/

23

Informtica II Ude@ 2011/1

24

También podría gustarte