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