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

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

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

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

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

×