Jump to content
  • 0
4ly

Visualg, olá gostaria de saber onde está o erro no meu algoritmo

Question

O exercício propunha fazer duas funções uma para multiplicação e outra para criar uma fatorial, porém devem ser feitas usando apenas operações de soma e subtração

bom fiz uma função para multiplicar e esta funcionando porém estou tentando utiliza-la para fazer a fatorial e o resultado sempre da zero ;-; podem me ajudar 

 

 

algoritmo "semnome"
var
a,b:inteiro

funcao multi(a:inteiro;b:inteiro):real
var aux:real
inicio
se a=0 entao
   retorne 0
senao
   aux <- 0
   enquanto b>0 faca
      aux <- aux+a
      b <- b-1
   fimenquanto
   retorne aux
fimse
fimfuncao

funcao fatorial(a:inteiro):real
var fat,res:real
inicio
enquanto fat > 0 faca
   fat<-a
   fat <- fat - 1
   res <- multi(fat,a)
fimenquanto
retorne res
fimfuncao

inicio
leia(a)
escreval(fatorial(a))
fimalgoritmo

 

Share this post


Link to post
Share on other sites

1 answer to this question

Recommended Posts

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 Motta
      Alta demanda aquece mercado para programadores
       
      "Programação é o novo inglês" ...
      Será !?
    • By Auface
      Pessoal estou iniciando na programaçaoem C e tenho este trabalho para fazer.
       
      Ajudem por favor , programação em C, e não tenho a minima ideia de como fazer, o enunciado é em inglês e está, neste link, é o exercício B(building a field).
      http://maratona.ime.usp.br/hist/2018/resultados18/contest_onesided.pdf
      Por enquanto eu fiz isso, mas não tenho certeza se começo assim.eu acho também que tenho que fazer este exercício a partir de um arquivo e lendo ele, mas também n sei como fazer.
       
      #include <stdio.h> int main() {     float x1,y1,x2,y2;     printf("Ponto 1: \n");     scanf("%f %f",&x1,&y1);     printf("Pont 2: \n");     scanf("%f %f",&x2,&y2);     printf("%.4f\n",(sqrt(pow(x2-x1,2)+pow(y2-y1,2))));     return 0; }
    • By Motta
      9 New Programming Languages To Learn In 2019
    • By soaresgusta
      Boa tarde, exercício pede a seguinte questão:

      Faça um programa que leia um valor x qualquer e calcule:
      Y = ( x+1)+(x+2)+(x+3)+(x+4)+(x+5)+...(x+100).

      Eu não estou conseguindo criar uma função Y na linguagem que some de 1 a 100.

      #include <stdio.h>
      #include <stdlib.h>

      int main ()
      {
      int Y=0, x, i=1;

      for (i=1;i<=100;i++);
      {
      Y= (x+i);
      printf("Digite um numero inteiro qualquer: \n");
      scanf ("%d", x);

      printf("Y = %d \n", Y);
      i++;

      }
      return (0);
      }

      Pela lógica, i varia de 1 a 100, mas quando eu executo o programa ele não soma. Alguém pode me ajudar?
    • By andiroldao
      Então, estava trabalhando nesse algoritmo em Portugol e resolvi traduzir para C, porém, se eu entro com dados em veículos maior que 2000, a Média de acidentes em cidades com menos de 2000 veículos de passeio aparece como: -nan. Alguém sabe me dizer onde estou errando?   #include <stdio.h>   int main(void) {     //- Variáveis     int codigo, veiculos, acidentes;     int codigo_menos_acidente = 0;     int codigo_mais_acidente = 0;     int indice_menor_cidade = 0;     int codigo_menor_cidade = 0;     int indice_maior_cidade = 0;          int codigo_maior_cidade = 0;     int soma_acidentes_menor_2000 = 0;     int menor_indice_acidentes = 0;     int maior_indice_acidentes = 0; int soma_geral_de_veiculos = 0; int numero_cidades = 0;     float media_de_veiculos_cidades = 0;     float numero_cidades_veiculos_menor_2000 = 0; float media_de_acidentes_menor_2000 = 0;     char continuar_a_pedir_dados = 1;   do{         //- Entrada de dados         printf("\nEntrada de dados \n\n");     //- Código da cidade;     printf("Insira o Código da Cidade: ");     scanf("%d", &codigo);     //- Número de veículos de passeio;     printf("Insira o número de veículos de passeio: ");     scanf("%d", &veiculos);     //- Número de acidentes de trânsito com vítimas;     printf("Insira número de acidentes de trânsito com vítimas: ");     scanf("%d", &acidentes);       soma_geral_de_veiculos += veiculos;     numero_cidades += 1;       if(acidentes< indice_menor_cidade || indice_menor_cidade == 0) {             codigo_menor_cidade = codigo;             indice_menor_cidade = acidentes;         }     if(acidentes > indice_maior_cidade || indice_maior_cidade == 0) {         codigo_maior_cidade = codigo;             indice_maior_cidade = acidentes;     }     if(veiculos < 2000) {         soma_acidentes_menor_2000 += acidentes;         numero_cidades_veiculos_menor_2000 += 1;     }     if(acidentes < menor_indice_acidentes || menor_indice_acidentes == 0) {         codigo_menos_acidente = codigo;         menor_indice_acidentes = acidentes;     }     if(acidentes > maior_indice_acidentes || maior_indice_acidentes == 0) {             codigo_mais_acidente = codigo;         maior_indice_acidentes = acidentes;     }         printf("\nPara inserir novos dados digite \"1\", para sair do programa digite outro valor: ");     scanf("%s", &continuar_a_pedir_dados);     }     while(continuar_a_pedir_dados == '1');         printf("\n\nResultado da pesquisa\n");           media_de_veiculos_cidades = soma_geral_de_veiculos / numero_cidades;         media_de_acidentes_menor_2000 = soma_acidentes_menor_2000 / numero_cidades_veiculos_menor_2000;     //- Qual o maior índice de acidente de trânsito;     printf("\nMaior índice de acidentes: %d\n", maior_indice_acidentes);     //- Qual cidade pertence o maior índice de acidente de trânsito;     printf("\nCidade com mais acidentes: %.d\n", codigo_maior_cidade);     //- Qual o menor índice de acidente de trânsito;     printf("\nMenor índice de acidentes: %d\n", menor_indice_acidentes);     //- Qual cidade pertence o menor índice de acidente de trânsito;     printf("\nCidade com menos acidentes: %d\n", codigo_menor_cidade);     //- Qual a média de veículos nas0 cidades juntas;     printf("\nMédia de víiculos: %.f\n", media_de_veiculos_cidades);     //- Qual a média de acidentes de trânsito nas cidades com menos de 2000 veículos de passeio.     printf("\nMédia de acidentes em cidades com menos de 2000 veículos de passeio: %.f\n", media_de_acidentes_menor_2000);       printf("\n"); return 0; }
×

Important Information

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