Você está aqui: Java ::: Desafios e Lista de Exercícios Resolvidos ::: Estruturas de Dados - Listas Ligadas |
Como inserir um nó em qualquer posição de uma lista ligada em Java - Escreva um programa Java que cria uma lista dinamicamente encadeada - Desafio de Programação Resolvido em JavaQuantidade de visualizações: 491 vezes |
Pergunta/Tarefa: Escreva um programa Java que cria uma lista dinamicamente encadeada (lista singularmente encadeada) e pede para o usuário inserir 5 elementos do tipo inteiro. Em seguida peça para o usuário informar um índice e um novo elemento e insira tal elemento no índice informado. Faça a validação dos índices para que ele não saia da faixa permitida. Sua saída deve ser parecida com: Inserindo 5 valores na lista Informe o 1.o valor: 8 Informe o 2.o valor: 2 Informe o 3.o valor: 4 Informe o 4.o valor: 7 Informe o 5.o valor: 3 Valores na lista: 8 -> 2 -> 4 -> 7 -> 3 -> null Inserindo um elemento no índice k Informe o índice desejado: 2 Informe o valor do nó: 9 Valores na lista: 8 -> 2 -> 9 -> 4 -> 7 -> 3 -> null Na saída podemos ver que o índice 2 corresponde ao terceiro elemento da lista ligada. Por isso o valor 4 foi empurrado para a frente para abrir espaço para o valor 9. Se o índice 0 fosse informado, o número 8 seria empurrado para a frente e o nó com valor 9 passaria a ser o início da lista ligada. Veja a resolução comentada deste exercício usando Java: |
![]() |
Python ::: Dicas & Truques ::: Formatação de datas, strings e números |
Como formatar inteiros com uma determinada quantidade de zeros à esquerda usando PythonQuantidade de visualizações: 10908 vezes |
Nesta dica eu mostro como formatar um valor inteiro com uma determinada quantidade de zeros à sua esquerda. Note que aqui eu estou combinando a função print() com o operador de módulo (%) para indicar os valores que serão formatados. Esta técnica foi muito usada na época do Python 2.5 e ainda está disponível no Python 3.0 (e creio que deverá continuar por muito tempo ainda). Veja o trecho de código completo: ---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- # função principal do programa def main(): valor1 = 343 valor2 = 3 # exibirá 000342 print("O valor é %06d" % (valor1)) # exibirá 0342 e 00000003 print("Os valor sao %04d e %08d" % (valor1, valor2)) if __name__== "__main__": main() Ao executar este código Python nós teremos o seguinte resultado: O valor é 000343 Os valor são 0343 e 00000003 |
Delphi ::: Dicas & Truques ::: Data e Hora |
Como adicionar ou subtrair dias de uma data em Delphi usando a função IncDay()Quantidade de visualizações: 24553 vezes |
Em algumas situações precisamos adicionar ou subtrair dias de uma determinada data. Em Delphi isso pode ser feito com o auxílio da função IncDay() da unit DateUtils. Este função aceita um TDateTime e a quantidade de dias que queremos acrescentar ao TDateTime fornecido como argumento. O retorno será um novo TDateTime com a quantidade de dias acrescida. Veja um trecho de código no qual adicionamos 4 dias à data atual: ---------------------------------------------------------------------- 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 hoje: TDateTime; begin // não esqueça de adicionar DateUtils ao seus uses // vamos obter a data de hoje hoje := Now; // vamos exibir a data de hoje ShowMessage('Hoje é: ' + DateToStr(hoje)); // vamos adicionar 4 dias à data de hoje hoje := IncDay(hoje, 4); // vamos exibir o resultado ShowMessage('Daqui a 4 dias será: ' + DateToStr(hoje)); end; É possível também usar a função IncDay() para substrair dias de uma data. Para isso só precisamos fornecer uma quantidade negativa de dias. Veja: ---------------------------------------------------------------------- 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 hoje: TDateTime; begin // não esqueça de adicionar DateUtils ao seus uses // vamos obter a data de hoje hoje := Now; // vamos exibir a data de hoje ShowMessage('Hoje é: ' + DateToStr(hoje)); // vamos subtrair 5 dias da data de hoje hoje := IncDay(hoje, -5); // vamos exibir o resultado ShowMessage('Há 5 dias era: ' + DateToStr(hoje)); end; O valor padrão para o segundo argumento de IncDay() é 1. Para fins de compatibilidade, esta dica foi escrita usando Delphi 2009. |
CSS ::: Dicas & Truques ::: Barras de Navegação, Menus e Dropdowns |
Como criar uma barra de navegação horizontal com menu dropdown em HTML e CSS - Menu suspenso usando CSSQuantidade de visualizações: 610 vezes |
Nesta dica mostrarei como podemos usar uma combinação de várias propriedades CSS para criar um menu suspenso, ou seja, uma barra de navegação contendo links normais e também links que, ao passar o mouse, exibe uma lista de sub-menus. O código apresentado neste exemplo é muito útil para estudantes de HTML e CSS, pois apresenta várias propriedades interessantes para melhorar o visual e a usabilidade de suas páginas web. Entre as propriedades CSS usadas na criação deste menu suspenso nós podemos citar overflow, margin, padding, list-style-type, background-color, display, float, text-align, text-decoration, position, min-width e z-index. Note que coloquei o mínimo de código para fazer a barra de menus funcional. Fique à vontade para acrescentar as formatações que você achar interessante. Veja a página HTML e CSS para o exemplo: ---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- <!doctype html> <html> <head> <title>Estudos CSS</title> <style> /* estiliza o elemento <ul> */ ul{ background-color: #e0e0e0; margin: 0; padding: 0; overflow: hidden; list-style-type: none; } /* aplica estilo aos elementos <li> */ li{ float: left; } /* aplica estilo aos links e <li> do sub-menu */ li a, .dropdown_linguagens{ display: inline-block; text-align: center; padding: 10px 15px; text-decoration: none; } /* define o display do <li> de linguagens */ li.linguagens{ display: inline-block; } /* aplica estilo ao menu de linguagens */ .menus_linguagens{ display: none; position: absolute; background-color: #eceff1; min-width: 160px; z-index: 1; } /* aplica estilo aos links do sub-menu */ .menus_linguagens a { padding: 10px 15px; text-decoration: none; display: block; text-align: left; } /* exibe o sub-menu ao passar o mouse */ .linguagens:hover .menus_linguagens{ display: block; } /* aplica uma cor diferente aos menus ao passar o mouse */ .menus_linguagens a:hover{ background-color: #cfd8dc; } </style> </head> <body> <h1>Exemplo de Barra de Navegação com Menu Dropdown</h1> <ul> <li><a href="index.php">Inicial</a></li> <li class="linguagens"> <a href="javascript:void(0)" class="dropdown_linguagens"> Linguagens</a> <div class="menus_linguagens"> <a href="java.php">Java</a> <a href="python.php">Python</a> <a href="ruby.php">Ruby</a> <a href="delphi.php">Delphi</a> </div> </li> </ul> </body> </html> |
Laravel ::: Artigos e Tutorias ::: CRUD - CREATE, READ, UPDATE, DELETE |
Como criar um CRUD completo em Laravel 8 - CRUD em Laravel usando PHP e MySQL (MariaDB) - Parte 2Quantidade de visualizações: 2653 vezes |
Na parte 1 deste tutorial sobre CRUD em Laravel usando PHP e MySQL (MariaDB) nós criamos a base de dados MySQL para a nossa aplicação biblioteca, criamos a aplicação Laravel, fizemos a migração e rodamos a migração, o que resultou na criação de uma tabela MySQL chamada livros. Nessa segunda parte nós vamos iniciar criando a rota de redirecionamento das ações do CRUD. Vamos criar também o controller e as primeiras views. Criando a rota de redirecionamento - routes/web.php Vá até o diretório C:\xampp\htdocs\biblioteca\routes e abra o arquivo web.php. Você verá que ele possui o seguinte conteúdo: ---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- <?php use Illuminate\Support\Facades\Route; /* |-------------------------------------- | Web Routes |-------------------------------------- | | Here is where you can register web routes | for your application. These routes are loaded | by the RouteServiceProvider within a group | which contains the "web" middleware group. | Now create something great! | */ Route::get('/', function () { return view('welcome'); }); ?> Vamos alterar o seu conteúdo para a versão abaixo: ---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- <?php use Illuminate\Support\Facades\Route; use App\Http\Controllers\LivroController; Route::resource('livros', LivroController::class); ?> Veja que criamos uma rota para um recurso, que neste caso será o controller LivroController. Passamos o nome livros para esta rota, de forma que a URL http://localhost/biblioteca/public/livros/create abrirá a view para cadastrar um novo livro. Hora de criar o controller e o model - a parte controle e modelo do MVC Com a rota de direcionamento devidamente criada, vamos partir para o controller. Abra uma janela de terminal e digite o comando abaixo: C:\xampp\htdocs\biblioteca>php artisan make:controller LivroController --resource --model=Livro O Artisan nos perguntará se queremos criar o modelo também. Informe "yes" e pressione Enter. A App\Models\Livro model does not exist. Do you want to generate it? (yes/no) [yes]: > yes Se tudo correr bem, você verá a seguinte mensagem: Model created successfully. Controller created successfully. Vá até o diretório C:\xampp\htdocs\biblioteca\app\Http\Controllers e localize o arquivo LivroController.php. Abra-o e note que temos os métodos index(), create(), store(), show(), edit(), update() e destroy(). Cada um destes métodos corresponde a uma ação que podemos executar na tabela de livros. Vamos começar com o método create(). Limpe todo o conteúdo deste controller e deixe apenas o código abaixo: ---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- <?php namespace App\Http\Controllers; use App\Models\Livro; use Illuminate\Http\Request; class LivroController extends Controller{ // mostra a view para cadastrar um novo livro public function create(){ return view('livros.create'); } } ?> O método create() apenas exibirá a página (view) que nos permitirá cadastrar um novo livro. Porém, antes de criar a primeira view, vá no diretório C:\xampp\htdocs\biblioteca\app\Models, localize e abra o arquivo Livro.php. Vamos modificá-lo para o código abaixo: ---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- <?php namespace App\Models; use Illuminate\Database\Eloquent\Factories\HasFactory; use Illuminate\Database\Eloquent\Model; class Livro extends Model{ use HasFactory; protected $fillable = [ 'titulo', 'autor', 'paginas' ]; } ?> Veja que informamos, no model Livro, os campos da tabela que serão preenchidos com as nossas informações. Os campos id, created_at e updated_at serão gerenciados pelo Laravel. A view para cadastrar um novo livro Chegou o grande momento. Vamos criar a página que nos permitirá cadastrar os livros. Para manter as coisas simples, escreveremos um view bem simples, sem muita formatação. Mas você poderá deixá-la mais bonita mais tarde. O importante aqui é entender a funcionalidade. Veja o código completo para a view create.blade.php: ---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- <html> <head> <meta charset="utf-8"> <title>Biblioteca</title> </head> <body> <h1>Novo Livro</h1> @if($status = Session::get('mensagem')) <h2>{{ $status }}</h2> @endif @if($errors->any()) <h2>Houve alguns erros ao processar o formulário</h2> <ul> @foreach($errors->all() as $error) <li>{{ $error }}</li> @endforeach </ul> @endif <form action="{{ route('livros.store') }}" method="post"> @csrf <table width="200" border="0" cellspacing="3" cellpadding="3"> <tr> <td>Título:</td> <td><input type="text" name="titulo" id="titulo" placeholder="Título"></td> </tr> <tr> <td>Autor:</td> <td><input type="text" name="autor" id="autor" placeholder="Autor"></td> </tr> <tr> <td>Páginas</td> <td><input type="text" size="10" name="paginas" id="paginas" placeholder="Quant. Páginas"></td> </tr> <tr> <td> </td> <td><button type="submit">Gravar</button></td> </tr> </table> </form> </body> </html> Aqui nós criamos um formulário com a action apontando para {{route('livros.store')}}, e a forma de envio é POST. Temos também três elementos HTML do tipo input text, cada um com a propriedade name contendo o mesmo nome do campo na tabela livros. Salve esta view no diretório C:\xampp\htdocs\biblioteca\resources\views\livros. Agora abra o seu navegador no endereço http://localhost/biblioteca/public/livros/create e teremos o seguinte resultado: ![]() Agora só precisamos obter as informações do formulário e salvá-las no banco de dados. Gravando o novo livro na tabela do banco de dados Vamos ver agora como obter os dados do formulário, passá-los para o controller, instanciar o model e finalmente persistir no banco de dados MySQL. Você viu que os dados do form são enviados para o método store() do controller livros. Assim, abra o LivroController.php e adicione o código abaixo: ---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- <?php namespace App\Http\Controllers; use App\Models\Livro; use Illuminate\Http\Request; class LivroController extends Controller{ // mostra a view para cadastrar um novo livro public function create(){ return view('livros.create'); } // recebe as informações do formulário e as grava // no banco de dados public function store(Request $request){ // valida o formulário $request->validate([ 'titulo' => 'required', 'autor' => 'required', 'paginas' => 'required']); // obtém os valores do form Livro::create($request->all()); // direciona para página cadastro novamente, // com uma mensagem de sucesso return redirect()->route('livros.create') ->with('mensagem', 'Livro salvo com sucesso.'); } } ?> Pronto! A parte CREATE do CRUD já está completa. Experimente cadastrar um novo livro e veja o resultado na tabela do banco de dados. Observe que temos também a validação dos dados do formulário (mensagens indicando quais campos não foram preenchidos) e também uma mensagem de sucesso indicando que os dados foram gravados com sucesso. Na parte 3 deste tutorial veremos como listar os livros cadastrados e a opção de excluir e editar os livros. Até lá. Leia a parte 3 aqui: Como criar um CRUD completo em Laravel 8 - CRUD em Laravel usando PHP e MySQL (MariaDB) - Parte 3 |
Python ::: Desafios e Lista de Exercícios Resolvidos ::: Arrays e Matrix (Vetores e Matrizes) |
Exercício Resolvido de Python - Escreva um programa Python que leia os elementos de um vetor A de dez elementos inteiros e construa outro vetor BQuantidade de visualizações: 213 vezes |
Pergunta/Tarefa: Escreva um programa Python que leia os elementos de um vetor A de dez elementos inteiros e construa outro vetor B com seus elementos distribuídos da seguinte forma: Vetor A = [8, 5, 4, 1, 2, 3, 4, 6, 9, 7] Vetor B = [24, 10, 12, 2, 6, 6, 12, 12, 27, 14] Note que os elementos do vetor B seguem um padrão. Se o elemento do vetor A estiver em uma posição par, então o elemento do vetor B será o triplo do elemento do vetor A. Caso contrário o elemento do vetor B será o dobro do elemento do vetor A. Neste exercício a primeira posição/índice dos vetores é assumida como sendo zero. Em algumas linguagens de programação o primeiro índice é um e não zero. Sua saída deverá ser parecida com: Informe o valor do 1.o elemento: 8 Informe o valor do 2.o elemento: 5 Informe o valor do 3.o elemento: 4 Informe o valor do 4.o elemento: 1 Informe o valor do 5.o elemento: 2 Informe o valor do 6.o elemento: 3 Informe o valor do 7.o elemento: 4 Informe o valor do 8.o elemento: 6 Informe o valor do 9.o elemento: 9 Informe o valor do 10.o elemento: 7 Elementos do vetor A: 8, 5, 4, 1, 2, 3, 4, 6, 9, 7 Elementos do vetor B: 24, 10, 12, 2, 6, 6, 12, 12, 27, 14 Veja a resolução comentada deste exercício em Python: ---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- # função principal do programa def main(): # vamos declarar e construir dois vetores de 10 inteiros vetor_a = [0 for x in range(10)] vetor_b = [0 for x in range(10)] # agora vamos pedir para o usuário informar os valores # dos elementos do vetor A for i in range(len(vetor_a)): vetor_a[i] = int(input("Valor do %d.o elemento: " % ((i + 1)))) # vamos construir o vetor B for i in range(len(vetor_b)): # o índice atual é par? if i % 2 == 0: vetor_b[i] = vetor_a[i] * 3 else: vetor_b[i] = vetor_a[i] * 2 # vamos mostrar os elementos do vetor A print("\nElementos do vetor A:\n") for i in range(len(vetor_a)): print("%d, " % vetor_a[i], end=' ') # vamos mostrar os elementos do vetor B print("\n\nElementos do vetor B:\n") for i in range(len(vetor_b)): print("%d, " % vetor_b[i], end=' ') 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 |
Quem Somos |
![]() Entre em contato comigo para, juntos, vermos em que posso contribuir para resolver ou agilizar o desenvolvimento de seus códigos.
|
![]() 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 |
Códigos Fonte |
![]() 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 |
![]() 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 |