Jump to content
flavionorvel

Converter linguagem C para visualg

Recommended Posts

#include <stdio.h>
#include <stdlib.h>
// Limites de tamanhos
#define MINIMO 2
#define MAXIMO 50
// Variáveis globais
int opcao = 0;
int linhas = MAXIMO;
int colunas = MAXIMO;
int matrizA[MAXIMO][MAXIMO];
int matrizB[MAXIMO][MAXIMO];
void limpar_tela();
// Retorna resposta do usuario se quer rodar novamente
int rodar_novamente()
{
int opcao = 0;
printf("\n\nDeseja rodar novamente? Digite 1 para SIM e 0 para Não: ");
scanf("%d",&opcao);
if (opcao == 1 || opcao == 0) {
return opcao;
}
printf("\nOpcao invalida. Escolha novamente.");
return rodar_novamente();
}
// Recebe valor inteiro do usuario
int receber_numero()
{
int numero = 0;
scanf("%d",&numero);
if (numero >0) {
return numero;
}
printf("\nNúmero inválido. digite um número positivo.: ");
return receber_numero();
}
// Valida tamanhos de linhas e colunas
int validar_tamanhos(int linhas, int colunas)
{
if ((linhas >= MINIMO && linhas <= MAXIMO) && (colunas >= MINIMO && colunas <= MAXIMO) && (linhas !
= colunas)) {
return 1;
}
printf("\nLinhas e Colunas devem ser diferentes e ter valores entre %d e %d. Tente
novamente.",MINIMO,MAXIMO);
return 0;
}
// Preencher matriz
void preencher_matriz(int matriz[MAXIMO][MAXIMO], int linhas, int colunas)
{
int i,j;
for (i = 0 ; i < linhas ; i ++) {
for (j = 0 ; j < colunas ; j ++) {
printf("\nDigite um valor inteiro para a posicao %d-%d da matriz A: ",i,j);
matriz[j] = receber_numero();
}
}
}
// Imprimir matrizes
void imprimir_matrizes(int matrizA[MAXIMO][MAXIMO], int matrizB[MAXIMO][MAXIMO], int linhas, int

colunas)
{
int i,j;
limpar_tela();
printf("\n\nMATRIZ A\n");
for (i = 0 ; i < linhas ; i++) {
for (j = 0 ; j < colunas ; j ++) {
printf("\nMATRIZ A POSICAO %d-%d: %d",i,j,matrizA[j]);
}
}
printf("\n\nMATRIZ B (TRANSPOSTA DE A)\n");
for (i = 0 ; i < colunas ; i++) {
for (j = 0 ; j < linhas ; j ++) {
printf("\nMATRIZ B POSICAO %d-%d: %d",i,j,matrizB[j]);
}
}
}
void limpar_tela()
{
system("@cls||clear");
}
// Laço principal
int main()
{
int i,j;
do {
//Inicializar variáveis
opcao = 0;
linhas = 0;
colunas = 0;
i = 0;
j = 0;
do {
printf("\nEntre com o tamanho para linhas: ");
linhas = receber_numero();
printf("\nEntre com o tamanho para colunas: ");
colunas = receber_numero();
} while (!validar_tamanhos(linhas,colunas));
// entrar com valores para a matriz A
preencher_matriz(matrizA, linhas, colunas);
// criar matriz transposta de A
for(i = 0 ; i < linhas ; i ++) {
for(j = 0 ; j < colunas ;j ++) {
matrizB[j] = matrizA[j];
}
}
// Imprimir matrizes
imprimir_matrizes(matrizA,matrizB,linhas, colunas);
// Pergunta ao usuário se quer continuar
opcao = rodar_novamente();
} while (opcao == 1);
}me 


 

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Similar Content

    • By luizrufino
      Boa tarde pessoal, estou com dificuldade para 
      desenvolver as linhas de códigos de um problema.
       
      Escreva um algoritmo em potrugol que leia o NOME do responsável e o número de filhos matriculados em uma escolinha de futebol. com mensalidade de $120,00, imprimir o valor que o responsável vai pagar, baseando-se na seguinte tabele de descontos
       
      filhos matriculados        Desconto
       1                                             10%
       2 a 3                                       15%
      acima de  3                             20
       
      Se alguém puder me ajudar, pode ser somente a estrutura básica.
    • By pedrof
      algoritmo "Bhaskara" var a, b, c, delta, raiz_delta, x1, x, x_delta, x2: Real inicio Escreva("Informe um numero inteiro diferente de 0: ") Leia(a) Escreva("Informe outro numero inteiro diferente de 0: ") Leia(b) Escreva("Novamente, informe outro numero inteiro diferente de 0: ") Leia(c) delta <- (b^2-4*a*c) Se (delta<0) entao delta <- Abs(delta) raiz_delta <- (RaizQ(delta)) x <- (b-b*2)/(2*a) x_delta <- raiz_delta/(2*a) x1 <- (x, "+", x_delta, "i") x2 <- (x, "-", x_delta, "i") Escreval("Utilizando ", a, " como 'a', ", b, " como 'b', ", c, " como 'c' em Delta e aplicando a ") Escreval("Formula de Bhaskara, chegamos ao resultado:) Escreva("x1 = ", x1, " e x2 ", x2) FimSe fimalgoritmo

      Parece ser algo bem idiota, mas não estou conseguindo resolver... Ajuda?
    • By Montesuma Oliveira
      Olá aos mestres do algoritmo com VisuAlg, tenho o seguinte algoritmo:
       
      algoritmo "Estrutura Indexadas - Vetor(Array)" // Seção de Declarações var indice, qtd_Veiculos, tot_Veiculos : inteiro nome_veiculo: vetor [1..40] de caractere inicio // Seção de Comandos escreval("Digite a Quantidade de Veículos para Cadastrar ou -1 Para Sair: ") leia(qtd_Veiculos) enquanto qtd_Veiculos <> -1 faca    para indice de 1 ate qtd_Veiculos faca       escreva("Digite o Nome do Veículo: ")       leia(nome_veiculo[indice])    fimpara    tot_Veiculos <- 0    tot_Veiculos <- (tot_Veiculos + (indice + 1))    escreval("Digite a Quantidade de Veículos para Cadastrar ou -1 Para Sair: ")    leia(qtd_Veiculos) fimenquanto para indice de 1 ate tot_Veiculos faca    escreval("O Veículo ", nome_veiculo[indice], " tem o índice ", indice) fimpara fimalgoritmo Estou usando vetor, o que acontece é o seguinte, por exemplo, digite dois veículos, quando ele retorna perguntando se quero encerrar, eu digo que quero incluir mais dois veículos, ao digitar -1 para sair, ele imprime somente os dois últimos veículos cadastrados e não 4 veículos, que deveria ser o correto, conforme figura anexa. Onde estou errando? Fico no aguardo de ajuda, muito grato.
       
       
       
       
       
       
       
       
       
       
       

    • By FILIPEINFORMATICA10
      uses Crt; var X, Y : Integer; begin Writeln ('Entre com dois Números:'); { Mostra na tela a mensagem} Readln (X, Y); { Lê os dois números } If (X = Y) Then {Condição - SE X for igual a Y} Begin {INICIO - Repare abaixo que existe duas instruções, dois comandos Writeln, por isso estão entre BEGIN e END} Writeln ('X é igual que Y'); Writeln ('O Valor de X é =', X); End; {FIM} end.
    • By marizita
      algoritmo "semnome"
      // Função :
      // Autor :
      // Data : 17/06/2019
      // Seção de Declarações 
      var
      i,j,aux:inteiro
      Matriz_A: vetor [1..3,1..3] de inteiro
      Matriz_B: vetor [1..3,1..3] de inteiro
      matriz_C: vetor [1..3,1..3] de inteiro

      inicio
      // Seção de Comandos 
      // VETOR A
      para i de 1 ate 3 faca
           para j de 1 ate 3 faca
            escreval ("matriz A: coluna:",i,"linha:",j)
            escreval ("informe o valor da posicao: [",i,"]: [",j,"]:")
            leia(matriz_A[i,j])
         fimpara
        fimpara
        limpatela

      //VETOR B
      para i de 1 ate 3 faca
         para j de 1 ate 3 faca
            escreval ("matriz B: coluna:",i,"linha:",j)
            escreval ("informe o valor da posicao: [",i,"]: [",j,"]:")
            leia(matriz_B[i,j])
         fimpara
         fimpara
        limpatela
        
        //VETOR C
        Para i de 1 ate 3 faca
              Para j de 1 ate 3 faca
                  matriz_C [i,j] <- ( matriz_A[i,1] * matriz_B[1,j] ) + (matriz_A[i,2] * matriz_B[2,j] ) + (matriz_A[i,3] * matriz_B[3,j] )
                  Escreval("matriz_C ",i , " x ",j , " : ", matriz_C [i,j])
              Fimpara
          Fimpara
×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.