Você está aqui: Java ::: Desafios e Lista de Exercícios Resolvidos ::: Recursão (Recursividade)

Escreva um programa Java que inverte uma palavra, frase ou texto usando recursividade - Desafio de Programação Resolvido em Java

Quantidade de visualizações: 739 vezes
Pergunta/Tarefa:

Escreva um programa Java que inverte uma palavra, frase ou texto usando recursividade. Seu programa deverá pedir para o usuário informar a string a ser invertida.

Sua saída deverá ser parecida com:

Informe uma palavra, frase ou texto: Arquivo de Códigos
A string informada foi: Arquivo de Códigos
A string invertida é:
sogidóC ed oviuqrA
Resposta/Solução:

Veja a resolução comentada deste exercício usando Java console:

package exercicio;

import java.util.Scanner;

public class Exercicio {
  public static void main(String[] args) {
    // cria um novo objeto da classe Scanner
    Scanner entrada = new Scanner(System.in);
    
    // vamos pedir para o usuário informar a string
    System.out.print("Informe uma palavra, frase ou texto: ");
    String texto = entrada.nextLine();
    
    // mostra a string informada
    System.out.println("A string informada foi: " + texto);
    
    // agora mostramos a string invetida
......


Link para compartilhar na Internet ou com seus amigos:

Python ::: Matplotlib Python Library (Biblioteca Python Matplotlib) ::: Passos Iniciais

Plotagem e visualização de dados em Python - Como instalar a biblioteca Matplotlib e testar seu funcionamento

Quantidade de visualizações: 2762 vezes
A biblioteca Matplotlib, escrita originalmente por John D. Hunter em 2003, é um dos pacotes Python mais populares para a plotagem e visualização de dados.

O acesso às funcionalidades da Matplotlib é feito por meio da interface Pylab, que lembra muito o MATLAB, a linguagem de programação proprietária desenvolvida pela MathWorks. Os usuários acostumados com essa ferramenta chegam a afirmar que a biblioteca Matplotlib, combinada com a biblioteca NumPy, pode ser considerada o equivalente open source do MATLAB.

Já tenho o Matplotlib disponível na minha instalação do Python?

Antes de iniciar qualquer projeto que envolva a biblioteca Matplotlib, é importante verificar se a mesma está disponível em sua instalação do Python. Isso pode ser de várias formas. Mostrarei como obter a lista de módulos usando a opção "list" do pip. Basta abrir uma janela de terminal e disparar o seguinte comando:

C:\Users\Osmar>pip list

Você terá um resultado parecido com:

C:\Users\Osmar>pip list
Package           Version
----------------- -------
astroid           2.4.2
colorama          0.4.4
isort             5.6.4
joblib            1.0.0
lazy-object-proxy 1.4.3
mccabe            0.6.1
numpy             1.19.4
pandas            1.1.5
Pillow            8.0.1
pip               20.3.3
pylint            2.6.0
python-dateutil   2.8.1
pytz              2020.4
scikit-learn      0.24.0
scipy             1.5.4
setuptools        49.2.1
six               1.15.0
threadpoolctl     2.1.0
toml              0.10.2
wrapt             1.12.1
wxPython          4.1.1
Uma outra forma é tentando importar o módulo matplotlib. Veja:

# importamos a bibliteca Matplotlib
import matplotlib as mp
 
def main():
  # vamos mostrar a versão da biblioteca Matplotlib
  versao = mp.__version__
......


Se você tiver o Matplotlib instalado, o resultado desse código será algo como:

A versão do Matplotlib é: 3.4.1

Se você não tiver a biblioteca Matplotlib instalada, a seguinte mensagem de erro será exibida:

Exception has occurred: ModuleNotFoundError
File "c:\estudos_python\estudos.py", line 3, in <module>
  import matplotlib as mp
ModuleNotFoundError: No module named 'matplotlib'


Não tenho o Matplotlib ainda. O que faço?

Abra uma janela de terminal e dispare o comando abaixo:

C:\Users\Osmar>pip install matplotlib

Depois de alguns segundos você verá o seguinte resultado:

Collecting matplotlib
Downloading matplotlib-3.4.1-cp39-cp39-win_amd64.whl (7.1 MB)
|-| 7.1 MB 3.3 MB/s
Requirement already satisfied: pillow>=6.2.0 in c:\python_3_9_1\lib\site-packages (from matplotlib) (8.0.1)
Requirement already satisfied: python-dateutil>=2.7 in c:\python_3_9_1\lib\site-packages (from matplotlib) (2.8.1)
Requirement already satisfied: numpy>=1.16 in c:\python_3_9_1\lib\site-packages (from matplotlib) (1.19.4)
Collecting cycler>=0.10
Downloading cycler-0.10.0-py2.py3-none-any.whl (6.5 kB)
Requirement already satisfied: six in c:\users\osmar\appdata\roaming\python\python39\site-packages (from cycler>=0.10->matplotlib) (1.15.0)
Collecting kiwisolver>=1.0.1
Downloading kiwisolver-1.3.1-cp39-cp39-win_amd64.whl (51 kB)
|-| 51 kB 3.8 MB/s
Collecting pyparsing>=2.2.1
Downloading pyparsing-2.4.7-py2.py3-none-any.whl (67 kB)
|-| 67 kB 1.7 MB/s
Installing collected packages: pyparsing, kiwisolver, cycler, matplotlib
Successfully installed cycler-0.10.0 kiwisolver-1.3.1 matplotlib-3.4.1 pyparsing-2.4.7

Obteve resultado parecido? Pronto! Você já pode começar a usar a biblioteca Matplotlib em seus aplicações Python.


Ruby ::: Dicas & Truques ::: Strings e Caracteres

Como remover espaços no início e final de uma string usando as funções strip e strip! da linguagem Ruby

Quantidade de visualizações: 9935 vezes
As funções strip e strip! são úteis quando precisamos remover espaços no início e final de uma string. A função strip retorna uma nova string, enquanto strip! opera na string original. Veja o exemplo:

# declara e inicializa uma variável string
frase = "  Tenho espaços no início e final.   "

# vamos remover os espaços no início e final da
# string. 
......


Ao executar este código Ruby nós teremos o seguinte resultado:

Tenho espaços no início e final.
Tenho espaços no início e final.


MySQL ::: Dicas & Truques ::: Chaves, Índices e Restrições de Integridade Referencial

Como criar chaves estrangeiras no MySQL - Como criar Foreign Keys em tabelas do MySQL

Quantidade de visualizações: 88617 vezes
O que é chave estrangeira (foreign key)?

O papel da chave estrangeira é manter uma referência a um registro presente em outra tabela. Imagine o seguinte cenário. Temos uma tabela livros e uma tabela autores. Neste cenário, um autor pode escrever vários livros e um livro pode ser escrito somente por um determinado autor. Aqui temos uma relação 1:N, ou seja, um para muitos: um autor pode escrever zero, um ou vários livros.

Comece analisando a tabela autores:

Field    Type               Null   Key    Default   Extra    
id       int(10) unsigned   NO     PRI    -         auto_increment    
nome     varchar(45)        NO            -                
email    varchar(45)        NO            -                
Como podemos ver, esta tabela possui três campos: id, nome e email. O campo id é do tipo int, auto-incremento e é a chave primária da tabela (não poderá haver ids repetidos nem o valor NULL). Esta tabela foi criada com o seguinte comando DDL CREATE TABLE:

CREATE TABLE autores(
  id int(10) unsigned NOT NULL auto_increment,
  nome varchar(45) NOT NULL,
......


Analise agora a tabela livros:

Field      Type                Null    Key    Default    Extra    
id         int(10) unsigned    NO      PRI    -          auto_increment    
titulo     varchar(45)         NO             -               
paginas    int(10) unsigned    NO             -               
id_autor   int(10) unsigned    NO             -               
Note que esta tabela possui os campos id, titulo, paginas e id_autor. Veja o comando DDL CREATE TABLE usado para sua criação:

CREATE TABLE livros(
  id INTEGER UNSIGNED NOT NULL DEFAULT NULL AUTO_INCREMENT,
  titulo VARCHAR(45) NOT NULL,
......


O campo id é do tipo int, auto-incremento e foi marcado como chave primária. Dessa forma, o campo id identifica unicamente cada livro. O campo id_autor é do tipo int e sua função é guardar o id do autor que escreveu um determinado livro. Ao trazer o valor do campo id da tabela autores para o campo id_autor da tabela livros nós estamos relacionando as duas tabelas. O campo id_autor, neste cenário, é a chave estrangeira, pois seu valor sempre refletirá o valor do campo id da tabela autores (a única exceção é quando queremos deixar, temporariamente, um livro sem autor). Lembre-se, em uma relação 1:N, a chave estrangeira, em geral, ficará no lado N da relação.

Integridade Referencial (Restrições de Chave Estrangeira) - Referential Integrity (Foreign Key Constraints)

Imagine agora que você inseriu alguns registros na tabela autores e na tabela livros. Todas as vezes que o valor do campo id_autor na tabela livros for igual ao valor do campo id na tabela autores nós estaremos criando um relação autor-livro. É possível, a qualquer momento, listar um livro e saber de imediato o id do seu autor (isso permite fazer um join com a tabela autores para obter os dados do respectivo autor).

Mas, o que acontecerá se excluirmos um registro na tabela autores e, mais tarde, descobrirmos que o campo id_autor da tabela livros guardava uma referência para o autor excluído? Teremos a quebra da integridade referencial. Para evitar tais situações, é responsabilidade do programador escrever códigos de verificações para prevenir estas ocorrências.

Os bancos de dados, e principalmente o MySQL, possuem mecanismos para reforçar esta proteção: restrições de chave estrangeira. As restrições de chave estrangeira asseguram duas situações possíveis:

1) Não permitir que um autor seja excluído quando qualquer livro possuir uma referência a ele;

2) Se o autor for excluído, todos os livros que o referenciam também o serão.

Definindo a chave estrangeira na tabela livros usando o atributo CONSTRAINT FOREIGN KEY REFERENCES

Vamos agora reescrever o comando DDL CREATE TABLE para a tabela livros de forma a aplicar as restrições de chaves estrangeiras. Veja a nova versão:

CREATE TABLE livros(
  id INTEGER UNSIGNED NOT NULL DEFAULT NULL AUTO_INCREMENT,
  titulo VARCHAR(45) NOT NULL,
  paginas INTEGER UNSIGNED NOT NULL,
......


A estrutura da tabela livros será alterada para aquela mostrada abaixo:

Field      Type                Null   Key    Default    Extra    
id         int(10) unsigned    NO     PRI    -          auto_increment    
titulo     varchar(45)         NO            -              
paginas    int(10) unsigned    NO            -                
id_autor   int(10) unsigned    NO     MUL    -
Veja que agora o campo id_autor foi sinalizado como MUL, ou seja, parte de um índice não único. Experimente agora inserir dados em ambas as tabelas e faça relacionamentos entre autores e livros. Tente excluir um autor que tenha um livro relacionado a ele. Imediatamente o MySQL abortará a operação com a seguinte mensagem de erro:

ErrorNr. 1451: Cannot delete or update a parent row: a foreign key constraint fails (`estudos/livros`, CONSTRAINT `livros_autores` FOREIGN KEY (`id_autor`) REFERENCES `autores` (`id`))

Em mais dicas desta seção você aprenderá a usar as cláusulas ON DELETE e ON UPDATE e as ações RESTRICT, SET NULL, CASCADE e NO ACTION. Todas estas cláusulas e ações são usadas para reforçar a integridade referencial de suas bases de dados.


VB.NET ::: Fundamentos da Linguagem ::: Estruturas de Controle

Como usar o laço While em VB.NET

Quantidade de visualizações: 10924 vezes
Um instrução de repetição (também chamada de laço ou loop) permite que um bloco de códigos seja executado repetidamente até que uma condição seja satisfeita.

O laço While é usado quando queremos testar uma condição e, executar um bloco de código repetidamente enquanto esta condição for verdadeira. Lembre-se de que, se a condição já for falsa, o laço nunca será executado.

Veja um exemplo de laço While que nos permite exibir os números de 0 a 10:

Dim numero As Integer = 0

While numero <= 10
......


Veja uma nova versão deste código, desta vez contando de 10 a 0:

Dim numero As Integer = 10

While numero >= 0
......


Aqui nós estamos novamente avaliando uma condição, ou seja, se o resultado da condição for True, a execução do laço continua. Se for False, o laço para. Veja um exemplo no qual a condição booleana está bem explícita:

Dim pode As Boolean = True
Dim valor As Integer = 1

While pode
  Console.WriteLine(valor)
......



C# ::: Datas e Horas ::: DateTime

Como usar o método IsLeapYear() da estrutura DateTime do C# para verificar se um determinado ano é bissexto

Quantidade de visualizações: 7219 vezes
Podemos verificar se um determinando ano é bissexto usando o método IsLeapYear() da estrutura DateTime. Este método recebe um valor inteiro representando o ano com 4 dígitos e retorna um valor true ou false. Veja o exemplo:

static void Main(string[] args){
  // vamos verificar se o ano 2008
  // é bissexto
  int ano = 2008;

  if(DateTime.IsLeapYear(ano))
    Console.WriteLine("O ano informado é bissexto");
......


Este método pode disparar uma exceção ArgumentOutOfRangeException se o valor do ano for menor que 1 ou maior que 9999.


Desafios, Exercícios e Algoritmos Resolvidos de C#

Veja mais Dicas e truques de C#

Dicas e truques de outras linguagens

Códigos Fonte

Programa de Gestão Financeira Controle de Contas a Pagar e a Receber com Cadastro de Clientes e FornecedoresSoftware 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 funcionalidadesControle 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
2º lugar: Python
3º lugar: C#
4º lugar: PHP
5º lugar: Delphi
6º lugar: C
7º lugar: JavaScript
8º lugar: C++
9º lugar: VB.NET
10º lugar: Ruby



© 2024 Arquivo de Códigos - Todos os direitos reservados
Neste momento há 34 usuários muito felizes estudando em nosso site.