Autor Tema: Brevísimo tutorial de C++ para cálculo numérico. (BORRADOR)

0 Usuarios y 1 Visitante están viendo este tema.

05 Abril, 2013, 08:51 pm
Leído 184 veces

mathtruco

  • Moderador Global
  • Mensajes: 5,499
  • País: cl
  • Karma: +0/-0
  • Sexo: Masculino
  • El gran profesor inspira
Brevísimo tutorial de C++ (pensado en cálculo numérico)

- C++ :  dos cucharadas y a la sopa -

Introducción:

  El objetivo de este escrito es tener una guía breve de C++ pensado en su aplicación al cálculo numérico. Para que el escrito sea lo más corto y cómodo de consultar los comentarios fueron escondidos en los spoiler, y puede omitirse su lectura.

  Los ejemplos fueron compilados usando g++ (versión 4.7.2) en linux.


  Para aprender en profundidad este lenguaje se pueden revisar los siguientes cursos:

Bibliografía (lectura complementaria)
  + Aprenda C++ como si estuviera en primero (*)
  +

  ------------
  (*) Es una introducción a C++ redactado a modo de curso pensado en lectores con nociones de C y que quieran aprender por su cuenta.



Algunas preguntas:

    - ¿Es necesario saber C para aprender C++?
      No. C++ es otro lenguaje, pero como es una amplicación de C (casi todo lo que se escribe en C compilará en C++) los que manejen este lenguaje pueden aprender C++ más rápido. Por esto muchos manuales de C++ están pensados para lectores con nociones de C.
   


     


Hello World!

Código: [Seleccionar]
  #------------------------
  #include <iostream>
  using namespace std;

  int main(void){

    cout << "Hello World!" << endl;
    return(0);  // <--> return 0;

  }
  #-------------------------

  Si se guardan estas líneas en el archivo saludo.cpp se puede compilar con el comando

Código: [Seleccionar]
  > g++ saludo.cpp -o saludo
  y puede ejecutarse con

Código: [Seleccionar]
  > ./saludo

 
Explicación del código
  - iostream: es un componente de la biblioteca estándar (STL) de C++ utilizado para operaciones de entrada/salida (cin, cout, cerr, clog, endl). Su nombre es un acrónimo de Input/Output Stream.

    OBS: en C es necesario colocar el nombre de las bibliotecas con su extensión .h, pero en las bibliotecas de C++ no.

  - using namespace std (la segunda línea del programa):
    La instrucción "
Código: [Seleccionar]
using namespace" especifica que los miembros de un namespace van a utilizarse frecuentemente en un programa. Se aconseja no abusar de esta opción.

    La segunda línea del programa puede omitirse, quedando:

Código: [Seleccionar]
    #------------------------
    #include <iostream>

    int main(void){
   
    std::cout << "Hello World!" << "\n";
    return(0);
   
    }
    #------------------------

  Nótese que para el retorno de carro en vez de "endl" se debe usar "\n", el cual es un comando de C.

  Return(0) puede no ir.

 
[cerrar]



Variables

Tipos de datos
   C++ tiene los siguientes tipos fundamentales:

   - Caracteres: char (**), wchar_t
   - Enteros: short, int, long, long long
   - Números en coma flotante: float, double, long double
   - Booleanos: bool
   - Vacío: void
   El modificador unsigned se puede aplicar a enteros para obtener números sin signo (por omisión los enteros contienen signo), con lo que se consigue un rango mayor de números naturales.

   (**) en cierto sentido, char es un entero.


  Antes de usar una variable ésta debe declararse para que el compilador asigne el espacio de memoria correspondiente. Algo interesante: los contadores en los ciclos pueden declararse dentro de la misma línea donde se declara el ciclo (se explicará en la sección "ciclos").

 
Citar
  En C las variables (incluídos los contadores de los ciclos) deben inicializarse en la primera parte del bloque. En C++ pueden inicializarse en cualquier parte del bloque, dando la opción de declararlas justo antes de usarlas.
 


Conversión de tipos

  Cuando se operan (suman, multiplican...) dos variables de precisión distinta, éstas deben convertirse a un mismo tipo antes de operar.

  - Conversión implícita:
    La variable de menor precisión se convierte a la de mayor precisión de forma automática antes de hacer la operación.

  - Conversión explícita:
    El programador puede elegir cambiar el tipo de una variable.

    x=float(i); // cambia el tipo de la variable i en float, por lo que x será float.


 
Citar
  Otra forma de cambiar tipos:
 

  Cuidado con las conversiones implícitas:

Código: [Seleccionar]
  #------------------------
  #include <iostream>
  using namespace std;

  int main(void){
    cout << 1/2               << endl; // = 0
    cout << 1.0/2.0           << endl; // = 0.5
    cout << float(1)/float(2) << endl; // = 0.5
    return(0);
  }
  #------------------------

  La razón es que en el primer ejemplo se operan dos enteros, por lo que el resultado es la parte entera de la divión. En las dos siguientes se operan reales así que el resultado es el esperado.



* Operadores
  Operadores Unarios
  Operador * (de indirección)
  Operador -> (de indirección)
  Operador & (de dirección)
  Operador +
  Operador -
  Operador ++
  Operador --

  Operadores Binarios
  Operador ==
  Operador +
  Operador -
  Operador *
  Operador /
  Operador %
  Operador <<
  Operador >>
  Operador &
  Operador ^
  Operador |
  Operador []
  Operador ()

  Operadores de Asignación
  Operador =
  Operador +=
  Operador -=
  Operador *=
  Operador /=
  Operador %=
  Operador <<=
  Operador >>=
  Operador &=
  Operador ^=
  Operador |=


Funciones

  Un pequeño ejemplo:

Código: [Seleccionar]
  #------------------------
  #include <iostream>
  using namespace std;

  void saluda(void)
  {
    cout << "Hellow World!" << endl;
  }

  int main(void)
  {
    saluda();
    return(0);
  }
  #------------------------