Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

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 


 

Compartilhar este post


Link para o post
Compartilhar em outros sites

  • Conteúdo Similar

    • Por alexdyna
      Prezados,
      Amigos tenho que fazer um trabalho da faculdade onde o professor me da um arquivo que vou colocar anexo e tenho que fazer um algoritmo que leia o arquivo e monte uma tabela com as informações.
      pelo que vejo ele tem na primeira linha 8 barra e nas demais linha 10 barras
      ate a ultima que seria sua parada onde temos 2 barras seguidas.
       
      ficaria muito grato com a ajuda de todos.
       
      No arquivo anexo esta o texto:
      Nome/telefone/nascimento/Horas Curso/vendas T1/vendas T2/vendas T3/vendas T4/
       Luiz Ranza Neo/99934-5255/05/12/1989/200/107099,072578621/76915,8996218681/100922,271239691/76372,9971916498/
      Richard de Barrissaia/99326-4689/18/03/1990/150/55123,0080621828/68062,2200055909/67233,9928593779/45236,5928531083/
      Rodrigo Abalâminos/99911-7413/09/08/1987/168/71697,3866071191/58063,5644108225/88183,6230762134/48160,3116315664/
      José Gigfrid/99658-7874/15/04/1997/135/48816,199086596/50086,3689415844/52916,3066872779/55232,0663463164/
      Luiza Celly Silva/99659-1214/01/02/2000/90/29208,8223591438/39361,8088384592/45062,056112236/38913,7237126574/
      Maria Kunlun/99686-7845/21/04/1984/182/92076,1053757689/80440,5339844205/87575,0546657182/79220,9398178354/
      //
       
    • Por thiago_tw
      eu to com uma tarefa que preciso de ajuda, já tentei alguns algoritmos que achei por aqui mas nunca dá certo, mandei a imagem do que é para ser feito, agradecido se me ajudarem

    • Por Geralt96
      Bom dia. Alguém pode me dá uma ajuda pra desenvolver essa questão, por gentileza?

      Aqui está ela: https://projecteuler.net/problem=6

      A soma dos quadrados dos primeiros dez números naturais é: 1² + 2² + ... 10² = 385...
      O quadrado da soma dos dez primeiros números naturais é: (1+2+ ... 10)² = 55² = 3025...
      Portanto, a diferença entre a soma dos quadrados dos primeiros dez números naturais e o quadrado da soma é: 3025 - 385 = 2640.
      Encontre a diferença entre a soma dos quadrados dos primeiros cem números naturais e o quadrado da soma.
    • Por cerejafalante
      Olá pessoal, estou com uma lista de exercício de funções para fazer no visualg mas não sei por onde começar, alguém pode me ajudar fazendo esse exercício? ai eu pego ele de exemplo e faço os outros, obrigada
       
      o exercício é 
      Escreva um programa que calcula área de figuras: quadrado, retângulo, triângulo e círculo. O usuário informa qual forma deseja calcular a área, informa os parâmetros necessários e a área da forma é calculada em uma função. 
    • Por cerejafalante
      Pessoal tenho que fazer um algoritmo de função no visualg de uma calculadora. Eu fiz o algoritmo mas não sei como fazer função, alguém me ajudaaa
      o código está aqui, tem que por em função, obrigada
       
      Var
      n1,n2,r:real
      operacao:inteiro
      inicio
      repita
      escreval ("1. Multiplicação ")
      escreval ("2. Divisão ")
      escreval ("3. Subtração ")
      escreval ("4. Soma ")
      escreval ("5. Sair ")
      leia (operacao)
      se ( operacao = 5 ) entao
      fimalgoritmo
      fimse
      limpatela
      escreva ("Diga o primeiro numero: ")
      leia ( n1 )
      ate ( operacao >= 1 ) e ( operacao <= 5 )
      se ( operacao <= 4 ) e ( operacao >= 1 ) entao
      escreva ("Diga o segundo numero: ")
      leia (n2)
      fimse
      escolha operacao
      caso 1
      r <- n1*n2
      caso 2
      r <- n1/n2
      caso 3
      r <- n1-n2
      caso 4
      r <- n1+n2
      outrocaso
      escreva ("escolha incorreta")
      fimescolha
      escreval ("O resultado é: ", r)
      escreval ("")
      ate ( operacao = 5 )
      fimalgoritmo
×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.