Jump to content

Curso c++ Segundo Capitulo


Jfirewall

Recommended Posts

Bien, vamos a ver más cosas nuevas que tiene C++. Para empezar, ahora podemos crear variables dentro de un bucle for. Antes primero teníamos que poner "int i;" para poder usarla dentro del for. Ahora podemas hacerlo directamente dentro del for. Sin embargo, como la variable se crea dentro del for, al salir de él desaparece. Vamos a ver un ejemplo:
 
Crea un programa que pida al usuario un número, y cuente desde el 0 hasta ese número.
 
#include <iostream>using namespace std; int main() {    int numero;    cin >> numero;    for(/*Creamos la variable i dentro del bulce for*/int i = 0; i <= numero; i++) {        cout << i << endl;    }    //Si intentasemos ahora poner    //cout << i << endl;    //nos daría error, porque fuera del for, la variable i no existe    return 0;}
 
Más cosas. En C era obligatorio poner return 0 al final de main, en C++ si no lo pones no pasa nada (automáticamente devolverá 0 a no ser que indiques otra cosa).
 
Además, (y esto también está en C pero olvidé deciroslo) existe la palabra continue dentro de un bucle, tanto for como while que lo que hace es pasar a la siguiente repetición, sin ejecutar nada más. Vamos a ver un ejemplo resuelto con y sin usar continue.
 
Diseña un programa que pida al usuario 10 numeros y muestre al final la suma de todos los números no negativos que ha introducido el usuario.
Solución 1 (con continue):
 
#include <iostream>using namespace std; int main() {    int n, suma = 0;    for (int i = 0; i < 10; i++) {        cout << "Introduce un numero: ";        cin >> n;        if(n<0) {            continue;        }        suma += n;    }    cout << "La suma de todos los positivos es " << suma << endl;    return 0;}
 
Solución 2 (sin continue):
 
#include <iostream>using namespace std; int main() {    int n, suma = 0;    for (int i = 0; i < 10; i++) {        cout << "Introduce un numero: ";        cin >> n;        if(n>0) {            suma += n;        }    }    cout << "La suma de todos los positivos es " << suma << endl;    return 0;}
 
En este caso no resulta muy útil usarlo, pero bueno, ya sabéis que tenéis ahí a continue para que os ayude cuando queráis.
 
Sin embargo, la mayor diferencia entre C y C++ es que C++ es un lenguaje orientado a objetos. Antes de aprender lo que es un objeto, vamos a ver las estructuras (structs) que también existen en C pero no vimos antes. La única diferencia entre las estructuras de C y las de C++ es que las estructuras de C++ pueden contener funciones mientras que las de C no pueden.
 
Una estructura (struct) es un conjunto de variables (y en C++, también pueden ser funciones como hemos dicho antes). Por ejemplo una estructura podría estar formada por dos variables de tipo int y un array de 20 caracteres. Sería algo así:
 
struct mi_estructura {    int num1;    int num2;    char array[20];};
 
Primero se pone la palabra clave struct. Después el nombre que queramos ponerle a la estructura, el que más os guste; pero como todos los nombres creados por nosotos tiene que cumplir ciertas normas. A continuación abrimos una llave, y dentro separados por comillas ponemos cada variable que formará parte de la estructura. Cada una de estas variables es un "campo" de la estructura. Después de cada una ponemos punto y coma. Al final, cerramos una llave y después otro punto y coma. Una vez creado digamos el "prototipo" de la estructura, podemos crear estructuras que tengan los mismos "campos" y cambiar sus valores. Para hacer una estructura del tipo "mi_estructura" en C se hacía así:
 
struct mi_estructura var;
 
y "var" será ahora una estructura que contenga dos campos que son números enteros y otro que es un array de 20 caracteres. Sin embargo en C++ podemos no poner "struct" si queremos. Se quedaría así:
 
mi_estructura var;
 
Se podría decir que mi_estructura es un tipo de datos, al igual que int o float, y que este último código crea una variable de tipo mi_estructura. Sin embargo, lo útil de una estructura es acceder a sus campos. Si queremos que el campo "num1" de "var" valga -25 escribiríamos esto:
 
var.num1 = -25;
 
Para acceder a los campos de una estructura lo hacemos con un punto (.). También podemos hacer un puntero que "apunte" a una estructura. La diferencia es que para acceder a sus campos en lugar de un punto (.) usaremos una flecha, formada por un signo menos (o un guión, que en realidad es lo mismo) y un signo de mayor que (->).
 
mi_estructura *var;var->num1 = -25;
 
Ejercicio 4 (B): Crea una estructura "alumno" cuyos campos serán el nombre del alumno y su edad (tú debes decidir qué tipo de datos será cada uno). Después crea una variable de tipo "alumno" con el nombre que prefieras. Pide al usuario que rellene sus dos campos y luego muéstralos por pantalla.
 
Recuerda las funciones que necesitas para trabajar con cadenas.
Ejemplo de entrada:
 
Eduardo17
 
Ejemplo de salida:
 
[codeNombre: Eduardo.
Edad: 17 años.[/code]
 
Ejercicio 5 (M): Pide al usuario un número N. Después crea un array de N estructuras, cada una contendrá dos campos. El primero, de tipo float, y el segundo de tipo int. Después, pedirá al usuario que rellene todos los campos de todas las estructuras y al final mostrará la suma de todos los floats y la resta de todos los ints.
 
Ejemplo de entrada:
 
21.9 72.2 3
 
Ejemplo de salida:
 
 
La suma es 4.1 y la resta es 4.
 
 
Espero Os Sirva Dudas Comenten y lo aclaro coordial Saludo
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...