Skip to content

Instantly share code, notes, and snippets.

@HenriqueMitsuo
Last active June 23, 2020 00:21
Show Gist options
  • Save HenriqueMitsuo/2b40575e3e2093d755b9c54265d2cd43 to your computer and use it in GitHub Desktop.
Save HenriqueMitsuo/2b40575e3e2093d755b9c54265d2cd43 to your computer and use it in GitHub Desktop.
Revisao N2

Exemplos

  • PHP - Insert
  $nomefunc=$_POST['nomefunc'];
  $endereco=$_POST['endereco'];
  $telefone=$_POST[telefone'];         
  $q=mysqli_query($con,"INSERT INTO contatofuncionario(nomefuncionario,enderecofuncionario,telefonefuncionario) VALUES('$nomefunc','$endereco','$telefone')");
  • JAVASCRIPT - Insert 1
    $(document).ready(function() {
      $("#insert").click(function() {
          var idade = $("#ida").val();
          var cidade= $("#cid").val();
          var estado = $("#est").val();
          var dataString = "idade=" +idade+ "&cidade=" +cidade+ "&estado=" +estado+ "&insert=";
  • JAVASCRIPT - Insert 2
    $(document).ready(function() {
      $("#insert").click(function() {
        var nome = $("#nome").val();
        var cargahoraria = $("#cargahoraria").val();
        var qtddisc = $("#qtddisc").val();
        var coord = $("#coord").val();
        var dataString = "nome=" +nome+ "&cargahoraria=" +cargahoraria+ "&qtddisc=" +qtddisc+  "&coord=" +coord+ "&insert=";
        if ($.trim(nome).length > 0 & $.trim(cargahoraria).length > 0 & $.trim(qtddisc).length > 0) {
  • PHP - Select
  $nomep = $_REQUEST['nomepessoa'];
  $data=array();
  q=mysqli_query($con,"SELECT * FROM  dadosCad WHERE nomepessoa='$nomep'");
  while ($row=mysqli_fetch_object($q)){
    $data[]=$row;
  }
  echo json_encode($data);
  • JAVASCRIPT - Select
    $(document).ready(function() {         
      $("#consultar").click(function(){                                         
        var busca= $.trim($("#buscanomealuno").val());
        var url = "http://localhost/aluno/consulta.php?buscaaluno="+busca;

MÉTODO CONSTRUTOR

  • O objetivo destes construtores é permitir que outras classes possam criar objetos a partir da classe de modelagem atual.
  • Construtores não tem retorno e sempre tem o mesmo nome da classe.
  • Exemplo:
  public class Conta{
    private int id;
    private int saldo;
    
    // Método Construtor
    // Default
    public conta(){
      this.id = 0;
      this.saldo = 0;
    }
    
    // Com parametros
    public conta(int id, int saldo){
      this.id = id;
      this.saldo = saldo;
    }
  }
  
  // Uso
  public static void main(String args []){
    Conta c1 = new Conta(); // Construtor default
    Conta c2 = new Conta(22, 2000); // Construtor com parametros
  }

HERANÇA

  • Herança ocorre quando uma classe passa a herdar características (atributos e métodos) definidas em outra classe, especificada como superclasse.
  • A palavra extends permite realizar a herança da classe
  • Exemplo:

Superclasse - Pessoa

  public class Pessoa {
    private String nome;

    public Pessoa(String nome){
      setNome(nome);
    }
    public String getNome() {
      return nome;
    }
    public void setNome(String nome) {
      this.nome = nome;
    }
    
    public void mostrar(){
      System.out.println(getNome());
    }
  }

Classes extend - Pessoa Fisica

  public class PessoaFisica extends Pessoa {
    private String rg;
    
    public PessoaFisica(String nome){
      super(nome);
    }    
    public PessoaFisica(String nome, String rg){
      super(nome);
      setRg(rg);
    }
    public String getRg() {
      return rg;
    }
    public void setRg(String rg) {
      this.rg = rg;
    } 
  
    public void mostrar(){
      super.mostrar();
      System.out.println(getRg());
    }
  }

POLIMORFISMO

  • A ideia geral do polimorfismo é que um objeto de uma determinada classe mais genérica (a superclasse) possa assumir diferentes comportamentos, gerando objetos distintos, dependendo de certas condições.
  • Esse mecanismo de redefinição de métodos entre superclasses e subclasses é conhecido como overriding, diferente do mecanismo de sobrecarga (overloading) de métodos que ocorre em umamesma classe.
  • Exemplo:
public class Imovel {
    private String endereco;
    private int nQuartos;

    public String getEndereco() {
      return endereco;
    }
    public void setEndereco(String endereco) {
      this.endereco = endereco;
    }
    public int getnQuartos() {
      return nQuartos;
    }
    public void setnQuartos(int nQuartos) {
      this.nQuartos = nQuartos;
    }
    
    // MÉTODO QUE "SOFRERA" O '@Override'
    public void Mostrar(){
      System.out.println("Endereço: " + getEndereco());
      System.out.println("Numero de Quartos: " + getnQuartos());
    }
  }
  public class Casa extends Imovel{
    private double metragemQuintal;

    public double getMetragemQuintal() {
      return metragemQuintal;
    }
    public void setMetragemQuintal(double metragemQuintal) {
      this.metragemQuintal = metragemQuintal;
    }

    @Override
    public void Mostrar() {
      System.out.println("CASA:");
      super.Mostrar();
      System.out.println("Metragem Quintal: " + getMetragemQuintal());
    }
  }

SUPER

  • A palavra super permite permite importar atributos ou métodos das classes que está sendo realizado a herança
  • Exemplo:

CLASSE ABSTRATA

  • Não permite a geração de instâncias a partir dela
  • Utilizado para definir uma classe genérica que serve como molde para outras classes, ex: classe abstrata pessoa é utilizado por pessoa fisica e pessoa juridica
  • Utiliza a palavra-chave abstract para definir a classe abstrata
  • Exemplo:
  abstract class Pessoa{
    private String nome;
    private int idade;
    
    ...
  }
  
  public class PessoaFIsica extends Pessoa{ ... }

INTERFACES

  • Permite estebelercer um acordo entre classes
  • Não permite a implementação de métodos, apenas a especificação
  • É obrigátorio a utilização e implementação dos métodos especificados na interface
  • Utiliza as palavras-chave interface e implements
  • Podem ser implementadas mais de uma interface
  • Exemplo:
  public interface Aparelho{
    public void liga();
    public void desligar();
  }
  
  public class Celular implements Aparelho{
    @Override
    public void ligar() {
        System.out.println("Ligar Celular");
    }
    @Override
    public void desligar() {
        System.out.println("Desligar Celular");
    }
  }

BOOTSTRAP

  • Foi projetado e desenvolvido pelo Twitter;
  • É um dos mais populares frameworks front-end do mundo;
  • Bootstrap foi criado em meados de 2010 pelos engenheiros @mdo e @fat;
  • Antes de se tornar open source, era conhecido como Twitter Blueprint;
  • Em 19 de agosto de 2011 foi lançado;
  • Hoje o Bootstrap está na versão 4.
  • Caracteristicas:
    • Mobile First
    • Grid System:
  <div class="container">
    <div class="row">
      <div class="col-md-4"></div>
      <div class="col-md-4"></div>
      <div class="col-md-4"></div>
    </div>
  </div>

XAMPP

  • XAMPP: Apache + MariaDB(MySQL) + PHP + Perl;
  • As páginas em php deverão ser salvas na pasta: *C:\xampp\htdocs*

PHP

  • PHP é um acrônimo recursivo para: PHP: Hypertext Preprocessor;
  • linguagem de script (interpretada);
  • Open source de uso geral;
  • Foco em desenvolvimento para Web;
  • GET:
    • Limite máximo de 3000 caracteres;
    • Os dados são exibidos na URL;
    • Ideial quando será necessário o compartilhamento de páginas;
    • Utiliza a variavel/dicionário $_GET[ ]
  • POST:
    • Não tem limite de tamanho de envio de dados;
    • Dados são enviados por meio de transação;
    • Utiliza a variavel/dicionário $_POST[ ]
  • PDO:
    • PHP Data Object
    • Conexão:
  $conexão = new PDO("mysql:host=localhost;dbname=hero;", "root", "")
  • CRUD
  • CREATE (Insert)
  include "conexao.php";
  $txt_nome = $_POST["txt_nome"];
  $txt_idade = $_POST["txt_idade"];
  $slc_editora = $_POST["slc_editora"];

  $sql = $pdo->prepare("INSERT INTO heroes(nome, idade, codEditora) VALUES(:nome, :idade, :codEditora)");

  $sql->execute(array(
    ":nome" => $txt_nome,
    ":idade" => $txt_idade,
    ":codEditora" => $slc_editora
  ));
  • READ (Select)
  include "conexao.php";
  
  $sql = $pdo->query("SELECT * FROM editora");
  
  while($result = $sql->fetch()){
    echo $result["codEditora"];
    echo $result["nome"]
  }
  • UPDATE (Update)
  include "conexao.php";
  $txt_id = $_POST["txt_id"];
  $txt_nome = $_POST["txt_nome"];

  $sql = $pdo->prepare("UPDATE heroes SET nome = :nome WHERE id = :id");

  $sql->execute(array(
    ":nome" => $txt_nome,
    ":id" => $txt_id
  ));
  • DELETE (Delete)
  include "conexao.php";
  $txt_id = $_POST["txt_id"];

  $sql = $pdo->prepare("DELETE FROM heroes WHERE id = :id");

  $sql->execute(array(
    ":id" => $txt_id
  ));

ORDENAÇÂO

  • Rearranjar os dados em uma determinada ordem
  • A eficiencia da ordenação se da pelo critério de ordem: Alfabético, Crecente, Decrecente, etc...

Algoritmos de ordenação

  • Ferramentas de ordenação
  • Critérios para a escolha
    • Tempo gasto
    • Uso da memória disponível

INSERTIONSORT

  • Utiliza duas subestruturas
    • Uma com elementos já ordenados
    • Outra com elementos ainda por ordenar
  • O número minimo de comparações e movimentos ocorre quando os itens estão originalmente em ordem = ordenado
  • O número máximo de comparações e movimentos ocorre quando os itens estão originalmente em ordem reversa = não ordenado ou na ordem contraria

A ideia da ordenação por inserção é dividir os elementos em duas subestruturas, uma com os elementos já ordenados e outra com elementos ainda por ordenar.

  • Implementação:
  void InsertionSort(int* v, int n) { // n é tamanho do vetor
    int i = 0;
    int j = 1;
    int aux = 0;
    
    while(j < n){
      aux = v[j];
      i = j - 1;
      while((i >= 0) && (v[i] > aux)){ //*
        v[i + 1] = v[i];
        i = i - 1;
      }
      v[i + 1] = aux;
      j = j + 1;
    }
  }

SELECTIONSORT

  • Seleciona o menor elemento e o posiciona o mais a esquerda possivel
  • Recomendado para conjuntos pequenos

A ideia do Selection Sort é a cada passagem pelo vetor, selecionar o menor elemento e colocar este elemento o mais a esquerda possível.

  • Slide:
    • Uma vantagem do Selection sort é que entre os algoritmos de ordenação ele apresenta uma das menores quantidades de movimentos entre os elementos, assim pode haver algum ganho quando se necessita ordenar estruturas complexas.
    • Uma desvantagem é que o número de comparações é igual para um vetor já ordenado ou não.
  • Implementação:
  void SelectionSort(int* v, int n) {
    int i;
    int j;
    int min;//*
    int aux;
    
    for(i = 0; i < (n - 1); i++){
      min = 1;
      for(j = (i + 1); j < n; j++){
        if(v[j] < v[min]){
          min = j;
        }
      }
      
      if(v[i] != v[min]) {//*
        aux = v[i];
        v[i] = v[min];
        v[min] = aux;
      }
    }
  }

BUBBLESORT ou Trocas Sucessivas

  • Método simples de ordenação
  • Posiciona o maior elemento para o fim

Esse processo de flutuar o maior elemento é repetido n vezes.

  • Desempenho depende do tamanho da estrutura
  • Slide:
    • VANTAGEM: Simples de entender e implementar.
    • DESVANTAGEM: O desempenho da sua execução depende do tamanho da estrutura, pois há um número muito grande de movimentação de elementos, assim não deve ser usado se a estrutura a ser ordenada for complexa.
  • Implementação:
  void BubbleSort(int* v, int n) { // n é o tamanho do vetor
    int i;
    int fim;
    int aux;
    
    for(fim = n - 1; fim > 0; --fim) {//*
      for(i = 0; i < fim; ++i) {
        if(v[i] > v[i+1]) {
          aux = v[i];
          v[i] = v[i + 1];
          v[i + 1] = aux;
        }
      }
    }
  }

VETOR & MATRIZ

  • São estruturas
    • Homogênea: armazena somente um tipo de dado
    • Estática: tamanho fixo
  • Vantagens: falacidade de acesso com loops, alocação sequencial(endereços vizinhos)
  • Desvantagens: tamanho fixo, apenas 1 tipo de dado, movimentos nas operações de inserção e remoção

LISTA, PILHA & FILA

  • Lista (Insere e Remove no COMEÇO - MEIO - FIM)
  • Pilha (LIFO - LAST IN FIRST OUT / ULTIMO QUE CHEGA É O PRIMEIRO QUE SAI)
    • PUSH = Inserir/Empilhar
    • POP = Remover/Desempilhar
    • Inserção & Remoção na mesmo extremidade
  • Fila (FIFO - FIRST IN FIRTS OUT / PRIMEIRO QUE ENTRA É O PRIMEIRO QUE SAI)
    • Enqueue = Inserir/Enfileirar
    • Dequeue = Remover/Desinfileirar
    • Inserção & Remoção em extremidades diferentes
  • São estruturas
    • Hetereogêneas: pode armazenar mais de um tipo de dado(struct/registro)
    • Dinâmicas: a alocação de memória é feita conforme a necessidade
  • Vantagens: poder trabalhar com mais de um tipo de dado, melhor utilização da memória
  • Desvantagens: estruras que necessitam de algoritmos mais complexos para a utilização, acesso indireto dos dados

SHELLSORT

MERGESORT

QUICKSORT

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment