Você está aqui: C ::: Dicas & Truques ::: Ordenação e Pesquisa (Busca)

C para iniciantes - Como ordenar os elementos de um vetor de inteiros usando a ordenação da bolha (Bubble Sort) na linguagem C

Quantidade de visualizações: 9322 vezes
O método ou algorítmo de ordenação da bolha é uma das técnicas mais simples de ordenação. No entanto, este método não é eficiente, visto que o tempo despendido para sua execução é muito elevado se comparado à outros métodos existentes. Geralmente usamos este método quando queremos ordenar 50 elementos ou menos.

O entendimento deste método é fácil. Se estivermos ordenandos os valores do menor para o maior, o método da bolha percorre os elementos do vetor (array), comparando e movendo o menor valor para a primeira posição do vetor, tal qual bolhas indo para a superfície. Veja um exemplo completo:

----------------------------------------------------------------------
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>

void bubble_sort(int matriz[], int tam){
  int temp, i, j;

  for(i = 0; i < tam; i++){
    for(j = 0; j < tam; j++){
      if(matriz[i] < matriz[j]){
        temp = matriz[i];
        matriz[i] = matriz[j];
        matriz[j] = temp;
      }
    }
  }
}

int main(int argc, char *argv[])
{
  int valores[] = {4, 6, 2, 8, 1, 9, 3, 0, 11};
  int i, tamanho = 9;

  // imprime a matriz sem a ordenação
  for(i = 0; i < 9; i++){
    printf("%d ", valores[i]);
  }

  // vamos ordenar a matriz
  bubble_sort(valores, tamanho);

  // imprime a matriz ordenada
  puts("\n");
  for(i = 0; i < 9; i++){
    printf("%d ", valores[i]);
  }

  puts("\n");
  system("pause");
  return 0;
}

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

Sem ordenação:
4, 6, 2, 8, 1, 9, 3, 0, 11

Ordenados:
0, 1, 2, 3, 4, 6, 8, 9, 11

Link para compartilhar na Internet ou com seus amigos:

VB.NET ::: Dicas & Truques ::: Strings e Caracteres

Como inverter uma string em VB.NET usando a função StrReverse()

Quantidade de visualizações: 10539 vezes
Em algumas situações nós precisamos inverter a ordem dos caracteres de uma palavra, frase ou texto em VB.NET. Para isso nós podemos usar a função StrReverse().

Veja um exemplo completo de seu uso:

----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------

Imports System

Module Program
  Sub Main(args As String())
    Dim frase As String = "Gosto de VB.NET"

    ' vamos mostrar a frase original
    Console.WriteLine("A frase original é: " & frase)

    ' vamos inverter a string
    frase = StrReverse(frase)

    ' mostramos a frase invertida
    Console.WriteLine("A frase invertida é: " & frase)

    Console.WriteLine(vbCrLf & "Pressione qualquer tecla para sair...")
    ' pausa o programa
    Console.ReadKey()
  End Sub
End Module

Ao executar este código VB.NET nós teremos o seguinte resultado:

A frase original é: Gosto de VB.NET
A frase invertida é: TEN.BV ed otsoG


VisuAlg ::: Desafios e Lista de Exercícios Resolvidos ::: Estruturas de Controle

Exercícios Resolvidos de VisuAlg - Ler os lados de um triângulo e informar se ele é isósceles, escaleno ou equilátero

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

Um triângulo é uma forma geométrica (polígono) composta de três lados, sendo que cada lado é menor que a soma dos outros dois lados. Assim, para que um triângulo seja válido, é preciso que seus lados A, B e C obedeçam à seguinte regra:

A < (B + C), B < (A + C) e C < (A + B).

Escreva um programa VisuAlg que leia os três lados de um triângulo e verifique se tais valores realmente formam um triângulo. Se o teste for satisfatório, informe se o triângulo é isósceles (dois lados iguais e um diferente), escaleno (todos os lados diferentes) ou equilátero (todos os lados iguais).

Sua saída deverá ser parecida com:

Informe o primeiro lado do triângulo: 30
Informe o segundo lado do triângulo: 40
Informe o terceiro lado do triângulo: 60
O triângulo é escaleno
Resposta/Solução:

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

----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------

algoritmo "Testar o tipo de um triângulo em VisuAlg"

var
  // variáveis usadas na resolução do problema
  lado_a, lado_b, lado_c: inteiro

inicio
  // vamos ler o primeiro lado do triângulo
  escreva("Informe o primeiro lado do triângulo: ")
  leia(lado_a)

  // vamos ler o segundo lado do triângulo
  escreva("Informe o segundo lado do triângulo: ")
  leia(lado_b)

  // vamos ler o terceiro lado do triângulo
  escreva("Informe o terceiro lado do triângulo: ")
  leia(lado_c)

  // os lados informados formam um triângulo?
  se ((lado_a < (lado_b + lado_c)) e (lado_b < (lado_a + lado_c)) e 
    (lado_c < (lado_a + lado_b))) entao
    // é um triângulo equilátero (todos os lados iguais)?
    se ((lado_a = lado_b) e (lado_b = lado_c)) entao
      escreval("O triângulo é equilátero")
    senao
      // é isósceles (dois lados iguais e um diferente)?
      se ((lado_a = lado_b) ou (lado_a = lado_c) ou (lado_c = lado_b)) entao
        escreval("O triângulo é isósceles")
      senao
        // é escaleno
        escreval("O triângulo é escaleno")
      fimse
    fimse
  senao
    escreval("Os lados informados não formam um triângulo.")
  fimse

fimalgoritmo



C# ::: Dicas & Truques ::: Data e Hora

Como calcular os dias restantes para uma data em C# usando um objeto TimeSpan

Quantidade de visualizações: 9054 vezes
Em algumas ocasiões precisamos saber a quantidade de dias restantes para uma determinada data no futuro em C# (próximo Natal, próxima Páscoa, vencimento de uma duplicata, etc). O trecho de código abaixo mostra como isso pode ser feito. Veja que usamos o construtor da estrutura DateTime para construir a data no futuro e então subtraímos desta a data atual. Em seguida obtemos a quantidade de dias do TimeSpan resultante:

----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------

static void Main(string[] args){
  // vamos obter a quantidade de dias restantes para o Natal de
  // 2009
  DateTime data_futura = new DateTime(2009, 12, 25);  // 25/12/2009
  DateTime hoje = DateTime.Now;

  // obtém a quantidade de dias restantes
  TimeSpan dif = data_futura.Subtract(hoje);
  int restantes = dif.Days + 1; // dia de hoje na contagem

  // exibe o resultado
  System.Console.WriteLine("Faltam " + restantes + " dias para " +
    "o Natal de 2009");

  // pausa o programa
  Console.ReadKey();
}



Java ::: Desafios e Lista de Exercícios Resolvidos ::: Laços

Exercícios Resolvidos de Laços em Java - Escreva um programa (algorítmo) Java que usa o laço do...while para ler um número indeterminado de idades. A condição de parada do laço é o valor da idade igual a 0

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

Escreva um programa (algorítmo) Java que usa o laço do...while para ler um número indeterminado de idades de algumas pessoas. A condição de parada do laço é o valor da idade igual a 0. Calcule a escreva a idade média deste grupo de pessoas.

Sua saída deverá ser parecida com:

Informe a idade: 19
Informe a idade: 30
Informe a idade: 21
Informe a idade: 45
Informe a idade: 0
A idade média é: 28.75
Resposta/Solução:

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

----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------

package exercicios;

import java.util.Scanner;

public class Exercicios {
  public static void main(String[] args) {
    // vamos efetuar a leitura usando a classe Scanner
    Scanner entrada = new Scanner(System.in);
      
    int idade; // guarda a idade lida de cada indivíduo
    double idade_media; // a idade média calculada
    int soma = 0; // a soma das idades de cada indivíduo
    int contador = 0; // conta as idades lidas
    
    // laço do...while que repetirá até que o valor da idade seja 0
    do{
      System.out.print("Informe a idade: ");
      idade = Integer.parseInt(entrada.nextLine());
      
      // a idade lida é diferente de 0?
      if(idade != 0){
        soma = soma + idade; // soma mais esta idade
        contador++; // aumenta a quantidade de idades lidas
      }
    }while(idade != 0);
    
    // calcula a idade média
    // note que forcei contador para o tipo double antes da divisão
    // isso faz com que o resultado seja do tipo double
    idade_media = soma / (contador * 1.0);
    
    // finalmente mostramos o resultado
    System.out.println("A idade média é: " + idade_media);
  }
}



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 1

Quantidade de visualizações: 6651 vezes
Uma das maiores dificuldades de quem está aprendendo a desenvolver aplicações em Laravel é encontrar livros e tutoriais realmente direcionados para os iniciantes. A documentação do framework Laravel é muito consistente e apurada, mas não nos oferece um caminho progressivo para desenvolver do zero uma aplicação que vai de encontro ao anseio daqueles que querem desenvolver códigos Laravel com conexão à banco de dados, principalmente com o MySQL (ou MariaDB).

Nesta série de tutoriais eu mostrarei como criar um CRUD completo em Laravel e MySQL, usando o XAMPP (PHP, MySQL e Apache Web Server). CRUD é uma abreviação para CREATE, READ, UPDADE e DELETE, ou seja, as quatro operações que comumente usamos em cadastros de clientes, produtos, etc.

Então, sem mais atrasos, vamos colocar a mão na massa. Comece verificando se você já tem o Laravel instalado. Caso não tenha, aqui mesmo no site você encontrará instruções para fazer a instalação. Certifique-se também de que o seu XAMPP esteja instalado e funcionando corretamente.

Criando a aplicação Laravel

Para começar, vamos criar a aplicação. Daremos a ela o nome de biblioteca e faremos o cadastro de alguns livros. Abra uma janela de prompt e dispare os comandos abaixo:

C:\Users\Osmar>cd C:\xampp\htdocs
C:\xampp\htdocs>composer create-project --prefer-dist laravel/laravel biblioteca

Aguarde um pouco até que a aplicação seja criada e as dependências sejam instaladas. Vá pegar um cafezinho e, quando voltar, verifique se tudo correu bem e vamos progredir.

Hora de criar a base de dados no MySQL

Depois de criada a aplicação Laravel, vamos até o banco MySQL criar a nossa base de dados. Daremos a ela o nome de biblioteca. Você pode criar a base de dados usando o phpMyAdmin, a linha de comando ou sua ferramenta GUI favorita. O passo seguinte é configurar os parâmetros de conexão essa base de dados. Para isso, abra o arquivo .env na raiz do projeto e localize as linhas abaixo (caso não saiba como abrir o arquivo .env, use a opção File -> Open File do Visual Code da Microsoft):

----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------

DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=laravel
DB_USERNAME=root
DB_PASSWORD=

Encontrou as linhas mencionadas? Agora altere-as para as definições abaixo:

----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------

DB_CONNECTION=mysql
DB_HOST=localhost
DB_PORT=3306
DB_DATABASE=biblioteca
DB_USERNAME=root
DB_PASSWORD=osmar1234

É claro que os parâmetros de conexão Laravel + MySQL podem variar do meu exemplo para o seu.

Vamos criar a migração (migration) - Mais café, por favor

Com a base de dados MySQL já criada, vamos criar agora uma tabela chamada livros. Em uma janela de terminal, dispare os comandos abaixo:

C:\xampp\htdocs>cd C:\xampp\htdocs\biblioteca

C:\xampp\htdocs\biblioteca>php artisan make:migration criar_tabela_livros --create=livros
Created Migration: 2021_01_29_141019_criar_tabela_livros

Se tudo correu bem, abra o diretório C:\xampp\htdocs\biblioteca\database\migrations e verá um arquivo chamado 2021_01_29_141019_criar_tabela_livros.php. Abra-o e teremos 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\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;

class CriarTabelaLivros extends Migration
{
  /**
   * Run the migrations.
   *
   * @return void
  */
  public function up()
  {
    Schema::create('livros', function (Blueprint $table) {
      $table->id();
      $table->timestamps();
    });
  }

  /**
   * Reverse the migrations.
   *
   * @return void
  */
  public function down()
  {
    Schema::dropIfExists('livros');
  }
}
?>

Note que temos uma classe chamada CriarTabelaLivros que extende Migration e, dentro dessa classe, foram criados dois métodos: up(), que permite criar a tabela livros e down(), que permite excluí-la.

Vamos alterar o método up() para a seguinte versão:

----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------

public function up()
{
  Schema::create('livros', function (Blueprint $table) {
    $table->increments('id');
    $table->string('titulo');
    $table->string('autor');
    $table->integer('paginas');
    $table->timestamps();
  });
}


Veja que nossa tabela livros será composta de quatro campos: id (chave primária auto-incremento), titulo (varchar), autor (varchar) e paginas (int). O Laravel incluirá dois outros campos: created_at e updated_at para podemos registrar data e hora da criação e alteração dos registros individuais.

Vamos fazer a migração agora?

Agora que já temos a base de dados MySQL criada, configuramos os parâmetros de conexão no arquivo .env e criamos o arquivo de migração, o passo seguinte é rodar a migração. Para isso abra uma janela de terminal e digite o comando a seguir:

C:\xampp\htdocs\biblioteca>php artisan migrate
Migrating: 2021_01_29_141019_criar_tabela_livros
Migrated: 2021_01_29_141019_criar_tabela_livros (63.66ms)

Se olharmos na base de dados agora, veremos que a tabela livros foi devidamente criada. Confira os campos atentamente e faça as alterações que julgar necessárias.

Na parte 2 deste tutorial de CRUD usando Laravel + MySQL, veremos como criar a rota de direcionamento das ações CRUD, o controlador (controller), o model (model) e as views (visões). Até lá e bons estudos.

Leia a parte 2 aqui: Como criar um CRUD completo em Laravel 8 - CRUD em Laravel usando PHP e MySQL (MariaDB) - Parte 2


Veja mais Dicas e truques de Laravel

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á 64 usuários muito felizes estudando em nosso site.