Pesquisar este blog

Livros Recomendados

Mostrando postagens com marcador Ruby. Mostrar todas as postagens
Mostrando postagens com marcador Ruby. Mostrar todas as postagens

quinta-feira, 24 de fevereiro de 2022

URI (BEECROWD) - 3344 - Brute - Iniciante - Ruby, Python, Python3, C e C++

Outro exercício novo resolvido! Esse é o Brute, que só precisa imprimir um valor. Quem mais conseguiu fazer esse?

Antes de resolver qualquer algoritmo do URI (BEECROWD agora), recomendamos seguir os seguintes passos:

  1. Ler todo enunciado do problema.
  2. Ler os tópicos do fórum em caso de dúvidas
  3. Preparar arquivos de entrada para teste, considerando as entradas de exemplo do URI, do udebug e outros valores limite;
  4. Preparar o ambiente de desenvolvimento e utilizar os mesmos parâmetros dos compiladores do URI
  5. Preparar um código-fonte padrão, já contendo a chamada às bibliotecas padrão, pré-processadores, retorno de função e um comando de escrita com "\n", pois no URI a grande maioria dos problemas exige a quebra de linha final.


Plataforma
: URI (BEECROWD)

Problema3344

Enunciado:

Bruno, interessado em aprender inglês, decidiu se matricular no BRUTE (Brazilian University of Theorical English) e logo no primeiro semestre se deparou com a seguinte função na aula de MDI (Matemática do Inglês):

Seja a função f:NN, que recebe x e retorna a quantidade de caracteres do valor escrito por extenso.

Por exemplo:

  • f(5)=len(FIVE)=4
  • f(100)=len(ONE HUNDRED)=11

A professora de MDI, Kaqui, propôs o seguinte exercício para Bruno:

Dado um inteiro x, o resultado da primeira iteração na função f, utilizando x, é f(x), da segunda iteração f(f(x)), da terceira é f(f(f(x))) e assim por diante. Qual o resultado da 1000ª iteração?

Linguagens: Ruby, Python, Python3, C e C++

Solução:

Basta imprimir o valor 4.

Código em Ruby:
puts "4"

Código em Python:

print "4"
# Esse foi difícil, hein?!

Código em Python3:
print("4")

Código em C:
#include <stdio.h>
int main() {
    printf("4\n");
    return 0;
}

Código em C++:
#include <iostream>
int main() {
    std::cout << "4" << std::endl;
    return 0;
}

quarta-feira, 24 de março de 2021

URI (BEECROWD) - 1001 - Extremamente Básico - Iniciante - Kotlin e Ruby

Plataforma: URI (BEECROWD)
Problema1001


Linguagens: Kotlin e Ruby

Enunciado:
Leia 2 valores inteiros e armazene-os nas variáveis A e B. Efetue a soma de A e B atribuindo o seu resultado na variável X. Imprima X conforme exemplo apresentado abaixo. Não apresente mensagem alguma além daquilo que está sendo especificado e não esqueça de imprimir o fim de linha após o resultado, caso contrário, você receberá "Presentation Error".

Solução:

Aqui soluciono o problema 1001, que solicita a soma de dois inteiros informados pelo usuário na entrada padrão, nas linguagens Kotlin e Ruby. Os códigos são bastante simples e intuitivos.

Código em Kotlin:

Quem vê o código Kotlin já nota: Kotlin é uma linguagem para a JVM totalmente interoperável com Java. Portanto, sua sintaxe é bastante familiar para quem já usa Java. Usa-se imports quando necessário chamar alguma biblioteca, como fizemos com java.util.*, já que usamos o objeto Scanner para fazer a leitura de dados da entrada padrão. A função principal é a main e dentro do código foram declaradas três variáveis com "val". Elas podiam ser criadas com "var", no entanto, não seria o mais correto. Utilizamos "val" quando o valor não será alterado, e "var" quando ele pode ser modificado. Os métodos sc.next servem para que a referência ao objeto do tipo Scanner (sc) faça a leitura dos valores de entrada. Os valores são recebidos como referências a Strings. No comando de escrita (println), utilizamos "ln" no final para indicar que deve criar uma nova linha (ln significa line new) após o último caractere. Por fim, para fazer a soma de a e b, primeiro precisamos fazer o cast (a conversão explícita), pois ambos foram lidos e atribuídos como String. Essa conversão é feita com o método toInt(). Assim é possível somar os valores e imprimir no comando println.

import java.util.*
fun main(args: Array<String>) {
    val sc = Scanner(System.`in`);
    val a: String = sc.next();
    val b: String = sc.next();
    println("X = " + (a.toInt() + b.toInt()));
}

Código em Ruby:

Embora Kotlin seja uma linguagem de programação simples, a solução em Ruby fica bem menor. Aqui, para ler os valores e já armazená-los como inteiro, basta utilizar gets.to_i. O "to_i" já faz a conversão para inteiro (to_i significa to int ou para int). Assim, x recebe a soma entre a e b e o comando puts imprime o resultado. Simples, não?

a = gets.to_i 
b = gets.to_i
x = a + b
puts "X = #{x}"

URI (BEECROWD) - 1000 - Hello World! - Iniciante - Ruby

Nova postagem sobre problemas do URI (agora BEECROWD)! Esse é o primeiro exercício que todo programador faz em todas as linguagens. Veja abaixo que, no caso da linguagem de programação Ruby, a resposta é muito simples.

Plataforma: URI (BEECROWD) 

Problema1000

Linguagem: Ruby

Enunciado:

O seu primeiro programa em qualquer linguagem de programação normalmente é o "Hello World!". Neste primeiro problema tudo o que você precisa fazer é imprimir esta mensagem na tela.

Solução:

O comando de escrita na saída padrão da linguagem Ruby é o puts. Apóe ele usamos o texto que queremos imprimir, entre aspas duplas. Não é necessário quebrar a linha, o próprio puts já faz isso pra gente. A solução será simples em todas as linguagens, mas em Ruby é especialmente simples, em uma linha já conseguimos acertar a questão!

puts "Hello World!"

Postagem em destaque

URI (BEECROWD) - 2158 - Helping Uncle Cláudio (Ajudando o Tio Cláudio) - Matemática - C, C++ e Haskell

Buenas! Estou aqui mais uma vez para resolver um problema de Matemática! Agora tenho resolvido alguns dessa categoria, pra que vocês possam ...

Postagens mais visitadas