Esse conteúdo poderia ser semanal, hein. É tão importante quanto praticar as ferramentas. Realmente ótimo.
@jairdesouzamaiorgouvea44623 жыл бұрын
Resolvi ao contrário, kkk. Fiz do inteiro para o romano. Mas consegui, ficou show. Que ninguém veja, mas fiquei a noite de ontem e só acabei hoje de manhã, kkkk. Mesmo assim, estou contente com o resultado.
@ThemekGamesBr3 жыл бұрын
meus parabens, continue assim
@allancalixto63733 жыл бұрын
Por mais vídeos assim ! Também acho que este conteúdo poderia ser semanal
@iagooca3 жыл бұрын
Nem programação faço e já to olhando entrevista de emprego kkkkkk
@gabrielmedeiros64183 жыл бұрын
Estou estudando Python, ainda no inicio, tentei fazer o desafio antes de assistir o video esse foi o resultado: romanos = str(input('Digite um valor em numeros romanos: ')).strip().upper() lista = list() total = 0 for c in romanos: lista.append(c) for p, c in enumerate(lista): if lista[p] == 'I': lista[p] = 1 elif lista[p] == 'V': lista[p] = 5 elif lista[p] == 'X': lista[p] = 10 elif lista[p] == 'L': lista[p] = 50 elif lista[p] == 'C': lista[p] = 100 elif lista[p] == 'D': lista[p] = 500 elif lista[p] == 'M': lista[p] = 1000 for p, c in enumerate(lista): if p > 0: if lista[p] > lista[p - 1]: lista[p - 1] = lista[p] - lista[p - 1] del lista[p] total = sum(lista) print(f'{romanos} em numeros decimais é igual á {total}.')
@renandeabreu3 жыл бұрын
cara muito maneiro, isso é o que falta na maioria dos cursos, ter alguma tarefa pra fazer que seja aplicavél, a maioria dos exercicios dos cursos são didáticos demais a ponto de não criarem essa conexão com tarefas reais
@kigekey96533 жыл бұрын
Concordo 2000%, por isso o curso mais apaixonante pra mim é o CS50 da Harvard que tem os exercícios mais cabreiros possíveis Cifra de Cesar, readability, fazer filtro de imagem, tudo isso só em C puro nas primeiras aulas, e mais um monte de outro exercício
@kigekey96533 жыл бұрын
E tipo, n tem passo a passo, é literalmente "se vira"
@RafaaSlater3 жыл бұрын
Tentei fazer antes de ver o vídeo.. estava pensando numa solução absurda e totalmente sem lógica.. e quando dei play no vídeo (no dia seguinte), vejo uma solução tão simples e funcional ... às vezes dá até desânimo rs
@fabiocordeiro49563 жыл бұрын
Achei bem legal a ideia de trazer conteúdos desse tipo para nós inciantes!!
@rafael-r-amancio3 жыл бұрын
Video muuuito bacana, parabéns Professor e a galera que resolveu o desafio. Vendo este video vejo que fiz bem em parar de estudar programação, infelizmente não é para mim kkkkk Mas estou falando de mim , vcs continuem galera! Parabéns a todos!
@saulolima68743 жыл бұрын
Bonieky é fera demais!
@maikinho82243 жыл бұрын
Não vai ter mais vídeos aqui no yt? Já faz 1 mês 😔
@mariodecastro67553 жыл бұрын
Torço por + videos assim! 👍
@m18web923 жыл бұрын
Grande, só poderia ser o mestre, muito legal...
@emerson333813 жыл бұрын
muito bom, faça mais vídeos assim, top
@tgaconsulting96943 жыл бұрын
Boa ideia. Vai ajudar no desenvolvimento tanto da logica quanto do codigo.obgdo
@jesusdEcristo3 жыл бұрын
Questão clássica de lógica de programação de faculdade!
@HernandesJunio3 жыл бұрын
Lógica muito simples, ficou muito bom!
@nicolas997151053 жыл бұрын
poderia ter uma area só desses testes de empregos separado por niveis no curso. seria bem util. estou fazendo o curso full stack, mas sinto falta de um pouco mais de exercicios praticos.
@vicentino_twelve3 жыл бұрын
Resolvi aqui rapidinho em python. Mas seria interessante arrumar para casos que não fazem sentido tipo 'VX' porque temos simplesmente 'V'.
@JeanCarlos-sz4wd3 жыл бұрын
Estou tentando resolver em python mas não estou conseguindo, pode deixar seu código nos comentários?
@vanderleymassinga31303 жыл бұрын
Opa responde o cara
@PexuPixo2 жыл бұрын
Tem que ter uma verificação também para não deixar digitar 4 vezes o "I".
@XxCarlosBRxX3 жыл бұрын
posso estar errado, mas eu acho que não existe VX o certo mesmo seria V (a única forma de escrever 5 em romano, essa regra de subtrair deveria ser aplicada apenas se não houvesse outra forma de escrever o mesmo número.)
@krios3 жыл бұрын
Vc tem toda a razão. Se é para programar vamos fazer certo. Programadores muitas vezes ficam com a fama de fazer td diferente do que pedem pq simplesmente não entendem o que tem q fazer. Número Romano tem padrão. A primeira coisa que deveria ser feito era validar se está certo. O que foi feito aqui foi simplesmente substituir letras por valores e vez ou outra somar ou diminuir (essa é a parte fácil do problema). Tá td errado. A ideia do vídeo é ótima, mas faltou atenção e boas práticas e claro, ler a especificação que foi passada (wikipedia).
@JoaoVitor-kq8lc3 жыл бұрын
@@krios E pelos comentários o cara é dono de da B7WEB (Não sei se procede). O que deve ter de bug por lá????? Pior que o KZbin me sugeriu isso e só de ter visto 3 minutos do vídeo eu já perdi toda credibilidade na plataforma do cara KKKK Nada contra ele ter feito dessa forma, o problema foi ele SEQUER falar que o código na versão fácil não verificaria se um algarismo é ou não válido. E ainda faz o "VX=5" váaarias e váaarias vezes com um convicção de que isso tá certo KKKKK
@sanmidia3 жыл бұрын
muito bacana essa iniciativa.
@lucasayabe3 жыл бұрын
Ficou bem parecido com a minha primeira solução, só que eu não tava conseguindo converter direito os que subtraiam, aí modifiquei pra aumentar o número de símbolos do array/objeto (adicionando os casos que compõe outros casos) para facilitar na hora de converter os números e depois somei tudo no final.
@marcelobc22303 жыл бұрын
Quando estiver esse conteúdo na plataforma, coloca sua solução pra gente aprender, abraço
@lucasayabe3 жыл бұрын
@@marcelobc2230 eu fiz umas versões curriadas de funções do JS, então não vou por elas aqui pq é só fazer um wrapper delas e pronto. Mas a função final ficou bem simples: /** * Converts a roman numeral to integer. * * @param {string} roman * @return {number} */ const romanToInteger = compose( reduce(sum, 0), map(Number), split(' '), mapStringUsingDict(numerals), uppercase ); a única que não da pra entender direito logo de cara é a mapStringUsingDict, então vou deixar ela ai tbm: /** * Maps a string using a given object, replacing the keys by the values. * * @param {object} dict * @param {string} string * * @returns {string} */ const mapStringUsingDict = curry((dict, string) => { return objectToKeys(dict) .reduce((finalString, key) => { return finalString.split(key).join(` ${dict[key]}`); }, string) .trim(); }); Fora isso é só aplicar currying nas outras funções e já era.
@marcelobc22303 жыл бұрын
@@lucasayabe no PHP, queria tirar esse VX = 5 , e colocar somente V = 5, abaixo funciona , mas a resposta é a mesma if($prox && $numeros[$prox] > $numeros[$atual]) { //$n -= $numeros[$atual]; $n = $numeros[$prox] - ($numeros[$prox] + $numeros[$atual]); } else { $n += $numeros[$atual]; }
@lipskorn13 жыл бұрын
Quem tentou fazer antes de ver a solução? 😅 Essa foi minha solução: const convertRomanToInteger = (romanNumber) => { if (!romanNumber) throw new Error('A roman number shouldn\'t be null or undefined'); if (typeof romanNumber !== 'string') throw new Error('A roman number should be a string'); const romanNumbers = { I: 1, V: 5, X: 10, L: 50, C: 100, D: 500, M: 1000 } if (romanNumber.length === 1 ) { const roman = romanNumber.toUpperCase(); let result = romanNumbers[roman] ? romanNumbers[roman] : null; if (result) return result; throw new Error('This roman number does not exists'); } let integerNumber = 0; for (let i=0; i < romanNumber.length; i++) { const currentNumber = romanNumber[i].toUpperCase(); if (romanNumber[i+1]) { const nextNumber = romanNumber[i+1].toUpperCase(); if(romanNumbers[currentNumber] && romanNumbers[nextNumber]) { if (romanNumbers[currentNumber] < romanNumbers[nextNumber]) { integerNumber -= romanNumbers[currentNumber]; } else { integerNumber += romanNumbers[currentNumber]; } } else { throw new Error('This roman number does not exists'); } } else { integerNumber += romanNumbers[currentNumber]; } } return integerNumber; }
@nousz43963 жыл бұрын
Eu fiz assim em python: def romano_para_natural(romano): numeros = {'I': 1, 'V': 5, 'X': 10, 'L': 50, 'C': 100, 'D': 500, 'M': 1000} resultado = 0 for contador, algarismo in enumerate(romano): atual = numeros[algarismo] try: proximo = numeros[romano[contador + 1]] except: proximo = atual if proximo > atual: resultado -= atual else: resultado += atual return resultado
@davidfreitas77893 жыл бұрын
Eu resolvi em javascript transformando em expressão e usando o eval no final. A complicação da subtração depois do 39, que dá número negativo, eu resolvi transformando o número corrente nele mesmo somado a 2x a diferença dele com o próximo. XXXVIV = 39 10 + 10 + 1 0 + 5 + (((5 - 1)*2)+1) - 5 Será que eu compliquei demais? Sei que deu certo em menos de 60 minutos. Usei operador ternário que ajudou muito a diminuir a quantidade de linhas.
@hudsondevman3 жыл бұрын
Interessante o teste, depois vou fazer uma solução.
@kaiquebarbosa19663 жыл бұрын
qual o nome desse programa que ele usa para escrever os códigos?
@PedroPaulo-ut2nh3 жыл бұрын
pretende fazer alguma promoção do curso full stack?
@jokabuilder3 жыл бұрын
Boni sou seu aluno, e gostaria de saber se você pensa em incluir as linguagens de Programação Java e Puytho na plataforma? Porque também são de extrema importância no mercado..
@lucasayabe3 жыл бұрын
Não (python é ainda mais difícil pq ele não gosta kkkk), ele só quer focar na stack principal da plataforma (React, React Native e PHP) pq mais do que isso fica muito ruim de gravar as aulas, daí demora muito pra sair aula das coisas
@Gollunsss3 жыл бұрын
Java vai acabar.
@jbuhbjuhkhhkg48563 жыл бұрын
@@Gollunsss quando ?
@WHSM-w3e3 жыл бұрын
Não entendi em qual momento a variável $n recebeu algum valor para fazer a operação. Ele tinha atribuído o valor 0 pra ela e em nenhum momento ele colocou ela recebendo a variável $prox
@JohnPetryckMartins3 жыл бұрын
Uma duvida. Para se especializar em uma linguagem preciso dominar tudo que está descrito no curso ou focar apenas na linguagem que quero?
@alexandrejastrow84543 жыл бұрын
Caiu uma questão dessas na minha prova de programação do primeiro ou segundo semestre
@ecortezbiousp3 жыл бұрын
A ideia do vídeo é ótima, mas você matou toda a lógica dos números romanos, kkkkk. Não existe essa mistureba de letras, não. Os casos de inversão da ordem dos números são específicos para o 9, 90, 900, 4, 40 e 400. Seria legal se o programa limitasse o input e avisasse o usuário caso ele tentasse um input inválido.
@PexuPixo2 жыл бұрын
Tem que ter uma verificação também para não deixar digitar 4 vezes o "I".
@erick-yj6qd3 жыл бұрын
Opa bony blz eu nem vou precisar ver tu resolvendo mês passado eu fiz um projetinho q pega número digitado pelo usuário e trás forma em extenso vou em javascript vou reaproveitar a minha função e implementar os algarismos romanos show
@marcelobc22303 жыл бұрын
Show Boni !
@KaikyMendess3 жыл бұрын
O curso dele é confiável alguém vala a verdade aí por favor
@haduken82352 жыл бұрын
TOP !!!
@salvimateus3 жыл бұрын
que video divertido
@luan_dev3 жыл бұрын
E fica de desafio pra quem seguiu o tutorial até o final implementar a regra para impedir que o mesmo algarismo romano se repita mais que 3 vezes :D
@paulofranciscokeppler8323 жыл бұрын
bom dia, só uma pergunta: Voce trabalha sòzinho, ou para uma empresa, tipo funcionário ?
@ProgramandoComProposito3 жыл бұрын
Ele é o dono da empresa b7web
@paulofranciscokeppler8323 жыл бұрын
@@ProgramandoComProposito Valew !!
@franciscoleite58233 жыл бұрын
Alguém tentou resolver em Java?.....tentei e falhei
@isabellamuniz933 жыл бұрын
Professor eu não recebi este teste, por e-mail
@diegorafaelvieira50703 жыл бұрын
Não recebi esse e-mail pessoal
@igormillis8713 жыл бұрын
Porque PHP ou JS? Existe um motivo ou foi aleatório? E porque não Python?
@lucasalves50143 жыл бұрын
acho que, pelo fato dele ser mais familiar com essas linguagens, mas seguindo essa lógica da pra fazer em python, só muda a syntaxe
@bryanplum90613 жыл бұрын
e VX existe??
@petersonbarbosa47953 жыл бұрын
Não, apenas o XV
@bbuiu3 жыл бұрын
vc ja teve um erro no CHROME chamado de CORS?
3 жыл бұрын
utilize uma extensão do vscode chamada live, ele simula um servidor e por isso nao da erro
@bbuiu3 жыл бұрын
@ eu uso LIVE SERVER mas tb não funciona, oq funcionou pra mim foi usar um programa chamado XAMMP
3 жыл бұрын
15:24 humm
@lfcl83143 жыл бұрын
facil
@alissonfl3 жыл бұрын
A lógica é simples, mas não funciona. Deveria transformar algarismos romanos em numerais cardinais. "XIVIXIXC" não é um algarismo romano, é só uma string. Logo, o resultado não pode ser 112. Você fracassou no teste.
@4rthorario4593 жыл бұрын
Exatamente, a mesma coisa que pensei, porém depende da interpretação. Mas, creio que nós tivemos o pensamento correto
@lucasramosdev3 жыл бұрын
Qual seria a resolução?
@goisborges3 жыл бұрын
Exato. Não funciona e está errado. Números romanos não funcionam assim.
@DeiveColchao3 жыл бұрын
Fala meu bom tudo bem ? Achei muito massa o vídeo mas estou com uma dica. Acho que seria melhor se tivesse resolvido com js, creio que é mais fácil alguém saber do que o php embora a comunidade php seja enorme também. Não foi problema pra mim mas talvez possa ser pra outros. Sou novo aqui, então se o seu canal ser da comunidade php então Sorry por falar, falar e não dizer nada.
@DhenysonJhean3 жыл бұрын
Pegamos você não assistindo o video até o final. asjasjajs pelo menos deixou o like? Brincadeira kkk Ele fez nas duas linguagem. No final ele fez em JS
@DeiveColchao3 жыл бұрын
@@DhenysonJhean like deixado com certeza kkkk
@Gmaaa3 жыл бұрын
VX nunca foi 5, 5 é V e sempre será V. O único número que pode fazer isso é o 9, que é IX e seus derivas 19, 29... 190...
@gabrielchavao28273 жыл бұрын
verdade
@TJVargasS3 жыл бұрын
Pelo visto vc não sabe as regras dos algarismos romanos... e olha que são só 2, haha.
@Gmaaa3 жыл бұрын
@@TJVargasS então deve ter mudado as regras nesses últimos 20 anos.
@jogandode19063 жыл бұрын
@@TJVargasS cara apaga isso...
@goisborges3 жыл бұрын
@@TJVargasS ahuahuahuhauhau. Sabe bem de matemática. VX nem existe em romano.
@jamangueira73 жыл бұрын
Algarismos romanos tem algumas regras e VX não é 5. Não é assim que eles se comportam(somando e subtraindo). Achei a lição legal, mas isso ai estaria errado!
@heliobras94663 жыл бұрын
Sou o único que está a achar estranho “$atual = $romano[$i]” sendo que o romano não é um array 🤔
@carlitonoliveira85913 жыл бұрын
Toda string é um array da caracteres, então você consegue acessar qualquer caractere por vez passando o index
@heliobras94663 жыл бұрын
@@carlitonoliveira8591 valeu, muito obrigado
@RafaaSlater3 жыл бұрын
era minha dúvida tb ... tanto que tinha convertido para array e nem precisava rss
@matheusbarbosa42533 жыл бұрын
Eu fiz ao contrario, converti inteiro para romano até o 39...
@davidfreitas77893 жыл бұрын
Maneiro posta ai pra gente ver
@matheusbarbosa42533 жыл бұрын
@@davidfreitas7789 const toRoman = (n) => { const list = ['I', 'II', 'III', 'IV', 'V', 'VI', 'VII', 'VIII', 'IX', 'X']; let split = n.toString().split(''); let roman = ''; if (split.length > 1) { if (split[1] === "0") { roman = list[9].repeat(split[0]); } else { roman = list[9].repeat(split[0]) + list[split[1]-1]; } } else { roman = list[n-1]; } return roman; } for (var i = 1; i