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 |
Você está aqui: PHP ::: Dicas & Truques ::: Matemática e Estatística |
|
Como arredondar um valor fracionário para baixo usando a função floor() do PHPQuantidade de visualizações: 6743 vezes |
|
A função floor() é usada quando queremos arredondar um valor fracionário para baixo, ou seja, para o próximo valor inteiro menor que o valor sendo arredondado. Assim, se tivermos o valor 23,4 e aplicarmos esta função, o resultado será 23. Veja:<? // valor a ser arredondado para baixo $valor = 23.4; // vamos arredondar usando a função floor() $valor2 = floor($valor); // vamos exibir o resultado echo "O valor " . $valor . " arredondado usando " . " floor() resulta em: " . $valor2; ?> Ao executarmos este exemplo teremos o seguinte resultado: O valor 23.4 arredondado usando floor() resulta em: 23. |
|
Link para compartilhar na Internet ou com seus amigos: | |
C ::: Dicas & Truques ::: Strings e Caracteres |
Como escrever uma função strtoupper() em C para transformar uma palavra inteira em letras maiúsculasQuantidade de visualizações: 8647 vezes |
A linguagem C padrão não possui uma função para transformar todas as letras de uma palavra, frase ou texto em maiúsculas, embora alguns compiladores a forneça. O que temos em C padrão é a função: int toupper(int c); maiúsculo. Podemos tirar vantagem disso e escrever uma função strtoupper(). Veja a listagem logo abaixo (uma boa oportunidade para praticar ponteiros em C): #include <stdio.h> #include <stdlib.h> void strtoupper(char *string){ while(*string){ *string = toupper(*string); string++; } } int main(int argc, char *argv[]) { char frase[] = "Programando em C"; printf("Frase normal: %s\n", frase); strtoupper(frase); printf("Em letras maiusculas: %s\n\n", frase); system("PAUSE"); return 0; } Ao executar este código C nós teremos o seguinte resultado: Frase normal: Programando em C Em letras maiusculas: PROGRAMANDO EM C |
Java ::: Estruturas de Dados ::: Pilhas |
Como criar uma pilha em Java usando um vetor (array) - Estruturas de Dados em JavaQuantidade de visualizações: 1916 vezes |
A Pilha é uma estrutura de dados do tipo LIFO - Last-In, First-Out (Último a entrar, primeiro a sair). Neste tipo de estrutura, o último elemento a ser inserido é o primeiro a ser removido. Veja a imagem a seguir: Embora seja mais comum a criação de uma estrutura de dados do tipo Pilha de forma dinâmica (usando ponteiros e referências), nesta dica eu mostrarei como podemos criá-la em Java usando um array, ou seja, um vetor. No exemplo eu usei inteiros, mas você pode modificar para o tipo de dados que você achar mais adequado. Veja o código completo para uma classe Pilha usando um vetor de ints. Veja que o tamanho do vetor é informado no construtor da classe. Note também a lógica empregada na construção dos métodos empilhar(), desempilhar() e imprimirPilha(): Código para Pilha.java: package estudos; public class Pilha { private int elementos[]; // elementos na pilha private int topo; // o elemento no topo da pilha private int maximo; // a quantidade máxima de elementos na pilha // construtor da classe Pilha public Pilha(int tamanho) { // constrói o vetor this.elementos = new int[tamanho]; // define o topo como -1 this.topo = -1; // ajusta o tamanho da pilha para o valor recebido this.maximo = tamanho; } // método usado para empilhar um novo elemento na pilha public void empilhar(int item) { // a pilha já está cheia? if (this.topo == (this.maximo - 1)) { System.out.println("\nA pilha está cheia\n"); } else { // vamos inserir este elemento no topo da pilha this.elementos[++this.topo] = item; } } // méodo usado para desempilhar um elemento da pilha public int desempilhar() { // a pilha está vazia if (this.topo == -1) { System.out.println("\nA pilha está vazia\n"); return -1; } else { System.out.println("Elemento desempilhado: " + elementos[topo]); return this.elementos[this.topo--]; } } // método que permite imprimir o conteúdo da pilha public void imprimirPilha() { // pilha vazia if (this.topo == -1) { System.out.println("\nA pilha está vazia\n"); } else { // vamos percorrer todos os elementos da pilha for (int i = 0; i <= this.topo; i++) { System.out.println("Item[" + (i + 1) + "]: " + this.elementos[i]); } } } } Veja agora o código para a classe principal, ou seja, a classe Main usada para testar a funcionalidade da nossa pilha: Código para Principal.java: package estudos; public class Estudos{ public static void main(String[] args){ // vamos criar uma nova pilha com capacidade para 5 elementos Pilha p = new Pilha(5); // vamos empilhar 3 elementos p.empilhar(34); p.empilhar(52); p.empilhar(18); // vamos mostrar os elementos na pilha System.out.println("Itens presentes na Pilha\n"); p.imprimirPilha(); // agora vamos remover e retornar dois elementos da pilha System.out.println(); p.desempilhar(); p.desempilhar(); // vamos mostrar os elementos na pilha novamente System.out.println("\nItens presentes na Pilha\n"); p.imprimirPilha(); } } Ao executar este código Java nós teremos o seguinte resultado: Itens presentes na Pilha Item[1]: 34 Item[2]: 52 Item[3]: 18 Elemento desempilhado: 18 Elemento desempilhado: 52 Itens presentes na Pilha Item[1]: 34 |
C++ Builder ::: VCL - Visual Component Library ::: TEdit |
Como definir o conteúdo de um TEdit em tempo de execução usando a função SendMessage() da API do Windows e a mensagem WM_SETTEXT usando C++ BuilderQuantidade de visualizações: 5626 vezes |
Embora o C++ Builder já nos forneça as ferramentas necessárias para definir o conteúdo de um TEdit em tempo de execução, é importante saber como realizar esta tarefa usando a API do Windows. Para isso, podemos usar a função SendMessage() em combinação com a mensagem WM_SETTEXT. A função SendMessage() da API do Windows possui a seguinte assinatura: LRESULT SendMessage( HWND hWnd, UINT Msg, WPARAM wParam, LPARAM lParam ); Note que precisamos de um HWND (Handle) para a caixa de texto. Feito isso só precisamos enviar a mensagem WM_SETTEXT juntamente com o conteúdo a ser exibido no controle. Veja: void __fastcall TForm3::Button2Click(TObject *Sender) { // conteúdo a ser definido para a caixa de texto char texto[] = "Veja isso"; // vamos definir o conteúdo usando a função SendMessage // fornecendo a mensagem WM_SETTEXT SendMessage(Edit1->Handle, WM_SETTEXT, 0, (LPARAM)texto); } Veja que o parâmetro wParam da função SendMessage não é usado quando a mensagem é WM_SETTEXT. |
C++ ::: Fundamentos da Linguagem ::: Estruturas de Controle |
Como usar ponteiros para controlar um laço while em C++Quantidade de visualizações: 9060 vezes |
É possível usar ponteiros para controlar a execução de um laço while em C++. Comece analisando o seguinte trecho de código:// uma matriz de caracteres char nome[] = "Arquivo"; // aponta para a primeira letra char *letra = nome; if(*letra) cout << "True"; else cout << "False"; Aqui o valor "True" será exibido, visto que o ponteiro *letra está apontando para um local da matriz de caracteres nome[] que é diferente de NULL. Veja agora: // uma matriz de caracteres char nome[] = "Arquivo"; // aponta para a primeira letra char *letra = nome; // posição 0 // vamos atingir o final da matriz // de caracteres letra++; // posição 1 letra++; // posição 2 letra++; // posição 3 letra++; // posição 4 letra++; // posição 5 letra++; // posição 6 letra++; // NULL if(*letra) cout << "True"; else cout << "False"; Como sabemos que a matriz de caracteres nome[] contém sete caracteres (de 0 a 6), incrementamos o ponteiro *letra até que este aponte para o caractere que marca o fim da matriz. Assim, o valor "False" é exibido. Veja agora um laço while que tira proveito do que vimos aqui para exibir as letras da palavra "Arquivo" separadamente usando um ponteiro: #include <string> #include <iostream> using namespace std; int main(int argc, char *argv[]){ // uma matriz de caracteres char nome[] = "Arquivo"; // aponta para a primeira letra char *letra = nome; // vamos usar o laço while para // imprimir as letras separadamente while(*letra){ cout << *letra << " "; letra++; } cout << "\n\n"; system("PAUSE"); // pausa o programa return EXIT_SUCCESS; } |
Delphi ::: Data Access Controls (Controles de Acesso a Dados) ::: TField e Classes Derivadas |
Como usar a classe TField em seus programas DelphiQuantidade de visualizações: 12019 vezes |
A classe TField (na unit DB) é um ancestral comum de todos os componentes que representam os campos de uma tabela no banco de dados (ou um dataset cujos dados foram carregados de um arquivo do tipo texto, binário ou XML). Esta classe encapsula o comportamento comum a todos os demais componentes to tipo field (campo). Veja sua posição na hierarquia de classes do Delphi: System.TObject Classes.TPersistent Classes.TComponent DB.TField A classe TField apresenta propriedades, eventos e métodos que são usados para as seguintes tarefas: 1) Alterar o valor de um campo em um dataset; 2) Converter o valor de um campo de um tipo para outro tipo; 3) Efetuar validações nos dados informados pelos usuários para determinados campos; 4) Definir como as informações dos campos são mostradas em tempo de exibição ou para edição; 5) Calcular o valor de um campo a partir de código escrito no evento OnCalcFields do dataset; 6) Pesquisar o valor do campo a partir de outro dataset. Em geral não criamos instâncias da classe TField diretamente. Componentes que descendem de TField são criados automaticamente a cada vez que o dataset é ativado. Estes descendentes podem ser dinâmicos (o padrão) ou persistentes. Componentes campos dinâmicos refletem as colunas dos metadados da tabela a qual pertencem no momento que o dataset é aberto. Componentes campos persistentes são criados em tempo de design usando o editor Fields, que especifica os campos no dataset, suas propriedades e a ordem em que deverão estar. A criação de componentes de campos persistentes garante que todas as vezes que uma aplicação for executada, ela usará e exibirá as mesmas colunas, na mesma ordem, até mesmo se a estrutura física da base de dados mudar. Se uma coluna em uma tabela na qual um componente de campo persistente é baseado for excluída ou alterada, o IDE gera uma exceção em vez de permitir a abertura do dataset usando um coluna não existente ou incompatível. Se isso acontecer, devemos remover o camponente field para o campo não existente usando o editor Fields. Um campo (field) em um dataset é sempre tratado como uma das classes descendentes de TField abaixo: TADTField TDateField TReferenceField TAggregateField TDateTimeField TSmallIntField TArrayField TFloatField TSQLTimeStampField TAutoIncField TFMTBCDField TStringField TBCDField TGraphicField TTimeField TBinaryField TGuidField TVarBytesField TBlobField TIDispatchField TVariantField TBooleanField TIntegerField TWideStringField TBytesField TInterfaceField TWordField TCurrencyField TLargeintField TDataSetField TMemoField procedure TForm3.Button3Click(Sender: TObject); var campo: TField; begin // vamos obter o campo com o nome "titulo" do registro atual campo := ClientDataSet1.FieldByName('titulo'); // vamos mostrar o valor do campo ShowMessage('O valor do campo é: ' + campo.AsString); end; Ao executarmos este código teremos um resultado parecido com: "O valor do campo é: Programando em Java". Esta dica foi escrita e testada no Delphi 2009. |
Desafios, Exercícios e Algoritmos Resolvidos de Delphi |
Veja mais Dicas e truques de Delphi |
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 |