Pregunta de principiante.

Iniciado por Alien-Z, 13 Agosto 2011, 01:43 AM

0 Miembros y 2 Visitantes están viendo este tema.

Alien-Z

Buenas, escribo para plantear una pregunta de principiante:

Bien, hace unos años estuve programando en C++ siguiendo un libro llamado "Aprenda C++ como si estuviera en primero"; en dicho libro aprendí que para mostrar un mensaje en la pantalla se usa:

printf

Sin embargo ahora, buscando varias versiones de este manual para volver a la programación, acabé cansándome ya que todas las que encontré tenían un lenguaje un poco complejo, y no conseguí dar con la versión para "super principiantes nivel 0" que era con la que me entendía.

Al final opté por buscar otros manuales y acabé con un pequeño video-tutorial de 9 capítulos que te intruce en la programación (aqui os dejo el primer capitulo: http://www.youtube.com/watch?v=eVaFqHE1mIY ). Mi duda surje al fijarme en que en vez de usar "printf" para imprimir un mensaje en la pantalla, usa el código "cout".

De la misma forma después de un comando añade "<<" en el caso de cout y ">>" en el caso de cin. Quisiera saber a qué es debido que use comandos en C++ que no eran los que aprendí hace unos años ni son los mismos que usan los programadores que hay en esta página (he revisado varios scripts y parece otro lenguaje O.o).


Disculpad si es una pregunta demasiado tonta, pero me resulta demasiado extraño que estudiando el mismo lenguaje use códigos diferentes.

Saludos.

jhonatanAsm

hay distintas formas de mostrar un resultado.

te recomiendo usar la mejor,jejjejeee.
mi primer lenguaje fue ensamblador, tengo 60 años, y no creo que haya sido un error.

- La mayor complejidad de todas es hacer complejo algo que no lo es.

- El inteligente no es aquel que lo sabe todo sino aquel que sabe utilizar lo poco que sabe.

Alien-Z

#2
mmm.... agradecería que me lo aclararais mejor... ¿da lo mismo la forma que use?, ¿afecta de alguna forma al programa?.

Citarte recomiendo usar la mejor,jejjejeee.

¿Y cuál es la mejor? O.o... me parece un poco incoherente esta respuesta...

beholdthe

Cita de: Alien-Z en 13 Agosto 2011, 02:06 AM
mmm.... agradecería que me lo aclararais mejor... ¿da lo mismo la forma que use?, ¿afecta de alguna forma al programa?.

¿Y cuál es la mejor? O.o... me parece un poco incoherente esta respuesta...
+1

Beakman

Lo que pasa es que "printf" es de C.
En C++ tenés el manejo de objetos, la programación orientada a objetos y se simplifican muchísimas cosas.
Por ejemplo con la sobrecarga de operadores. al hacer "cout << algo;" se está sobrecargando el operador "<<" y es lo mismo que hacer un printf, pero te simplifica muchísimo la tarea.
Yo creo que lo primero a aprender es C, luego tenés que aprender C++, y con esto la programación orientada a objetos.

CitarDisculpad si es una pregunta demasiado tonta, pero me resulta demasiado extraño que estudiando el mismo lenguaje use códigos diferentes.
Ninguna pregunta es tonta, si tenemos una duda hay que resolverla.

El código no varía mucho, lo que si tenés que prestar atención es las diferencias entre C y C++, y así también las diferencias entre distintos compiladores, algunos ponen int main(), en otros aceptan void main( void ).
Cosas así, pero la sintaxis es la misma.

Como siempre hay un libro que yo recomiendo, es un manual de C++ escrito por Pozo Coronado, donde a mi parecer está todo muy bien explicado. saludos.

Queta

"Intenta no volverte un hombre de éxito, sino volverte un hombre de valor." Albert Einstein.

Alien-Z

#6
CitarTambién es de C++.

¿Pero por usar es más correcto cout o printf? (esto solo es un ejemplo, he visto más funciones como es el caso de "cin" en vez de "scanf" o el almacenamiento de datos introducidos por el usuario que antes lo hacía con ("%d", &nombrevariable) y sin embargo ahora basta con usar "cin >> nombrevariable"). Aqui he encontrado un ejemplo: http://foro.elhacker.net/programacion_cc/triangulo_problema_al_compilar-t336278.0.html

CitarEn C++ tenés el manejo de objetos, la programación orientada a objetos y se simplifican muchísimas cosas.
Por ejemplo con la sobrecarga de operadores. al hacer "cout << algo;" se está sobrecargando el operador "<<" y es lo mismo que hacer un printf, pero te simplifica muchísimo la tarea.

Vale muchas gracias, ya me ha quedado un poco más claro, entonces debería seguir la metodología del tutorial que he linkeado en el primer mensaje (usando códigos orientados a objetos como me has explicado).

CitarComo siempre hay un libro que yo recomiendo, es un manual de C++ escrito por Pozo Coronado, donde a mi parecer está todo muy bien explicado. saludos.

Lo he buscado y estoy echándole un vistazo, por lo que veo de primeras lo explica todo de forma detallada asi que lo seguiré como referencia.

Otra duda que me ha surgido, qué diferencia hay entre llamar a una libreria asi:

# include <iostream>

O asi:

# include <iostream.h>

¿Qué es el ".h" que añaden algunos programadores (y otros lo omiten)?, ¿cómo es más correcto?.

Gracias de nuevo, saludos.

Beakman

Cita de: Queta en 13 Agosto 2011, 13:09 PM
También es de C++.
Por supuesto, todo lo que esté en C es de C++, yo solo quise decir que en C++ tenés otras alternativas, que en realidad serían las mismas pero mejoradas.

¿Pero por usar es más correcto cout o printf?
Eso es depende a qué te acostumbres. Si vos querés la POO, creo que tendrías que acostumbrarte a usar cout, a sobrecargar operadores, como así también a usar String en lugar de un vector de caracteres, etc...
De todas formas en el funcionamiento no cambia.

Citar¿Qué es el ".h" que añaden algunos programadores (y otros lo omiten)?, ¿cómo es más correcto?.
El <iostream> NO lleva ".h", solo ví el ".h" en códigos para entornos de windows, la verdad no lo sé por qué lo lleva, porque yo no lo uso.

rir3760

La forma "políticamente correcta" es <N> ya que así las facilidades cortesía de ese encabezado se colocan en el nombre de espacios estándar "std", para acceder a ellos se utiliza el nombre compuesto "std::X", "std::Y", etc. o bien directivas "using" para incluir en el nombre de espacios global solo los nombres necesarios.

La forma <N.h> es equivalente a:
Código (cpp) [Seleccionar]
#include <N>
using namespace::std;

Con la desventaja de que todos los nombres cortesía de la inclusión ahora están en el nombre de espacios global lo que abre la puerta al conflicto de nombres (y la razón de los nombres de espacios es justamente eso: evitarlos).

Un saludo
C retains the basic philosophy that programmers know what they are doing; it only requires that they state their intentions explicitly.
--
Kernighan & Ritchie, The C programming language

Danyel_Casvill

#9
Hola!!

Mira que ya te dijeron, En C, se usa como entradas y salidas estandar printf y scanf, pero en C++ lo han mejorado y ahora es mas facil utilizar cout<<; y cin>>; aunque todo depende de lo que te parezca más cómodo.

cout<<; = mostrar:
cin>>;   = tomar:

Ejemplo:
Así lo haríamos en C:
#include <stdio.h>

int main()
{
int x=10,y;
printf("El valor de x es:%i\n",x); //endl se una para saltar de línea
printf("Ingrese un valor para y:");
scanf("%i",&y);
printf("El valor de x es:%i\n",x);
printf("Y el valor de y es:%i",y);

getchar();
return 0;
}

Y así lo haríamos normalmente en C++, aunque todo código hecho en C tambiem compila en C++ por lo cual el código de arriba tambien es válido en C++
Código (cpp) [Seleccionar]

#include <iostream>

using namespace std;

int main()
{
int x=10,y;
cout<<"El valor de x es:"<<x<<endl; //endl se una para saltar de línea
cout<<"Ingrese un valor para y:";
cin>>y;
cout<<"El valor de x es:"<<x<<endl<<" Y el valor de y es:"<<y;

cin.get();cin.get();
return 0;
}


Si me equivoco por favor que me corrijan, saludos  ;D.

EDIT:

Gracias por la aclaración!!
Ya lo cambie ^^
adada