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:  
Samuel Barbosa Ramos

C Converter Algoritmo para visualg

Recommended Posts

Oi pessoal, estou tentando entender esse algoritmo, mas estou iniciando agora nessa área e consigo mais entender programas em VisualG, quero entender esse algoritmo, porém ele está em C, se alguém transformasse para VisualG eu ficaria grato :)

#include <stdio.h>

int main( void )

{

int a[ 3 ][ 3 ], soma = 0;

int i, j, tentativas;

for( i = 0; i < 3; ++i )

     for( j = 0; j < 3; ++j )

         scanf("%d", &a[ i ][ j ]);

for( i = 0; i < 3; ++i )

      if( (a[ i ][ 0 ] == 0) + (a[ i] [ 1 ] == 0) + (a[ i ][ 2 ] == 0) == 0 )

          soma = a[ i ][ 0 ] + a[ i ][ 1 ] + a[ i ][ 2 ];

for( j = 0; j < 3; ++j )

      if( (a[ 0 ][ j ] == 0) + (a[ 1 ][ j ] == 0) + (a[ 2 ][ j ] == 0) == 0 )

           soma = a[ 0 ][ j ] + a[ 1 ][ j ] + a[ 2 ][ j ];

if( (a[0][0] == 0) + (a[ 1 ][ 1 ] == 0) + (a[ 2 ][ 2 ] == 0) == 0 )

       soma = a[ 0 ][ 0 ] + a[ 1 ][ 1 ] + a[ 2 ][ 2 ];

if( (a[0][2] == 0) + (a[ 1 ][ 1 ] == 0) + (a[ 2 ][ 0 ] == 0) == 0)

       soma = a[ 0 ][ 2 ] + a[ 1 ][ 1 ] + a[ 2 ][ 0 ];

if( soma == 0 )

{

for( i = 0; i < 3; ++i )

      for( j = 0; j < 3; ++j )

           soma += a[ i ][ j ];

soma /= 2;

}

for( tentativas = 0; tentativas < 3; ++tentativas ) {

       for( i = 0; i < 3; ++i )

             for( j = 0; j < 3; ++j ) {

/*Testa mesma linha*/

if( (a[ i ][ j ] == 0) && (a[ i ][ 0 ] == 0) +

       (a[ i ][ 1 ] == 0) + (a[ i ][ 2 ] == 0) == 1 )

   a[ i ][ j ] = soma - a[ i ][ 0 ] - a[ i ][ 1 ] - a[ i ][ 2 ];

/*Testa mesma coluna*/

if( (a[ i ][ j ] == 0) && (a[ 0 ][ j ] == 0) +

      (a[ 1 ][ j ] == 0) + (a[ 2 ][ j ] == 0) == 1 )

  a[ i ][ j ] = soma - a[ 0 ][ j ] - a[ 1 ][ j ] - a[ 2 ][ j ];

      }

}

for( i = 0; i < 3; ++i ) {

      for( j = 0; j < 3; ++j)

           printf( "%d ", a[ i ][ j ] );

      printf( "\n" );

     }

return 0;

}

  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá, legal ver outra pessoa se inturmando na área, seja bem vindo!
Eu estudo no IFSC e sei  que a apostila lhe ajudará, conforme professores dos intituto se cooperam e meu forneceu estou lhe ajudando da melhor forma possivel. Mas aviso que não deve haver qualquer meio comercial para estas apostilas e elas devem ser usadas para estudos! 

Siga o link e vai ter o que for nescessário, lembre-se, vou revogar dentro de 186h.
Bons estudos

https://1drv.ms/f/s!AhyBCocGSwnnhE4ASWimadEDQZXC

 

 

Editado por ivanmax
ortografia
  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

@Samuel Barbosa Ramos   esse código   apenas imprime os nove números que forem inseridos nele,  mas se você quer converte-lo então substitua os comandos, por exemplo :

no lugar desse vetor

int a[ 3 ][ 3 ]

coloque

a : vetor[0..2,0..2] de inteiro

no lugar de int soma=0 coloque soma : real

no lugar de for coloque para e coloque o respectivo fimpara
no lugar de if coloque se e coloque o respectivo fimse
no lugar de printf coloque escreva( )
no lugar de printf ("\n"); coloque escreval
no lugar de

 if( (a[ i ][ 0 ] == 0) + (a[ i] [ 1 ] == 0) + (a[ i ][ 2 ] == 0) == 0 )

coloque

  se (a[i,0])+(a[i,1])+(a[i,2])=0 ENTÃO

e nos outros   ifs    faça do mesmo jeito .     e nos para coloque para ir de zero ate 2  assim 

para i de 0 ate 2 faca


   aqui no fórum não podemos dar códigos prontos, pois é contra as regras,  então faça a conversão do código e poste aqui para vermos como está e em que podemos ajudar .

  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites
  • Autor do tópico
  • Fala que esperava encontrar um expressão do tipo lógico para essa linha (se ((m[l,0]=0)+(m[l,1]=0)+(m[l,2]=0)=0) então), alguem pode me ajudar com esse probleminha

     

    Var
       // Seção de Declarações das variáveis
       m: vetor[0..2,0..2] de inteiro
       l, c, soma, t: inteiro

    Inicio
       // Seção de Comandos, procedimento, funções, operadores, etc...
       escreval ("Para os dígitos roubados insira o numero 0 (zero)")
       para l de 0 ate 2 faca
          para c de 0 ate 2 faca
             escreva ("Insira os números um por um, de acordo com a ordem em que aparecem na horizontal:")
             leia (m[l,c])
          fimpara
       fimpara
       para l de 0 ate 2 faca
          se ((m[l,0]=0)+(m[l,1]=0)+(m[l,2]=0)=0) então
             soma<-m[l,0]+m[l,1]+m[l,2]
             para c de 0 ate 2 faca
                se ((m[0,c]=0)+(m[1,c]=0)+(m[2,c]=0)=0) então
                   soma<-m[0,c]+m[1,c]+m[2,c]
                   se ((m[0,0]=0)+(m[1,1]=0)+(m[2,2]=0)=0) então
                      soma<-m[0,0]+m[1,1]+m[2,2]
                      se ((m[0,2]=0)+(m[1,1]=0)+(m[2,0]=0)=0) então
                         soma<-m[0,2]+m[1,1]+m[2,0]
                         se soma=0 então
                            para l de 0 ate 2 faca
                               para c de 0 ate 2 faca
                                  soma<-soma+m[l,c]
                                  soma<-soma/m[l,c]
                                  para t de 0 ate 2 faca
                                     para l de 0 ate 2 faca
                                        para c de 0 ate 2 faca
                                           se ((m[l,c]=0) e (m[l,0]=0)+(m[l,1]=0)+(m[l,2]=0)=1) então
                                              m[l,c]<-soma-m[l,0]-m[l,1]-m[l,2]
                                              se ((m[l,c]=0) e (m[0,c]=0)+(m[1,c]=0)+(m[2,c]=0)=1) então
                                                 m[l,c]<-soma-m[0,c]-m[1,c]-m[2,c]
                                                 para l de 0 ate 2 faca
                                                    para c de 0 ate 2 faca
                                                       escreva (m[l,c]
                                                       escreval ("")
                                                    fimpara
                                                 fimse
                                              fimpara
                                           fimse
                                        fimse
                                     fimse
                                  fimse
                               fimpara
                            fimpara
                         fimpara
                      fimpara
                   fimpara
                fimse
             fimse
          fimpara
       fimpara

    Editado por Samuel Barbosa Ramos
    • Curtir 1

    Compartilhar este post


    Link para o post
    Compartilhar em outros sites

    @Samuel Barbosa Ramos       seu código não está funcionando, por que você não observou que em c os loop for começam com { e termina com  ou também no caso de houver apenas  uma linha depois do for ou do if ele não terá esses caractere   { }  e funciona bem mesmo assim,  então reorganizei seu código e ele ficou assim :

    Algoritmo "convert de c para visualg"
    var
      a : vetor [0..2,0..2] de inteiro
      i,j,tentativas,p : inteiro
      soma : real
    inicio
      p:=1
      para i de 0 ate 2 faca
        para j de 0 ate 2 faca
          escreva("Digite O ",p," Número ")
          leia(a[i,j])
          p:=p+1
        fimpara
      fimpara
      para i de 0 ate 2 faca
        se (a[i,0])+(a[i,1])+(a[i,2])=0 ENTÃO
          soma:= a[i,0]+a[i,1]+a[i,2]
        fimse
      fimpara
      para j de 0 ate 2 faca
        se (a[0,j])+(a[1,j])+(a[2,j])=0 ENTÃO
          soma := a[0,j]+a[1,j]+a[2,j]
        fimse
      fimpara
      se (a[0,0])+(a[1,1])+(a[2,2])=0 ENTÃO
        soma:=a[0,0]+a[1,1]+a[2,2]
      fimse
      
      se (a[0,2])+(a[1,1])+(a[2,0])=0 ENTÃO
        soma:=a[0,2]+a[1,1]+a[2,0]
      fimse
      
      se soma=0 ENTÃO
        para i de 0 ate 2 faca
          para j de 0 ate 2 faca
            soma:=soma+a[i,j]
            soma:=soma/2
          fimpara
        fimpara
      fimse
      para tentativas de 0 ate 2 faca
        para i de 0 ate 2 faca
          para j de 0 ate 2 faca
            ///*Testa mesma linha*/
            se (a[i,j]) e (a[i,0])+(a[i,1])+(a[i,2])=1 ENTÃO
              a[i,j]=soma-a[i,0]-a[i,1]-a[i,2]
            fimse
            ///*Testa mesma coluna*/
            se (a[i,j]) e(a[0,j])+(a[1,j])+(a[2,j])=1 ENTÃO
              a[i,j]:=soma-a[0,j]-a[1,j]-a[2,j]
            fimse
          fimpara
        fimpara
      fimpara
      para i de 0 ate 2 faca
        para j de 0 ate 2 faca
          escreva(a[i,j])
        fimpara
        escreval
      fimpara
    Fimalgoritmo

     

    Compartilhar este post


    Link para o post
    Compartilhar em outros sites
  • Autor do tópico
  • @devair1010 Nossa cara muito obrigado pela ajuda, agora tenho que tentar descobrir qual é o valor do número 0, pois é um quadrado mágico, você tem alguma dica que possa me ajudar a fazer essa parte do algoritmo?

     

    • Curtir 1

    Compartilhar este post


    Link para o post
    Compartilhar em outros sites
  • Autor do tópico
  • @devair1010

    Um quadrado é chamado mágico quando a soma dos elementos de uma determinada linha, coluna ou diagonal é sempre igual.

    Escreva um programa que, dado um quadrado mágico com alguns números faltando (só pode faltar até 3 números), determine qual era o quadrado mágico original. Quando for inserido "0" significa que é um número faltando

    Seu programa deve imprimir, na saída padrão, três linhas, cada uma contendo três inteiros, descrevendo a configuração original do quadrado mágico.

     um quadrado mágico pois ao somar qualquer linha, coluna ou diagonal o resultado é sempre igual (no caso vai ser 15) :

    4  9  2

    3  5  7

    8  1  6

     

    então o usuario vai entrar assim: 0 12 12      e o programa deve imprimir: 6 12 12
                                                           16 10 0                                                  16 10 4
                                                           8 8 14                                                      8 8 14
                                                                                                                     
                                                       

    Editado por Samuel Barbosa Ramos
    • Curtir 1

    Compartilhar este post


    Link para o post
    Compartilhar em outros sites

    @Samuel Barbosa Ramos   ainda não entendi  essa parte aqui:

    Um quadrado é chamado mágico quando a soma dos elementos de uma determinada linha, 
    coluna ou diagonal é sempre igual.

    mas é igual a quê ?

    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

    ×