You are on page 1of 17

Macros

LENGUAJE DE PROGRAMACIÓN ESTRUCTURADO

 Son especialmente útiles para definir constantes: #define PI 3.14159265358979323846 #define MAX_L 10001 #include <iostream> #define PI 3.14159265358979323846 using namespace std.Macros tipo objeto #define IDENTIFICADOR VALOR  Permiten definir identificadores que son automáticamente reemplazados por un fragmento de código. return 0. } int main() { cout<<areaCirculo(10)<<endl. } . double areaCirculo(double r) { return PI * r * r.

b) ((a) < (b) ? (a) : (b)) using namespace std. debug(y).Macros tipo función #define IDENTIFICADOR(…) EXPRESION  Permiten definir identificadores y parámetros que son automáticamente reemplazados por un fragmento de código. y = 4. } . Son especialmente útiles para hacer Operador Condicional (?) magia!!  Permite similar un if-else en una sola línea: cout << (x > 0 ? "positivo" : "negativo") <<endl. #define minimo(a. int main() { int x = 5. debug(minimo(x. #include <iostream> #define debug(X) cout<<#X<<" = "<<X<<endl. y)). debug(x). return 0. debug(x + y).

Estructuras LENGUAJE DE PROGRAMACIÓN ESTRUCTURADO .

} return 0. }. Poligono.Estructuras  Permiten agrupar variables de distinto tipo #include <iostream> #include <cmath> #define MAX_G 100  Generalmente las variables están relacionadas entre si. int main() { Polinomio P. Polinomio. Cuota. int coef[MAX_G]. y en conjunto representan una entidad mayor  Permiten organizar un programa incorporando principios básicos de orientación a objetos  Ejemplos: Alumno. Curso using namespace std. . struct Polinomio { int grado.

Acceso: Polinomio P.grado. int coef[MAX_G].grado = A. B. for(int i=0. 3.Estructuras 1. 2.coef[i] = 0. }. } return 0. Definición: #define MAX_G 100 struct Polinomio { int grado.grado. i++) P. A. P. i<=P.grado + B. También pueden ser consideradas como tipos de datos compuestos . Declaración: int main() { Polinomio P.

Paso por valor y referencia LENGUAJE DE PROGRAMACIÓN ESTRUCTURADO .

cualquier cambio se reflejara dentro y fuera de la función  El paso por referencia es siempre rápido ya que no se hace ninguna copia!  Por defecto en Java.Envío de parámetros a funciones y procedimientos PASO POR VALOR  Se envía una copia del parámetro  Dentro de la función se puede modificar la copia del parámetro. En C++ se debe usar el operador & . sin modificarse el parámetro original  Cuando los parámetros son tipos de datos complejos. realizar la copia puede ser costoso  Por defecto en C/C++ PASO PORuna REFERENCIA  Se envía referencia al parámetro  Al tratarse de la misma referencia al parámetro.

int b) { return a + b. int &b) { int tmp = a. a = b. b = tmp. } int main() { int a = 3. b = 5. double. return 0. cout<<a<<" "<<b<<endl.Tipos primitivos: int. } . } void intercambiar(int &a. b). } PASO POR REFERENCIA void incrementar(int &a) { a++. intercambiar(a. char PASO POR VALOR int sumar(int a.

cout<<"Hola "<<nombre<<endl. int return 0. } int main() { int A[5]. leer(A.Arreglos y Cadenas CADENAS – SIEMPRE PASO POR REFERENCIA void leer(char nombre[]){ cin>>nombre. } int main() { char nombre[100]. leer(nombre). } . i<n. int n){ for(int i=0. 5). } ARREGLO – SIEMPRE PASO POR REFERENCIA void leer(int P[]. i++) cin>>P[i]. return 0.

como buena práctica se debe procurar utilizar referencias siempre que sea posible. void imprimirPolinomio(Polinomio &P) Polinomio multiplicar(Polinomio &A. Polinomio &B) .Estructuras  Por defecto en C++ se envían por valor void leerPolinomio(Polinomio &P)  Las estructuras pueden tener muchos datos dentro de ellas. por este motivo.

Polinomio operator *(const Polinomio &A. // Leer P1 y P2 Polinomio C = P1 * P2. Multiplicación de Polinomios #define MAX_G 100 struct Polinomio { int grado.Operadores de Estructuras 1. Podemos definir los operadores * / + . } return 0. const Polinomio &B) { // Implementacion // return PolinomioProducto } int main() { Polinomio P1. }.para nuestras estructuras . P2. int coef[MAX_G].

Ejercicios LENGUAJE DE PROGRAMACIÓN ESTRUCTURADO .

1. Ordenamiento por Metodo de Burbuja Implementar utilizando la funcion intercambiar(int &a. int &b) .

Polinomio &B) Polinomio: int grado. Implementar funciones para Polinomios void leerPolinomio(Polinomio &P) void imprimirPolinomio(Polinomio &P) Polinomio multiplicar(Polinomio &A. int coef[MAX_G] .2.

int d) int operator -(const Fecha &F1. anio.3. mes. const Fecha &F2) . }. Fecha operator +(const Fecha &F. int d) Fecha operator -(const Fecha &F. Implementar Operadores para Fechas struct Fecha{ int dia.

int X[MAX_R][MAX_C] void transponerMatriz(Matriz &M) Matriz multiplicar(Matriz &A. int C.4. Implementar funciones para Matrices void leerMatriz(Matriz &M) Matriz: int R. Matriz &B) void imprimirMatriz(Matriz &M) Reto: Matriz inversa(Matriz &M) (asumir matriz cuadrada) .