Você está aqui: GoLang ::: Desafios e Lista de Exercícios Resolvidos ::: Laços |
Exercício Resolvido de Go - Escreva um programa GoLang que usa o laço for para desenhar um padrão de diamante de estrelas - Desafio de Programação Resolvido em GoLangQuantidade de visualizações: 1977 vezes |
Pergunta/Tarefa: Neste exercício para a prática da linguagem GoLang você deverá usar o laço for para desenhar o famoso padrão de diamante de estrelas. Você pode também usar o laço while, se assim você o desejar. O programa deverá pedir que o usuário informe a quantidade de linhas que marcará a metade do diamante. Seu programa deve apresentar a seguinte saída: Informe a quantidade de linhas: 5 * *** ***** ******* ********* ******* ***** *** * Veja a resolução comentada deste exercício em GoLang: ---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- // 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 linhas, estrelas, espacos int // vamos pedir a quantidade de linhas fmt.Print("Informe a quantidade de linhas: ") // vamos ler a entrada do usuário fmt.Scanln(&linhas) estrelas = 1 // começamos com uma estrela (no topo do diamante) // se linhas for igual a 5 nós começamos com 4 espaços espacos = linhas - 1 // repete duas vezes a quantidade de linhas informadas for i := 1; i < linhas * 2; i++ { // vamos imprimir os espaços for j := 1; j <= espacos; j++ { fmt.Print(" ") } // agora vamos imprimir estrelas for j := 1; j < estrelas * 2; j++ { fmt.Print("*") } // passamos para a próxima linha fmt.Print("\n") // é a parte superior do diamante if i < linhas { espacos-- // diminui os espaços estrelas++ // e aumenta as estrelas } else{ espacos++ // aumenta os espaços estrelas-- // e diminui as estrelas } } } |
Link para compartilhar na Internet ou com seus amigos: |
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: 400 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 com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- // 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 ::: Strings e Caracteres |
Como retornar o tamanho de uma string em Golang usando os métodos len() e RuneCountInString()Quantidade de visualizações: 807 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 com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- // 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 com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- // 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 |
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: 881 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 com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- // 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 com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- >> 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. |
Veja mais Dicas e truques de GoLang |
Dicas e truques de outras linguagens |
Códigos Fonte |
Software de Gestão Financeira com código fonte em PHP, MySQL, Bootstrap, jQuery - Inclui cadastro de clientes, fornecedores e ticket de atendimento Diga adeus às planilhas do Excel e tenha 100% de controle sobre suas contas a pagar e a receber, gestão de receitas e despesas, cadastro de clientes e fornecedores com fotos e histórico de atendimentos. Código fonte completo e funcional, com instruções para instalação e configuração do banco de dados MySQL. Fácil de modificar e adicionar novas funcionalidades. Clique aqui e saiba mais |
Controle de Estoque completo com código fonte em PHP, MySQL, Bootstrap, jQuery - 100% funcional e fácil de modificar e implementar novas funcionalidades Tenha o seu próprio sistema de controle de estoque web. com cadastro de produtos, categorias, fornecedores, entradas e saídas de produtos, com relatórios por data, margem de lucro e muito mais. Código simples e fácil de modificar. Acompanha instruções para instalação e criação do banco de dados MySQL. Clique aqui e saiba mais |
Linguagens Mais Populares |
1º lugar: Java |