Ir ao conteúdo
  • Comunicados

    • Gabriel Torres

      Seja um moderador do Clube do Hardware!   12-02-2016

      Prezados membros do Clube do Hardware, Está aberto o processo de seleção de novos moderadores para diversos setores ou áreas do Clube do Hardware. Os requisitos são:   Pelo menos 500 posts e um ano de cadastro; Boa frequência de participação; Ser respeitoso, cordial e educado com os demais membros; Ter bom nível de português; Ter razoável conhecimento da área em que pretende atuar; Saber trabalhar em equipe (com os moderadores, coordenadores e administradores).   Os interessados deverão enviar uma mensagem privada para o usuário @Equipe Clube do Hardware com o título "Candidato a moderador". A mensagem deverá conter respostas às perguntas abaixo:   Qual o seu nome completo? Qual sua data de nascimento? Qual sua formação/profissão? Já atuou como moderador em algo outro fórum, se sim, qual? De forma sucinta, explique o porquê de querer ser moderador do fórum e conte-nos um pouco sobre você.   OBS: Não se trata de função remunerada. Todos que fazem parte do staff são voluntários.
    • DiF

      Poste seus códigos corretamente!   21-05-2016

      Prezados membros do Fórum do Clube do Hardware, O Fórum oferece um recurso chamado CODE, onde o ícone no painel do editor é  <>     O uso deste recurso é  imprescindível para uma melhor leitura, manter a organização, diferenciar de texto comum e principalmente evitar que os compiladores e IDEs acusem erro ao colar um código copiado daqui. Portanto convido-lhes para ler as instruções de como usar este recurso CODE neste tópico:  
ifguiferreira

Ajuda para traduzir código para C

Recommended Posts

Olá amigos, estou com dificuldades para traduzir esse algoritmo para C:

var
d,d1:real
n50,n10,n5,n2:real
l1,l2,l3,l4:numerico
not50,not10,not5,not2:caracter
inicio

not50<- "Notas"
not10<- "Notas"
not5<- "Notas"
not2<- "Notas"
l1<-0
l2<-0
l3<-0
l4<-0
leia(d)
d1<-d

se(50<=d) então
n50<- int(d/50)
d<- d-(n50*50)
l1<-1
se (n50=1)então
not50 <- "Nota"
fimse
fimse

se( 10<=d)então
n10<- int(d/10)
d<- d-n10*10
l2<-1
se (n10=1)então
not10 <- "Nota"
fimse
fimse

se(5<=d)então
n5<- int(d/5)
d<- d-n5*5
l3<-1
se (n5=1)então
not5 <- "Nota"
fimse
fimse

se (2<=d)então
n2<- int(d/2)
d<- d-n2*2
l4<-1
se (n2=1)então
not2 <- "Nota"
fimse
fimse

limpatela
escreval("R$ ",d1)
se (l1=1)então
escreval(n50," ",not50," de R$50,00")
fimse
se (l2=1)então
escreval(n10," ",not10," de R$10,00")
fimse
se (l3=1)então
escreval(n5," ",not5," de R$5,00")
fimse
se (l4=1)então
escreval(n2," ",not2," de R$2,00")
fimse
escreval("Valor líquido restante é de: ",d)

Obrigado pela ajuda!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá xará,

tirei um tempo e traduzi seu código, porém, houve alguns problemas na hora de imprimir na tela que não detectei, acho que é porque estou meio cansado...aeiuhaeiuahe... mas fiz 98% do seu código funcionar, basta corrigir o erro na hora da impressão, segue:

/*
* Traduzido do Visualg para C
* By Guilherme Valdevieso
*/


#include <stdio.h>
#include <string.h>

int main(int argc, char **argv)
{
double d, d1;
double n50, n10, n5, n2;
int l1, l2, l3, l4;
char not50[5] = {"Notas"};
char not10[5] = {"Notas"};
char not5[5] = {"Notas"};
char not2[5] = {"Notas"};

l1 = 0;
l2 = 0;
l3 = 0;
l4 = 0;

scanf("%lf",&d);
d1 = d;

if (50 <= d){
n50 = (int)d/50;
d = d - (n50 * 50);
l1 = 1;
if (n50 == 1)
strcpy(not50,"Nota ");
}

if (10 >= d){
n10 = (int)d/10;
d = d - (n10 * 10);
l2 = 1;
if(n10 == 1)
strcpy(not10,"Nota ");
}

if (5 <= d){
n5 = (int)d/5;
d = d - (n5 * 5);
l3 = 1;
if(n5 == 1)
strcpy(not5,"Nota ");
}

if (2 <= d){
n2 = (int)d/2;
d = d - (n2 * 2);
l4 = 1;
if(n2 == 1)
strcpy(not2,"Nota ");
}

#ifdef WIN32
system ("cls");
#endif

printf("R$ %0.2f\n",d1);

if (l1 == 1)
printf("\n%d %s de R$ 50,00\n",(int)n50, not50);
if (l2 == 1)
printf("\n%d %s de R$ 10,00\n",(int)n10, not10);
if (l3 == 1)
printf("\n%d %s de R$ 5,00\n",(int)n5, not5);
if (l4 == 1)
printf("\n%d %s de R$ 2,00\n",(int)n2, not2);

printf("\nValor líquido restante é de: %0.2f\n", d);


return 0;
}

Grande abraço.

Compartilhar este post


Link para o post
Compartilhar em outros sites
  • Autor do tópico
  • Cara muito obrigado pela atenção! Testei aqui mas não copilou justamente no problema que estava enfrentando quando estava tentando programar em C. O problema está em atribuir uma palavra em uma variável. No visualg funciona só não sei como fazer isso no C. Segue o trecho que deu errado aqui:

    	char not50[5] = {"Notas"};
    char not10[5] = {"Notas"};
    char not5[5] = {"Notas"};
    char not2[5] = {"Notas"};

    Compartilhar este post


    Link para o post
    Compartilhar em outros sites


    char not50[5] = {"Notas"};
    char not10[5] = {"Notas"};
    char not5[5] = {"Notas"};
    char not2[5] = {"Notas"};

    Basta fazer assim:


    char not50[] = {"Notas"};
    char not10[] = {"Notas"};
    char not5[] = {"Notas"};
    char not2[] = {"Notas"};

    Compartilhar este post


    Link para o post
    Compartilhar em outros sites
  • Autor do tópico
  • Bah, show de bola consegui resolver os problemas aqui.

    tive que fazer a alteração que o KID me passou e ainda tirar o codigo:

     system ("cls");

    E acrescentei o

    #include <windows.h>

    e ainda coloquei no final um

    system("pause");

    para resolver o problema do programa fechar rapidamente.

    Assim rodou certinho. Valeu guivaldevieso e kid gumer pela ajuda!!!

    Segue o codigo funcionando:

    #include <stdio.h>
    #include <string.h>
    #include <windows.h>

    int main(int argc, char **argv)
    {
    double d, d1;
    double n50, n10, n5, n2;
    int l1, l2, l3, l4;
    char not50[] = {"Notas"};
    char not10[] = {"Notas"};
    char not5[] = {"Notas"};
    char not2[] = {"Notas"};

    l1 = 0;
    l2 = 0;
    l3 = 0;
    l4 = 0;

    scanf("%lf",&d);
    d1 = d;

    if (50 <= d){
    n50 = (int)d/50;
    d = d - (n50 * 50);
    l1 = 1;
    if (n50 == 1)
    strcpy(not50,"Nota ");
    }

    if (10 >= d){
    n10 = (int)d/10;
    d = d - (n10 * 10);
    l2 = 1;
    if(n10 == 1)
    strcpy(not10,"Nota ");
    }

    if (5 <= d){
    n5 = (int)d/5;
    d = d - (n5 * 5);
    l3 = 1;
    if(n5 == 1)
    strcpy(not5,"Nota ");
    }

    if (2 <= d){
    n2 = (int)d/2;
    d = d - (n2 * 2);
    l4 = 1;
    if(n2 == 1)
    strcpy(not2,"Nota ");
    }

    #ifdef WIN32

    #endif

    printf("R$ %0.2f\n",d1);

    if (l1 == 1)
    printf("\n%d %s de R$ 50,00\n",(int)n50, not50);
    if (l2 == 1)
    printf("\n%d %s de R$ 10,00\n",(int)n10, not10);
    if (l3 == 1)
    printf("\n%d %s de R$ 5,00\n",(int)n5, not5);
    if (l4 == 1)
    printf("\n%d %s de R$ 2,00\n",(int)n2, not2);

    printf("\nValor líquido restante é de: %0.2f\n", d);

    system("pause");
    return 0;
    }

    Compartilhar este post


    Link para o post
    Compartilhar em outros sites
  • Autor do tópico
  • Mais uma dúvida! Como faço para que os acentos aparecer no programa? Aparece um erro quando a palavra tem acento.

    Compartilhar este post


    Link para o post
    Compartilhar em outros sites

    Cara, acentuação é realmente um grande problema em C, porém, como tudo é possível nesta linguagem você pode recorrer a tabela ASCII, utilizando no lugar do próprio caractere o número ASCII deste, veja:

    Valores dos caracteres mais comuns:


    À = \667 Ù = \753 õ = \744
    Ã = \707 Û = \752 ô = \223
    Â = \666 á = \240 ú = \243
    É = \220 à = \205 ù = \227
    È = \724 ã = \706 û = \226
    Ê = \722 â = \203 Ç = \200
    Í = \726 é = \202 ç = \207
    Ì = \736 è = \212
    Î = \214 ê = \210
    Ó = \740 í = \641
    Ò = \743 ì = \736
    Ô = \742 î = \727
    Õ = \745 ó = \242
    Á = \665 Ú = \751 ò = \225

    Como se usa?

    printf("P\706o com mortadela!\n");

    Programa que lista todos os caracteres especias:


    #include <stdio.h>
    main() {
    printf("As letras acentuadas s\706o:\n");
    printf("\00, \01, \02, \03, \04, \05, \06, \07 linha 1\n");
    printf("\10, \11, \12, \13, \14, \15, \16, \17 linha 2\n");
    printf("\20, \21, \22, \23, \24, \25, \26, \27 linha 3\n");
    printf("\30, \31, \32, \33, \34, \35, \36, \37 linha 4\n");
    printf("\40, \41, \42, \43, \14, \45, \46, \47 linha 5\n");
    printf("\50, \51, \52, \53, \54, \55, \56, \57 linha 6\n");
    printf("\60, \61, \62, \63, \64, \65, \66, \67 linha 7\n");
    printf("\70, \71, \72, \73, \74, \75, \76, \77 linha 8\n");
    printf("\100, \101, \102, \103, \104, \105, \106, \107 linha 9\n");
    printf("\110, \111, \112, \113, \114, \115, \116, \117 linha 10\n");
    printf("\120, \121, \122, \123, \124, \125, \126, \127 linha 11\n");
    printf("\130, \131, \132, \133, \134, \135, \136, \137 linha 12\n");
    printf("\140, \141, \142, \143, \144, \145, \146, \147 linha 13\n");
    printf("\150, \151, \152, \153, \154, \155, \156, \157 linha 14\n");
    printf("\160, \161, \162, \163, \164, \165, \166, \167 linha 15\n");
    printf("\170, \171, \172, \173, \174, \175, \176, \177 linha 16\n");
    printf("\200, \201, \202, \203, \204, \205, \206, \207 linha 17\n");
    printf("\210, \211, \212, \213, \214, \215, \216, \217 linha 18\n");
    printf("\220, \221, \222, \223, \224, \225, \226, \227 linha 19\n");
    printf("\230, \231, \232, \233, \234, \235, \236, \237 linha 20\n");
    printf("\240, \241, \242, \243, \244, \245, \246, \247 linha 21\n");
    printf("\250, \251, \252, \253, \254, \255, \256, \257 linha 22\n");
    printf("\260, \261, \262, \263, \264, \265, \266, \267 linha 23\n");
    printf("\270, \271, \272, \273, \274, \275, \276, \277 linha 24\n");
    printf("\300, \301, \302, \303, \304, \305, \306, \307 linha 25\n");
    printf("\310, \311, \312, \313, \314, \315, \316, \317 linha 26\n");
    printf("\320, \321, \322, \323, \324, \325, \326, \327 linha 27\n");
    printf("\330, \331, \332, \333, \334, \335, \336, \337 linha 28\n");
    printf("\340, \341, \342, \343, \344, \345, \346, \347 linha 29\n");
    printf("\350, \351, \352, \353, \354, \355, \356, \357 linha 30\n");
    printf("\360, \361, \362, \363, \364, \365, \366, \367 linha 31\n");
    printf("\370, \371, \372, \373, \374, \375, \376, \377 linha 32\n");
    printf("\400, \401, \402, \403, \404, \405, \406, \407 linha 33\n");
    printf("\410, \411, \412, \413, \414, \415, \416, \417 linha 34\n");
    printf("\420, \421, \422, \423, \424, \425, \426, \427 linha 35\n");
    printf("\430, \431, \432, \433, \434, \435, \436, \437 linha 36\n");
    printf("\440, \441, \442, \443, \444, \445, \446, \447 linha 37\n");
    printf("\450, \451, \452, \453, \454, \455, \456, \457 linha 38\n");
    printf("\460, \461, \462, \463, \464, \465, \466, \467 linha 39\n");
    printf("\470, \471, \472, \473, \474, \475, \476, \477 linha 40\n");
    printf("\500, \501, \502, \503, \504, \505, \506, \507 linha 41\n");
    printf("\510, \511, \512, \513, \514, \515, \516, \517 linha 42\n");
    printf("\520, \521, \522, \523, \524, \525, \526, \527 linha 43\n");
    printf("\530, \531, \532, \533, \534, \535, \536, \537 linha 44\n");
    printf("\540, \541, \542, \543, \544, \545, \546, \547 linha 45\n");
    printf("\550, \551, \552, \553, \554, \555, \556, \557 linha 46\n");
    printf("\560, \561, \562, \563, \564, \565, \566, \567 linha 47\n");
    printf("\570, \571, \572, \573, \574, \575, \576, \577 linha 48\n");
    printf("\600, \601, \602, \603, \604, \605, \606, \607 linha 49\n");
    printf("\610, \611, \612, \613, \614, \615, \616, \617 linha 50\n");
    printf("\620, \621, \622, \623, \624, \625, \626, \627 linha 51\n");
    printf("\630, \631, \632, \633, \634, \635, \636, \637 linha 52\n");
    printf("\640, \641, \642, \643, \644, \645, \646, \647 linha 53\n");
    printf("\650, \651, \652, \653, \654, \655, \656, \657 linha 54\n");
    printf("\660, \661, \662, \663, \664, \665, \666, \667 linha 55\n");
    printf("\670, \671, \672, \673, \674, \675, \676, \677 linha 56\n");
    printf("\700, \701, \702, \703, \704, \705, \706, \707 linha 57\n");
    printf("\710, \711, \712, \713, \714, \715, \716, \717 linha 58\n");
    printf("\720, \721, \722, \723, \724, \725, \726, \727 linha 59\n");
    printf("\730, \731, \732, \733, \734, \735, \736, \737 linha 60\n");
    printf("\740, \741, \742, \743, \744, \745, \746, \747 linha 61\n");
    printf("\750, \751, \752, \753, \754, \755, \756, \757 linha 62\n");
    printf("\760, \761, \762, \763, \764, \765, \766, \767 linha 63\n");
    printf("\770, \771, \772, \773, \774, \775, \776, \777 linha 64\n");
    getch();
    }
    #include <conio.h>

    Obs.: Caso der erro remova a biblioteca conio.h e adicione o system("pause");

    Grande Abraço, qualquer dúvida é só postar!

    Compartilhar este post


    Link para o post
    Compartilhar em outros sites
  • Autor do tópico
  • Bem complicado né...Mas fazer o que! Valeu guivaldevieso.

    Testei aqui e deu certo! Tá perfeito agora!!

    Compartilhar este post


    Link para o post
    Compartilhar em outros sites
    galera to querendo traduzir para visual g meu prof quer que seja no visualg,

    fiz no c é deu certo tudo mas no visualg não consigo fazer o comando 

    ja tentei comando repetir ate entre outros mas não funcionou .

     

     

     


    printf("Deseja calcular as raizes de outra equacao?\n");

        printf("digite (1) para sim e (0) para não: ");

        scanf("%d", &continua);

      }//while

     

    }//fim


     

     

     

     

    visual g


    var

    a, b, c, respPonten, respDelta, delta, x, x1, x2 : real

    resposta : caractere

    inicio

    escreva("Digite A: ")

    leia(a)

    escreva("Digite B: ")

    leia( B)

    escreva("Digite C: ")

    leia©

     

    respPonten <- ( b ^ 2)

    delta <- ( respPonten - 4 * a * c )

    se (delta > 0) então

     

       respDelta <- raizq(delta)

       x1 <- ( ( - b + respDelta) / (2 * a) )

       x2 <- ( ( - b - respDelta) / (2 * a) )

     

       resposta <- "x' = " + numpcarac (x1) + " x'' = " + numpcarac(x2)

    senao

       se (delta = 0) então

          x <- ( - b / 2 * a )

          resposta <- " S {x' e x''} = " + numpcarac(x)

       senao

          se (delta < 0) então

             resposta <- "Essa equação é inválida, delta não pode ser menor que (zero)!"

          fimse

       fimse

    fimse

    escreva( resposta ) '''


     

    C

     

    #include <stdio.h>

    #include <math.h>

    main(){

      //escreva Equações do 2º Grau!

      printf("Equações do 2º Grau!");

     

      //declare a, b, c, x',x'' : real

      float a,b,c,x1,x2;

      /*continua é uma variavel booleana que em que 1 é

        verdadeiro e 0 é falso*/

      int continua;

      continua = 1; //inicializamos a variavel como verdadeira

     

      while(continua){

        //escreva "Digite o valor de a"

        printf("Digite o valor de a: ");

        scanf("%f",&a);

     

        //escreva "Digite o valor de b"

        printf("Digite o valor de b: ");

        scanf("%f",& B);

     

        //escreva "Digite o valor de c"

        printf("Digite o valor de c: ");

        scanf("%f",&c);

     

        if( (b*b-4*a*c) >= 0){

          //x'<-[-b+rad(b,2)-4*a*c]/2

          x1=(-b+sqrt(pow(b,2)-4*a*c))/(2*a);

     

          //x''<-[-b-rad(b,2)-4*a*c]/2

          x2=(-b-sqrt(pow(b,2)-4*a*c))/(2*a);

     

          //escreva x',x''

          printf("x1 é igual a %f e x2 é igual %f\n\n",x1,x2);

        }else

          printf("Esta equacao nao possui raizes reais!\n\n");

     

        printf("Deseja calcular as raizes de outra equacao?\n");

        printf("digite (1) para sim e (0) para não: ");

        scanf("%d", &continua);

      }//while

     

    }//fim

    Editado por marcos21

    Compartilhar este post


    Link para o post
    Compartilhar em outros sites

    Mais uma dúvida! Como faço para que os acentos aparecer no programa? Aparece um erro quando a palavra tem acento.

    Biblioteca: <locale.h>

    Função: setlocale(CT_ALL, "");

    Compartilhar este post


    Link para o post
    Compartilhar em outros sites

    Não sei si se deram conta, porém esse tema é do 2013, pode que o dono esteja morto já. :seila:

    Compartilhar este post


    Link para o post
    Compartilhar em outros sites

    Não sei si se deram conta, porém esse tema é do 2013, pode que o dono esteja morto já. :seila:

    Woo! Kkkkkk

    Não, tinha percebido não.

    Bizarro !!!

    Compartilhar este post


    Link para o post
    Compartilhar em outros sites

    Crie uma conta ou entre para comentar

    Você precisar ser um membro para fazer um comentário






    Sobre o Clube do Hardware

    No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas publicações sobre tecnologia do Brasil. Leia mais

    Direitos autorais

    Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

    ×