Controle de Estoque completo com código fonte em PHP, MySQL, Bootstrap, jQuery - 100% funcional e fácil de modificar e implementar novas funcionalidadesCódigo-Fonte 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
C ::: Dicas & Truques ::: Strings e Caracteres

Como comparar os primeiros n caracteres de duas strings usando a função strncmp() da linguagem C

Quantidade de visualizações: 10450 vezes
Muitas vezes precisar verificar se os primeiros n caracteres de duas strings são iguais. Para isso podemos usar a função strncmp() do header string.h. Esta função aceita dois ponteiros para as strings a serem comparadas e um inteiro especificando a quantidade dos primeiros caracteres que serão comparados. O retorno da função será o valor 0 se os n caracteres comparados forem iguais. Veja o código:

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

int main(int argc, char *argv[]){
  char palavra1[] = "Java";
  char palavra2[] = "JavaScript";

  if(strncmp(palavra1, palavra2, 4) == 0)
    printf("Os primeiros n caracteres sao iguais");
  else
    printf("Os primeiros n caracteres NAO sao iguais");

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

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

Os primeiros n caracteres sao iguais.


C ::: Fundamentos da Linguagem ::: Estruturas de Controle

Como usar o laço while em C - Linguagem C para iniciantes em programação

Quantidade de visualizações: 33512 vezes
O laço while é usado quando queremos que um bloco de instruções seja executado ENQUANTO uma condição for verdadeira (true). Veja um trecho de código exemplificando isso:

 
int valor = 1;

while(valor <= 10){
  printf("%d  ", valor);
  valor++;
}

Este trecho de código exibe os números de 1 à 10 na página. Veja agora o mesmo trecho de código, desta vez contando de 10 à 1:

int valor = 10;

while(valor >= 1){
  printf("%d  ", valor);
  valor--;
}

Lembre-se de que a condição testada em um laço while deve resultar em um valor boolean (true ou false). O trecho de código seguinte deixa isso mais claro:

#include <stdio.h>
#include <stdlib.h>

int main(int argc, char *argv[])
{
  int continuar = 1; // 1 é true em C
  int valor = 1;

  while(continuar){
    printf("%d  ", valor);
    valor++;

    if(valor > 10)
      continuar = 0; // 0 é false em C
  }

  printf("\n\n");
  system("PAUSE");
  return 0;
}

Para finalizar, lembre-se de que um laço while pode nunca ser executado, ou seja, se a condição testada na primeira iteração já resultar false, o fluxo de código é transferido para a primeira instrução após o laço.


JavaScript ::: Dicas & Truques ::: Data e Hora

Como usar o objeto Date em JavaScript - Curso de JavaScript para iniciantes

Quantidade de visualizações: 7419 vezes
O objeto Date é um tipo de dados embutido na linguagem JavaScript. Objetos Date são criados, em sua forma mais simples (construtor sem argumentos), da seguinte forma:

<html>
<head>
<title>Estudos JavaScript</title>
</head>
<body>

<script type="text/javascript">
  // vamos criar um novo objeto Date
  var hoje = new Date();

  // vamos exibir a representação deste objeto Date
  document.write("Data e hora atual: " + hoje);
</script>

</body>
</html>

Ao executarmos este código teremos um resultado parecido com:

Data e hora atual: Fri Mar 18 10:02:02 UTC-0300 2011

Note que a representação textual de um objeto Date é a data atual no formato curto (em inglês), as horas e a diferença em relação ao horário UTC (Universal Time Coordinated, sucessor do GMT - Greenwich Mean Time).

Uma vez criado um objeto Date, podemos usar vários de seus métodos para operar sobre seus valores de datas e horas. A maioria dos métodos serve simplesmente para obter ou definir os valores dos campos ano, mês, dia, horas, minutos, segundos e milisegundos, usando a hora local ou UTC. O método toString() e suas variantes nos permitem converter datas e horas para os formatos comumente exibidos aos usuários. Veja um exemplo:

<script type="text/javascript">
  // vamos criar um novo objeto Date
  var hoje = new Date();

  // vamos exibir a representação deste objeto Date
  document.write("Data e hora atual: " + hoje.toLocaleString());
</script>


Ao executarmos este código teremos um resultado parecido com:

Data e hora atual: sexta-feira, 18 de março de 2011 15:44:07

Aqui nós usamos o método toLocaleString() do objeto Date para exibir a data e hora de acordo com as configurações regionais do computador local. Os métodos getTime() e setTime() obtém ou definem a representação interna do objeto Date como o número de milisegundos decorridos desde a meia-noite do dia 1º de janeiro de 1970 (GMT). Neste formato padrão de milisegundos, a data e hora são representadas por um único inteiro, o que facilita os cálculos envolvendo datas e horas. O padrão ECMAScript exige que o objeto Date seja capaz de representar qualquer data e hora, na precisão de milisegundos, na faixa de 100 milhões de anos antes ou depois de 01/01/1970.


Java ::: Tratamento de Erros ::: Erros de Tempo de Execução

Como tratar o erro IndexOutOfBoundsException do Java - A exceção IndexOutOfBoundsException da linguagem Java

Quantidade de visualizações: 17594 vezes
A exceção IndexOutOfBoundsException é uma exceção (erro) que acontece quando fornecemos um índice fora dos limites permitidos para o acesso de elementos em um vetor, matriz, string ou demais coleções. Lembre-se de que os índices em Java começam em 0 e vão até a quantidade de elementos menos 1.

Antes de vermos os exemplos, observe a posição da classe pública IndexOutOfBoundsException na hierarquia de classes da plataforma Java:

java.lang.Object
  java.lang.Throwable
    java.lang.Exception
      java.lang.RuntimeException
        java.lang.IndexOutOfBoundsException


Esta classe implementa a interface Serializable e possui duas sub-classes conhecidas: ArrayIndexOutOfBoundsException e StringIndexOutOfBoundsException.

Veja um exemplo no qual tentamos acessar um elemento de um vetor usando um índice inválido:

public class Estudos{
  public static void main(String args[]){
    // um array de quatro elementos
    int[] valores = {5, 23, 76, 3};     

    // vamos fornecer um índice inválido
    System.out.println(valores[4]); 

    System.exit(0);
  }
}

Este código compila normalmente. Porém, ao tentarmos executá-lo, temos a seguinte mensagem de erro:

Exception in thread "main" 
java.lang.ArrayIndexOutOfBoundsException: 4
  at Estudos.main(Estudos.java:7)

A forma mais adequada de corrigir este erro é fornecendo um valor de índice que realmente esteja na faixa permitida. Veja agora o mesmo trecho de código usando uma string:

public class Estudos{
  public static void main(String args[]){
    String nome = "Java";     

    // vamos fornecer um índice inválido
    System.out.println(nome.charAt(4)); 

    System.exit(0);
  }
}

Compile este código e execute-o. Você verá a seguinte mensagem de erro:

Exception in thread "main" 
java.lang.StringIndexOutOfBoundsException: String 
index out of range: 4
  at java.lang.String.charAt(Unknown Source)
  at Estudos.main(Estudos.java:6)

Vamos fazer o mesmo usando uma ArrayList:

import java.util.ArrayList;

public class Estudos{
  public static void main(String[] args){
    // cria uma ArrayList que conterá strings
    ArrayList<String> nomes = new ArrayList<String>();
    
    // adiciona itens na lista
    nomes.add("Carlos");
    nomes.add("Maria");
    nomes.add("Fernanda");
    nomes.add("Osmar");    
	
    // fornecemos um índica inválido
    String nome = nomes.get(4);

    System.out.println("O valor obtido foi: " + nome); 

    System.exit(0);
  }
}

Compile, execute e veja a mensagem de erro:

Exception in thread "main" 
java.lang.IndexOutOfBoundsException: Index: 4, 
Size: 4
  at java.util.ArrayList.RangeCheck(Unknown Source)
  at java.util.ArrayList.get(Unknown Source)
  at Estudos.main(Estudos.java:15)

Veja que no caso do vetor, a exceção lançada foi ArrayIndexOutOfBoundsException, no caso da string a exceção foi StringIndexOutOfBoundsException e no caso do ArrayList tivemos IndexOutOfBoundsException. Resolvemos abordar estas três exceções em apenas uma anotação para que você perceba a semelhança entre elas.


MySQL ::: Dicas & Truques ::: Data e Hora

Como adicionar horas, dias, semanas, meses, anos, etc, ao valor de um campo DATE ou DATETIME usando a função DATE_ADD() do MySQL

Quantidade de visualizações: 11368 vezes
A função DATE_ADD() é muito útil quando precisamos adicionar horas, dias, semanas, meses, etc, ao valor de um campo do tipo DATE ou DATETIME. Esta função é composta de três partes:

DATE_ADD(date, INTERVAL expr unit)

O argumento date deve ser do tipo DATE ou DATETIME. O argumento expr indica um número inteiro que indica a quantidade de horas, dias, meses, etc, que será usada como intervalo. O argumento unit indica a unidade a ser usada. Valores possíveis são: HOUR, DAY, WEEK, MONTH, QUARTER, YEAR, etc.

Veja um exemplo no qual adicionamos 15 dias à data atual:

SELECT DATE_ADD(NOW(), INTERVAL 15 DAY)

Suponha que você tenha um campo chamado data_hora_compra do tipo DATETIME e que este campo tenha o valor 2008-03-30 02:30:15. A query:

SELECT DATE_ADD(data_hora_compra, INTERVAL 
2 MONTH) FROM tabela_estudos

retornará 2008-05-30 02:30:15.


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

Exercício Resolvido de Portugol - Como testar se um ano é bissexto em Portugol - Um programa que lê um ano com quatro dígitos e informa se ele é bissexto ou não

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

Chama-se ano bissexto o ano ao qual é acrescentado um dia extra, ficando ele com 366 dias, um dia a mais do que os anos normais de 365 dias, ocorrendo a cada quatro anos (exceto anos múltiplos de 100 que não são múltiplos de 400). Isto é feito com o objetivo de manter o calendário anual ajustado com a translação da Terra e com os eventos sazonais relacionados às estações do ano. O último ano bissexto foi 2012 e o próximo será 2016.

Um ano é bissexto se ele for divisível por 4 mas não por 100, ou se for divisível por 400.

Escreva um programa Portugol que pede ao usuário um ano com quatro dígitos e informa se ele é bissexto ou não.

Sua saída deverá ser parecida com:

Informe o ano: 2024
O ano informado é bissexto.
Resposta/Solução:

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

// Como testar se um ano é bissexto em Portugol
programa {
  funcao inicio() {
    // variáveis usadas na resolução do problema
    inteiro ano

    // vamos solicitar que o usuário informe um ano
    escreva("Informe o ano: ")
    leia(ano)

    // vamos verificar se o ano informado é bissexto
    se (((ano % 4 == 0) e (ano % 100 != 0)) ou (ano % 400 == 0)) {
      escreva("O ano informado é bissexto.")
    }
    senao {
      escreva("O ano informado não é bissexto.")
    }
  }
}



C# ::: Coleções (Collections) ::: ArrayList

Como percorrer os elementos de uma ArrayList do C# usando o laço for

Quantidade de visualizações: 13542 vezes
Este trecho de código mostra como usar o laço da linguagem C# for para percorrer todos os elementos de uma ArrayList de inteiros. Veja como usamos o valor da variável de controle i como índice para o elemento que queremos obter durante uma determinada iteração do laço.

Não se esqueça de importar o namespace System.Collections.

Eis o código completo para o exemplo:

using System;
using System.Collections;

namespace Estudos {
  class Program {
    static void Main(string[] args) {
      // Cria o ArrayList
      ArrayList lista = new ArrayList();

      // Adiciona 5 inteiros
      lista.Add(30);
      lista.Add(2);
      lista.Add(98);
      lista.Add(1);
      lista.Add(9);

      // Percorre os elementos da ArrayList
      // usando o laço for
      for (int i = 0; i < lista.Count; i++) {
        Console.Write("{0} ", lista[i]);
      }

      Console.WriteLine("\n\nPressione uma tecla para sair...");
      Console.ReadKey();
    }
  }
}

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

30 2 98 1 9


QGIS ::: PyQGIS API ::: Shapefiles, Camadas Vetoriais, Dados Vetoriais

Como exibir todos os atributos das feições de uma camada vetorial no QGIS usando getFeatures() e attributes() da PyQGIS API

Quantidade de visualizações: 835 vezes
Nesta dica mostrarei como podemos acessar todos os atributos das feições (features) de uma camada vetorial no QGIS usando getFeatures() e attributes() do objeto QgsVectorLayer da PyQGIS API.

Depois de carregar o shapefile contendo todos os municípios do Estado de Goiás, usei a getFeatures() para retornar um iterador QgsFeatureIterator que nos permite acessar as features individuais da camada.

Então, de posse das feições individuais, nós usamos a função attributes() para retornar o QgsFeature correspondente e exibir seu conteúdo.

Veja o código PyQGIS completo para o exemplo:

# vamos criar um novo objeto QgsVectorLayer com o local do nosso shapefile
camada = QgsVectorLayer("C:\\GO\\GO_Municipios_2022.shp",
  "Municípios Estado de Goiás", "ogr")

# vamos testar se a camada é válida  
if not camada.isValid():
  print("Não foi possível carregar a camada %s" % camada.name())
else:
  # vamos adicionar a camada à relação de camadas  
  QgsProject.instance().addMapLayer(camada)
  
  # vamos obter as feições
  feicoes = camada.getFeatures()
  
  # agora percorremos as feições e obtemos os seus
  # atributos, todos de uma só vez ou individual,
  # como mostro em outras dicas
  for f in feicoes:
    # vamos obter os atributos desta feição
    atributos = f.attributes()
    # e mostramos o resultado
    print(atributos)

Ao rodar esse código PyQGIS no QGIS nós teremos o seguinte resultado:

['5200050', 'Abadia de Goiás', 'GO', 143.357]
['5200100', 'Abadiânia', 'GO', 1044.555]
['5200134', 'Acreúna', 'GO', 1566.742]
['5200159', 'Adelândia', 'GO', 115.385]
['5200175', 'Água Fria de Goiás', 'GO', 2023.636]
['5200209', 'Água Limpa', 'GO', 458.836]
['5200258', 'Águas Lindas de Goiás', 'GO', 191.817]
['5200308', 'Alexânia', 'GO', 846.876]
['5200506', 'Aloândia', 'GO', 102.094]
['5200555', 'Alto Horizonte', 'GO', 500.342]
['5200605', 'Alto Paraíso de Goiás', 'GO', 2594.998]
['5200803', 'Alvorada do Norte', 'GO', 1268.347]
['5200829', 'Amaralina', 'GO', 1343.742]
['5200852', 'Americano do Brasil', 'GO', 133.834]
['5200902', 'Amorinópolis', 'GO', 406.93]
['5201108', 'Anápolis', 'GO', 935.672]
['5201207', 'Anhanguera', 'GO', 55.569]
['5201306', 'Anicuns', 'GO', 976.038]
['5201405', 'Aparecida de Goiânia', 'GO', 279.954]
['5201454', 'Aparecida do Rio Doce', 'GO', 603.254]
['5201504', 'Aporé', 'GO', 2899.237]
['5201603', 'Araçu', 'GO', 149.776]
['5201702', 'Aragarças', 'GO', 661.677]
['5201801', 'Aragoiânia', 'GO', 218.125]
['5202155', 'Araguapaz', 'GO', 2188.1]
['5202353', 'Arenópolis', 'GO', 1075.535]
['5202502', 'Aruanã', 'GO', 3054.773]
['5202601', 'Aurilândia', 'GO', 565.514]
['5202809', 'Avelinópolis', 'GO', 170.228]
['5203104', 'Baliza', 'GO', 1780.173]
['5203203', 'Barro Alto', 'GO', 1080.268]
['5203302', 'Bela Vista de Goiás', 'GO', 1274.034]
['5203401', 'Bom Jardim de Goiás', 'GO', 1901.137]
['5203500', 'Bom Jesus de Goiás', 'GO', 1405.605]
['5203559', 'Bonfinópolis', 'GO', 121.915]
['5203575', 'Bonópolis', 'GO', 1635.319]
['5203609', 'Brazabrantes', 'GO', 125.326]
['5203807', 'Britânia', 'GO', 1458.459]
['5203906', 'Buriti Alegre', 'GO', 901.932]
['5203939', 'Buriti de Goiás', 'GO', 202.576]
['5203962', 'Buritinópolis', 'GO', 246.075]
['5204003', 'Cabeceiras', 'GO', 1126.434]
['5204102', 'Cachoeira Alta', 'GO', 1657.226]
['5204201', 'Cachoeira de Goiás', 'GO', 424.49]
['5204250', 'Cachoeira Dourada', 'GO', 528.281]
['5204300', 'Caçu', 'GO', 2254.34]
['5204409', 'Caiapônia', 'GO', 8627.961]
['5204508', 'Caldas Novas', 'GO', 1608.523]
['5204557', 'Caldazinha', 'GO', 251.72]
['5204607', 'Campestre de Goiás', 'GO', 272.734]
['5204656', 'Campinaçu', 'GO', 1978.386]
['5204706', 'Campinorte', 'GO', 1064.541]
['5204805', 'Campo Alegre de Goiás', 'GO', 2450.111]
['5204854', 'Campo Limpo de Goiás', 'GO', 156.113]
['5204904', 'Campos Belos', 'GO', 735.126]
['5204953', 'Campos Verdes', 'GO', 443.125]
['5205000', 'Carmo do Rio Verde', 'GO', 419.821]
['5205059', 'Castelândia', 'GO', 299.228]
['5205109', 'Catalão', 'GO', 3826.37]
['5205208', 'Caturaí', 'GO', 205.065]
['5205307', 'Cavalcante', 'GO', 6948.78]
['5205406', 'Ceres', 'GO', 213.07]
['5205455', 'Cezarina', 'GO', 417.08]
['5205471', 'Chapadão do Céu', 'GO', 2184.076]
['5205497', 'Cidade Ocidental', 'GO', 389.984]
['5205513', 'Cocalzinho de Goiás', 'GO', 1785.339]
['5205521', 'Colinas do Sul', 'GO', 1707.519]
['5205703', 'Córrego do Ouro', 'GO', 458.077]
['5205802', 'Corumbá de Goiás', 'GO', 1064.833]
['5205901', 'Corumbaíba', 'GO', 1864.277]
['5206206', 'Cristalina', 'GO', 6153.921]
['5206305', 'Cristianópolis', 'GO', 221.624]
['5206404', 'Crixás', 'GO', 4673.039]
['5206503', 'Cromínia', 'GO', 364.918]
['5206602', 'Cumari', 'GO', 568.365]
['5206701', 'Damianópolis', 'GO', 417.625]
['5206800', 'Damolândia', 'GO', 86.057]
['5206909', 'Davinópolis', 'GO', 482.857]
['5207105', 'Diorama', 'GO', 685.382]
['5207253', 'Doverlândia', 'GO', 3227.558]
['5207352', 'Edealina', 'GO', 598.218]
['5207402', 'Edéia', 'GO', 1469.099]
['5207501', 'Estrela do Norte', 'GO', 301.139]
['5207535', 'Faina', 'GO', 1949.685]
['5207600', 'Fazenda Nova', 'GO', 1279.107]
['5207808', 'Firminópolis', 'GO', 422.34]
['5207907', 'Flores de Goiás', 'GO', 3695.106]
['5208004', 'Formosa', 'GO', 5804.292]
['5208103', 'Formoso', 'GO', 843.42]
['5208152', 'Gameleira de Goiás', 'GO', 588.328]
['5208301', 'Divinópolis de Goiás', 'GO', 828.874]
['5208400', 'Goianápolis', 'GO', 166.642]
['5208509', 'Goiandira', 'GO', 569.917]
['5208608', 'Goianésia', 'GO', 1547.319]
['5208707', 'Goiânia', 'GO', 729.296]
['5208806', 'Goianira', 'GO', 213.772]
['5208905', 'Goiás', 'GO', 3108.423]
['5209101', 'Goiatuba', 'GO', 2479.591]
['5209150', 'Gouvelândia', 'GO', 827.373]
['5209200', 'Guapó', 'GO', 514.178]
['5209291', 'Guaraíta', 'GO', 205.533]
['5209408', 'Guarani de Goiás', 'GO', 1221.054]
['5209457', 'Guarinos', 'GO', 593.188]
['5209606', 'Heitoraí', 'GO', 228.615]
['5209705', 'Hidrolândia', 'GO', 952.122]
['5209804', 'Hidrolina', 'GO', 583.756]
['5209903', 'Iaciara', 'GO', 1547.183]
['5209937', 'Inaciolândia', 'GO', 689.201]
['5209952', 'Indiara', 'GO', 955.419]
['5210000', 'Inhumas', 'GO', 614.887]
['5210109', 'Ipameri', 'GO', 4382.863]
['5210158', 'Ipiranga de Goiás', 'GO', 244.209]
['5210208', 'Iporá', 'GO', 1027.249]
['5210307', 'Israelândia', 'GO', 579.19]
['5210406', 'Itaberaí', 'GO', 1461.916]
['5210562', 'Itaguari', 'GO', 142.652]
['5210604', 'Itaguaru', 'GO', 241.029]
['5210802', 'Itajá', 'GO', 2082.736]
['5210901', 'Itapaci', 'GO', 952.998]
['5211008', 'Itapirapuã', 'GO', 2047.874]
['5211206', 'Itapuranga', 'GO', 1281.404]
['5211305', 'Itarumã', 'GO', 3437.367]
['5211404', 'Itauçu', 'GO', 383.066]
['5211503', 'Itumbiara', 'GO', 2447.014]
['5211602', 'Ivolândia', 'GO', 1260.841]
['5211701', 'Jandaia', 'GO', 863.087]
['5211800', 'Jaraguá', 'GO', 1848.947]
['5211909', 'Jataí', 'GO', 7178.792]
['5212006', 'Jaupaci', 'GO', 528.783]
['5212055', 'Jesúpolis', 'GO', 115.211]
['5212105', 'Joviânia', 'GO', 446.258]
['5212204', 'Jussara', 'GO', 4092.34]
['5212253', 'Lagoa Santa', 'GO', 463.289]
['5212303', 'Leopoldo de Bulhões', 'GO', 476.137]
['5212501', 'Luziânia', 'GO', 3962.107]
['5212600', 'Mairipotaba', 'GO', 468.029]
['5212709', 'Mambaí', 'GO', 858.27]
['5212808', 'Mara Rosa', 'GO', 1695.463]
['5212907', 'Marzagão', 'GO', 225.518]
['5212956', 'Matrinchã', 'GO', 1150.503]
['5213004', 'Maurilândia', 'GO', 389.959]
['5213053', 'Mimoso de Goiás', 'GO', 1380.701]
['5213087', 'Minaçu', 'GO', 2854.137]
['5213103', 'Mineiros', 'GO', 9042.844]
['5213400', 'Moiporá', 'GO', 452.314]
['5213509', 'Monte Alegre de Goiás', 'GO', 3119.86]
['5213707', 'Montes Claros de Goiás', 'GO', 2900.397]
['5213756', 'Montividiu', 'GO', 1869.581]
['5213772', 'Montividiu do Norte', 'GO', 1337.232]
['5213806', 'Morrinhos', 'GO', 2846.299]
['5213855', 'Morro Agudo de Goiás', 'GO', 282.333]
['5213905', 'Mossâmedes', 'GO', 684.882]
['5214002', 'Mozarlândia', 'GO', 1738.516]
['5214051', 'Mundo Novo', 'GO', 2141.534]
['5214101', 'Mutunópolis', 'GO', 955.069]
['5214408', 'Nazário', 'GO', 281.147]
['5214507', 'Nerópolis', 'GO', 204.713]
['5214606', 'Niquelândia', 'GO', 9846.293]
['5214705', 'Nova América', 'GO', 209.432]
['5214804', 'Nova Aurora', 'GO', 307.335]
['5214838', 'Nova Crixás', 'GO', 7308.681]
['5214861', 'Nova Glória', 'GO', 411.753]
['5214879', 'Nova Iguaçu de Goiás', 'GO', 625.625]
['5214903', 'Nova Roma', 'GO', 2136.725]
['5215009', 'Nova Veneza', 'GO', 122.354]
['5215207', 'Novo Brasil', 'GO', 649.349]
['5215231', 'Novo Gama', 'GO', 192.285]
['5215256', 'Novo Planalto', 'GO', 1254.491]
['5215306', 'Orizona', 'GO', 1971.265]
['5215405', 'Ouro Verde de Goiás', 'GO', 208.804]
['5215504', 'Ouvidor', 'GO', 411.318]
['5215603', 'Padre Bernardo', 'GO', 3142.615]
['5215652', 'Palestina de Goiás', 'GO', 1318.047]
['5215702', 'Palmeiras de Goiás', 'GO', 1537.196]
['5215801', 'Palmelo', 'GO', 59.809]
['5215900', 'Palminópolis', 'GO', 393.326]
['5216007', 'Panamá', 'GO', 432.204]
['5216304', 'Paranaiguara', 'GO', 1153.415]
['5216403', 'Paraúna', 'GO', 3786.578]
['5216452', 'Perolândia', 'GO', 1033.657]
['5216809', 'Petrolina de Goiás', 'GO', 530.49]
['5216908', 'Pilar de Goiás', 'GO', 906.048]
['5217104', 'Piracanjuba', 'GO', 2374.232]
['5217203', 'Piranhas', 'GO', 2045.088]
['5217302', 'Pirenópolis', 'GO', 2200.369]
['5217401', 'Pires do Rio', 'GO', 1077.641]
['5217609', 'Planaltina', 'GO', 2558.924]
['5217708', 'Pontalina', 'GO', 1434.289]
['5218003', 'Porangatu', 'GO', 4825.287]
['5218052', 'Porteirão', 'GO', 606.262]
['5218102', 'Portelândia', 'GO', 553.411]
['5218300', 'Posse', 'GO', 2076.99]
['5218391', 'Professor Jamil', 'GO', 356.292]
['5218508', 'Quirinópolis', 'GO', 3786.026]
['5218607', 'Rialma', 'GO', 268.291]
['5218706', 'Rianápolis', 'GO', 157.379]
['5218789', 'Rio Quente', 'GO', 244.655]
['5218805', 'Rio Verde', 'GO', 8374.255]
['5218904', 'Rubiataba', 'GO', 750.659]
['5219001', 'Sanclerlândia', 'GO', 509.402]
['5219100', 'Santa Bárbara de Goiás', 'GO', 140.957]
['5219209', 'Santa Cruz de Goiás', 'GO', 1109.007]
['5219258', 'Santa Fé de Goiás', 'GO', 1164.186]
['5219308', 'Santa Helena de Goiás', 'GO', 1142.337]
['5219357', 'Santa Isabel', 'GO', 812.756]
['5219407', 'Santa Rita do Araguaia', 'GO', 1357.197]
['5219456', 'Santa Rita do Novo Destino', 'GO', 970.448]
['5219506', 'Santa Rosa de Goiás', 'GO', 166.44]
['5219605', 'Santa Tereza de Goiás', 'GO', 789.544]
['5219704', 'Santa Terezinha de Goiás', 'GO', 1206.6]
['5219712', 'Santo Antônio da Barra', 'GO', 450.336]
['5219738', 'Santo Antônio de Goiás', 'GO', 135.022]
['5219753', 'Santo Antônio do Descoberto', 'GO', 943.948]
['5219803', 'São Domingos', 'GO', 3335.999]
['5219902', 'São Francisco de Goiás', 'GO', 416.535]
['5220009', "São João d'Aliança", 'GO', 3334.455]
['5220058', 'São João da Paraúna', 'GO', 286.979]
['5220108', 'São Luís de Montes Belos', 'GO', 829.62]
['5220157', 'São Luiz do Norte', 'GO', 583.832]
['5220207', 'São Miguel do Araguaia', 'GO', 6150.179]
['5220264', 'São Miguel do Passa Quatro', 'GO', 537.347]
['5220280', 'São Patrício', 'GO', 172.763]
['5220405', 'São Simão', 'GO', 415.015]
['5220454', 'Senador Canedo', 'GO', 247.005]
['5220504', 'Serranópolis', 'GO', 5521.774]
['5220603', 'Silvânia', 'GO', 2349.924]
['5220686', 'Simolândia', 'GO', 346.811]
['5220702', "Sítio d'Abadia", 'GO', 1611.851]
['5221007', 'Taquaral de Goiás', 'GO', 205.665]
['5221080', 'Teresina de Goiás', 'GO', 784.793]
['5221197', 'Terezópolis de Goiás', 'GO', 107.407]
['5221304', 'Três Ranchos', 'GO', 284.034]
['5221403', 'Trindade', 'GO', 712.69]
['5221452', 'Trombas', 'GO', 802.905]
['5221502', 'Turvânia', 'GO', 482.317]
['5221551', 'Turvelândia', 'GO', 935.659]
['5221577', 'Uirapuru', 'GO', 1154.305]
['5221601', 'Uruaçu', 'GO', 2142.484]
['5221700', 'Uruana', 'GO', 522.904]
['5221809', 'Urutaí', 'GO', 623.821]
['5221858', 'Valparaíso de Goiás', 'GO', 61.488]
['5221908', 'Varjão', 'GO', 517.402]
['5222005', 'Vianópolis', 'GO', 954.115]
['5222054', 'Vicentinópolis', 'GO', 733.794]
['5222203', 'Vila Boa', 'GO', 1052.593]
['5222302', 'Vila Propício', 'GO', 2181.593]

Note que mostrei todos os atributos das 246 feições (features) do meu shapefile. E cada feição representa um dos municípios do Estado de Goiás. Veja que os atributos são o código do município, seu nome, a sigla do estado e sua área (em metros quadrados). Deixei a listagem completa para facilitar alguém que queira fazer trabalhos relacionados a isso.


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

Como retornar o ano da data atual em C# usando a propriedade Year da classe DateTime

Quantidade de visualizações: 5 vezes
Nesta dica eu mostrarei como podemos usar a propriedade Year da classe DateTime da linguagem C# para obter o ano de uma determinada data como um inteiro.

Veja o código completo para o exemplo:

using System;

namespace Estudos {
  class Program {
    static void Main(string[] args) {
      // vamos obter a data e hora atual
      DateTime agora = DateTime.Now;

      // e agora o ano da data como um inteiro
      int ano = agora.Year;

      // e finalmente mostramos o resultado
      Console.WriteLine("Estamos no ano: {0}", ano);

      Console.WriteLine("\n\nPressione uma tecla para sair...");
      Console.ReadKey();
    }
  }
}

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

Estamos no ano: 2022


C ::: Dicas & Truques ::: Trigonometria - Funções Trigonométricas

Como calcular o cosseno de um ângulo em C usando a função cos() do header math.h - Calculadora de cosseno em C

Quantidade de visualizações: 1028 vezes
Em geral, quando falamos de cosseno, estamos falando do triângulo retângulo de Pitágoras (Teorema de Pitágoras). A verdade é que podemos usar a função cosseno disponível nas linguagens de programação para calcular o cosseno de qualquer número, mesmo nossas aplicações não tendo nenhuma relação com trigonometria.

No entanto, é sempre importante entender o que é a função cosseno. Veja a seguinte imagem:



Veja que temos um triângulo retângulo com as medidas já calculadas para a hipotenusa e os dois catetos, assim como os ângulos entre eles.

Assim, o cosseno é a razão entre o cateto adjascente e a hipotenusa, ou seja, o cateto adjascente dividido pela hipotenusa. Veja a fórmula:

\[\text{Cosseno} = \frac{\text{Cateto adjascente}}{\text{Hipotenusa}} \]

Então, se dividirmos 30 por 36.056 (na figura eu arredondei) nós teremos 0.8320, que é a razão entre o cateto adjascente e a hipotenusa (em radianos).

Agora, experimente calcular o arco-cosseno de 0.8320. O resultado será 0.5881 (em radianos). Convertendo 0.5881 radianos para graus, nós obtemos 33.69º, que é exatamente o ângulo em graus entre o cateto adjascente e a hipotenusa na figura acima.

Pronto! Agora que já sabemos o que é cosseno na trigonometria, vamos entender mais sobre a função cos() da linguagem C. Esta função, que faz parte do header math.h, recebe um valor numérico double e retorna um valor double, ou seja, também numérico) entre -1 até 1 (ambos inclusos). Veja:

#include <stdio.h>
#include <stdlib.h>
#include <math.h>
 
int main(int argc, char *argv[]){
  // vamos calcular o cosseno de três números
  printf("Cosseno de 0 = %f\n", cos(0));
  printf("Cosseno de 1 = %f\n", cos(1));
  printf("Cosseno de 2 = %f\n", cos(2));
 
  printf("\n\n");
  system("PAUSE");
  return 0;
}

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

Cosseno de 0 = 1.000000
Cosseno de 1 = 0.540302
Cosseno de 2 = -0.416147

Note que calculamos os cossenos dos valores 0, 1 e 2. Observe como os resultados conferem com a curva da função cosseno mostrada abaixo:



Carregar Publicações Anteriores


Nossas 20 dicas & truques de programação mais populares

Você também poderá gostar das dicas e truques de programação abaixo

Nossas 20 dicas & truques de programação mais recentes

Últimos Projetos e Códigos Fonte Liberados Para Apoiadores do Site

Últimos Exercícios Resolvidos

E-Books em PDF

E-Book 350 Exercícios Resolvidos de Java - PDF com 500 páginas
Domine lógica de programação e a linguagem Java com o nosso E-Book 350 Exercícios Exercícios de Java, para você estudar onde e quando quiser.

Este e-book contém exercícios resolvidos abrangendo os tópicos: Java básico, matemática e estatística, programação dinâmica, strings e caracteres, entrada e saída, estruturas condicionais, vetores e matrizes, funções, laços, recursividade, internet, arquivos e diretórios, programação orientada a objetos e muito mais.
Ver Conteúdo do E-book
E-Book 650 Dicas, Truques e Exercícios Resolvidos de Python - PDF com 1.200 páginas
Domine lógica de programação e a linguagem Python com o nosso E-Book 650 Dicas, Truques e Exercícios Exercícios de Python, para você estudar onde e quando quiser.

Este e-book contém dicas, truques e exercícios resolvidos abrangendo os tópicos: Python básico, matemática e estatística, banco de dados, programação dinâmica, strings e caracteres, entrada e saída, estruturas condicionais, vetores e matrizes, funções, laços, recursividade, internet, arquivos e diretórios, programação orientada a objetos e muito mais.
Ver Conteúdo do E-book

Linguagens Mais Populares

1º lugar: Java
2º lugar: Python
3º lugar: C#
4º lugar: PHP
5º lugar: C
6º lugar: Delphi
7º lugar: JavaScript
8º lugar: C++
9º lugar: VB.NET
10º lugar: Ruby



© 2025 Arquivo de Códigos - Todos os direitos reservados
Neste momento há 33 usuários muito felizes estudando em nosso site.