Ver Mensaje Individual
  #4 (permalink)  
Antiguo 10/05/2013, 16:06
carbon
 
Fecha de Ingreso: enero-2012
Ubicación: Buenos Aires
Mensajes: 745
Antigüedad: 12 años, 3 meses
Puntos: 35
Respuesta: Traducir de pascal a C

Te dijo que en algunos lados pusiste C y en otros C++, no hablaba de pascal.

Con respecto a tu tema, no tengo la menor idea de Pascal, pero a simple vista se pueden ver algunas cosas que se traducirían algo así:

Código C:
Ver original
  1. const int tam = 10;
  2. int Arreglo[tam];

En ese caso el Arreglo va a ir de 0 a 9, y no de 1 a 9 (o 10) como, al parecer, especificaste en tu código de pascal.

Para las funciones write y readln, tenes las estándares de C, que son análogas a esas, printf y scanf, respectivamente.

La creación de una función es fácil:

Código C:
Ver original
  1. tipo_dato_retorno nombre_function (tipo_var1 var1, tipo_var2 var2) {
  2.     /* ... */
  3. }

Por lo que:

Código Pascal:
Ver original
  1. function todasVocales (N : integer; var L : Arreglo) : boolean;

Sería:

Código C:
Ver original
  1. #include <stdbool>
  2. bool todasVocales(int N, Arreglo L)

Por cierto acabo de ver que al parecer "Arreglo" es un tipo de dato que vos creaste, que en C se hace con typedef.

Por lo que puedo ver diría que la palabra "in" en Pascal es para verificar si lo expresado en su izquierda se encuentra en la lista de la derecha, no? Bueno, si no me equivoco, en C vas a tener que ir item por item verificando. Por lo que:

Código Pascal:
Ver original
  1. if (L[i] in Vocales) then

Sería algo como esto:

Código C:
Ver original
  1. int j;
  2.  
  3. for (j = 0; j < sizeof(Vocales); j++)
  4. {
  5.     if (Vocales[j] == L[i]) {
  6.         /* Tu código */
  7.         break;
  8.     }
  9. }

Espero que te sirva de algo!


Última edición por carbon; 11/05/2013 a las 07:44