jessica alves123 0 Denunciar post Postado Março 28, 2016 Não estou conseguindo terminar esse exercício no VISUALG:Escreva um pseudocódigo que leia um número indeterminado de segmentos de reta de um polígono convexo. Cada segmento de reta lido estará determinado por dois pontos (ponto de início e ponto de fim), onde cada ponto estará determinado por dois números inteiros positivos (coordenada X e Y, respectivamente). O pseudocódigo deve calcular e imprimir: a) o perímetro do polígono; b) a média do comprimento dos segmentos de reta; c) qual é o segmento de reta com maior comprimento; d) se o polígono for um quadrado, calcular e imprimir sua área; e) se o polígono for um triângulo, imprimir se é equilátero ou isósceles. Quando for lido um número negativo, quer dizer que não existem mais dados a serem lidos. Só consegui a letra "a" e a letra "b"A letra "c" e "d" acusam erro no "então"Já na letra "e", eu teria que fazer por "caso"? E para numero negativo ele n esta lendo :/ Segue abaixo o q eu ja fiz. Algoritmo "semnome" Var S,lado:inteiro resp:caractere media:real maiorlado,quadrado:inteiro Inicio S<-0 repita escreval("Digite um lado do polígno: ") leia(lado) S<-S+lado escreval("Existem mais lados? S/N") leia(resp) ate(resp="N") se(lado>maior)entao maior<-lado fimse se(lado=4)entao quadrado<-lado^2 fimse media<-S/lado escreval("O perimetro desse polígino é: ",S) escreval("A media do comprimento da reta é: ",media) escreval("maior com primento de reta é: ",maiorlado) escreval("Área do quadrado é: ",quadrado) Fimalgoritmo Compartilhar este post Link para o post Compartilhar em outros sites
snowstormdelivery 19 Denunciar post Postado Março 28, 2016 Cara, antes de te ensinar, eu gostaria de te recomendar um curso de Portugol gratuito, bom e com certificado. Este é o "Curso em Vídeo". O curso a qual me refiro é na plataforma do YouTube, lecionado pelo professor Gustavo Guanabara. O método que ele usa é para jovens e utiliza-se ferramentas para testar os códigos (Visualg e Scratch). Garanto que você não irá se decepcionar, até porque é GRÁTIS e interativo. Para acessar as aulas, . (Se você acessar e gostar, me avisa! Tenho maior orgulho desse professor.) O que está acontecendo de errado, são algumas falhas no começo, que influenciarão no fim do código. Analisando o cálculo de perímetro, temos que você está calculando cada lado do polígono, sem usar o segmento de retas. Caso você esteja com dúvida ou não saiba o que é, veja o exemplo: O segmento XY (lado) representa uma reta completa, onde X é o valor inicial da reta e Y é o final. Se quiséssemos calcular o tamanho desta reta, subtrairíamos o valor final pelo inicial, logo: TamanhoReta = Y - X. X = 5 Y= 10 |--------------------------------------| Seguindo exemplo, teríamos: TamanhoReta = 10 - 5. Ou seja, o tamanho da reta seria 5. |--------------------------------------| TamanhoReta = 5 Caso o valor final seja menor que o inicial, notamos que o tamanho da reta seria negativo e valores negativos não existem neste código. Para concertarmos isso, usaríamos a função "Abs", a qual retorna o valor absoluto de um número negativo. Por exemplo: o valor absoluto de |-14| é 14. X = 10 Y = 5 |--------------------------------------| TamanhoReta = 5 - 10 = -5 Como usar a função "Abs": X = 10 Y = 5 |--------------------------------------| TamanhoReta = Abs(Y - X) Vemos que o tamanho da reta é igual ao valor absoluto, entre subtração de Y por X. Em termos mais claros, "Abs" Sempre retorna o valor positivo de um número. Nunca um negativo! Agora, que sabes como calcular o tamanho de uma reta segmentada (lado) entre XY, faça que o computador leia o valor de X e depois de Y, para calcular o tamanho da segmentação e depois somar todas. NOTA: CADA TAMANHO DE RETA É IGUAL A UM LADO DO POLÍGONO. Outro erro que está acontecendo, é que você estava somente somando o valor das retas, para obter o perímetro. Não tinhas programado algo para contar quantos lados este polígono tinha, que é uma ação necessária para saberes se é um quadrado, futuramente. O código para isso, é semelhante ao de soma de lados, que você usa. Para calcular a média dos lados, você está usando "media <- S / lado". Este cálculo está quase certo, porém, você está dividindo a soma de lados, pelo o último valor da variável "lado", lido. Deves consertar este código, de modo que a soma de lados seja dividida pela quantidade de lados. O código para saber qual o maior lado, deve ser colocado dentro da estrutura de repetição "Repita" e, antes da pergunta "Existem mais lados?...", fazendo que toda vez que seja calculado um lado segmentado, o programa confira se ele é maior que o anterior. O código "Se (Lado = 4) entao...", não daria certo porque apesar de um polígono possuir quatro lados, não significa que é um quadrado. Um quadrado possui quatro lados e TODOS IGUAIS. Então, voltaríamos na estrutura de repetição "Repita", e faríamos algo para saber se cada lado calculado é igual ao anterior. Depois de fazer isso, usaríamos as condições "Se (QntLados = 4) e (LadosIguais = 4) entao...". Quanto aos triângulos, você usaria uma estrutura condicional "Se", dentro de outra. Por exemplo: Se Senao Se FimSe FimSe Para saber se um triângulo é equilátero, devemos saber que este tipo de triângulo tem todos lados iguais, logo, faríamos algo parecido com o código do quadrado: "Se (QntLados = 3) e (LadosIguais = 3) entao...". No caso de um isósceles, sabemos que ele possui três lados (todo triângulo tem, dãh! kkk) e somente dois são iguais. Poderíamos fazer isto com a estrutura "Caso", como você questionou, porém, espero que você estude mais um pouco sobre estas estruturas, para passar para o "Caso". Como reparei que você mandou este tópico as cinco da manhã, eu suponho que você podia estar cansada, o que não é recomendado, quando se programa. Mesmo que tenha tido uma boa noite de sono, quando tiver trancada a uma parte de um código e com cansaço mental, sempre pare e vá fazer algo divertido e relaxante. Nunca continue forçando! Vá postando suas dúvidas, referente a este tópico, até que você compreenda totalmente!!! Compartilhar este post Link para o post Compartilhar em outros sites