Desafio: Soma de números
Parte da seção Fundamentos do Journey de Dart da Coddy — lição 93 de 94.
Desafio
FácilNeste desafio, você criará uma função que calcula a soma de números em uma lista com base em certas condições.
Você tem uma lista de inteiros e precisa completar a função sumWithCondition que soma apenas os números que atendem a critérios específicos.
A função deve:
- Calcular a soma de todos os números na lista que são maiores que o valor
threshold - Parar de adicionar números imediatamente após a soma exceder o valor
maxSum(a soma final pode ser maior quemaxSum) - Retornar a soma final
Importante: A função para de adicionar números após adicionar um número que faz a soma exceder maxSum. Isso significa que o resultado final pode ser maior que maxSum.
Exemplo: Se os números maiores que threshold forem [15, 20, 25, 30] e maxSum for 50:
- Adicionar 15: soma = 15 (continuar)
- Adicionar 20: soma = 35 (continuar)
- Adicionar 25: soma = 60 (excede 50, então parar aqui)
- Resultado: 60 (não 50)
Experimente você mesmo
void main() {
// Casos de teste
List<int> numbers = [5, 10, 15, 20, 25, 30];
// Somar números maiores que 12, com soma máxima de 50
int result = sumWithCondition(numbers, 12, 50);
print('Sum of numbers > 12 (max 50): $result');
// Somar números maiores que 8, com soma máxima de 100
result = sumWithCondition(numbers, 8, 100);
print('Sum of numbers > 8 (max 100): $result');
}
// TODO: Complete esta função para somar números com base nas condições
int sumWithCondition(List<int> numbers, int threshold, int maxSum) {
int sum = 0;
// TODO: Percorrer a lista de números
// TODO: Adicionar apenas números maiores que threshold à soma
// TODO: Parar de adicionar se a soma exceder maxSum
return sum;
}Todas as lições de Fundamentos
4Operadores Parte 2
Operadores de ComparaçãoAND LógicoOR LógicoNOT LógicoOperadores de Teste de TipoResumo - Fazendo Comparações7Trabalhando com Strings
Concatenação de StringsInterpolação de StringsStrings Multi-linhaPropriedades de StringsMétodos Básicos de Strings10Coleções - Básicos de Mapas
O que são Mapas?Criando um MapaAcessando Valores por ChavePares Chave-ValorObtendo o Tamanho do MapaObtendo as ChavesObtendo os ValoresVerificando se uma Chave Existe2Variáveis e Tipos de Dados Básicos
O que são Variáveis?StringsInteiros (int)Double (double)Booleanos (bool)Inferência de Tipo com 'var'Variáveis finalVariáveis constantesConvenções de NomenclaturaNull Safety BásicaResumo - Declarando Variáveis8Fluxo de Controle - Laços
O Laço 'for'O Laço 'while'O Laço 'do-while'Usando 'break' em LaçosUsando 'continue' em LaçosResumo - Repetindo Código3Operadores Parte 1
Operadores AritméticosDivisão InteiraOperador MóduloIncremento e DecrementoAtalhos de AtribuiçãoResumo - Cálculos Simples6Fluxo de Controle - Tomada de Decisões
A Instrução 'if'A Instrução 'else'A Instrução 'else if'Resumo - Decisões SimplesInstruções 'if' AninhadasA Instrução 'switch'9Coleções - Listas Básicas
O que são Listas?Criando uma ListaAcessando por ÍndiceObtendo o Tamanho da ListaAdicionando ElementosRemovendo ElementosVerificando se uma Lista Está VaziaIterando Sobre uma Lista12Funções Avançadas
Parâmetros Posicionais OpcionaisParâmetros NomeadosParâmetros Nomeados ObrigatóriosValores Padrão de ParâmetrosResumo - Parâmetros de Função15Projeto: Calculadora Simples
ConfigurandoDeclarando Número