Você está aqui: Ruby ::: Desafios e Lista de Exercícios Resolvidos ::: Arrays e Matrix (Vetores e Matrizes) |
Escreva um programa Ruby para mover todos os zeros para o final do vetor, sem alterar a ordem dos elementos já presentes no array - Lista de Exercícios Resolvidos de RubyQuantidade de visualizações: 1108 vezes |
Pergunta/Tarefa: Dado o seguinte vetor de inteiros: # vamos declarar e construir um vetor de 8 inteiros valores = [0, 3, 0, 5, 7, 4, 0, 9] Sua saída deverá ser parecida com: Vetor na ordem original: 0 3 0 5 7 4 0 9 Vetor com os zeros deslocados para o final: 3 5 7 4 9 0 0 0 Veja a resolução comentada deste exercício usando Ruby: ---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- # vamos declarar e construir um vetor de 8 inteiros valores = [0, 3, 0, 5, 7, 4, 0, 9] # vamos mostrar o vetor na ordem original print("Vetor na ordem original:\n") for i in (0..valores.length - 1) printf("%d ", valores[i]) end # vamos inicializar j como 0 para que ele aponte para # o primeiro elemento do vetor j = 0 # agora o laço for percorre todos os elementos do vetor, # incrementanto a variável i e deixando o j em 0 for i in (0..valores.length - 1) # encontramos um valor que não é 0 if(valores[i] != 0) # fazemos a troca entre os elementos nos índices # i e j temp = valores[i] valores[i] = valores[j] valores[j] = temp # e avançamos o j para o elemento seguinte j = j + 1 end end # agora mostramos o resultado print("\n\nVetor com os zeros deslocados para o final:\n") for i in (0..valores.length - 1) printf("%d ", valores[i]) end Não se esqueça: A resolução do exercício deve ser feita sem a criação de um vetor, array ou lista adicional, e os elementos diferentes de zero devem permanecer na mesma ordem que eles estavam antes. |
Link para compartilhar na Internet ou com seus amigos: |
Ruby ::: Dicas & Truques ::: Data e Hora |
Como usar a classe Date do Ruby em seus programasQuantidade de visualizações: 7428 vezes |
A classe Date da linguagem Ruby representa datas. Ela o faz trabalhando com anos, meses, semanas e dias. Tenha em mente que, ao usar a classe Date não temos acesso a nada relacionado a horas, minutos ou segundos. Internamente, uma data é representada como um número: ajd (Astronomical Julian Day Number). O dia da reforma do calendário (Day of Calendar Reform), sg, também é armazenado, para conversões para outros formatos de datas (há também um campo chamado "of" para a diferença de fuso horário, mas este é usado somente na subclasse DateTime). Um novo objeto Date é criado usando-se um dos métodos de criação de objetos da classe. E tais métodos recebem nomes de acordo com o formato de data. Além disso, os argumentos fornecidos devem obedecer ao formato de data desejado, por exemplo, Date::civil() (apelido para Date::new()) com ano, mês e dia do ano, ou Date::ordinal() com ano e dia do ano. Todos estes métodos de criação de objetos da classe também aceitam o dia da reforma do calendário (Day of Calendar Reform) como um argumento opcional. Objetos Date são imutáveis após sua criação. Após criarmos um objeto Date, valores de data podem ser obtidos para os diferentes formatos de data suportados usando métodos de instância. Por exemplo, mon() retorna o mês civil, cwday() retorna o dia comercial da semana, e yday() retorna o dia ordinal do ano. Valores Date podem ser obtidos em qualquer formato, independente de qual formato foi usado para criar a instância do objeto. A classe Date inclui o módulo Comparable, o que permite que objetos Date possam ser comparados e ordenados, faixas de datas possam ser criadas e assim por diante. Veja no trecho de código abaixo como podemos criar um objeto Date representando a data atual: ---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- # importa o módulo date require 'date' # obtém a data de hoje hoje = Date.today # exibe o resultado puts "Hoje é " + hoje.strftime("%e/%m/%Y") |
Ruby ::: Dicas & Truques ::: Trigonometria - Funções Trigonométricas |
Como calcular o cosseno de um ângulo em Ruby usando o método cos() da biblioteca Math - Calculadora de cosseno em RubyQuantidade de visualizações: 733 vezes |
Em geral, quando falamos de cosseno, estamos falando do triângulo retângulo de Pitágoras (Teorema de Pitágoras). A verdade é que podemos usar a função cosseno disponível nas linguagens de programação para calcular o cosseno de qualquer número, mesmo nossas aplicações não tendo nenhuma relação com trigonometria. No entanto, é sempre importante entender o que é a função cosseno. Veja a seguinte imagem: Veja que temos um triângulo retângulo com as medidas já calculadas para a hipotenusa e os dois catetos, assim como os ângulos entre eles. Assim, o cosseno é a razão entre o cateto adjascente e a hipotenusa, ou seja, o cateto adjascente dividido pela hipotenusa. Veja a fórmula: \[\text{Cosseno} = \frac{\text{Cateto adjascente}}{\text{Hipotenusa}} \] Então, se dividirmos 30 por 36.056 (na figura eu arredondei) nós teremos 0.8320, que é a razão entre o cateto adjascente e a hipotenusa (em radianos). Agora, experimente calcular o arco-cosseno de 0.8320. O resultado será 0.5881 (em radianos). Convertendo 0.5881 radianos para graus, nós obtemos 33.69º, que é exatamente o ângulo em graus entre o cateto adjascente e a hipotenusa na figura acima. Pronto! Agora que já sabemos o que é cosseno na trigonometria, vamos entender mais sobre a função cos() da linguagem Ruby. Esta método, que faz parte da biblioteca Math, recebe um valor numérico e retorna um valor, também numérico) entre -1 até 1 (ambos inclusos). Veja: ---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- puts "Cosseno de 0 = " + Math.cos(0).to_s puts "Cosseno de 1 = " + Math.cos(1).to_s puts "Cosseno de 2 = " + Math.cos(2).to_s Ao executar este código Ruby nós teremos o seguinte resultado: Cosseno de 0 = 1.0 Cosseno de 1 = 0.5403023058681398 Cosseno de 2 = -0.4161468365471424 Note que calculamos os cossenos dos valores 0, 1 e 2. Observe como os resultados conferem com a curva da função cosseno mostrada abaixo: |
Ruby ::: Dicas & Truques ::: Strings e Caracteres |
Como converter uma string em um valor inteiro em Ruby usando a função to_i da classe StringQuantidade de visualizações: 11302 vezes |
Em algumas situações precisamos transformar um valor contido em uma string em um valor numérico do tipo inteiro. Em Ruby podemos fazer isso usando o método to_i da classe String. Veja: ---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- # um número inteiro declarado como string valor = "34" # vamos somar este número a um outro resultado = 30 + valor.to_i # exibe o resultado puts resultado Ao executar este código Ruby nós teremos o seguinte resultado: 64 |
Vamos testar seus conhecimentos em Ética e Legislação Profissional |
Postura ética profissional Os engenheiros são profissionais responsáveis por criar soluções para situações do dia a dia que, de certa forma, pareciam impossíveis. Eles otimizaram as formas de transporte, de construção e, principalmente, de produção das indústrias. Diante dessas inovações, é comum que esses profissionais enfrentem situações éticas em que precisem decidir se avançam ou não com tais projetos. Quanto ao conceito de ética na engenharia, é correto afirmar que: A) A ética na engenharia é um aspecto que deve ser considerado em segundo lugar ante os benefícios que pode trazer à humanidade. B) A ética engloba a avaliação racional de ganhos e riscos, definindo as responsabilidades individuais durante a execução de um projeto. C) A ética engloba a avaliação social dos riscos e das responsabilidades coletivas durante a execução de um projeto. D) A ética é um conceito que não se aplica à engenharia, somente à medicina, por esta área tratar diretamente da vida de um indivíduo. E) A ética somente diz respeito à engenharia, pois as descobertas realizadas por tal área englobam um grande número de pessoas. Verificar Resposta Estudar Cards Todas as Questões |
Vamos testar seus conhecimentos em Engenharia Civil - Construção Civil |
Serviços preliminares e instalações provisórias Em um canteiro de obras: A) São permitidas a entrada e a permanência de trabalhadores que não sejam compatíveis com a fase da obra. B) É permitida a entrada rápida de trabalhadores que não estejam assegurados. C) São proibidas a entrada e a permanência de quaisquer trabalhadores, independentemente da fase da obra. D) É proibida a entrada de trabalhadores que não estejam assegurados, mas é permitida a permanência de trabalhadores que não sejam compatíveis com a fase da obra. E) São proibidas a entrada e a permanência de trabalhadores que não estejam assegurados e que não sejam compatíveis com a fase da obra. Verificar Resposta Estudar Cards Todas as Questões |
Vamos testar seus conhecimentos em AutoCAD Civil 3D |
Quando criamos um novo COGO Point usando a opção Manual do Point Creation Tool (Create Ground Data -> Points), qual é o primeiro parâmetro de ponto solicitado? A) Localização do ponto (point location) B) Número do ponto (point number) C) Nome do ponto (point name) D) Descrição do ponto (point description) Verificar Resposta Estudar Cards Todas as Questões |
Vamos testar seus conhecimentos em Engenharia Civil - Instalações Hidráulicas Prediais |
Perda de Carga Localizada, Acessórios de Tubulação Considerando a questão: "Qual a perda de carga singular em um conduto de 100 m, diâmetro de 100 mm, com um fluido escoando a 2 m/s, apresentando as seguintes singularidades rosqueadas na tubulação: válvula globo totalmente aberta e cotovelo de 45º com raio normal?". Qual o valor do fator de atrito f na tubulação anteriormente citada? Qual valor do somatório de Ks tornaria a perda de carga singular idêntica à perda de carga linear? A) 0,66 e 66,2. B) 0,066 e 66,2. C) 0,132 e 66,2. D) 0,066 e 132,4. E) 0,132 e 132,4. Verificar Resposta Estudar Cards Todas as Questões |
Vamos testar seus conhecimentos em Ética e Legislação Profissional |
Responsabilidade civil no código de defesa do consumidor A Constituição Federal brasileira confere à defesa do consumidor garantia de: A) ordem social. B) direitos e garantias fundamentais. C) direitos políticos. D) princípio fundamental. E) direito de nacionalidade. Verificar Resposta Estudar Cards Todas as Questões |
Desafios, Exercícios e Algoritmos Resolvidos de Ruby |
Veja mais Dicas e truques de Ruby |
Dicas e truques de outras linguagens |
Revit C# - Como criar eixos no Revit via programação usando a função Create() da classe Grid da Revit C# API |
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 |