elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: (TUTORIAL) Aprende a emular Sentinel Dongle By Yapis


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Pasar código de c++ a C
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Pasar código de c++ a C  (Leído 4,733 veces)
remphenter

Desconectado Desconectado

Mensajes: 15


Ver Perfil
Pasar código de c++ a C
« en: 20 Agosto 2018, 08:54 am »

El código hecho en C++ es así:

Código
  1. #include <iostream>
  2. #include <cstdlib>
  3. using namespace std;
  4. float a,b,c;
  5.  
  6. class calificacion{
  7. private:
  8. float numeroA, numeroB, numeroC;
  9. public:
  10. void inicio(float, float, float);
  11. void pedirnumeros();
  12. float operacion();
  13. void mostrar ();
  14. };
  15.  
  16. void calificacion::inicio(float _numeroA,float _numeroB,float _numeroC)
  17. {
  18. numeroA = _numeroA;
  19. numeroB= _numeroB;
  20. numeroC = _numeroC;
  21.  
  22. }
  23.  
  24. void calificacion::pedirnumeros(){
  25. printf("Escribe el primero numero : ");
  26. scanf("%f",&a);
  27. printf("Escribe el segundo numero: ");
  28. scanf("%f",&b);
  29. printf("Escribe el tercer numero: ");
  30. scanf("%f",&c);
  31. }
  32.  
  33. float calificacion::operacion()
  34. {
  35. a = a/3;
  36. b = b/3;
  37. c = c/3;
  38.  
  39. float promedio;
  40. promedio = a + b + c;
  41. return promedio;
  42.  
  43. }
  44.  
  45. void calificacion::mostrar(){
  46. cout<<"El promedio es: "<<calificacion::operacion();
  47. }
  48.  
  49. int main(int argc, char *argv[]) {
  50. calificacion c1;
  51. c1.inicio(a,b,c);
  52. c1.pedirnumeros();
  53.  
  54. c1.mostrar();
  55.  
  56.  
  57. return 0;
  58. }
Funciona perfectamente,
Pero cuando lo intento pasar a C me quedó así:
Código
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3.  
  4. float a,b,c;
  5.  
  6. struct calificacion{
  7. private:
  8. float numeroA, numeroB, numeroC;
  9. public:
  10. void inicio(float, float, float);
  11. void pedirnumeros();
  12. float operacion();
  13. void mostrar ();
  14. };
  15.  
  16. void calificacion::inicio(float _numeroA,float _numeroB,float _numeroC)
  17. {
  18. numeroA = _numeroA;
  19. numeroB= _numeroB;
  20. numeroC = _numeroC;
  21.  
  22. }
  23.  
  24. void calificacion::pedirnumeros(){
  25. printf("Escribe el primero numero : ");
  26. scanf("%f",&a);
  27. printf("Escribe el segundo numero: ");
  28. scanf("%f",&b);
  29. printf("Escribe el tercer numero: ");
  30. scanf("%f",&c);
  31. }
  32.  
  33. float calificacion::operacion()
  34. {
  35. a = a/3;
  36. b = b/3;
  37. c = c/3;
  38.  
  39. float promedio;
  40. promedio = a + b + c;
  41. return promedio;
  42.  
  43. }
  44.  
  45. void calificacion::mostrar(){
  46. printf("El promedio es: %f",calificacion::operacion());
  47. }
  48.  
  49. int main(int argc, char *argv[]) {
  50. calificacion c1;
  51. c1.inicio(a,b,c);
  52. c1.pedirnumeros();
  53.  
  54. c1.mostrar();
  55.  
  56.  
  57. return 0;
  58. }

Los errores están al nombrar las estructuras el programa no me acepta los "::" por ejemplo: calificacion::operacion()

Y todo lo que está dentro del main() en C no lo acepta.

Al igual que no se como se puede reemplazar el "private:" y el "public:"


Saludos!


En línea

engel lex
Moderador Global
***
Desconectado Desconectado

Mensajes: 15.514



Ver Perfil
Re: Pasar código de c++ a C
« Respuesta #1 en: 20 Agosto 2018, 09:01 am »

no puedes reemplazarlo así como así... el "::" es el operador de alcance en C++ y es un asunto inherente a OOP, lo primero que tienes que plantearte es como hacer tu sistema sin usar objetos... justamente lo que C++ tiene agregado en relación a C es el OOP... lo más cercano son los structs y no son ni cerca de lo completo que necesitas


En línea

El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.
MAFUS


Desconectado Desconectado

Mensajes: 1.603



Ver Perfil
Re: Pasar código de c++ a C
« Respuesta #2 en: 20 Agosto 2018, 12:35 pm »

En C no existeix públic: ni private: todo es público.
Las estructuras no tienen métodos, éstos son funciones de ámbito global que deberán tener como uno de sus argumentos un puntero a la estructura con la que van a interactuar.
Es normal que las funciones hagan referencia en su nombre al tipo de dato con que van a interactuar.

He hecho unos arreglillos para que se trabajen con los datos de la estructura. En tu código original no usabas los datos de la clase, sino unos floats globales y sólo usabas los métodos. De igual forma si se definen en orden oportuno las funciones en un único archivo no hace falta escribir los prototipos.

Código
  1. #include <stdio.h>
  2.  
  3. typedef struct {
  4.    float numeroA;
  5.    float numeroB;
  6.    float numeroC;
  7. } calificacion;
  8.  
  9. void calificacion_pedirnumeros(calificacion *cal) {
  10.    printf("Escribe el primero numero : ");
  11.    scanf("%f", &cal->numeroA);
  12.  
  13.    printf("Escribe el segundo numero: ");
  14.    scanf("%f", &cal->numeroB);
  15.  
  16.    printf("Escribe el tercer numero: ");
  17.    scanf("%f", &cal->numeroC);
  18. }
  19.  
  20. float calificacion_operacion(calificacion *cal) {
  21. return (cal->numeroA + cal->numeroB + cal->numeroC)/3;
  22. }
  23.  
  24. void calificacion_mostrar(calificacion *cal) {
  25.    printf("El promedio es: %f\n", calificacion_operacion(cal));
  26. }
  27.  
  28. int main() {
  29.    calificacion c1;
  30.    calificacion_pedirnumeros(&c1);
  31.    calificacion_mostrar(&c1);
  32. }
« Última modificación: 20 Agosto 2018, 14:30 pm por MAFUS » En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
pasar codigo « 1 2 »
Programación Visual Basic
mitsumy 10 2,951 Último mensaje 18 Enero 2007, 20:24 pm
por mitsumy
Pasar codigo a una linea « 1 2 3 »
PHP
dimitrix 22 8,132 Último mensaje 28 Junio 2007, 10:52 am
por dimitrix
[Ayuda] Pasar codigo de VB.Net a VB6
Programación Visual Basic
v3ng4nz3 2 3,960 Último mensaje 10 Septiembre 2010, 01:12 am
por v3ng4nz3
Pasar codigo a lenguaje C++
Programación C/C++
diamonroyor 2 2,289 Último mensaje 19 Junio 2012, 12:00 pm
por Saberuneko
Pasar de una linea de codigo a otro sin perder la secuencia del codigo en vb
Programación Visual Basic
plak 2 2,354 Último mensaje 28 Junio 2014, 03:13 am
por plak
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines