Ir ao conteúdo
  • Cadastre-se
Matheus Santos_391593

Crie um algoritmo que leia os limites inferior e superior de um intervalo

Recommended Posts

Questão 1) Crie um algoritmo que leia os limites inferior e superior de um intervalo e imprimir todos os números pares no intervalo aberto e seu somatório (UTILIZE O PARA). Suponha que os dados digitados são para um intervalo crescente 
Exemplo: 
Limite inferior: 3 Saída: 4 6 8 10 
Limite superior: 12 Soma: 28 

Questão 2) Escreva um procedimento que receba um número inteiro e o imprima na forma extensa. Por exemplo, para 1 a saída desejada é “Um”. A função deve ser capaz de gerar o extenso dos números de 0 até 10, inclusive. Caso um número não compatível seja recebido o procedimento deve mostrar uma mensagem de erro. Crie também um algoritmo que leia um valor inteiro e chame o procedimento criado acima para a impressão do número extenso. 

Questão 3) Escreva uma função que receba dois números inteiros x e y. Essa função deve verificar se x é divisível por y. No caso positivo, a função deve retornar 1, caso contrário zero. Escreva também um algoritmo para testar tal função exibindo uma mensagem de acordo com o resultado. 

Questão 4) Escreva uma função que receba um número inteiro como parâmetro. Esta função deve verificar se tal número é primo. No caso positivo, a função deve retornar 1, caso contrário zero. Escreva também um algoritmo para testar tal função exibindo uma mensagem de acordo com o resultado

 

Questão 5) Escreva um programa que leia um número e uma função que calcule a sequência de Fibonacci. Implementar uma versão recursiva e uma versão com estrutura de repetição. Deixe o usuário escolher qual versão deve retornar a resposta. 


Obs: fiquei doente e faltei a aula o prof. Passou e resolveu no "Visualg" essas 5 perguntas , mais eu não estou sabendo fazer devido eu ter perdido a explicação me ajudem pf.

 

Editado por dif
Melhorar o título

Compartilhar este post


Link para o post
Compartilhar em outros sites

Caro usuário,

 

Seja bem-vindo ao Fórum do Clube do Hardware.

 

No intuito de servir como fonte de pesquisa no caso de instituições de ensino, informamos que incorrer no resolvimento por completo de questões relacionadas a disciplinas escolares de cursos técnicos e faculdades podem ser revistas e removidas pela Equipe de Moderação do Clube do Hardware.

 

Para sanar dúvidas sobre esse tipo de problema, por gentileza, publique o passo a passo do desenvolvimento da questão, projeto, monografia ou conteúdo em dúvida para que possamos analisar se a sua resposta está certa ou não, ou para que possamos ajudá-lo com a sua dúvida no desenvolvimento do exercício.

 

Infelizmente, não temos como resolver seus trabalhos por você. O objetivo do Fórum do Clube do Hardware é auxiliar você a sanar suas dúvidas, e não de responde-las em seu lugar. Além disso, copiar e colar respostas que não são de sua autoria é considerado plágio, o que é ilegal.

 

Esperamos que compreenda.

 

Atenciosamente,

Equipe Clube do Hardware

Compartilhar este post


Link para o post
Compartilhar em outros sites

Poste o que já conseguiu fazer e onde está com dúvidas... tente por exemplo fazer logo a segunda questão, é mais simples (basta usar SE para cada número ou o CASE).

 

No aguardo

Compartilhar este post


Link para o post
Compartilhar em outros sites
var 
num: inteiro 

procedimento extenso(n: inteiro) 
var 
ext: caracter 
inicio 
escolha (n) 
caso 1 
ext < "Um" 
caso 2 
ext <- "Dois" 
caso 3 
ext <- Três" 
caso 4 
ext <- "Quatro" 
caso 5 
ext <- "Cinco" 
caso 6 
ext <- "Seis" 
caso 7 
ext <- "Sete" 
caso 8 
ext <- "Oito" 
caso 9 
ext <- "Nove" 
caso 10 
ext <- "Dez" 
outrocaso 
ext <- "Erro. Número inválido" 
fimescolha 
escreval(ext) 
fimprocedimento 

inicio 
escreva("Informe um número: ") 
leia(num) 
escreval(extenso(num)) 
fimalgoritmo

 

conseguir fazer ate aqui usando o caso... mais na hora da um erro alguem pode ve aonde esta o erro que eu nao estou enxergando 

Editado por Simon Viegas
Inserir tag CODE

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá @Matheus Santos_391593.

 

Você está utilizando o procedimento de forma incorreta.

21 minutos atrás, Matheus Santos_391593 disse:

escreval(extenso(num))

 

 

Você não pode "escrever" extenso(), pois ele é um procedimento! Os procedimentos não retornam valores neles mesmo, para isso, você pode usar funcao...

 

Você tem (pelo menos) duas opções: ou apenas chama o extenso(num) diretamente (tira do escraval()), ou transforma extenso() em funcao, ai lá dentro da funcao em vez de usar o escreval(ext), você retorna o valor utilizando o retorne. Todas as duas formas vão funcionar!

 

Com funcao, daria por exemplo para fazer isso:

escreval("A versao do meu VisuAlg é ",extenso(3),".",extenso(0),".",extenso(6),".",extenso(3))


Veja, as funções são basicamente iguais aos procedimentos, a diferença é que as funções TAMBÉM funcionam como uma espécie de variável, onde nela mesma será retornado algo.

 

Obs.: "será retornado", pois se não retornar algo, não fará sentido ser uma função, logo teria que transformar em procedimento.

 

PS: tanto que funcao e procedimento são semelhantes, que em outras linguagens, como Java, eles não são diferenciados, lá tudo é função, e quando não se quer ou não precisa retornar nada, declara como void, ou seja, "vazio" ("não retorna nada").

 

No aguardo.

  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites
8 minutos atrás, Matheus Santos_391593 disse:

muito obrigado você nao sabe como me ajudou agora.. falta 3 ...

Se conseguiu, poste sua resposta... sugiro que tente fazer tanto com procedimento, tanto com funcao. (2 códigos)

 

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Escreva uma função que receba um número inteiro como parâmetro. Esta função deve verificar se tal número é primo. No caso positivo, a função deve retornar 1, caso contrário zero. Escreva também um algoritmo para testar tal função exibindo uma mensagem de acordo com o resultado


 

var
a:inteiro
funcao resultado(x:inteiro):inteiro
var
r,num:inteiro
inicio
num <- a mod 2
se (num = 0) então
   r<- 1
senao
   r<- 0
fimse
escreval(r)
fimfuncao
inicio
escreva("Digite o número: ")
leia(a)
escreval(resultado(a))
fimalgoritmo

Obs: esta retornando 2 valores... ja tirei o "escreva" , Ja coloquei renomeie , mais o certo e imprimo  1 somente que no caso "  1 ou 0 "

Editado por dif
Botão CODE precisa ser usado para postar o código

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá @Matheus Santos_391593, primeiramente vamos tratar da questão da sintaxe... abaixo seu código com alguns comentários:
 

algoritmo "FCdH"
var
  a:inteiro
funcao resultado(x:inteiro):inteiro
  var
    r,num:inteiro
  inicio
  num <- a mod 2 //aqui você deveria usar o X!!! [1][SimonViegas]
  se (num = 0) então
    r<- 1
  senao
    r<- 0
  fimse
  escreval(r) //aqui não é para escrever, mas sim retornar! [2][SimonViegas]
  fimfuncao
inicio
escreva("Digite o número: ")
leia(a)
escreval(resultado(a))
fimalgoritmo

{
OBSERVAÇÕES
- [1] "a" é uma variável Global, até dá para usar diretamente como você está
fazendo, entretanto, conceitualemente, tudo que for usado dentro de uma FUNCAO
ou PROCEDIMENTO, deve ser repassado por parâmetro ou criado dentro da própria
estrutura. Mas nesse caso, você apenas deve mudar para "x"!!! Perceba  que você
já está passando o "a" lá na parte do programa. "x" será uma cópia de "a"!

RESUMIDAMENTE: troque "num <- a mod 2" por "num <- x mod 2"

- [2] Você está tratando uma FUNCAO como se fosse um PROCEDIMENTO. Veja, nas
FUNCAO é obritário retonrnar algo, como comentei anteriormente, "se não retornar
algo, não fará sentido ser uma função, logo teria que transformar em
PROCEDIMENTO.".

RESUMIDAMENTE: troque de "escreval(r)" para "retorne r"
}

Veja, essas "correções" estão relacionadas à sintaxe, algo mais voltado as regras/conceitos da linguagem... não estou me preocupado se a lógica utilizada para «verificar se tal número é primo» está certa ou não!!!

 

***

 

Segundamente, vamos à questão da lógica... você já sabe mais ou menos bem o que é um número primo? qual a forma que você idealizou para verificar se um número é primo ou não? Primeiro tem que entender o foco do programa (primos), depois buscar uma solução (verificar se é primo ou não).

 

***

 

Veja, são duas coisas distintas: a primeira parte está relacionada a fazer o programa rodar. A segunda está relacionada a fazer o que se quer.

 

PS: ainda estou do aguardo do código da Questão 2.

 

No aguardo

 

Editado por Simon Viegas

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

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora





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

×