Matlab - Problema para pasar de C a Matlab

 
Vista:
sin imagen de perfil
Val: 38
Ha aumentado su posición en 3 puestos en Matlab (en relación al último mes)
Gráfica de Matlab

Problema para pasar de C a Matlab

Publicado por Gaby (24 intervenciones) el 09/09/2018 23:48:42
Hola. He intentado pasar un problema que está escrito en C a Matlab, pero no he podido. Espero que alguno de vosotros me podáis ayudar. Gracias.

Se tiene 5 autos. Se requiere sacar el promedio de los puntos contaminantes de esos 25 coches, y saber fue el que más contaminó y el que menos contaminó. Gracias.

En C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
void main()
{
   const int maximoAutos=5;
   int promedio;
   int maximo;
   int minimo;
   int puntosContaminantes;
   int suma;
   int numeroAuto;
   int finLlegadaAutos;
   numeroAuto=1;
   finLlegadaAutos=0;
   suma=0;
   maximo=0;
   minimo=0;
   while (!finLlegadaAutos) // mientras no sea fin de llegada de autos
   {
      if (numeroAuto=maximoAutos) // se han completado el total de autos
         finLlegadaAutos=1;
      // Ingresas un numero de puntos contaminantes > 0
      print("Dame los puntos contaminates del auto #");
      print("%d", numeroAuto);
      printf (" (un numero entero): ");
      scanf("%d", puntosContaminantes);
 
      // vamos acumulando para sacar el promedio
      suma=suma+puntosContaminantes;
 
      // sacar el maximo punto contaminante hasta el momento
      if(maximo=0)
         maximo=puntosContaminantes;
      else if (puntosContaminates>maximo)
         maximo=puntosContaminantes;
 
      // sacar el minimo punto contaminante hasta el momento
      if (minimo=0)
         minimo=puntosContaminantes;
      else if (puntosContaminantes<minimo)
         minimo=puntosContaminantes;
 
      numeroAuto=numeroAuto+1; // siguiente auto
   }
 
   //calcula promedio de puntos contaminantes
   promedio=suma/numeroAuto;
   // imprime resultados
   printf("Promedio de puntos contaminates: %d", promedio);
   printf("Maximo Punto Contaminante:%d", maximo);
   printf("Minimo Punto Contaminante:%d", minimo);
   getch();
}


Mi intento en Matlab
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
function [ptoConta] = ptoscontaminantes(n)
s=0; maxpto=0; minpto=0; n=0;
 
for i=1:n
    ptoConta(i)=input('Ingresar valor del contaminante: ');
    ptoConta(i)=ptoConta;
end
 
for j=1:n
s=s+ptoConta(j);
end
 
if ptoConta>maxpto
   maxpto=ptoConta;
else
   ptoConta<minpto;
   minpto=ptoConta;
   n=n+1;
end
 
promedio=s/n; %Promedio de puntos contaminantes
 
fprintf('Promedio punto contaminantes: %0.2d\n', promedio);
fprintf('Maximo punto contaminante: %0.0d\n', maxpto);
fprintf('Minimo punto contaminante: %0.0d\n', minpto);
end

Gracias.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de JESUS DAVID ARIZA ROYETH
Val: 3.309
Plata
Ha mantenido su posición en Matlab (en relación al último mes)
Gráfica de Matlab

Problema para pasar de C a Matlab

Publicado por JESUS DAVID ARIZA ROYETH (1818 intervenciones) el 10/09/2018 01:00:08
1
2
3
4
5
6
7
8
n=5;
ptoConta=zeros(1,n);
for i=1:n
    ptoConta(i)=input(['Ingresar valor del contaminante del punto' num2str(i) ': ']);
end
fprintf('Promedio punto contaminantes: %0.2f\n', mean(ptoConta));
fprintf('Maximo punto contaminante: %0.2f\n', max(ptoConta));
fprintf('Minimo punto contaminante: %0.2f\n', min(ptoConta));
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 38
Ha aumentado su posición en 3 puestos en Matlab (en relación al último mes)
Gráfica de Matlab

Problema para pasar de C a Matlab

Publicado por Gaby (24 intervenciones) el 10/09/2018 03:01:14
Agradezco tu respuesta. Me hubiese gustado que me dijeras si llevaba bien el ejercicio, estoy intentando aprender Matlab y aunque sé que existen funciones incorporadas, necesito usarlas lo menos posible, es duro aprender a programar sin tener a un tutor al lado por eso acudo a estos sitios. Gracias por tu interés.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de JESUS DAVID ARIZA ROYETH
Val: 3.309
Plata
Ha mantenido su posición en Matlab (en relación al último mes)
Gráfica de Matlab

Problema para pasar de C a Matlab

Publicado por JESUS DAVID ARIZA ROYETH (1818 intervenciones) el 10/09/2018 03:18:28
con tu código sería algo así :

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
s=0; maxpto=0; minpto=10000000000000; n=5;
ptoConta=zeros(1,n);
for i=1:n
    ptoConta(i)=input('Ingresar valor del contaminante: ');
end
for j=1:n
s=s+ptoConta(j);
end
for i=1:n
if ptoConta(i)>maxpto
   maxpto=ptoConta(i);
end
if  ptoConta(i)<minpto;
   minpto=ptoConta(i);
end
end
promedio=s/n; %Promedio de puntos contaminantes
fprintf('Promedio punto contaminantes: %0.2f\n', promedio);
fprintf('Maximo punto contaminante: %0.2f\n', maxpto);
fprintf('Minimo punto contaminante: %0.2f\n', minpto);
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 38
Ha aumentado su posición en 3 puestos en Matlab (en relación al último mes)
Gráfica de Matlab

Problema para pasar de C a Matlab

Publicado por Gaby (24 intervenciones) el 10/09/2018 05:38:52
Muchas gracias. ;)
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar