Você está aqui: Cards de Engenharia Civil - Estruturas de Concreto Armado |
||
|
||
|
|
||
Java ::: Desafios e Lista de Exercícios Resolvidos ::: Recursão (Recursividade) |
Exercício Resolvido de Java - Um método recursivo que calcula o número de Fibonacci para um dado índiceQuantidade de visualizações: 7308 vezes |
|
Pergunta/Tarefa: Observe a série de números Fibonacci abaixo: Série: 0 1 1 2 3 5 8 13 21 34 55 89 Índice: 0 1 2 3 4 5 6 7 8 9 10 11 Este algorítmos consiste em, dado um determinado índice, retornar o número de Fibonacci correspondente. Recursivamente, o cálculo pode ser feito da seguinte forma: fib(0) = 0; fib(1) = 1; fib(indice) = fib(indice - 2) + fib(indice - 1); sendo o indice >= 2 Os casos nos quais os índices são 0 ou 1 são os casos bases (aqueles que indicam que a recursividade deve parar). Seu método deverá possuir a seguinte assinatura:
public static int fibonacci(int indice){
// sua implementação aqui
}
Informe o índice: 6 O número de Fibonacci no índice informado é: 8 Veja a resolução comentada deste exercício usando Java console:
package estudos;
import java.util.Scanner;
public class Estudos {
public static void main(String[] args) {
// cria um novo objeto da classe Scanner
Scanner entrada = new Scanner(System.in);
// vamos solicitar o índice do número de Fibonacci
System.out.print("Informe o índice: ");
// lê o índice
int indice = Integer.parseInt(entrada.nextLine());
// calcula o número de Fibonacci no índice informado
System.out.print("O número de Fibonacci no índice informado é: " +
fibonacci(indice));
System.out.println("\n");
}
// método recursivo que o número de Fibonacci em um determinado índice
public static int fibonacci(int indice){
if(indice == 0){ // caso base; interrompe a recursividade
return 0;
}
else if(indice == 1){ // caso base; interrompe a recursividade
return 1;
}
else{ // efetua uma nova chamada recursiva
return fibonacci(indice - 1) + fibonacci(indice - 2);
}
}
}
|
Java ::: Desafios e Lista de Exercícios Resolvidos ::: Java Básico |
Exercícios Resolvidos de Java - Java Básico - Lendo a nota de um aluno e classificando-a com as letras A, B, C, D ou EQuantidade de visualizações: 4749 vezes |
|
Exercício Resolvido de Java - Java Básico - Lendo a nota de um aluno e classificando-a com as letras A, B, C, D ou E Pergunta/Tarefa: Escreva um programa Java que lê a nota de um aluno e a classifica de acordo com as seguintes regras: 1) Maior ou igual a 9,00 - A 2) Maior ou igual a 8,0 e menor que 9,0 - B 3) Maior ou igual a 7,0 e menor que 8,0 - C 4) Maior ou igual a 6,0 e menor que 7,0 - D 5) Menor que 6,0 - E Sua saída deverá ser parecida com: ![]() Resposta/Solução: Veja a resolução comentada deste exercício usando Java console:
package estudos;
import java.util.Scanner;
public class Estudos {
public static void main(String[] args) {
Scanner entrada = new Scanner(System.in);
// vamos solicitar que o usuário informe a nota do aluno
System.out.print("Informe a nota do aluno: ");
double nota = Double.parseDouble(entrada.nextLine());
char letra = 'A'; // vai guardar a letra de classificação
// a nota está dentro da faixa esperada?
if((nota < 0) || (nota > 10)){
System.out.println("A nota esta fora da faixa esperada.");
}
else{
if(nota < 6.0){
letra = 'E';
}
else if((nota >= 6.0) && (nota < 7.0)){
letra = 'D';
}
else if((nota >= 7.0) && (nota < 8.0)){
letra = 'C';
}
else if((nota >= 8.0) && (nota < 9.0)){
letra = 'B';
}
else{
letra = 'A';
}
}
// vamos mostrar a classificação
System.out.println("A classificação desta nota é: " + letra);
System.out.println("\n");
}
}
|
Ruby ::: Dicas & Truques ::: Programação Orientada a Objetos |
Programação Orientada a Objetos em Ruby: Classes, objetos, métodos e variáveis de instânciaQuantidade de visualizações: 11407 vezes |
|
A melhor forma de entender a programação orientada a objetos é começar com uma analogia simples. Suponha que você queira dirigir um carro e fazê-lo ir mais rápido pressionado o acelerador. O que deve acontecer antes que você seja capaz de fazer isso? Bem, antes que você possa dirigir um carro, alguém tem que projetá-lo. Um carro geralmente começa com desenhos feitos pelos engenheiros responsáveis por tal tarefa, tal qual a planta de uma casa. Tais desenhos incluem o projeto de um acelerador que possibilita ao carro ir mais rápido. O pedal do acelerador "oculta" os mecanismos complexos responsáveis por fazer o carro ir mais rápido, da mesma forma que o pedal de freio "oculta" os mecanismos que fazem o carro ir mais devagar e o volante "oculta" os mecanismos que fazem com que o carro possa virar para a direita ou esquerda. Isso permite que pessoas com pequeno ou nenhum conhecimento de motores possam facilmente dirigir um carro. Infelizmente, não é possível dirigir o projeto de um carro. Antes que possamos dirigí-lo, o carro deve ser construído a partir do projeto que o descreve. Um carro já finalizado tem um pedal de aceleração de verdade, que faz com que o carro vá mais rápido. Ainda assim, é preciso que o motorista pressione o pedal. O carro não acelerará por conta própria. Agora vamos usar nosso exemplo do carro para introduzir alguns conceitos de programação importantes à programação orientada a objetos. A execução de uma determinada tarefa em um programa exige um método ou função. O método (ou função) descreve os mecanismos que, na verdade, executam a tarefa. O método oculta tais mecanismos do usuário, da mesma forma que o pedal de aceleração de um carro oculta do motorista os mecanismos complexos que fazem com que um carro vá mais rápido. Em Ruby, começamos criando uma unidade de programa chamada classe para abrigar um método, da mesma forma que o projeto de um carro abriga o design do pedal de acelerador. Em uma classe fornecemos um ou mais métodos que são projetados para executar as tarefas da classe. Por exemplo, a classe que representa uma conta bancária poderia conter muitos métodos, incluindo um método para depositar dinheiro na conta, outro para retirar dinheiro, um terceiro para verificar o saldo, e assim por diante. Da mesma forma que não podemos dirigir o projeto de um carro, nós não podemos "dirigir" uma classe. Da mesma forma que alguém teve que construir um carro a partir de seu projeto antes que pudessémos dirigí-lo, devemos construir um objeto de uma classe antes de conseguirmos executar as tarefas descritas nela. Quando dirigimos um carro, o pressionamento do acelerador envia uma mensagem ao carro informando-o da tarefa a ser executada (neste caso informando-o de que queremos ir mais rápido). Da mesma forma, enviamos mensagens aos objetos de uma classe. Cada mensagem é uma chamada de método e informa ao objeto qual ou quais tarefas devem ser executadas. Até aqui nós usamos a analogia do carro para introduzir classes, objetos e métodos. Já é hora de saber que um carro possui atributos (propriedades) tais como cor, o número de portas, a quantidade de gasolina em seu tanque, a velocidade atual, etc. Tais atributos são representados como parte do projeto do carro. Quando o estamos dirigindo, estes atributos estão sempre associados ao carro que estamos usando, e cada carro construído a partir do projeto sofrerá variações nos valores destes atributos em um determinado momento. Da mesma forma, um objeto tem atributos associados a ele quando o usamos em um programa. Estes atributos são definidos na classe a partir da qual o objeto é instanciado (criado) e são chamados de variáveis de instância da classe. Veremos agora como definir uma classe em Ruby e usar um objeto desta classe em um programa. Veja o trecho de código abaixo:
# Definição da classe Cliente
class Cliente
def definir_nome(nome)
@nome = nome
end
def obter_nome
@nome
end
end
# Cria uma instância da classe Cliente
cliente = Cliente.new
# Efetua uma chamada ao método definir_nome
cliente.definir_nome("Laura Maria dos Santos")
# Efetua uma chamada ao método obter_nome
print "O nome do cliente é " + cliente.obter_nome
Ao executar este código Ruby nós teremos o seguinte resultado: O nome do cliente é Laura Maria dos Santos |
Java ::: Dicas & Truques ::: Imagens e Processamento de Imagens |
Como carregar uma imagem em um BufferedImage do Java usando o método read() da classe ImageIOQuantidade de visualizações: 12594 vezes |
|
O método read() da classe ImageIO possui várias assinaturas. Entre elas há uma que aceita um objeto File representando o caminho e nome da imagem a ser carregada. Este método retorna um BufferedImage e atira uma exceção IOException se a imagem não puder ser carregada. O exemplo abaixo mostra como carregar uma imagem JPG em um BufferedImage usando ImageIO.read():
import java.awt.*;
import java.io.*;
import java.awt.image.*;
import java.awt.event.*;
import javax.swing.*;
import javax.imageio.*;
public class Estudos extends JFrame{
private BufferedImage imagem;
public Estudos() {
super("Estudos Java");
Container c = getContentPane();
c.setLayout(new FlowLayout());
JButton btn = new JButton("Carregar Imagem");
btn.addActionListener(
new ActionListener(){
public void actionPerformed(ActionEvent e){
imagem = null;
try{
imagem = ImageIO.read(
new File("imagens/fundo.jpg"));
}
catch(IOException exc){
JOptionPane.showMessageDialog(null,
"Erro ao carregar a imagem: " +
exc.getMessage());
}
if(imagem != null)
JOptionPane.showMessageDialog(null,
"Imagem carregada com sucesso.");
}
}
);
c.add(btn);
setSize(400, 300);
setVisible(true);
}
public static void main(String args[]){
Estudos app = new Estudos();
app.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
}
|
Rust ::: Desafios e Lista de Exercícios Resolvidos ::: Estruturas de Controle |
Exercício Resolvido de Rust - Como testar se um ano é bissexto em Rust - Um programa que lê um ano com quatro dígitos e informa se ele é bissexto ou nãoQuantidade de visualizações: 580 vezes |
|
Pergunta/Tarefa: Chama-se ano bissexto o ano ao qual é acrescentado um dia extra, ficando ele com 366 dias, um dia a mais do que os anos normais de 365 dias, ocorrendo a cada quatro anos (exceto anos múltiplos de 100 que não são múltiplos de 400). Isto é feito com o objetivo de manter o calendário anual ajustado com a translação da Terra e com os eventos sazonais relacionados às estações do ano. O último ano bissexto foi 2012 e o próximo será 2016. Um ano é bissexto se ele for divisível por 4 mas não por 100, ou se for divisível por 400. Escreva um programa Rust que pede ao usuário um ano com quatro dígitos e informa se ele é bissexto ou não. Sua saída deverá ser parecida com: Informe o ano: 2024 O ano informado é bissexto. Veja a resolução comentada deste exercício usando Rust:
use std::io;
use std::io::Write;
// esta é a função principal do programa Rust
fn main() {
// variáveis usadas na resolução do problema
let ano:i32;
let mut ano_str = String::new();
// vamos solicitar que o usuário informe um ano
print!("Informe o ano: ");
std::io::stdout().flush().unwrap();
io::stdin().read_line(&mut ano_str).expect("String inválida");
ano = ano_str.trim().parse().expect("Valor inválido");
// vamos verificar se o ano informado é bissexto
if ((ano % 4 == 0) && (ano % 100 != 0)) || (ano % 400 == 0) {
println!("O ano informado é bissexto.");
}
else{
println!("O ano informado não é bissexto.");
}
}
|
Mais Desafios de Programação e Exercícios e Algoritmos Resolvidos de Rust |
Veja mais Dicas e truques de Rust |
Dicas e truques de outras linguagens |
E-Books em PDF |
||||
|
||||
|
||||
Linguagens Mais Populares |
||||
|
1º lugar: Java |





