Ir para conteúdo

POWERED BY:

Arquivado

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

Cristian Miercalm

Programa de Visualg

Recommended Posts

Olá, eu sou novo aqui, mas eu estou precisando de uma ajuda pra tentar fazer um programa em visualg, que não sei muito bem ainda como fazer, segue ele abaixo, se alguem conseguir me ajudar desde ja agradeço.

 

 

• O programa deve ter um menu com 8 opções de escolhas, no qual o usuário deverá digitar um valor de 1 a 8 para ativar essas escolhas:

1. Calcular o Fatorial de um Numero

2. Gerar série de Fibonacci

3. Calcular Média de 4 notas

4. Somar duas matrizes 5x5

5. Multiplicar duas Matrizes 4x4

6. Converter segundos em hr:min:seg

7. Calcular MDC de dois números

8. Sair

 

 

 

http://forum.imasters.com.br/public/style_emoticons/default/natal_biggrin.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

você tentou algo??

sobre o MDC deve ter varios links no google, agora sobre os segundos, tente algo q eu te ajudo ...

 

[]s

Compartilhar este post


Link para o post
Compartilhar em outros sites

fera, to tentando, o de converter ja fiz

só esse de mdc que ta dando erro

axo q ja to fazendo tudo errado

toda hora aparece um erro diferente http://forum.imasters.com.br/public/style_emoticons/default/natal_dry.gif

algoritmo "mdc"

 

var

n1,n2:inteiro

inicio

escreval("Escreva o primeiro numero.")

leia(n1)

escreval("Escreva o segundo numero.")

leia(n2)

se(n1<n2)ou (n2<n1)entao

escreva ("Escreva o resultado.")

fimse

se (n1<n2/n2) e (n2<n1/n1) entao

escreva("n1 for menor que n2 /n2", n1/n2)

escreva("n2 for menor que n1/n1",n2/n1)

fimse

fimprocedimento

fimalgoritmo

 

me passaram esse tipo de modelo, o meu ta parecido

só que eu axo q ta tudo errado, pois da erro de cara.

se tu conseguir me da uma mão nesse ai

Compartilhar este post


Link para o post
Compartilhar em outros sites

cara me explica essa linha:

se (n1<n2/n2) e (n2<n1/n1) entao

[]s

Compartilhar este post


Link para o post
Compartilhar em outros sites

vamos fazer assim..

coloque matematica como q [e o MDC, assim a gente vai desenvolvendo o algoritmo junto..

 

[]s

Compartilhar este post


Link para o post
Compartilhar em outros sites

Escolhe-se dois numeros quaisquer; pega-se o maior numero e

divide-se pelo menor; se o resultado desta divis?o for um n?mero

inteiro, então o menor numero é o m.d.c. Se houver mais de dois

valores a divisão deve ser feita entre o maior valor e o segundo

maior e assim sucessivamente.

 

to seguindo essa linha de raciocinio.

Compartilhar este post


Link para o post
Compartilhar em outros sites

vamos entaum analizar o primeiro caso:

* divisao gerar um numero inteiro logo de cara:

leia n1, n2;
se (n1 > n2) n3 <- n1 / n2;
senao		  n3 <- n1 / n2;
if ((n3 / trunca(n3)) == 1) mdc <- n3;
senao ..
.
.

entendeu?

 

[]s

Compartilhar este post


Link para o post
Compartilhar em outros sites

tranquilo..

editei um pedacinho do codigo q achei necessario..

 

[]s

Compartilhar este post


Link para o post
Compartilhar em outros sites

outra coisa que ta me dando trabalho é fazer todos eles rodarem junto, aparece uns erros bobos só que não consigo resolver

vo posta eles aki, só que ta sem o do mdc ainda

algoritmo "Trabalho_de_DP"

 

var

op:inteiro

 

procedimento menu

var

inicio

escreval("******Menu de Opções******")

escreval("1-Calcular Fatorial de um numero.")

escreval("2-Gerar Série de Fibonacci.")

escreval("3-Calcular Media de 4 Notas.")

escreval("4-Somar duas matrizes 5x5.")

escreval("5-Multiplicar duas matrizes 4x4.")

escreval("6-Converter segundos em hr:min:seg.")

escreval("7-Calcular MDC de dois némeros.")

escreval("8-Sair")

escreval("Digite uma Opção:")

fimprocedimento

inicio

repita

limpatela

menu

leia(op)

se(op=1) entao

fatorial

se(op=2) entao

fibonacci

se(op=3)entao

calcular_media

se(op=4)entao

somar_duas_matrizes5x5

se(op=5)entao

mutiplicar_duas_matrizes4x4

se(op=6)entao

converter_segundos_em_hr:mnt:seg

se(op=7)entao

calcular_mdc_dois_numeros

se(op=8)entao

sair

fimse

procedimento Fatorial

var x:inteiro

inicio

escreva("Digite um número:")

leia(x)

valor <- x

se v <= 2 entao

retorne v

senao

retorne v * fatorial(v-1)

fimse

fimfuncao

inicio

obtervalor

escreva("O fatorial de ",valor," é ",fatorial(valor))

fimprocedimento

inicio

repita

limpatela

menu

leia(op)

se(op=1) entao

fatorial

se(op=2) entao

fibonacci

se(op=3)entao

calcular_media

se(op=4)entao

somar_duas_matrizes5x5

se(op=5)entao

mutiplicar_duas_matrizes4x4

se(op=6)entao

converter_segundos_em_hr:mnt:seg

se(op=7)entao

calcular_mdc_dois_numeros

se(op=8)entao

sair

procedimento fibonacci

var

a,b,c,cont,n,numfib:inteiro

inicio

limpatela

escreval("Entre com o numero para ver a sequencia de Fibonacci.")

leia(numfib)

n <- numfib-2

a <- 1

b <- 1

cont <- 1

escreva(a,B)

enquanto cont <- n faca

c <- a + b

escreva ©

a <- b

b <- c

cont <- cont + 1

fimprocedimento

inicio

repita

limpatela

menu

leia(op)

se(op=1) entao

fatorial

se(op=2) entao

fibonacci

se(op=3)entao

calcular_media

se(op=4)entao

somar_duas_matrizes 5x5

se(op=5)entao

mutiplicar_duas_matrizes 4x4

se(op=6)entao

converter_segundos_em_hr:mnt:seg

se(op=7)entao

calcular_mdc_dois_numeros

se(op=8)entao

sair

 

procedimento calcular_media

var

soma,nota1,nota2,nota3,nota4: real

inicio

 

escreval("nota1:")

leia(nota1)

escreval("nota2:")

leia(nota2)

escreval("nota3:")

leia(nota3)

escreval("nota4:")

leia(nota4)

soma <- ((nota1+nota2+nota3+nota4)/4)

escreva(soma)

fimprocedimento

inicio

repita

limpatela

menu

leia(op)

se(op=1) entao

fatorial

se(op=2) entao

fibonacci

se(op=3)entao

calcular_media

se(op=4)entao

somar_duas_matrizes5x5

se(op=5)entao

mutiplicar_duas_matrizes4x4

se(op=6)entao

converter_segundos_em_hr:mnt:seg

se(op=7)entao

calcular_mdc_dois_numeros

se(op=8)entao

sair

 

procedimento somar_duas_matrizes5x5

var

matriz a,matriz b,matriz c:inteiro

vetor [1..5,1..5] de inteiro

i,j:inteiro

 

inicio

para i de 1 ate 5 faca

para j de 1 ate 5 faca

escreva("Digite a posição:["i","j"]")

leia(matriz a[i,j])

fimpara

para i de 1 ate 5 para

para j de 1 ate 5 para

escreva("Digite a posição:["i","j"]")

leia(matriz b[i,j])

matriz([i,j]<-matriz a[i,j]+ matriz b[i,j])

fimpara

fimpara

para i de 1 ate 5 faca

para j de 1 ate 5 faca

escreva(matriz[i,j]:5)

fimpara

escreva©

fimpara

fimprocedimento

inicio

repita

limpatela

menu

leia(op)

se(op=1) entao

fatorial

se(op=2) entao

fibonacci

se(op=3)entao

calcular_media

se(op=4)entao

somar_duas_matrizes5x5

se(op=5)entao

mutiplicar_duas_matrizes4x4

se(op=6)entao

converter_segundos_em_hr:mnt:seg

se(op=7)entao

calcular_mdc_dois_numeros

se(op=8)entao

sair

 

fimprocedimento

 

procedimento Multiplicar_duas_matrizes4x4

var

matriz a,matriz b,matriz c: vetor[1..4,1..4]

i,j:inteiro

inicio

para i de 1 ate 4 faca

para j de 1 ate 4 faca

escreva("Digite a posição:["i","j"]")

leia(matriz b[i,j])

matriz c [i,j]<-matriz a[i,j]*matriz b[i,j]

fimpara

fimpara

para i de 1 ate 5 faca

para j de 1 ate 5 faca

escreva( matriz c[i,j]:5)

fimpara

escreva()

fimpara

fimprocedimento

inicio

repita

limpatela

menu

leia(op)

se(op=1) entao

fatorial

se(op=2) entao

fibonacci

se(op=3)entao

calcular_media

se(op=4)entao

somar_duas_matrizes5x5

se(op=5)entao

mutiplicar_duas_matrizes4x4

se(op=6)entao

converter_segundos_em_hr:mnt:seg

se(op=7)entao

calcular_mdc_dois_numeros

se(op=8)entao

sair

fimprocedimento

 

procedimento

var

seg,min,hs:inteiro

inicio

escreval("Digite o numero em segundos:")

leia(seg)

hs <- seg\3600

min <-(seg mod 3600)\60

seg <- seg mod 60

escreva (hs,"hs",min,"min",seg,"seg")

fimprocedimento

inicio

repita

limpatela

menu

leia(op)

se(op=1) entao

fatorial

se(op=2) entao

fibonacci

se(op=3)entao

calcular_media

se(op=4)entao

somar_duas_matrizes5x5

se(op=5)entao

mutiplicar_duas_matrizes4x4

se(op=6)entao

converter_segundos_em_hr:mnt:seg

se(op=7)entao

calcular_mdc_dois_numeros

se(op=8)entao

sair

fimprocedimento

 

procedimento calcular_mdc

var

fimprocedimento

inicio

repita

limpatela

menu

leia(op)

se(op=1) entao

fatorial

se(op=2) entao

fibonacci

se(op=3)entao

calcular_media

se(op=4)entao

somar_duas_matrizes5x5

se(op=5)entao

mutiplicar_duas_matrizes4x4

se(op=6)entao

converter_segundos_em_hr:mnt:seg

se(op=7)entao

calcular_mdc_dois_numeros

se(op=8)entao

sair

fimprocedimento

fimalgoritmo

fimse

 

 

da uma olhada e veja oq tu axa, que esta dando errado

Compartilhar este post


Link para o post
Compartilhar em outros sites

caraca velho naum sei mecher no visualg, sempre aprendi no portugol no papel..

 

+ vamos lah..

quais erros aparecem.

 

[]s

Compartilhar este post


Link para o post
Compartilhar em outros sites

tente compilar o programa por partes..

tipo primeiro um procedimento, depois o outro..

depois o principal e assim por diante vamos tentar isolar o problema..

 

[]s

Compartilhar este post


Link para o post
Compartilhar em outros sites

procedimento Fatorial

var x:inteiro

inicio

escreva("Digite um número:")

leia(x)

valor <- x < - aqui acontece problema

se v <= 2 entao

retorne v

senao

retorne v * fatorial(v-1)

fimse

fimfuncao

inicio

obtervalor

escreva("O fatorial de ",valor," é ",fatorial(valor))

fimprocedimento

 

este outro

 

algoritmo "5x5"

// Função :

// Autor :

// Data : 8/12/2008

// Seção de Declarações

var

matriz a,matriz b,matriz c:inteiro < - aqui

vetor [1..5,1..5] de inteiro

i,j:inteiro

 

inicio

para i de 1 ate 5 faca

para j de 1 ate 5 faca

escreva("Digite a posição:["i","j"]")

leia(matriz a[i,j])

fimpara

para i de 1 ate 5 para

para j de 1 ate 5 para

escreva("Digite a posição:["i","j"]")

leia(matriz b[i,j])

matriz([i,j]<-matriz a[i,j]+ matriz b[i,j]) <- aqui tbm

fimpara

fimpara

para i de 1 ate 5 faca

para j de 1 ate 5 faca

escreva(matriz[i,j]:5)

fimpara

escreva©

fimpara

fimalgoritmo

 

 

este

 

algoritmo "4x4"

// Função :

// Autor :

// Data : 8/12/2008

// Seção de Declarações

var

matriz a,matriz b,matriz c: vetor[1..4,1..4]

i,j:inteiro

inicio

para i de 1 ate 4 faca

para j de 1 ate 4 faca

escreva("Digite a posição:["i","j"]")

leia(matriz b[i,j])

matriz c [i,j]<-matriz a[i,j]*matriz b[i,j]

fimpara

fimpara

para i de 1 ate 5 faca

para j de 1 ate 5 faca

escreva( matriz c[i,j]:5)

fimpara

escreva()

fimpara

fimalgoritmo

 

 

este

 

 

algoritmo "conversor"

// Função :

// Autor :

// Data : 8/12/2008

// Seção de Declarações

var < - este aqui

seg,min,hs:inteiro

inicio

escreval("Digite o numero em segundos:")

leia(seg)

hs <- seg\3600

min <-(seg mod 3600)\60

seg <- seg mod 60

escreva (hs,"hs",min,"min",seg,"seg")

fimprocedimento

inicio

repita

limpatela

menu

leia(op)

se(op=1) entao

fatorial

se(op=2) entao

fibonacci

se(op=3)entao

calcular_media

se(op=4)entao

somar_duas_matrizes5x5

se(op=5)entao

mutiplicar_duas_matrizes4x4

se(op=6)entao

converter_segundos_em_hr:mnt:seg

se(op=7)entao

calcular_mdc_dois_numeros

se(op=8)entao

sair

fimalgoritmo

 

e são esses os erros.

ja to pra larga isso, só não largo por ser prova de faculdade^^

Compartilhar este post


Link para o post
Compartilhar em outros sites

bom vamos ver oq eu percebi:

valor <- x < - aqui acontece problema

nesse procedimento a variavel valor naum foi declarada.

 

matriz a,matriz b,matriz c:inteiro

nesse acho q naum pode ter nomes separados assim, tente algo como:

matrizA, matrizB, matrizC : inteiro

matriz a,matriz b,matriz c: vetor[1..4,1..4]

nesse a msm coisa q o de cima..

 

 

esse outro ai at[e agora naum vi o motivo..

+ veja esses outros e me de um retorno.

 

[]s

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

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