Você está aqui: C ::: Desafios e Lista de Exercícios Resolvidos ::: Recursão (Recursividade) |
Escreva um método recursivo em C que, dados dois inteiros a e b (a <= b), retorna a multiplicação dessa faixa de números - Desafio de Programação Resolvido em CQuantidade de visualizações: 408 vezes |
Pergunta/Tarefa: Escreva um método recursivo em C que, dados dois inteiros a e b (a <= b), retorna a multiplicação dessa faixa de números. Por exemplo, se informarmos o número inicial 1 e o número final 5, sua saída deverá ser parecida com: O resultado é: 120 Veja a resolução comentada deste exercício usando C: ---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- #include <stdio.h> #include <stdlib.h> #include <locale.h> // função recursiva que multiplica os números entre uma faixa int multiplicar(int de, int ate){ // caso base? if(de == ate){ return de; } // efetua mais uma chamada ao método recursivo return de * multiplicar(de + 1, ate); } int main(int argc, char *argv[]){ // variáveis usadas na resolução do problema int res; setlocale(LC_ALL,""); // para acentos do português // vamos obter a multiplicação dos número 1 até 5 (incluindo) res = multiplicar(1, 5); // mostra o resultado printf("O resultado é: %d", res); printf("\n\n"); system("PAUSE"); return 0; } |
Link para compartilhar na Internet ou com seus amigos: |
Python ::: Dicas & Truques ::: Data e Hora |
Como exibir a data atual em Python de acordo com as configurações regionais usando as funções strftime() e setlocale()Quantidade de visualizações: 7406 vezes |
Nesta dica mostrarei como podemos combinar os objeto datetime e locale e as funções today(), strftime() e setlocale() para retornar e exibir a data atual em Python usando as configurações regionais do computador do usuário. Veja o código completo para o exemplo: ---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- from datetime import datetime import locale # função principal do programa def main(): # Configurações do usuário locale.setlocale(locale.LC_ALL, "") # Obtém um datetime da data e hora atual hoje = datetime.today() # Exibe a data atual print("Hoje é {0}".format(hoje.strftime("%x"))) if __name__== "__main__": main() Ao executar este código Python nós teremos o seguinte resultado: Hoje é 04/02/2023 |
MySQL ::: Dicas & Truques ::: Joins (Junções) |
Como usar joins no MySQLQuantidade de visualizações: 10862 vezes |
As junções (joins) são ferramentas presentes na maioria dos bancos de dados que suportam SQL e são usadas quando precisamos recuperar dados de uma ou mais tabelas com base em suas relações lógicas. Desta forma, é possível combinar os registros de tais tabelas de forma a construir um "super-registro", que nos permitirá exibir relatórios mais elaborados. Para o bom entendimento de junções, vamos considerar duas tabelas: filmes e generos. Aqui nós temos uma cardinalidade de 1 x N. Um filme possui um gênero, enquanto um gênero pode abranger vários filmes. Vamos começar criando estas duas tabelas (comece com a tabela generos, já que esta não depende da tabela de filmes): Comando DLL CREATE TABLE para a tabela generos: ---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- CREATE TABLE generos( id INTEGER UNSIGNED NOT NULL AUTO_INCREMENT, nome VARCHAR(45) NOT NULL, PRIMARY KEY(id) ) ENGINE = InnoDB; Veja agora o comando SQL para a criação da tabela de filmes: Comando DLL CREATE TABLE para a tabela filmes: ---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- CREATE TABLE filmes( id INTEGER UNSIGNED NOT NULL AUTO_INCREMENT, titulo VARCHAR(45) NOT NULL, genero INTEGER UNSIGNED NOT NULL, PRIMARY KEY(id), CONSTRAINT fk_filmes_generos FOREIGN KEY fk_filmes_generos(id) REFERENCES generos(id) ON DELETE RESTRICT ON UPDATE RESTRICT ) ENGINE = InnoDB; Veja que a tabela filmes contém uma chave estrangeira referenciando a chave primária da tabela generos. Isso nos permite "atrelar" um filme ao seu gênero. Vá em frente e insira alguns dados em ambas as tabelas. Primeiro cadastre alguns gêneros e em seguida alguns filmes. Vejamos agora a importância dos joins. Observe o resultado de um comando DML SELECT na tabela filmes: ---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- SELECT * FROM filmes; id titulo genero 1 EFEITO BORBOLETA 6 2 O PENTELHO 1 3 VIAGEM MALDITA 3 Nesta query o gênero é retornado como um valor inteiro, ou seja, o valor do campo id da tabela generos. Em muitos casos este não é o comportamento que queremos. Em vez do id do gênero nós gostaríamos de exibir seu nome. Isso pode ser conseguido da seguinte forma: ---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- SELECT filmes.id, filmes.titulo, generos.nome FROM filmes, generos WHERE filmes.genero = generos.id; id titulo genero 1 EFEITO BORBOLETA FICÇÃO 2 O PENTELHO COMÉDIA 3 VIAGEM MALDITA TERROR Nesta query eu usei o nome completo da tabela antes do nome dos campos a serem retornados. Na prática, é comum darmos apelidos às tabelas. Veja: ---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- SELECT f.id, f.titulo, g.nome FROM filmes f, generos g WHERE f.genero = g.id; Neste exemplo, não usamos as palavras-chaves INNER JOIN, LEFT JOIN, RIGHT JOIN, etc. A junção está "escondida" na cláusula SELECT. Esta técnica é conhecida como "junção implícita" ou "implicit join". Veja como o mesmo resultado pode ser obtido usando a junção INNER JOIN: ---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- SELECT f.id, f.titulo, g.nome FROM filmes f INNER JOIN generos g ON f.genero = g.id; Veja minhas outras dicas sobre junções para aprender mais sobre INNER JOIN, LEFT JOIN, RIGHT JOIN, OUTER JOIN, FULL JOIN, etc. |
Delphi ::: Dicas & Truques ::: Strings e Caracteres |
Como converter todo o conteúdo de uma string para letras maiúsculas em Delphi usando a função AnsiUpperCase()Quantidade de visualizações: 16827 vezes |
Algumas vezes precisamos converter todo o conteúdo de uma string para letras maiúsculas. Em Delphi isso pode ser feito com o auxílio da função AnsiUpperCase(). Esta função recebe uma string e retorna outra string com todos os caracteres maiúsculos. Veja o exemplo:---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- procedure TForm1.Button1Click(Sender: TObject); var nome: string; begin nome := 'Osmar'; // vamos converter a string para letras maiúsculas nome := AnsiUpperCase(nome); // exibe o resultado ShowMessage(nome); end; Note que esta função suporta caracteres de mais de um byte e com acentuações. Para questões de compatibilidade, esta dica foi escrita usando Delphi 2009. |
PHP ::: Dicas & Truques ::: Strings e Caracteres |
Como inverter o conteúdo de uma string usando a função strrev() do PHPQuantidade de visualizações: 22548 vezes |
Em algumas situações nós precisamos inverter, ou seja, mostrar de forma contrária o conteúdo de uma palavra, frase ou texto. Para isso podemos usar a função strrev() da linguagem PHP. Ela recebe uma string e a devolve invertida. Veja o código completo para o seu uso: ---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- <html> <head> <title>Estudos PHP</title> </head> <body> <?php $frase = "Gosto de PHP"; echo $frase . "<br>"; echo strrev($frase); ?> </body> </html> Ao executar este código PHP nós teremos o seguinte resultado: Gosto de PHP PHP ed otsoG |
Python ::: Desafios e Lista de Exercícios Resolvidos ::: Recursão (Recursividade) |
Exercícios Resolvidos de Python - Uma função recursiva que conta quantas vezes um valor inteiro k ocorre em um vetor de inteirosQuantidade de visualizações: 227 vezes |
Pergunta/Tarefa: Escreva uma função recursiva em Python que conta quantas vezes um valor inteiro k ocorre em um vetor de 10 inteiros. Sua função deverá ter a seguinte assinatura: # função recursiva que recebe um valor e informa quantas vezes # ele aparece no vetor também informado def quant_repeticoes(indice, valor, vetor): # sua implementação aqui Sua saída deverá ser parecida com: Informe o 1 valor: 2 Informe o 2 valor: 7 Informe o 3 valor: 4 Informe o 4 valor: 7 Informe o 5 valor: 1 Informe o valor a ser pesquisado no vetor: 7 O valor informado se repete 2 vezes. Veja a resolução comentada deste exercício usando Python: ---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- # método principal def main(): # vamos declarar um vetor de 10 inteiros valores = [0 for x in range(5)] # vamos pedir ao usuário que informe os valores do vetor for i in range(len(valores)): valores[i] = int(input("Informe o %d.o valor: " % ((i + 1)))) # agora vamos pedir para informar o valor a ser pesquisado valor = int(input("\nInforme o valor a ser pesquisado no vetor: ")) # e vamos ver a quantidade de repetições repeticoes = quant_repeticoes(0, valor, valores) print("O valor informado se repete {0} vezes.".format(repeticoes)) # função recursiva que recebe um valor e informa quantas vezes # ele aparece no vetor também informado def quant_repeticoes(indice, valor, vetor): if indice == len(vetor) - 1: # caso base...hora de parar a recursividade if vetor[indice] == valor: return 1 # mais um repetição foi encontrada else: # dispara mais uma chamada recursiva if vetor[indice] == valor: # houve mais uma repetição return 1 + quant_repeticoes(indice + 1, valor, vetor) else: return 0 + quant_repeticoes(indice + 1, valor, vetor) # não repetiu return 0 # só para deixar o compilador satisfeito...esta linha nunca é executada if __name__== "__main__": main() |
Mais Desafios de Programação e Exercícios e Algoritmos Resolvidos de Python |
Veja mais Dicas e truques de Python |
Dicas e truques de outras linguagens |
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 |