Linguagens de Programação - Atividade 17

Leia com atenção as instruções abaixo.

Valor: 2,0 pontos na 3ª Nota.

Data da Entrega Limite: 12/02/2022

Coloque a resposta na pasta atividades/atividade17 do repositório.

Questão 01 - 1,0 Ponto

Faça um programa em Go chamado max.go que recebe uma lista de números inteiros como parâmetros na linha de comando e retorna o maior. Você não pode usar funções da biblioteca que já implementam o algoritmo para encontrar o maior número e nem utilizar laços. A solução deve empregar recursão, definindo uma função que chame a si mesma para encontrar o maior número. Também não é permitido o uso de variável global.

$ go run max.go 10 1 2 4 6
Maior número: 10
                        

Questão 02 - 1,0 Ponto

Escreva uma programa em Go chamado floats.go que contenha uma função que receba uma fatia de floats e retorne três valores: uma fatia de floats, um valor booleano e um erro.

Sua função deve multiplicar todos os elementos da fatia recebida por 2 e retorna uma nova fatia, sem alterar a original.

Se todos os elementos da fatia recebida forem menor do que 10, o valor booleano deve ser verdadeiro, falso ao contrário.

Se houver um elemento negativo na fatia, um erro deve ser retornado dizendo "Números negativos não são aceitos!". Caso contrário, o erro deve ser nil. Use a função fmt.Errorf para gerar o erro.

Da mesma maneira da questão anterior, você deve passar os números como parâmetros de linha de comando. Veja um exemplo abaixo:

$ go run floats.go 1.0 2.0 3.0
Nova Fatia: 2.0 4.0 6.0
Todos valores menores que 10.
$ go run floats.go 11.0 2.0 3.0 13.5
Nova Fatia: 22.0 4.0 6.0 27.0
$ go run floats.go -1.0 5.0 6.0 7.3
Número negativos não são aceitos!