Recapitulação - Lista de Produtos
Parte da seção Fundamentos do Journey de R da Coddy — lição 75 de 78.
Desafio
FácilVocê receberá quatro linhas de entrada:
- Um nome de produto (ex:
Wireless Headphones) - Um preço (ex:
79.99) - Uma quantidade em estoque (ex:
25) - Uma porcentagem de desconto a ser aplicada (ex:
20)
Realize as seguintes operações:
- Crie uma lista nomeada chamada
productcom os elementos:name(character),price(numeric),stock(numeric) eavailable(definido comoTRUEse o estoque for maior que 0, caso contrárioFALSE) - Imprima o nome do produto usando o operador
$ - Calcule o preço com desconto (preço original menos a porcentagem de desconto) e atualize o elemento
price - Adicione um novo elemento chamado
discountedcom o valorTRUE - Reduza o
stockem 1 (simulando uma compra) - Remova o elemento
availableda lista - Imprima a lista final
Por exemplo, se as entradas forem:
Smart Watch
150
10
25A saída deve ser:
[1] "Smart Watch"
$name
[1] "Smart Watch"
$price
[1] 112.5
$stock
[1] 9
$discounted
[1] TRUEExplicação:
- Preço original 150 com 25% de desconto: 150 - (150 * 25/100) = 112.5
- Estoque reduzido de 10 para 9
- O elemento
availablefoi removido da lista final
Experimente você mesmo
# Ler entrada
con <- file("stdin", "r")
product_name <- suppressWarnings(readLines(con, n = 1))
price <- as.numeric(suppressWarnings(readLines(con, n = 1)))
stock <- as.numeric(suppressWarnings(readLines(con, n = 1)))
discount_percentage <- as.numeric(suppressWarnings(readLines(con, n = 1)))
close(con)
# TODO: Escreva seu código abaixo
# 1. Crie uma lista nomeada chamada 'product' com os elementos: name, price, stock e available
# 2. Imprima o nome do produto usando o operador $
# 3. Calcule o preço com desconto e atualize o elemento price
# 4. Adicione um novo elemento chamado 'discounted' com o valor TRUE
# 5. Reduza o estoque (stock) em 1
# 6. Remova o elemento 'available' da lista
# 7. Imprima a lista finalTodas as lições de Fundamentos
4Operadores Parte 2
Operadores Lógicos (AND, OR)Operadores Lógicos Parte 2 (NOT)Recapitulação - Lógica SimplesLógica Vetorizada Parte 1Lógica Vetorizada Parte 27Calculadora de Divisão de Conta
Mensagem de Boas-vindasObtendo a Entrada do Usuário10FizzBuzz com um Toque Especial
Visão Geral do JogoA Função FizzBuzz2Variáveis e Tipos de Dados
Tipo de Dado NuméricoTipo de Dado InteiroTipo de Dado CaractereTipo de Dado LógicoVerificando Tipos de DadosConvenções de NomenclaturaValores Ausentes: NARecapitulação - Criação de Variáveis8Laços de Repetição
Laço ForLaço WhileBreakNext (Continue)Recapitulação - FatorialGeração de Sequências (seq, :)Laços AninhadosRecapitulação - Entrada Dinâmica11Vetores
Criando vetores com c()Acessando elementos de um vetorModificando vetoresOperações com vetoresRecapitulação - Vetor de preçosRecapitulação - Vetor invertidoVetores nomeados14Listas em R
Criando ListasAcessando Elementos de ListasModificando ListasListas NomeadasRecapitulação - Lista de Produtos3Operadores Parte 1
Operadores AritméticosDivisão Inteira e MóduloOperadores de AtribuiçãoRecapitulação - Matemática SimplesOperadores de Comparação6IO Básico
Saída com PrintCat para SaídaSaída com VariáveisLendo Entrada com readline()Básico de Conversão de TiposRecapitulação - Calculadora de IdadeRecapitulação - Verdadeiro ou Falso9Funções
Declarando uma FunçãoArgumentos de FunçãoValores de RetornoRecapitulação - Função SigmaRecapitulação - Função de ValidaçãoValores de Parâmetro Padrão