Autor Tema: [Tema Oficial] C/C++  (Leído 6426 veces)

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

DusknoirMaster

  • Ayudante de Profesor
  • ****
  • Mensajes: 1043
  • Karma: +0/-0
  • DusknoirMaster Rules!
    • Ver Perfil

  • Total Badges: 27
    Badges: (View All)
    Nivel 5 Sexto aniversario Usuario de Windows
[Tema Oficial] C/C++
« en: 14 de Noviembre de 2010, 06:17:49 pm »
No se si se puede poner [Tema Oficial] Pero como no hay ninguno mas pues haya vamos.



Este es un Tema especial donde se podrá postear, comentar, opinar, y probar programas hechos en C++ y C, tambien se ofrezerá ayuda a gente que quiera aprender.

Para iniciar este Tema, aqui va una guia rápida de C++:

http://www.tecnun.es/asignaturas/Informat1/AyudaInf/aprendainf/cpp/basico/cppbasico.pdf

Y un programa hecho por mi:

Spoiler: mostrar




#include <iostream>
using namespace std;


int main()
{
    //Los tres valores
    float a;
    {
        cout<<"Escribe el numero correspondiente a 'a': \n";
        cin>>a;
    }
    float b;
    {
        cout<<"Escribe el numero correspondiente a 'b': \n";
        cin>> b;
    }
    float c;
    {
        cout<<"Escribe el numero correspondiente a 'c': \n";
        cin>> c;
    }
    //El perímetro
    float perm;
    {
        perm=a+b+c;
        cout<<"El perimetro de a, b y c es: "<<perm<<"."<<endl;

    }
    //El area del cuadrado
    float area;
    {
        area=b*b;
        cout<<"El area de un cuadrado de lado b es: "<<area<<"."<<endl;
    }
    //La circunferencia
    float circ;
    {
        circ=2*(a+b)*3.1415;
        cout<<"El perimetro de un circulo de radio (a+b) es: "<<circ<<"."<<endl;
    }
    return 0;
}

Es simple, pero para que lo entendais

Si quieren saber algo, no duden en preguntarlo.

P.D: Haber quien es el primero que me dice para que sirve (Es muy fácil)



No creo que pase mucho por Pokexperto, no hasta vacaciones....


sklsmly

  • Ayudante de Entrenador
  • **
  • Mensajes: 103
  • Karma: +0/-0
    • Ver Perfil

  • Total Badges: 16
    Badges: (View All)
    Súper combo Combo Democrático
Re:[Tema Oficial] C/C++
« Respuesta #1 en: 14 de Noviembre de 2010, 11:46:22 pm »
Hombre, sin ánimo de ofender, más que un programa lo llamaría ejercicio...

Bueno: pides tres números (que no compruebas si lo son) que corresponden a los lados de un polígono y calculas su perímetro. Luego calculas el área de un cuadrado de lado igual al segundo número, y terminas sumando el primer y segundo número para obtener el radio de una circunferencia y calculas su perímetro.
by Alliare

DusknoirMaster

  • Ayudante de Profesor
  • ****
  • Mensajes: 1043
  • Karma: +0/-0
  • DusknoirMaster Rules!
    • Ver Perfil

  • Total Badges: 27
    Badges: (View All)
    Nivel 5 Sexto aniversario Usuario de Windows
Re:[Tema Oficial] C/C++
« Respuesta #2 en: 15 de Noviembre de 2010, 01:51:46 am »
Hombre, sin ánimo de ofender, más que un programa lo llamaría ejercicio...

Bueno: pides tres números (que no compruebas si lo son) que corresponden a los lados de un polígono y calculas su perímetro. Luego calculas el área de un cuadrado de lado igual al segundo número, y terminas sumando el primer y segundo número para obtener el radio de una circunferencia y calculas su perímetro.



Bueno, si, es un ejercicio que hice hace tiempo, pero vale como un programa, igualmente, exacto, eso es lo que hace.
Luego posteo como me ha quedado el Decriptador/Encriptador que estaba haciendo.
No creo que pase mucho por Pokexperto, no hasta vacaciones....


sklsmly

  • Ayudante de Entrenador
  • **
  • Mensajes: 103
  • Karma: +0/-0
    • Ver Perfil

  • Total Badges: 16
    Badges: (View All)
    Súper combo Combo Democrático
Re:[Tema Oficial] C/C++
« Respuesta #3 en: 15 de Noviembre de 2010, 02:16:13 am »
Ok. Ya nos lo enseñarás :)

Aquí otro ejercicio. Qué comprueba? ;)
Sin ejecutarlo, que eso es demasiado fácil...

Spoiler: mostrar
Código: [Seleccionar]
#include <stdio.h>
#include <windows.h>

void main (){
int Num, B1;

do{
printf ("Escriba un numero positivo mayor de 2: ");

fflush (stdin);
scanf ("%d", &Num);
}while (Num < 2);

for (B1=2; (B1!=Num/2)&&(Num%B1); B1++);

if (B1 == Num/2)
printf ("El numero %d sí es XX\n", Num);
else
printf ("El numero %d no es XX\n", Num);

system ("pause");
}
[/spoiler]
by Alliare

Pushkin

  • Ayudante de Investigador
  • *
  • Mensajes: 351
  • Karma: +0/-0
    • Ver Perfil
    • Email
  • FC - 3DS: 0104-0622-9382

  • Total Badges: 22
    Badges: (View All)
    Usuario de Windows Súper combo Combo
Re:[Tema Oficial] C/C++
« Respuesta #4 en: 15 de Noviembre de 2010, 05:05:43 am »
Yo tengo una pregunta, ¿para qué sirve el "using namespace std;" debajo de la biblioteca?

DusknoirMaster

  • Ayudante de Profesor
  • ****
  • Mensajes: 1043
  • Karma: +0/-0
  • DusknoirMaster Rules!
    • Ver Perfil

  • Total Badges: 27
    Badges: (View All)
    Nivel 5 Sexto aniversario Usuario de Windows
Re:[Tema Oficial] C/C++
« Respuesta #5 en: 15 de Noviembre de 2010, 05:51:29 am »
Yo tengo una pregunta, ¿para qué sirve el "using namespace std;" debajo de la biblioteca?

Pues creo que es para globalizar los standar de C++, en otras palabras:

Esto en C++ no funcionaria:

#include <iostream.h>
int main()
{
   cout << "Hello, world!" << endl;
}


En cambio, estas tres opciones si:


// Opción 1
#include <iostream>

int main()
{
   std::cout << "Hello, world!" << std::endl;
}

// Opción 2
#include <iostream>
using std::cout;
using std::endl;

int main()
{
   cout << "Hello, world!" << endl;
}

// Opción 3
#include <iostream>
using namespace std;

int main()
{
   cout << "Hello, world!" << endl;
}


Para ahorrarte todo, deberias escribir siempre el "using namespace std;" en tus programas de C++.


Ok. Ya nos lo enseñarás :)

Aquí otro ejercicio. Qué comprueba? ;)
Sin ejecutarlo, que eso es demasiado fácil...

Spoiler: mostrar
Código: [Seleccionar]
#include <stdio.h>
#include <windows.h>

void main (){
int Num, B1;

do{
printf ("Escriba un numero positivo mayor de 2: ");

fflush (stdin);
scanf ("%d", &Num);
}while (Num < 2);

for (B1=2; (B1!=Num/2)&&(Num%B1); B1++);

if (B1 == Num/2)
printf ("El numero %d sí es XX\n", Num);
else
printf ("El numero %d no es XX\n", Num);

system ("pause");
}
[/spoiler]

Bueno, de C no entiendo mucho, pero creo que este programa, lo traduzco:

Escribe un numero mayor que 2
Mientras que el número sea mayor que 2
El numero B1 es igual a 2
B1 es diferente a la mitad de el numero
y al resto de la división entre el número y B1
Se le suma 1 a B1
Si B1 es igual a la mitad del número
El numero ** sí es XX
se visualiza el numero
si no
El número ** no es XX
se visualiza el numero
Fin.

No lo he entendido muy bien....
No creo que pase mucho por Pokexperto, no hasta vacaciones....


sklsmly

  • Ayudante de Entrenador
  • **
  • Mensajes: 103
  • Karma: +0/-0
    • Ver Perfil

  • Total Badges: 16
    Badges: (View All)
    Súper combo Combo Democrático
Re:[Tema Oficial] C/C++
« Respuesta #6 en: 15 de Noviembre de 2010, 06:00:20 am »
Es lo que DusknoirMaster ya te ha comentado, aunque si quieres, mira esto:

Pagina 1
Pagina 2

Y Dusk, lo que dices es correcto, pero ¿cuál es el objetivo del programa? O lo que es lo mismo, esas XX que puse, ¿qué palabra hay que poner ahí?

Desarrollado de otra forma quizá sería más fácil, pero tiendo a compactar el código, aunque eso lo dificulte. Mala costumbre a la hora de revisarlo, sin embargo suele ser más rápido. Manías de cada uno :)

EDITO: Puse el usuario que no era...
« Última modificación: 15 de Noviembre de 2010, 06:12:33 am por sklsmly »
by Alliare

_Julián_

  • Ayudante de Entrenador
  • **
  • Mensajes: 63
  • Karma: +1/-0
  • Realmlist: logon.wow-colombia.com
    • Ver Perfil
    • PokéProyecto
    • Email

  • Total Badges: 21
    Badges: (View All)
    Cinta Descuido Cinta Huella Súper combo
Re:[Tema Oficial] C/C++
« Respuesta #7 en: 15 de Noviembre de 2010, 11:58:15 am »
Ahhh!!!, por fin está este foro en pxp, y si que hay actividad...

Puedo sugerir que este tema se trate más bien de los grandes lenguajes en general y no solamente de C y C++?, ya que como estos hay otro más utilizados (como Java, C#/VisualBasic, Phyton, etc), además no creo que para hablar de otros lenguajes se tenga que hacer otro tema. También se podría poner el tema acerca de "preguntas rápidas" de los diferentes lenguajes (a mi muchas veces me hubiera gustado preguntar de algo en algún sitio conocido donde sé que tal vez me puedan decir algo a estar buscando por horas en internet y estarse registrando en foros para preguntar).

Yo por mi parte podría ayudar en participando en los lenguajes de Java y C#, que son los que manejo más. Cualquier duda o pregunta que tenga una persona trataré de responderla en la medida de lo posible.

Y por mi parte, esto son los proyectos en los que he trabajado y que conciernen a pokemon: http://www.4shared.com/dir/bQ-3SQ5Q/Pokemon.html

Éste es el último que he hecho, que es una calculadora de experiencia para pokemon en 5ª generación: http://www.4shared.com/file/GSgpCS8a/ExperienciaV.html (es diferente a todas las generaciones anteriores).


PD: Éste tema me hace acordar de éste otro del viejo pxp: http://s12.invisionfree.com/Pokexperto/index.php?showtopic=5819

DusknoirMaster

  • Ayudante de Profesor
  • ****
  • Mensajes: 1043
  • Karma: +0/-0
  • DusknoirMaster Rules!
    • Ver Perfil

  • Total Badges: 27
    Badges: (View All)
    Nivel 5 Sexto aniversario Usuario de Windows
Re:[Tema Oficial] C/C++
« Respuesta #8 en: 18 de Noviembre de 2010, 01:55:32 am »
Ni idea, se que tiene algo que ver con dos, podría ser los múltiplos o algo asi....

P.D: Hay un error en el código, creo que no puede ser "void main()" si no "int main()" porque devuelves un valor entero....
No creo que pase mucho por Pokexperto, no hasta vacaciones....


Alliare

  • Administrador
  • Pokéxperto Alpha
  • *
  • Mensajes: 7293
  • Karma: +4/-0
  • ...
    • Ver Perfil
    • Pokexperto
  • FC - 3DS: 2964-9235-9718

  • Total Badges: 47
    Badges: (View All)
    Noveno aniversario Octavo aniversario Séptimo aniversario
Re:[Tema Oficial] C/C++
« Respuesta #9 en: 18 de Noviembre de 2010, 01:59:15 am »
Venga, chicos, que yo lo saqué, así que tiene que ser fácil =P

Muchas gracias a Pájaro por la fima y avatar *-*

Pedro's

  • Pokéxperto
  • **
  • Mensajes: 5679
  • Karma: +20/-0
  • Penguin Army Leader
    • Ver Perfil
    • KAWAHAL
    • Email

  • Total Badges: 46
    Badges: (View All)
    Décimo aniversario Noveno aniversario Octavo aniversario
Re:[Tema Oficial] C/C++
« Respuesta #10 en: 18 de Noviembre de 2010, 03:59:22 am »
Ni idea, se que tiene algo que ver con dos, podría ser los múltiplos o algo asi....

P.D: Hay un error en el código, creo que no puede ser "void main()" si no "int main()" porque devuelves un valor entero....
Creo que más que los múltiplos es el m.c.d. ( o sea, el máximo común divisor).¿Me equivoco?

Airblast

  • Gurú Pokémon
  • ****
  • Mensajes: 2969
  • Karma: +3/-0
    • Ver Perfil
    • Es una web buenísima

  • Total Badges: 28
    Badges: (View All)
    Nivel 5 Súper combo Combo
Re:[Tema Oficial] C/C++
« Respuesta #11 en: 18 de Noviembre de 2010, 04:16:02 am »
Ahhh!!!, por fin está este foro en pxp, y si que hay actividad...

Puedo sugerir que este tema se trate más bien de los grandes lenguajes en general y no solamente de C y C++?, ya que como estos hay otro más utilizados (como Java, C#/VisualBasic, Phyton, etc), además no creo que para hablar de otros lenguajes se tenga que hacer otro tema. También se podría poner el tema acerca de "preguntas rápidas" de los diferentes lenguajes (a mi muchas veces me hubiera gustado preguntar de algo en algún sitio conocido donde sé que tal vez me puedan decir algo a estar buscando por horas en internet y estarse registrando en foros para preguntar).

Yo por mi parte podría ayudar en participando en los lenguajes de Java y C#, que son los que manejo más. Cualquier duda o pregunta que tenga una persona trataré de responderla en la medida de lo posible.

Y por mi parte, esto son los proyectos en los que he trabajado y que conciernen a pokemon: http://www.4shared.com/dir/bQ-3SQ5Q/Pokemon.html

Éste es el último que he hecho, que es una calculadora de experiencia para pokemon en 5ª generación: http://www.4shared.com/file/GSgpCS8a/ExperienciaV.html (es diferente a todas las generaciones anteriores).


PD: Éste tema me hace acordar de éste otro del viejo pxp: http://s12.invisionfree.com/Pokexperto/index.php?showtopic=5819
Y yo con Python, que experiencia tengo. Aunque no soy un superprogramador como tú, pero algo sé.

Alliare

  • Administrador
  • Pokéxperto Alpha
  • *
  • Mensajes: 7293
  • Karma: +4/-0
  • ...
    • Ver Perfil
    • Pokexperto
  • FC - 3DS: 2964-9235-9718

  • Total Badges: 47
    Badges: (View All)
    Noveno aniversario Octavo aniversario Séptimo aniversario
Re:[Tema Oficial] C/C++
« Respuesta #12 en: 18 de Noviembre de 2010, 06:06:07 am »
Creo que más que los múltiplos es el m.c.d. ( o sea, el máximo común divisor).¿Me equivoco?

Sí. Piensa que la respuesta que obtienes es "sí es XX" o "no es XX". No obtienes un número, ni nada parecido.

Para que lo entiendas mejor, piensa en XX como en una variable de tipo boolean. Dependiendo de los resultados, se evalúa a true o a false.

Muchas gracias a Pájaro por la fima y avatar *-*

DusknoirMaster

  • Ayudante de Profesor
  • ****
  • Mensajes: 1043
  • Karma: +0/-0
  • DusknoirMaster Rules!
    • Ver Perfil

  • Total Badges: 27
    Badges: (View All)
    Nivel 5 Sexto aniversario Usuario de Windows
Re:[Tema Oficial] C/C++
« Respuesta #13 en: 18 de Noviembre de 2010, 06:20:22 am »
Creo que más que los múltiplos es el m.c.d. ( o sea, el máximo común divisor).¿Me equivoco?

Como va a ser el m.c.d, si el numero del que estamos hablando es 2, el cual solo es 2, además hay que insertar un número, asi que no le veo mucho sentido. Ademas, hay algo sobre el resto de una division, que es lo que no entiendo...
No creo que pase mucho por Pokexperto, no hasta vacaciones....


Pedro's

  • Pokéxperto
  • **
  • Mensajes: 5679
  • Karma: +20/-0
  • Penguin Army Leader
    • Ver Perfil
    • KAWAHAL
    • Email

  • Total Badges: 46
    Badges: (View All)
    Décimo aniversario Noveno aniversario Octavo aniversario
Re:[Tema Oficial] C/C++
« Respuesta #14 en: 18 de Noviembre de 2010, 06:26:46 am »
Como va a ser el m.c.d, si el numero del que estamos hablando es 2, el cual solo es 2, además hay que insertar un número, asi que no le veo mucho sentido. Ademas, hay algo sobre el resto de una division, que es lo que no entiendo...
No sé, yo tampoco entiendo lo de la división, por eso hice una posibilidad tonta a ver si acertaba. Un fallo, lo tengo merecido, aunque toda mi vida es fallo. Perdonad, estoy con depresión  :snif: :suicide:

Alliare

  • Administrador
  • Pokéxperto Alpha
  • *
  • Mensajes: 7293
  • Karma: +4/-0
  • ...
    • Ver Perfil
    • Pokexperto
  • FC - 3DS: 2964-9235-9718

  • Total Badges: 47
    Badges: (View All)
    Noveno aniversario Octavo aniversario Séptimo aniversario
Re:[Tema Oficial] C/C++
« Respuesta #15 en: 18 de Noviembre de 2010, 09:07:04 am »
No sé, yo tampoco entiendo lo de la división, por eso hice una posibilidad tonta a ver si acertaba. Un fallo, lo tengo merecido, aunque toda mi vida es fallo. Perdonad, estoy con depresión  :snif: :suicide:

Piiiiip. Aquí no se admiten depresiones.... :) :)

Venga, que es fácil.

Pensad, hay un bucle ahí...

¿Cuál es la condición de salida del bucle?

Tratad de formularlo de otra forma que no sea con do/while.

Muchas gracias a Pájaro por la fima y avatar *-*

sklsmly

  • Ayudante de Entrenador
  • **
  • Mensajes: 103
  • Karma: +0/-0
    • Ver Perfil

  • Total Badges: 16
    Badges: (View All)
    Súper combo Combo Democrático
Re:[Tema Oficial] C/C++
« Respuesta #16 en: 18 de Noviembre de 2010, 05:20:26 pm »
Bueno... Lo comento (ya avisé que me gusta liar el código... para otra vez simplifico):

for (B1=2; (B1!=Num/2)&&(Num%B1); B1++);

La clave está ahí. El bucle recorre en B1 todos los números desde 2, hasta llegar a uno que divida a Num. Si lo divide, se sale. Si no lo encuentra antes de llegar a la mitad de Num, sale también.

if (B1 == Num/2)

Luego comprueba si ha llegado o no a esa mitad. Si ha llegado significa que no existe ningún número entre 2 y Num que lo pueda dividir. Es decir, que Num es un número primo (Esa es la palabra que "tapan" las XX).

Por qué hasta la mitad de Num y no hasta Num? Por que sí =P Realmente, si no encuentra nada antes de esa mitad, ya no lo encontrará. En un poco largo de explicar (en realidad, bastaría buscar hasta la raíz cuadrada de Num, no en la mitad, pero da igual...)

Un saludo y no os preocupéis. No era fácil.

Edito:
Citar
P.D: Hay un error en el código, creo que no puede ser "void main()" si no "int main()" porque devuelves un valor entero....
En realidad no... Hay compiladores que exigen declararlo como int, y otros te permiten el void. Fijate que no hay Return, por lo que no necesito el Int. Yo uso el C de microsoft. El de borland sí que lo pide como tu dices, si no recuerdo mal.

En realidad, eso casi no se usa. Es para indicar al sistema operativo si el programa ha terminado bien, o si un error ha forzado su cierre. Se puede usar si un programa tuyo llama a otro tuyo, o en ms-dos para los archivos batch... Yo no lo he necesitado nunca, asi que tampoco te puedo contar mucho mas.
« Última modificación: 18 de Noviembre de 2010, 10:50:17 pm por sklsmly »
by Alliare

Alliare

  • Administrador
  • Pokéxperto Alpha
  • *
  • Mensajes: 7293
  • Karma: +4/-0
  • ...
    • Ver Perfil
    • Pokexperto
  • FC - 3DS: 2964-9235-9718

  • Total Badges: 47
    Badges: (View All)
    Noveno aniversario Octavo aniversario Séptimo aniversario
Re:[Tema Oficial] C/C++
« Respuesta #17 en: 18 de Noviembre de 2010, 11:42:14 pm »
Cuando miro el código así, cuando lo pones, digo "ah, vale, es para calcular si un número es primo o no". Ahora que lo has explicado, no me entero de nada. Es lo que tiene saber cuatro cosas de pseudocódigo y no tener ni idea de programar.

Soy patética.

Barra libre para reírse de mí/meterse conmigo.

Muchas gracias a Pájaro por la fima y avatar *-*

sklsmly

  • Ayudante de Entrenador
  • **
  • Mensajes: 103
  • Karma: +0/-0
    • Ver Perfil

  • Total Badges: 16
    Badges: (View All)
    Súper combo Combo Democrático
Re:[Tema Oficial] C/C++
« Respuesta #18 en: 19 de Noviembre de 2010, 12:48:18 am »
O quizá me he explicado bastante mal...  En cualquier caso, tu programadora intuitiva :)
by Alliare

Alliare

  • Administrador
  • Pokéxperto Alpha
  • *
  • Mensajes: 7293
  • Karma: +4/-0
  • ...
    • Ver Perfil
    • Pokexperto
  • FC - 3DS: 2964-9235-9718

  • Total Badges: 47
    Badges: (View All)
    Noveno aniversario Octavo aniversario Séptimo aniversario
Re:[Tema Oficial] C/C++
« Respuesta #19 en: 19 de Noviembre de 2010, 01:03:01 am »
O quizá me he explicado bastante mal...  En cualquier caso, tu programadora intuitiva :)

No creo que te hayas explicado mal. Ya verás cómo ahora lo entienden todos.

Muchas gracias a Pájaro por la fima y avatar *-*