Cambiar un codigo C# a C++

Dudas y comentarios sobre otros lenguajes de programación. Si algún lenguaje recibe suficientes preguntas le añadimos nueva categoría.
Responder
Mensaje
Autor
Franck
Mensajes: 2
Registrado: 07/12/2012 9:06 pm
Contactar:

Cambiar un codigo C# a C++

#1 Mensaje por Franck » 07/12/2012 9:14 pm

hola que tal soy nuevo por aqui.
necesito convertir de C# a C++ es el codigo de mi proyecto final lo que paso esque tenia la estructura base en c++ hasta que le pedi a alguien de 5to semestre ayuda para algunos detalles que tenia el proyecto.

aqui esta en C#

namespace COSTOS_PRODUCCION_PROYECTO
{
class Program
{
static void Main(string[] args)
{
double costop = 0;
double mayor_dulces = 0;
int mes_mayor_dulces = 0;
double acum_bebidas = 0;
double mayor_bebidas = 0;
int mes_may_bebidas = 0;
double menor_bebidas = 0;
int mes_men_bebidas = 0;
double menor_diciembre = 0;
int rub_menor_diciembre = 0;
string rubro_menor = "";
double[,] matriz = new double[3, 12];
Console.WriteLine("PROGRAMA QUE PROPORCIONA INFORMACION SOBRE EL TRIMESTRE QUE TIENE MAYOR COSTO DE PRODUCCION EN DULCES & CONSERVAS" + "\n\r" + "PROMEDIO ANUAL DE LOS COSTOS DE PRODUCCION DE BEBIDAS " + "\r\n" + "MES DE COSTO MAYOR Y MENOR EN PRODUCCION DE BEBIDAS " + "\r\n" + "RUBRO QUE TUVO MENOR COSTO EN DICIEMBRE");
Console.ReadLine();
string rubro = "Dulces";
for (int i = 0; i < 3; i++)
{
if (i == 0)
{
rubro = "Dulces";
}
if (i == 1)
{
rubro = "Conservas";
}
if (i == 2)
{
rubro = "Bebidas";
}
for (int j = 0; j < 12; j++)
{
Console.WriteLine("Proporciona el costo del mes #" + (j + 1) + " de produccion de " + rubro + ":");
costop = Convert.ToDouble(Console.ReadLine());
matriz[i, j] = costop;
}
}
mayor_dulces = matriz[0, 0];
mes_mayor_dulces = 1;
mayor_bebidas = matriz[2, 0];
mes_may_bebidas = 1;
menor_bebidas = matriz[2, 0];
mes_men_bebidas = 1;
menor_diciembre = matriz[0,11];
//Dulces
for (int k = 1; k < 12; k++)
{
if (matriz[0, k] > mayor_dulces)
{
mayor_dulces = matriz[0, k];
mes_mayor_dulces = (k + 1);
}
}
//Bebidas
for (int l = 1; l < 12; l++)
{
acum_bebidas += matriz[2, l];
if (matriz[2, l] > mayor_bebidas)
{
mayor_bebidas = matriz[2, l];
mes_may_bebidas = (l + 1);
}
if (matriz[2, l] < menor_bebidas)
{
menor_bebidas = matriz[2, l];
mes_men_bebidas = (l + 1);
}
}
//Menor costo tomando en cuenta conservas
for (int m = 1; m <3; m++)
{
if (matriz[m, 3] < menor_diciembre)
{
menor_diciembre = matriz[m, 3];
rub_menor_diciembre = (m + 1);
}
}
if (rub_menor_diciembre == 0)
{
rubro_menor = "Dulces";
}
if (rub_menor_diciembre == 1)
{
rubro_menor = "Conservas";
}
if(rub_menor_diciembre==2)
{
rubro_menor = "Bebidas";
}
Console.WriteLine("Mes que registró el mayor costo de producción de dulces es: " + mes_mayor_dulces);
Console.WriteLine("Promedio anual de los costos de producción de bebidas es: " + acum_bebidas / 12);
Console.WriteLine("En qué mes se registró el mayor costo de producción en bebidas es:" + mes_may_bebidas + " con: " + mayor_bebidas);
Console.WriteLine("En qué mes se registró el menor costo de producción en bebidas es:" + mes_men_bebidas + " con: " + menor_bebidas);
Console.WriteLine("Cuál fue el rubro que tuvo el menor costo de producción en diciembre es: " + rubro_menor + " con: " + menor_diciembre);
Console.ReadKey();


llo necesito en C++ aqui esta lo que mas o menos que he modificado modifique

#include "stdafx.h"
#include <conio.h>
#include <string.h>
int _tmain(int argc, _TCHAR* argv[])
{
float mayor_dulces = 0;
int mes_mayor_dulces = 0;
float acum_bebidas = 0;
float mayor_bebidas = 0;
int mes_may_bebidas = 0;
float menor_bebidas = 0;
int mes_men_bebidas = 0;
float menor_diciembre = 0;
int rub_menor_diciembre = 0;
char rubro_menor = ":";
float costop=0;
float matriz [3][12];

printf("PROGRAMA QUE PROPORCIONA INFORMACION SOBRE EL TRIMESTRE QUE TIENE MAYOR COSTO DE PRODUCCION EN DULCES & CONSERVAS:\n""""PROMEDIO ANUAL DE LOS COSTOS DE PRODUCCION DE BEBIDAS: \n""""MES DE COSTO MAYOR Y MENOR EN PRODUCCION DE BEBIDAS:\n """"RUBRO QUE TUVO MENOR COSTO EN DICIEMBRE");
getch();
char rubro = "Dulces";
for (int i = 0; i < 3; i++)
{
if (i == 0)
{
rubro = "Dulces";
}
if (i == 1)
{
rubro = "Conservas";
}
if (i == 2)
{
rubro = "Bebidas";
}
for (int j = 0; j < 12; j++)
{
printf("Proporciona el costo del mes #", (j + 1), "de producción de ", rubro, ":");
scanf_s("%f",&costop);
matriz[j] = costop;
}
}
mayor_dulces = matriz [0, 0];
mes_mayor_dulces = 1;
mayor_bebidas = matriz [2, 0];
mes_may_bebidas = 1;
menor_bebidas = matriz [2, 0];
mes_men_bebidas = 1;
menor_diciembre = matriz [0,11];
//Dulces
for(int k = 1; k < 12; k++)
{
if(matriz [0, k]>mayor_dulces)
{
mayor_dulces = matriz[0, k];
mes_mayor_dulces = (k + 1);
}
}
//Bebidas
for(int l = 1; l < 12; l++)
{
acum_bebidas+= matriz [2, l];
if(matriz[2, l]> mayor_bebidas)
{
mayor_bebidas = matriz [2, l];
mes_may_bebidas = (l + 1);
}
if (matriz[2, l]<menor_bebidas)
{
menor_bebidas = matriz [2, l];
mes_men_bebidas = (l + 1);
}
}
//Menor costo tomando en cuenta conservas
for (int m = 1; m <3; m++)
{
if (matriz [m, 3]<menor_diciembre)
{
menor_diciembre=matriz [m, 3];
rub_menor_diciembre = (m + 1);
}
}
if (rub_menor_diciembre == 0)
{
rubro_menor = "Dulces";
}
if (rub_menor_diciembre == 1)
{
rubro_menor = "Conservas";
}
if(rub_menor_diciembre==2)
{
rubro_menor = "Bebidas";
}
printf ("Mes que registró el mayor costo de producción de dulces es: %d ", mes_mayor_dulces);
printf ("Promedio anual de los costos de producción de bebidas es:%f ", acum_bebidas / 12);
printf ("En qué mes se registró el mayor costo de producción en bebidas es: %d,%f", mes_may_bebidas, mayor_bebidas);
printf ("En qué mes se registró el menor costo de producción en bebidas es: %d,%f", mes_men_bebidas, menor_bebidas);
printf ("Cuál fue el rubro que tuvo el menor costo de producción en diciembre es:%d,%c", rubro_menor, menor_diciembre);
getch();
return 0;
}


porfavor yudenme
Programador begginer

Masakre
Mensajes: 249
Registrado: 06/06/2012 10:52 am

#2 Mensaje por Masakre » 09/12/2012 12:07 pm

No hay mucha diferencia, creo que podrías empezar cambiando la forma de mostrar mensajes por la pantalla:

Código: Seleccionar todo

Console.WriteLine("blablabla"+estaEsUnaVariable);
por

Código: Seleccionar todo

cout<<"blablabla"<<estaEsUnaVariable;
También la forma de escribir los índices de las matrices:

Código: Seleccionar todo

matriz[i, j]
por

Código: Seleccionar todo

matriz[i][j]
Olvida el printf y scanf, eso es más concerniente a C. En C++ se usa cout y cin :D

Franck
Mensajes: 2
Registrado: 07/12/2012 9:06 pm
Contactar:

mas especifico

#3 Mensaje por Franck » 09/12/2012 3:24 pm

(todas esta variables o funciones estan c# y las necesito en c++)

string rubro_menor = "";
double[,] matriz = new double[3, 12]
string rubro = "Dulces";
Console.WriteLine("Proporciona el costo del mes #" + (j + 1) + " de produccion de " + rubro + ":");
costop = Convert.ToDouble(Console.ReadLine());
matriz[i, j] = costop;

ya cambie lo iostream para cin y cout ;)
pero estas variables o funciones hacen que me falle todo no c como se escriben o se ponen en c++

gracias por contestar masakre
Programador begginer

Masakre
Mensajes: 249
Registrado: 06/06/2012 10:52 am

Re: mas especifico

#4 Mensaje por Masakre » 10/12/2012 12:46 pm

No estoy muy seguro pero podrías probar esto ...

Código: Seleccionar todo

String rubro_menor = "";
double *matriz = new double [3][12]
String rubro = "Dulces";
cout<<"Proporciona el costo del mes nro "<<j + 1<<" de produccion de "<<rubro<<":";
Y sobre las dos últimas líneas, ¿qué es lo que hace exactamente?

Código: Seleccionar todo

costop = (double)(cin.get());
matriz[i][j] = costop;
Para la conversión de tipos, creo que sólo debes agregar el nombre del nuevo tipo entre paréntesis, delante de la variable que será cambiada de tipo. Pero en este caso, no estoy muy seguro de qué es lo que haga ReadLine(), ¿leerá un número?

Disculpa si tengo errores . . .

Responder

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 1 invitado