Você está aqui: GoLang ::: Desafios e Lista de Exercícios Resolvidos ::: Laços de Repetição |
Exercícios Resolvidos de Go - Um laço for que solicita ao usuário 10 números inteiros e mostra o menor e o maior valor informado - Lista de Exercícios Resolvidos de GoLangQuantidade de visualizações: 327 vezes |
Pergunta/Tarefa: Escreva um programa Golang que usa o laço for para solicitar ao usuário que informe 10 números inteiros. Em seguida mostre o maior e o menor valor lido. Não é permitido usar vetores ou matrizes (arrays). Sua saída deve ser parecida com: Informe o 1º valor: 5 Informe o 2º valor: 1 Informe o 3º valor: 20 Informe o 4º valor: 6 Informe o 5º valor: 3 Informe o 6º valor: 4 Informe o 7º valor: 7 Informe o 8º valor: 12 Informe o 9º valor: 9 Informe o 10º valor: 8 O maior valor lido foi: 20 O menor valor lido foi: 1 Veja a solução comentada deste exercício usando a linguagem Go: ---------------------------------------------------------------------- Se precisar de ajuda para ajustar o código abaixo de acordo com as suas necessidades, chama a gente no WhatsApp +55 (62) 98553-6711 (Osmar) Ah, e se puder, faça uma DOAÇÃO de qualquer valor para nos ajudar a manter o site livre de anúncios. Ficaremos eternamente gratos ;-) Nosso PIX é: osmar@arquivodecodigos.com.br ---------------------------------------------------------------------- // pacote principal package main // vamos importar o módulo de formatação de // entrada e saída import "fmt" // esta é a função principal do programa func main() { // variáveis que vamos usar na resolução do problema var i int var valor int // guarda o valor lido var maior, menor int = 0, 0 // variáveis que guardarão // o maior e o menor valor lido // vamos pedir ao usuário que informe 10 valores inteiros for i = 0; i < 10; i++ { fmt.Printf("Informe o %d.o valor: ", (i + 1)) fmt.Scanln(&valor) // esta é a primeira iteração do laço? se for vamos assumir que o // maior e menor valor lido são o primeiro valor informado if i == 0 { maior = valor menor = valor }else { // não é a primeira iteração // vamos verificar se é maior que o valor atual da // variável maior if valor > maior { maior = valor } // vamos verificar se é menor que o valor atual da // variável menor if valor < menor { menor = valor } } } // vamos exibir o maior e o menor valor lido fmt.Printf("\nO maior valor lido foi: %d", maior) fmt.Printf("\nO menor valor lido foi: %d", menor) } |
![]() |
GoLang ::: Fundamentos da Linguagem ::: Variáveis e Constantes |
Como declarar variáveis em Go usando var e sem definir o tipo da variávelQuantidade de visualizações: 434 vezes |
Em algumas situações nós queremos declarar variáveis na linguagem Go mas não queremos definir de antemão o tipo, ou seja, se ela será do tipo int, float, boolean, string, etc. Essa situação é muito comum quando a variável receberá o retorno de uma função. Quando não definimos o tipo da variável, a própria linguagem se encarrega de fazer isso para nós, por meio da inferência de tipos. Assim, dependendo do valor que a variável recebe, o seu tipo será definido automaticamente. Veja um exemplo: ---------------------------------------------------------------------- Se precisar de ajuda para ajustar o código abaixo de acordo com as suas necessidades, chama a gente no WhatsApp +55 (62) 98553-6711 (Osmar) Ah, e se puder, faça uma DOAÇÃO de qualquer valor para nos ajudar a manter o site livre de anúncios. Ficaremos eternamente gratos ;-) Nosso PIX é: osmar@arquivodecodigos.com.br ---------------------------------------------------------------------- // pacote principal package main // vamos importar os módulos necessários import ( "fmt" ) // esta é a função principal do programa func main() { // vamos declarar uma variável do tipo real // Como não definimos o tipo, ele será // automaticamente float64 var salario = 1250.94 // vamos mostrar o tipo da variável fmt.Printf("O tipo da variável é: %T", salario) } Ao executarmos este código Golang nós teremos o seguinte resultado: O tipo da variável é: float64 |
GoLang ::: Dicas & Truques ::: Geometria, Trigonometria e Figuras Geométricas |
Como calcular a equação reduzida da reta em GoLang dados dois pontos pertencentes à retaQuantidade de visualizações: 921 vezes |
Nesta dica de Go veremos como calcular a equação reduzida da reta quando temos dois pontos pertencentes à esta reta. Não, nessa dica não vamos calcular a equação geral da reta, apenas a equação reduzida. Em outras dicas do site você encontra como como isso pode ser feito. Para relembrar: a equação reduzida da reta é y = mx + n, em que x e y são, respectivamente, a variável independente e a variável dependente; m é o coeficiente angular, e n é o coeficiente linear. Além disso, m e n são números reais. Com a equação reduzida da reta, é possível calcular quais são os pontos que pertencem a essa reta e quais não pertencem. Vamos começar então analisando a seguinte figura, na qual temos dois pontos que pertencem à uma reta: ![]() Note que a reta da figura passa pelos pontos A(5, 5) e B(9, 2). Então, uma vez que já temos os dois pontos, já podemos calcular a equação reduzida da reta. Veja o código GoLang completo para esta tarefa: ---------------------------------------------------------------------- Se precisar de ajuda para ajustar o código abaixo de acordo com as suas necessidades, chama a gente no WhatsApp +55 (62) 98553-6711 (Osmar) Ah, e se puder, faça uma DOAÇÃO de qualquer valor para nos ajudar a manter o site livre de anúncios. Ficaremos eternamente gratos ;-) Nosso PIX é: osmar@arquivodecodigos.com.br ---------------------------------------------------------------------- // pacote principal package main // vamos importar o módulo de formatação de // entrada e saída import "fmt" // esta é a função principal do programa func main() { // variáveis que vamos usar na resolução do problema var x1, y1, x2, y2, m, n float32 var sinal string // vamos ler as coordenadas do primeiro ponto fmt.Print("Coordenada x do primeiro ponto: ") fmt.Scanln(&x1) fmt.Print("Coordenada y do primeiro ponto: ") fmt.Scanln(&y1) // vamos ler as coordenadas do segundo ponto fmt.Print("Coordenada x do segundo ponto: ") fmt.Scanln(&x2) fmt.Print("Coordenada y do segundo ponto: ") fmt.Scanln(&y2) sinal = "+" // vamos calcular o coeficiente angular da reta m = (y2 - y1) / (x2 - x1) // vamos calcular o coeficiente linear n = y1 - (m * x1) // coeficiente linear menor que zero? O sinal será negativo if n < 0 { sinal = "-" n = n * -1 } // mostra a equação reduzida da reta fmt.Printf("Equação reduzida: y = %.2fx %s %.2f", m, sinal, n); } Ao executar este código GoLang nós teremos o seguinte resultado: Coordenada x do primeiro ponto: 5 Coordenada y do primeiro ponto: 5 Coordenada x do segundo ponto: 9 Coordenada y do segundo ponto: 2 Equação reduzida: y = -0,75x + 8,75 Para testarmos se nossa equação reduzida da reta está realmente correta, considere o valor 3 para o eixo x da imagem acima. Ao efetuarmos o cálculo: ---------------------------------------------------------------------- Se precisar de ajuda para ajustar o código abaixo de acordo com as suas necessidades, chama a gente no WhatsApp +55 (62) 98553-6711 (Osmar) Ah, e se puder, faça uma DOAÇÃO de qualquer valor para nos ajudar a manter o site livre de anúncios. Ficaremos eternamente gratos ;-) Nosso PIX é: osmar@arquivodecodigos.com.br ---------------------------------------------------------------------- >> y = (-0.75 * 3) + 8.75 y = 6.5000 temos o valor 6.5 para o eixo y, o que faz com que o novo ponto caia exatamente em cima da reta considerada na imagem. |
GoLang ::: Desafios e Lista de Exercícios Resolvidos ::: Geometria, Trigonometria e Figuras Geométricas |
Exercícios Resolvidos de Golang - Como calcular a área de um losango em GoQuantidade de visualizações: 1023 vezes |
Pergunta/Tarefa: Um losango é um quadrilátero equilátero, ou seja, é um polígono formado por quatro lados de igual comprimento. Um losango é também um paralelogramo. Alguns autores exigem ainda que nenhum dos ângulos do quadrilátero seja reto para que ele seja considerado um losango. A área (em metros quadrados) de um losango pode ser calculada usando-se a seguinte fórmula: ![]() Onde D1 é a diagonal maior e D2 é a diagonal menor. Escreva um programa Golang que leia a diagonal maior e a diagonal menor e calcule a área do losango. Sua saída deverá ser parecida com: Informe a medida da diagonal maior: 5 Informe a medida da diagonal menor: 10 A área (em metros quadrados) do losango é: 25 Veja a resolução comentada deste exercício usando Go: ---------------------------------------------------------------------- Se precisar de ajuda para ajustar o código abaixo de acordo com as suas necessidades, chama a gente no WhatsApp +55 (62) 98553-6711 (Osmar) Ah, e se puder, faça uma DOAÇÃO de qualquer valor para nos ajudar a manter o site livre de anúncios. Ficaremos eternamente gratos ;-) Nosso PIX é: osmar@arquivodecodigos.com.br ---------------------------------------------------------------------- // pacote principal package main // vamos importar o módulo de formatação de // entrada e saída import "fmt" // esta é a função principal do programa func main() { // variáveis que vamos usar na resolução do problema var diagonal_maior, diagonal_menor int var area float32 // vamos ler os valores das diagonais maior e menor fmt.Print("Informe a medida da diagonal maior: ") fmt.Scanln(&diagonal_maior) fmt.Print("Informe a medida da diagonal menor: ") fmt.Scanln(&diagonal_menor) // calcula a area do losango area = float32((diagonal_maior * diagonal_menor)) / 2 // mostra o resultado fmt.Printf("A área (em metros quadrados) é: %.2f", area) } |
GoLang ::: Fundamentos da Linguagem ::: Laços de Repetição |
Como usar o laço for em GoLang - O laço for da linguagem GoQuantidade de visualizações: 918 vezes |
Como todas (ou praticamente todas) as linguagens de programação, a GoLang também possui o seu laço for, ou loop for. Este laço é usado para repetir uma ou mais instruções quando sabemos exatamente quantas vezes essa repetição ocorrerá. Em Go, o laço for é composto de três partes: inicialização, teste de continuidade e incremento ou decremento da variável de controle. Na parte da inicialização nós declaramos e inicializamos as variáveis que serão usadas dentro da estrutura. O teste de continuidade é a parte na qual verificamos se o laço deverá continuar repetindo ou encerrar. Finalmente, a parte de incremento ou decremento é usada para ajustarmos a variável de controle do laço. Veja, por exemplo, como escrever um laço for em GoLang que contará de 1 até 10, escrevendo os números na tela: ---------------------------------------------------------------------- Se precisar de ajuda para ajustar o código abaixo de acordo com as suas necessidades, chama a gente no WhatsApp +55 (62) 98553-6711 (Osmar) Ah, e se puder, faça uma DOAÇÃO de qualquer valor para nos ajudar a manter o site livre de anúncios. Ficaremos eternamente gratos ;-) Nosso PIX é: osmar@arquivodecodigos.com.br ---------------------------------------------------------------------- // pacote principal package main // vamos importar o módulo de formatação de // entrada e saída import "fmt" // esta é a função principal do programa func main() { for i := 1; i <= 10; i++ { fmt.Printf("%d ", i) } } Ao executar este código Go nós teremos o seguinte resultado: 1 2 3 4 5 6 7 8 9 10 O laço for da linguagem GoLang nos permite omitir as partes da inicialização e de incremento ou decremento, embora esse tipo de código não seja muito usual. Veja um trecho de código no qual usamos o laço for da linguagem Go para contar de 10 até 0 (omitindo a parte da inicialização da variável de controle): ---------------------------------------------------------------------- Se precisar de ajuda para ajustar o código abaixo de acordo com as suas necessidades, chama a gente no WhatsApp +55 (62) 98553-6711 (Osmar) Ah, e se puder, faça uma DOAÇÃO de qualquer valor para nos ajudar a manter o site livre de anúncios. Ficaremos eternamente gratos ;-) Nosso PIX é: osmar@arquivodecodigos.com.br ---------------------------------------------------------------------- // pacote principal package main // vamos importar o módulo de formatação de // entrada e saída import "fmt" // esta é a função principal do programa func main() { i := 10 // definimos o valor inicial aqui for ; i >= 0; i-- { fmt.Printf("%d ", i) } } Ao executarmos este código Go nós teremos o seguinte resultado: 10 9 8 7 6 5 4 3 2 1 0 Veja, agora, uma modificação do código acima. Desta vez eu omiti a parte de incremento ou decremento da variável de controle: ---------------------------------------------------------------------- Se precisar de ajuda para ajustar o código abaixo de acordo com as suas necessidades, chama a gente no WhatsApp +55 (62) 98553-6711 (Osmar) Ah, e se puder, faça uma DOAÇÃO de qualquer valor para nos ajudar a manter o site livre de anúncios. Ficaremos eternamente gratos ;-) Nosso PIX é: osmar@arquivodecodigos.com.br ---------------------------------------------------------------------- // pacote principal package main // vamos importar o módulo de formatação de // entrada e saída import "fmt" // esta é a função principal do programa func main() { for i := 10; i >= 0; { fmt.Printf("%d ", i) i-- } } |
GoLang ::: Dicas & Truques ::: Strings e Caracteres |
Como retornar o tamanho de uma string em Golang usando os métodos len() e RuneCountInString()Quantidade de visualizações: 859 vezes |
Em algumas situações nós precisamos obter e retornar o tamanho de uma string, ou seja, a quantidade de caracteres em uma palavra, frase ou texto. Para isso nós podemos duas funções na linguagem Go: len() e RuneCountInString(). O método len() retorna a quantidade de bytes contidos em uma string. Note, porém, que esta função não é recomendada quando estamos lidando com caracteres do conjunto utf8, que requerem dois bytes. Dessa forma, se estivermos certos de que a string não possui acentos ou caracteres especiais, então o método len() é o mais adequado. Veja um trecho de código Golang no qual pedimos para o usuário informar uma palavra ou frase e em seguida nós informamos a quantidade de caracteres contidos nela: ---------------------------------------------------------------------- Se precisar de ajuda para ajustar o código abaixo de acordo com as suas necessidades, chama a gente no WhatsApp +55 (62) 98553-6711 (Osmar) Ah, e se puder, faça uma DOAÇÃO de qualquer valor para nos ajudar a manter o site livre de anúncios. Ficaremos eternamente gratos ;-) Nosso PIX é: osmar@arquivodecodigos.com.br ---------------------------------------------------------------------- // pacote principal package main // vamos importar os módulos necessários import ( "bufio" "fmt" "os" "strings" ) // esta é a função principal do programa func main() { // variáveis que vamos usar na resolução do problema var frase string var tamanho int // vamos pedir para o usuário informar uma // palavra ou frase fmt.Print("Informe uma palavra ou frase: ") var entrada = bufio.NewReader(os.Stdin) frase, _ = entrada.ReadString('\n') frase = strings.TrimSpace(frase) // vamos obter o tamanho da string tamanho = len(frase) // e mostramos o resultado fmt.Printf("A palavra ou frase contém %d caracteres", tamanho) } Ao executarmos este código Go nós teremos o seguinte resultado: Informe uma palavra ou frase: Gosto de Python A palavra ou frase contém 15 caracteres Se contarmos a quantidade de caracteres na string informada, realmente veremos que o código retornou o resultado esperado. O problema acontece quando informamos uma palavra ou frase com acentos ou caracteres especiais. Experimente e veja que a função len() começa a retornar uma contagem estranha. Quando nossas strings possuem caracteres especiais ou com acentos, a função a ser usada é RuneCountInString(). Veja: ---------------------------------------------------------------------- Se precisar de ajuda para ajustar o código abaixo de acordo com as suas necessidades, chama a gente no WhatsApp +55 (62) 98553-6711 (Osmar) Ah, e se puder, faça uma DOAÇÃO de qualquer valor para nos ajudar a manter o site livre de anúncios. Ficaremos eternamente gratos ;-) Nosso PIX é: osmar@arquivodecodigos.com.br ---------------------------------------------------------------------- // pacote principal package main // vamos importar os módulos necessários import ( "bufio" "fmt" "os" "unicode/utf8" "strings" ) // esta é a função principal do programa func main() { // variáveis que vamos usar na resolução do problema var frase string var tamanho int // vamos pedir para o usuário informar uma // palavra ou frase fmt.Print("Informe uma palavra ou frase: ") var entrada = bufio.NewReader(os.Stdin) frase, _ = entrada.ReadString('\n') frase = strings.TrimSpace(frase) // vamos obter o tamanho da string tamanho = utf8.RuneCountInString(frase) // e mostramos o resultado fmt.Printf("A palavra ou frase contém %d caracteres", tamanho) } Ao executarmos este novo código nós teremos o resultado: Informe uma palavra ou frase: Código A palavra ou frase contém 6 caracteres |
Vamos testar seus conhecimentos em Engenharia Civil - Estruturas de Aço e Madeira |
O aço no edifício A estrutura de estabilização da moldura estrutural da edificação da figura abaixo, que se caracteriza pelo fato de não possuir amarrações diagonais nem paredes de cisalhamento para assegurar a estabilidade lateral, pode ser chamada de: ![]() A) Estrutura contraventada. B) Moldura amarrada excentricamente. C) Moldura resistente a momentos. D) Paredes de cisalhamento. E) Nenhuma das alternativas anteriores. Verificar Resposta Estudar Cards Todas as Questões |
Vamos testar seus conhecimentos em AutoCAD Civil 3D |
Topografia no Civil 3D São linhas usadas para representar a topografia, mostrando as mudanças de elevação no terreno. Essas linhas conectam posições com a mesma elevação em uma superfície. Estamos falando de: A) Control Points (Pontos de Controle) B) Breaklines (Linhas de Quebra) C) Contour Lines (Curvas de Nível) D) Feature Lines (Linhas de Características) E) Parcels (Parcelas, Lotes) Verificar Resposta Estudar Cards Todas as Questões |
Vamos testar seus conhecimentos em Fundações |
Sondagem à Percussão (SPT) e Rotativa (RQD) Um boletim de sondagem SPT está indicando uma camada de solo residual de granito de 4m com N variando de 3 a 8 golpes. Atingido os 4m, verificou-se que o solo é impenetrável à percussão. O engenheiro solicitou que fizesse outro ensaio ao lado daquele (2m) e o perfil obtido foi de uma camada de solo variando de 3 a 25 golpes até a profundidade de 8m. O que o engenheiro pretendeu comprovar, realizando outro ensaio logo ao lado do primeiro? A) A tentativa foi de comprovar que o solo era de péssima qualidade. B) A tentativa foi de comprovar que se tratava de um solo com uma camada de menor resistência logo abaixo. C) A tentativa foi de provar que se tratava de argilas de consistência mole. D) A tentativa foi de comprovar que no solo residual de granito podem ocorrer matacões. E) A tentativa foi de comprovar que o ensaio SPT não é eficiente para solos residuais. Verificar Resposta Estudar Cards Todas as Questões |
Vamos testar seus conhecimentos em Engenharia Civil - Instalações Hidráulicas Prediais |
Água Fria: Sistemas de distribuição O golpe de aríete é um pico de pressão causado por uma alteração súbita na velocidade da vazão na tubulação. Esse picos de pressão são frequentemente acompanhados por um grande ruído na tubulação. Esse ruído provocado pelos golpes sucessivos não é prejudicial, causando apenas desconforto aos usuários, mas o choque hidráulico pode causar rompimento de tubulações (caso a pressão de ruptura seja ultrapassada), microfissuramento de tubulações plásticas que podem evoluir para trincas e fissuras e enfraquecimento de juntas, dando origem a vazamentos. Assinale a alternativa que representa uma forma de prevenir ou atenuar o Golpe de Aríete em uma rede de tubulações. A) Evitar o fechamento brusco de válvulas e registros. B) Aumentar a velocidade de escoamento. C) Projetar a tubulação evitando trechos curtos, preferir trechos longos conduzindo água diretamente a válvulas e torneiras. D) Instalar todas as válvulas de descarga em uma única coluna de distribuição. E) O modelo de válvula de descarga utilizada não ameniza as ondas de pressão causadas pelo seu fechamento. Verificar Resposta Estudar Cards Todas as Questões |
Vamos testar seus conhecimentos em Engenharia Civil - Construção Civil |
Esquadrias Considere um apartamento no segundo andar, onde haverá uma substituição das esquadrias. Esse apartamento se localiza em uma região bastante movimentada da cidade. A posição da construção torna o apartamento muito sujeito à ação da umidade e de chuvas. Qual seria o material mais adequado, de acordo com a aplicação, a estética e o custo-benefício para a confecção das janelas desse apartamento? A) PVC e/ou alumínio. B) Madeira. C) Ferro. D) Vidro. E) Vidro blindado. Verificar Resposta Estudar Cards Todas as Questões |
Veja mais Dicas e truques de GoLang |
Dicas e truques de outras linguagens |
E-Books em PDF |
||||
|
||||
|
||||
Linguagens Mais Populares |
||||
1º lugar: Java |