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 JavaQuantidade de visualizações: 670 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 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 ::: Desafios e Lista de Exercícios Resolvidos ::: NumPy Python Library |
Exercício Resolvido de Python NumPy - Como somar duas matrizes usando a biblioteca NumPy do PythonQuantidade de visualizações: 645 vezes |
Pergunta/Tarefa: Escreva um programa Python que usa a biblioteca NumPy para efetuar a soma de duas matrizes de mesma ordem, ou seja, mesmo número de linhas e colunas. Seu código deverá somar o primeiro elemento da matriz A com o primeiro elemento da matriz B, e assim por diante. Sua saída deverá ser parecida com: A primeira matriz é: [[4 1 3] [9 2 5]] A segunda matriz é: [[ 3 10 2] [ 1 13 4]] A matriz soma é: [[ 7 11 5] [10 15 9]] Veja a resolução comentada deste exercício em Python: # vamos importar a biblioteca NumPy import numpy as np # função principal do programa def main(): # vamos criar a primeira matriz a = np.array([[4, 1, 3], [9, 2, 5]]) # vamos criar a segunda matriz b = np.array([[3, 10, 2], [1, 13, 4]]) ...... |
Delphi ::: Dicas & Truques ::: Arrays e Matrix (Vetores e Matrizes) |
Como usar arrays (vetores e matrizes) em DelphiQuantidade de visualizações: 72643 vezes |
Em programação de computadores, um array, também conhecido como vector (para arrays uni-dimensionais) ou matriz (para arrays bi-dimensionais), é uma das mais simples estruturas de dados. Os arrays mantêm uma série de elementos de dados, geralmente do mesmo tamanho e tipo de dados. Elementos individuais são acessados por sua posição no array. A posição é dada por um índice, também chamado de subscrição. O índice geralmente utiliza uma seqüência de números inteiros, (ao contrário de um array associativo) mas o índex pode ter qualquer valor ordinal. Alguns arrays são multi-dimensionais, significando que eles são indexados por um número fixo de números inteiros, por exemplo, por um seqüência (ou sucessão) finita de quatro números inteiros. Geralmente, arrays uni- e bi-dimensionais são os mais comuns. Os arrays podem ser considerados como as estruturas de dado mais simples que é possível imaginar. Têm a vantagem de que os seus elementos são acessíveis de forma rápida, mas têm uma notável limitação: são de tamanho fixo, mas podem ser incrementados ou diminuídos com determinados algoritmos, geralmente envolvendo a cópia de elementos de um array para outro e reinicializando o original com a nova dimensão. Os vetores podem ser implementados desta forma. Em Delphi um array é declarado da seguinte forma: var valores: array[1..10] of Integer; ...... Aqui nós temos um array chamado valores que contém 10 elementos do tipo Integer. Estes elementos podem ser acessados por índices que variarão de 1 a 10, ou seja, podemos acessar o 5º elemento da seguinte forma: procedure TForm1.Button1Click(Sender: TObject); var valores: array[1..10] of Integer; ...... Este tipo de array que ora criamos é chamado de array estático, em contraposição aos arrays dinâmicos, os quais podem ter seus tamanhos redimensionados durante a execução do programa. A forma mais prática de se trabalhar com arrays em Delphi é usando laços. Veja: procedure TForm1.Button1Click(Sender: TObject); var valores: array[1..5] of Integer; i, soma: Integer; begin // vamos preencher o array com os valores de 1 a 5 for i := 1 to 5 do begin valores[i] := i; end; // vamos percorrer o array novamente e obter a soma dos ...... Aqui nós declaramos um array de 5 elementos do tipo Integer e inicializamos seus elementos com os valores de 1 a 5. Em seguida percorremos todo o array novamente para obter a soma dos valores dos elementos. É possível também declarar e já inicializar um array. Veja: procedure TForm1.Button1Click(Sender: TObject); const valores: array[1..5] of Integer = (3, 2, 6, 12, 9); var i, soma: Integer; begin // vamos percorrer o array novamente e obter a soma dos // valores de seus elementos ...... Note que aqui eu declarei o array como uma constante. Isso aconteceu porque o Delphi não permite que inicializemos variáveis locais ([DCC Error] Unit1.pas(32): E2195 Cannot initialize local variables). Caso você realmente precise do array como variável e não constante, e deseje inicializá-lo juntamente com a declaração, mova-o para a seção interface do formulário ou classe. Para finalizar, veja que é possível criar arrays de todos os tipos em Delphi. Veja no trecho de código abaixo como usamos um array de Char para guardar uma palavra e exibí-la normal e depois invertida: procedure TForm1.Button1Click(Sender: TObject); const letras: array[1..5] of Char = ('O', 's', 'm', 'a', 'r'); var i: Integer; resultado: String; begin resultado := ''; // vamos exibir a palavra na forma normal for i := 1 to 5 do resultado := resultado + letras[i]; ...... Para fins de compatibilidade, esta dica foi escrita usando Delphi 2009. |
Ruby ::: Dicas & Truques ::: Programação Orientada a Objetos |
Como usar variáveis de instância em Ruby - Programação Orientada a Objetos em RubyQuantidade de visualizações: 7419 vezes |
Na programação orientada a objetos, as variáveis de instância são variáveis associadas a cada um dos objetos de uma classe. Podemos pensar assim: temos vários carros de uma mesma montadora e da mesma marca, porém, com cores diferentes. Nessa analogia, a cor pertence a cada um dos carros, de forma particular, ou seja, é uma variável de instância. Vamos ver um exemplo? Veja o código Ruby a seguir: # Definição da classe Cliente class Cliente # construtor da classe def initialize(nome, idade) @nome = nome @idade = idade end # método que permite retornar o nome do cliente def obter_nome @nome end # método que permite retornar a idade do cliente def obter_idade @idade end ...... Ao executar este código Ruby nós teremos o seguinte resultado: Osmar - 35 Salvador - 28 Veja que aqui nós temos duas variáveis de instância: @nome e @idade. Variáveis de instância são sempre precedidas pelo símbolo @ em Ruby. Neste exemplo os valores das variáveis são inicializados por meio do uso do construtor da classe e obtidos por meio de métodos acessores chamados obter_nome e obter_idade. |
Python ::: Dicas & Truques ::: Ordenação e Pesquisa (Busca) |
Python Insertion Sort - Como ordenar um vetor de inteiros usando a ordenação Insertion Sort (Ordenação por Inserção)Quantidade de visualizações: 3422 vezes |
Nesta dica veremos como implementar a ordenação Insertion Sort, Insertion-Sort, ou Ordenação por Inserção na linguagem Python. A ordenação Insertion Sort, Insertion-Sort, ou Ordenação por Inserção, possui uma complexidade de tempo de execução igual à ordenação Bubble Sort (Ordenação da Bolha), ou seja, O(n2). Embora mais rápido que o Bubble Sort, e ser um algorítmo de ordenação quadrática, a ordenação Insertion Sort é bastante eficiente para problemas com pequenas entradas, sendo o mais eficiente entre os algoritmos desta ordem de classificação, porém, nunca recomendada para um grande conjunto de dados. A forma mais comum para o entendimento da ordenação Insertion Sort é compará-la com a forma pela qual algumas pessoas organizam um baralho num jogo de cartas. Imagine que você está jogando cartas. Você está com as cartas na mão e elas estão ordenadas. Você recebe uma nova carta e deve colocá-la na posição correta da sua mão de cartas, de forma que as cartas obedeçam à ordenação. A cada nova carta adicionada à sua mão de cartas, a nova carta pode ser menor que algumas das cartas que você já tem na mão ou maior, e assim, você começa a comparar a nova carta com todas as cartas na sua mão até encontrar sua posição correta. Você insere a nova carta na posição correta, e, novamente, a sua mão é composta de cartas totalmente ordenadas. Então, você recebe outra carta e repete o mesmo procedimento. Então outra carta, e outra, e assim por diante, até não receber mais cartas. Esta é a ideia por trás da ordenação por inserção. Percorra as posições do vetor (array), começando com o índice 1 (um). Cada nova posição é como a nova carta que você recebeu, e você precisa inseri-la no lugar correto no sub-vetor ordenado à esquerda daquela posição. Vamos ver a implementação na linguagem Python agora? Observe o seguinte código, no qual temos um vetor de inteiros com os elementos {4, 6, 2, 8, 1, 9, 3, 0, 11}: # método que permite ordenar o vetor de inteiros # usando a ordenação Insertion Sort def insertionSort(vetor): # percorre todos os elementos do vetor começando # pelo segundo elemento for i in range(len(vetor)): atual = vetor[i] # o valor atual a ser inserido # começa a comparar com a célula à esquerda de i j = i - 1 # enquanto vetor[j] estiver fora de ordem em relação # a atual while((j >= 0) and (vetor[j] > atual)): # movemos vetor[j] para a direita e decrementamos j vetor[j + 1] = vetor[j] j = j - 1 # colocamos atual em seu devido lugar ...... Ao executar este código Python nós teremos o seguinte resultado: Sem ordenação: 4 6 2 8 1 9 3 0 11 Ordenada usando Insertion Sort: 0 1 2 3 4 6 8 9 11 |
C# ::: Desafios e Lista de Exercícios Resolvidos ::: Strings e Caracteres |
Exercícios Resolvidos de C# - Como retornar o código ASCII associado a um caractere em C# - Ler um caractere e retornar o código ASCII correspondenteQuantidade de visualizações: 306 vezes |
Pergunta/Tarefa: Escreva um programa C# que pede para o usuário informar um caractere (letra ou número) e mostre o código ASCII correspondente. Sua saída deverá ser parecida com: Informe um caractere: A Você informou o caractere: A O código ASCII correspondente é: 65 Veja a resolução comentada deste exercício em C#: using System; namespace Estudos { class Principal { // função principal do programa C# static void Main(string[] args) { // vamos pedir para o usuário informar uma letra, símbolo ou pontuação Console.Write("Informe um caractere: "); // vamos ler o caractere informado char caractere = Console.ReadLine()[0]; // agora vamos obter o código ASCII correspondente ...... O Código Padrão Americano para o Intercâmbio de Informação (do inglês American Standard Code for Information Interchange - ASCII, pronunciado [áski]) é um sistema de representação de letras, algarismos e sinais de pontuação e de controle, através de um sinal codificado em forma de código binário (cadeias de bits formada por vários 0 e 1), desenvolvido a partir de 1960, que representa um conjunto de 128 sinais: 95 sinais gráficos (letras do alfabeto latino, algarismos arábicos, sinais de pontuação e sinais matemáticos) e 33 sinais de controle, utilizando 7 bits para representar todos os seus símbolos. |
Mais Desafios de Programação e Exercícios e Algoritmos Resolvidos de C# |
Veja mais Dicas e truques de C# |
Dicas e truques de outras linguagens |
C - Como escrever uma função C personalizada que copia os caracteres de uma string para outra string |
Quem Somos |
Programador Freelancer - Full Stack Developer, Professional Java Developer, PHP, C/C++, Python Programmer, wxWidgets Professional C++ Programmer, Freelance Programmer. Formado em Ciência da Computação pela UNIP (Universidade Paulista Campus Goiânia) e cursando Engenharia Civil pela PUC-Goiás. Possuo conhecimentos avançados de Java, Python, JavaScript, C, C++, PHP, C#, VB.NET, Delphi, Android, Perl, e várias tecnologias que envolvem o desenvolvimento web, desktop, front-end e back-end. Atuo há mais de 20 anos como programador freelancer, atendendo clientes no Brasil, Portugal, Argentina e vários outros paises.
Entre em contato comigo para, juntos, vermos em que posso contribuir para resolver ou agilizar o desenvolvimento de seus códigos.
|
Programador Freelancer - Formado em Sistemas de Informação pela Faculdade Delta, Pós graduado em Engenharia de Software (PUC MINAS), Pós graduado Marketing Digital (IGTI) com ênfase em Growth Hacking. Mais de 15 anos de experiência em programação Web. Marketing Digital focado em desempenho, desenvolvimento de estratégia competitiva, analise de concorrência, SEO, webvitals, e Adwords, Métricas de retorno. Especialista Google Certificado desde 2011 Possui domínio nas linguagens PHP, C#, JavaScript, MySQL e frameworks Laravel, jQuery, flutter. Atualmente aluno de mestrado em Ciência da Computação (UFG)
Não basta ter um site. É necessário ter um site que é localizado e converte usuários em clientes. Se sua página não faz isso, Fale comigo e vamos fazer uma analise e conseguir resultados mais satisfatórios..
|
Linguagens Mais Populares |
1º lugar: Java |