Ejercicios en c++

Solo disponible en BuenasTareas
  • Páginas : 26 (6411 palabras )
  • Descarga(s) : 0
  • Publicado : 3 de febrero de 2011
Leer documento completo
Vista previa del texto
PARTE I
1. Introducción
No tiene ejercicios.
2. Conceptos básicos
2.1) Quedaría del siguiente modo:
    ,
    hay otros tipos de comentarios como los de C++:
    empezar un comentario tipo C y ahora lo acabo. */
        / * Que comentario más precioso * /
    / / Este es más precioso todavía.
2.2) Si en un programa no ponemos la función main(), el programa no se podríaenlazar. Si ponemos dos funciones main() ocurre lo mismo, el compilador da un error de redefinición de una función.
2.3) El programa puede parecer a primera vista muy sencillo. En primer lugar vamos a leer y escribir una cadena. La primera solución intuitiva:
    #include <iostream> // USAMOS: cin, cout
    void main() {
        char s[20]; // Cadena de hasta 19 caracteres
        cin>> s; // Leer la primera palabra
        cout << endl << s // Escribir en nueva línea la cadena
             << endl; // Y pasar a la línea siguiente
        }
El problema es que esto únicamente nos lee la primera palabra de una cadena (esto se explicará en el capítulo de entrada/salida). Aunque no se comprenda de momento, la solución se encuentra en el ficheroEJ02_03.CPP
2.4) Aquí está el programa:
    #include <iostream> // USAMOS: cin, cout
    void main() {
        double d1, d2;
        out << "Introduce dos reales: ";
        cin >> d1 >> d2;
        cout << "La suma es: " << d1 + d2 << endl
    }
2.5) El programa correcto es éste:
    #include <iostream.h> // USAMOS: cout
    voidmain() {
        cout << "Hola mundo";
    }
2.6) Sí es correcta.
2.7) Este comentario es erróneo. Hemos dicho que los comentarios no se detectan en las cadenas. Pues no es completamente cierto. No se detecta su apertura pero sí su clausura. Por ello, las sentencias se convertirían en:
    ";
    */
La solución sería definir de nuevo las sentencias como:
    /*
    cout<< "/* Me pillaste *""/"; // Concatenación de cadenas
    */
3. Tipos de datos
3.1) La función es:
    int Convierte(char c) {
        return int(c - '0');
    }
        // Usando int() en vez de (int) se ahorra un par de paréntesis
3.2) Sí que es válido ya que en C++ todos los tipos integrales son compatibles. Aunque sería mucho mejor explicitar las conversiones:
    b= (byte)w;    w= (word)l;
        d= (dword)w;
3.3) Su longitud es 9 tomando sizeof(int) == 2.
3.4) La primera dará error ya que 8 no es un dígito octal y por tanto 08 es un error. La segunda dará 24 porque 014 está en octal que es 12 en decimal.
4. Control de Flujo
4.1) El listado es funcionalmente correcto pero sintácticamente no. Faltan los puntos y comas de las cuatro sentencias deasignación.
    if (a < b)
        if (a < c)
                            min= a;
        else
              min= c;
    else
        if (b > c)
            min= c;
        else
            min= b;
4.2) Programa que cuenta el número de ocurrencias en una cadena de las 5 vocales en 5 variables diferentes: a, e, i, o, u. Usaremos la función Leer_Cadena() del ejercicio 2.3. Elprograma está en EJ04_02.CPP
4.3) Una función que calcule el M.C.D. de dos números:
    int Mcd(int a, int b) {
        if (a <= 0 || b <= 0)
            return -1; // Código de error
        while (a != b)
            if (a < b)
                b= b - a;
                // b-= a; // Igual que la anterior. Ya se verá
            else
                a= a - b;                // a-= b; // Igual que la anterior
        return a; // Al final el mcd está en a y en b (a == b)
    }
Un ejemplo de uso de la función está en EJ04_03.CPP
4.4) Función que compara dos cadenas:
    int StrCmp(char *s1, char *s2) {
        int i= 0;
        while (s1[i] || s2[i]) { // Hasta terminar las dos
            if (s1[i] < s2[i])
                return -1; //...
tracking img