Introducción - Elisa Schaeffer

Anuncio
Programación científica
C++
Dra. Elisa Schaeffer
elisa.schaeffer@gmail.com
PISIS / FIME / UANL
C++– p. 1
Main
#include <iostream>
using namespace std;
int main()
{
cout << "Hola mundo.";
return 0;
}
C++– p. 2
String
#include <iostream>
#include <string>
using namespace std;
int main()
{
string s;
s = "algo";
cout << s << endl;
return 0;
}
C++– p. 3
Entrada
#include <iostream>
#include <string>
using namespace std;
int main()
{
string nombre;
int edad;
cout << "Mi nombre: ";
getline(cin, nombre);
cout << "Hola, " << nombre << "." << endl;
cout << "Mi edad: ";
cin >> edad;
return 0;
}
C++– p. 4
Valores por defecto
#include <iostream>
using namespace std;
int multiplicar(int esto, int con=2)
{
int resultado = esto*con;
return resultado;
}
int main()
{
cout << multiplicar(10) << endl;
cout << multiplicar(5,4) << endl;
return 0;
}
C++– p. 5
Funciones sobrecargadas
#include <iostream>
using namespace std;
int algo(int a, int b) { return (a%b); }
double algo(double a, double b) { return (a/b); }
int main()
{
cout << algo(5,2) << endl;
cout << algo(5.0,2.0) << endl;
return 0;
}
C++– p. 6
Memoria
#include <iostream>
#include <new>
using namespace std;
int main()
{
int *puntero;
int i, n;
cout << "Cantidad de elementos: ";
cin >> n;
puntero = new (nothrow) int[n]; // malloc
// continua
C++– p. 7
Memoria (cont.)
if (puntero == 0) { // == NULL
cout << "No se pudo." << endl;
} else {
for (i = 0; i < n; i++)
{
cout << "Elemento" << (i+1) << ": ";
cin >> puntero[i];
}
cout << "Fueron estos: ";
for (i = 0; i < n; i++)
cout << puntero[i] << ", ";
delete[] puntero; // free
}
return 0;
}
C++– p. 8
Clases
#include <iostream>
using namespace std;
class Punto {
int x, y;
public:
void pon(int, int);
float largo() { return sqrt(x*x+y*y); }
};
void Punto::pon(int a, int b) {
x = a;
y = b;
}
// continua
C++– p. 9
Clases (cont.)
int main() {
Punto a, b;
a.pon(4, 3);
b.pon(4, 5);
cout << a.largo() << endl << b.largo() << endl;
return 0;
}
C++– p. 10
Constructores y destructores
#include <iostream>
using namespace std;
class Matriz {
int f, c;
int** d;
public:
Matriz(int, int);
˜Matriz();
...
};
\\ continua
C++– p. 11
Constructores y destructores (cont.)
Matriz::Matriz(int a, int b) {
f = a;
c = b;
d = new int[f][c];
}
Matriz::˜Matriz () {
delete d;
}
C++– p. 12
Visibilidad
#include <iostream>
using namespace std;
class Mascota;
class Animal {
private:
...
public:
...
};
class Mascota {
...
friend class Animal;
};
C++– p. 13
Herencia
#include <iostream>
using namespace std;
class Animal {
protected:
...
public:
void comer() { ... }
};
class Perro: public Animal {
...
};
class Gato: public Animal {
...
};
C++– p. 14
Herencia múltiple
#include <iostream>
using namespace std;
class Animal { ... };
class Mascota { ... };
class Perro: public Animal, public Mascota {
...
};
class Gato: public Animal, public Mascota {
...
};
C++– p. 15
Plantillas
#include <iostream>
using namespace std;
template <class T>
T menor (T a, T b) {
T resultado;
resultado = (a < b)? a : b;
return (resultado);
}
int main () {
cout << menor(4.5, 2.4) << endl;
cout << menor(6, 3) << endl;
return 0;
}
C++– p. 16
Para saber más
Casi todo que saben hacer en ANSI-C o en Java se puede
hacer en C++.
Busquen un buen tutorial en línea para familiarizarse con
los detalles de la sintaxis de C++. A menudo enfrentarán
diferencias pequeñas entre los lenguajes.
C++– p. 17
Descargar