Transpilador Interativo

Digite ou cole seu pseudo-código Portugol para gerar código C

Source (Portugol)
algoritmo DEZ inicio inteiro: xxx; xxx <- 10; enquanto (xxx > 0) faca inicio escreva(xxx); xxx <- xxx - 1; fim; fim-enquanto; fim; fim-algoritmo.
Output (C)
// Código C aparece aqui

Sintaxe do Portugol utilizado

Exemplos de Sintaxe aceitável pelo Transpilador (esquerda) e o código C transpilado (direita)

Portugol media_aritmetica.alg
algoritmo MEDIA_ARITMETICA
inicio
  real: NUM1, NUM2, RESULTADO;
  escreva("Digite o primeiro valor");
  leia(NUM1);
  escreva("Digite o segundo valor");
  leia(NUM2);
  RESULTADO <- (NUM1 + NUM2) / 2;
  escreva(RESULTADO);
fim;
fim-algoritmo.
C media_aritmetica.c
#include <stdio.h>
#include <stdbool.h>
#include <math.h>

int main() {
 double NUM1, NUM2, RESULTADO;
 printf("%s \n", "Digite o primeiro valor" );
 scanf(" %lf", &NUM1);
 printf("%s \n", "Digite o segundo valor" );
 scanf(" %lf", &NUM2);
 RESULTADO = ( NUM1 + NUM2 ) / 2 ;
 printf("%.2f \n", RESULTADO );
 return 0;
}
Portugol operacoes_aritmetica.alg
algoritmo OPERACOES_ARITMETICAS
inicio
  real: NUM1, NUM2, RESULTADO;
  escreva("Informe o primeiro número: ");
  leia(NUM1);
  escreva("Informe o segundo número");
  leia(NUM2);
  RESULTADO <- NUM1 + NUM2;
  escreva("A soma foi: ", RESULTADO);
  RESULTADO <- NUM1 - NUM2;
  escreva("A diferença foi: ", RESULTADO);
  RESULTADO <- NUM1 * NUM2;
  escreva("O produto foi: ", RESULTADO);
  RESULTADO <- NUM1 / NUM2;
  escreva("O quociente foi: ", RESULTADO);
fim;
fim-algoritmo.
C operacoes_aritmetica.c
#include <stdio.h>
#include <stdbool.h>
#include <math.h>

int main() {
 double NUM1, NUM2, RESULTADO;
 printf("%s \n", "Informe o primeiro número: " );
 scanf(" %lf", &NUM1);
 printf("%s \n", "Informe o segundo número" );
 scanf(" %lf", &NUM2);
 RESULTADO = NUM1 + NUM2 ;
 printf("%s %.2f \n", "A soma foi: " , RESULTADO );
 RESULTADO = NUM1 - NUM2 ;
 printf("%s %.2f \n", "A diferença foi: " , RESULTADO );
 RESULTADO = NUM1 * NUM2 ;
 printf("%s %.2f \n", "O produto foi: " , RESULTADO );
 RESULTADO = NUM1 / NUM2 ;
 printf("%s %.2f \n", "O quociente foi: " , RESULTADO );
 return 0;
}
Portugol area_triangulo.alg
algoritmo AREA_TRIANGULO
inicio
  real: BASE, ALTURA;
  escreva("Forneça a medida da base do triângulo:");
  leia(BASE);
  escreva("Forneça a medida da altura do triângulo:");
  leia(ALTURA);
  escreva("A Área do Triângulo é: ", ALTURA * BASE / 2.0);
fim;
fim-algoritmo.
C area_triangulo.c
#include <stdio.h>
#include <stdbool.h>
#include <math.h>

int main() {
 double BASE, ALTURA;
 printf("%s \n", "Forneça a medida da base do triângulo:" );
 scanf(" %lf", &BASE);
 printf("%s \n", "Forneça a medida da altura do triângulo:" );
 scanf(" %lf", &ALTURA);
 printf("%s %.2f \n", "A Área do Triângulo é: " , ALTURA * BASE / 2.0 );
 return 0;
}
Portugol iluminacao.alg
algoritmo ILUMINACAO
inicio
  real: LADO_1, LADO_2;
  escreva("Forneça o comprimento do cômodo:");
  leia(LADO_1);
  escreva("Forneça a largura do cômodo:");
  leia(LADO_2);
  escreva("O ideal seria iluminar o cômodo com ", LADO_1 * LADO_2 * 18.0, "W");
fim;
fim-algoritmo.
C iluminacao.c
#include <stdio.h>
#include <stdbool.h>
#include <math.h>

int main() {
 double LADO_1, LADO_2;
 printf("%s \n", "Forneça o comprimento do cômodo:" );
 scanf(" %lf", &LADO_1);
 printf("%s \n", "Forneça a largura do cômodo:" );
 scanf(" %lf", &LADO_2);
 printf("%s %.2f %s \n", "O ideal seria iluminar o cômodo com " , LADO_1 * LADO_2 * 18.0 , "W" );
 return 0;
}
Portugol hora_minuto_segundo.alg
algoritmo MINUTO_SEGUNDO
inicio
  inteiro: NUMERO_SEGUNDO, RESTO;
  escreva("Insira a quantidade de segundos:");
  leia(NUMERO_SEGUNDO);
  escreva(NUMERO_SEGUNDO / 3600, "horas");
  RESTO <- NUMERO_SEGUNDO mod 3600;
  escreva(RESTO / 60, "minutos");
  RESTO <- RESTO mod 60;
  escreva(RESTO, "segundos");
fim;
fim-algoritmo.
C hora_minuto_segundo.c
#include <stdio.h>
#include <stdbool.h>
#include <math.h>

int main() {
 int NUMERO_SEGUNDO, RESTO;
 printf("%s \n", "Insira a quantidade de segundos:" );
 scanf("%d", &NUMERO_SEGUNDO);
 printf("%d %s \n", NUMERO_SEGUNDO / 3600 , "horas" );
 RESTO = NUMERO_SEGUNDO % 3600 ;
 printf("%d %s \n", RESTO / 60 , "minutos" );
 RESTO = RESTO % 60 ;
 printf("%d %s \n", RESTO , "segundos" );
 return 0;
}
Portugol caixa.alg
algoritmo VOLUME_CAIXA
inicio
  real: ALTURA, COMPRIMENTO, LARGURA;
  escreva("Forneça a altura da caixa:");
  leia(ALTURA);
  escreva("Forneça a largura da caixa:");
  leia(LARGURA);
  escreva("Forneça o comprimento da caixa:");
  leia(COMPRIMENTO);
  escreva("O Volume da Caixa é: ", ALTURA * LARGURA * COMPRIMENTO, "m³");
fim;
fim-algoritmo.
C caixa.c
#include <stdio.h>
#include <stdbool.h>
#include <math.h>

int main() {
 double ALTURA, COMPRIMENTO, LARGURA;
 printf("%s \n", "Forneça a altura da caixa:" );
 scanf(" %lf", &ALTURA);
 printf("%s \n", "Forneça a largura da caixa:" );
 scanf(" %lf", &LARGURA);
 printf("%s \n", "Forneça o comprimento da caixa:" );
 scanf(" %lf", &COMPRIMENTO);
 printf("%s %.2f %s \n", "O Volume da Caixa é: " , ALTURA * LARGURA * COMPRIMENTO , "m³" );
 return 0;
}
Portugol potencia.alg
algoritmo POTENCIA
inicio
  inteiro: XXX, YYY;
  escreva("Forneça x:");
  leia(XXX);
  escreva("Forneça y:");
  leia(YYY);
  escreva("x elevado a potência y é: ", XXX ^ YYY);
fim;
fim-algoritmo.
C potencia.c
#include <stdio.h>
#include <stdbool.h>
#include <math.h>

int main() {
 int XXX, YYY;
 printf("%s \n", "Forneça x:" );
 scanf("%d", &XXX);
 printf("%s \n", "Forneça y:" );
 scanf("%d", &YYY);
 printf("%s %.2f \n", "x elevado a potência y é: " , pow((double)XXX , (double)YYY ));
 return 0;
}
Portugol estado_civil.alg
algoritmo ESTADO_CIVIL
inicio
  caractere: E_CIVIL;
  escreva("Escolha S para Solteiro, C para Casado, V para Viúvo e D para Divorciado");
  leia(E_CIVIL);
  escolha(E_CIVIL) inicio
      caso 'S': inicio
        escreva("Solteiro");
      fim-caso;
      caso 's': inicio
        escreva("Solteiro");
      fim-caso;

      caso 'C': inicio
        escreva("Casado");
      fim-caso;

      caso 'c': inicio
        escreva("Casado");
      fim-caso;

      caso 'V': inicio
        escreva("Viúvo");
      fim-caso;

      caso 'v': inicio
        escreva("Viúvo");
      fim-caso;

      caso 'D': inicio
        escreva("Divorciado");
      fim-caso;

      caso 'd': inicio
        escreva("Divorciado");
      fim-caso;

      caso-contrario:
        escreva("Estado Civil inválido");
  fim-escolha;
fim;
fim-algoritmo.
C estado_civil.c
#include <stdio.h>
#include <stdbool.h>
#include <math.h>

int main() {
 char E_CIVIL;
 printf("%s \n", "Escolha S para Solteiro, C para Casado, V para Viúvo e D para Divorciado" );
 scanf(" %c", &E_CIVIL);
 switch (( E_CIVIL ) ) {
  case 'S':
   printf("%s \n", "Solteiro" );
   break;
  case 's':
   printf("%s \n", "Solteiro" );
   break;
  case 'C':
   printf("%s \n", "Casado" );
   break;
  case 'c':
   printf("%s \n", "Casado" );
   break;
  case 'V':
   printf("%s \n", "Viúvo" );
   break;
  case 'v':
   printf("%s \n", "Viúvo" );
   break;
  case 'D':
   printf("%s \n", "Divorciado" );
   break;
  case 'd':
   printf("%s \n", "Divorciado" );
   break;
  default:
   printf("%s \n", "Estado Civil inválido" );
  }

  return 0;
 }
Portugol m2.alg
algoritmo M2
procedimento m2()
inicio
  real: LADO;
  escreva("Forneça o lado do quadrado em metros:");
  leia(LADO);
  escreva("A área do quadrado em m² é:", LADO * LADO);
fim-procedimento;
inicio
  m2();
fim;
fim-algoritmo.
C m2.c
#include <stdio.h>
#include <stdbool.h>
#include <math.h>

void m2()  {
  double LADO;
  printf("%s \n", "Forneça o lado do quadrado em metros:" );
  scanf(" %lf", &LADO);
  printf("%s %.2f \n", "A área do quadrado em m² é:" , LADO * LADO );
}

int main() {
 m2();
 return 0;
}