Jfirewall Posted November 3, 2013 Report Share Posted November 3, 2013 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 Quote Link to comment Share on other sites More sharing options...
Melany Posted November 3, 2013 Report Share Posted November 3, 2013 tu forma de programar es muy diferente a la mia =3 Quote Link to comment Share on other sites More sharing options...
pepineitor Posted November 3, 2013 Report Share Posted November 3, 2013 Debes iniciar sesión para ver el contenido del enlace en esta publicación. Ahorrate el copypaste basurero que haces siempre, creo que poniendo el link sobra, total es lo mismo. Autor Hawkings. Quote Link to comment Share on other sites More sharing options...
Tiico™ Posted November 3, 2013 Report Share Posted November 3, 2013 Erase de venir, yo pense que sabia c++ , pero dudaba por que ni de lua metin2 sabia, que es re facil xD Quote Link to comment Share on other sites More sharing options...
fuuton97 Posted November 3, 2013 Report Share Posted November 3, 2013 Qué mierda, este Jfirewall es copy paste, y ni siquiera das créditos. Qué le pasa a esta gente de MZ. Quote Link to comment Share on other sites More sharing options...
Edward Posted November 3, 2013 Report Share Posted November 3, 2013 Madre mia... xD Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.