Planilha Web - Planilhas e Calculadoras online para estudantes e profissionais de Engenharia Civil, Engenharia Elétrica e Engenharia Mecânica.
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 Apenas R$ 19,90
Ruby ::: Dicas & Truques ::: Strings e Caracteres

Como retornar a quantidade de vezes que um caractere aparece em uma string Ruby usando a função count()

Quantidade de visualizações: 8330 vezes
O método count() da classe String da linguagem Ruby pode ser usado para obter a quantidade de vezes em que um determinado caractere aparece em uma string. Para isso, só precisamos fornecer o caractere que será pesquisado. O retorno será um número inteiro. Veja o exemplo:

# declara e inicializa uma variável string
frase = "Gosto muito de Ruby"

# vamos obter a quantidade de vezes em que o
# caractere "o" aparece na frase
quant = frase.count("o")

# exibe o resultado
puts "O caractere \"o\" aparece " + quant.to_s \
  + " vezes"

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

O caractere "o" aparece 3 vezes


GNU Octave ::: Dicas & Truques ::: Matemática e Estatística

Como calcular raiz quadrada usando a função sqrt() do GNU Octave

Quantidade de visualizações: 5125 vezes
A raiz quadrada de um algarismo é dada por um número positivo n, que ao ser elevado ao quadrado (multiplicado por ele mesmo), se iguala a x. Na área da matemática, a raiz quadrada auxilia na resolução de vários problemas, entre eles as equações de segundo grau e o Teorema de Pitágoras.

Relembrando que a raiz quadrada é o inverso da potenciação com expoente dois, temos que:

\[\sqrt{9} = 3\]

então, pela potenciação:

\[3^2 = 9\]

Agora veremos como calcular a raiz quadrada usando a função sqrt() do GNU Octave. Se você ainda não o fez, abra o GNU Octave e digite a seguinte expressão na janela de comandos:

>> raiz = sqrt(9) [ENTER]
raiz = 3
>>

Agora veja como podemos usar a função sqrt() em um script do GNU Octave:

valor = input("Informe o valor desejado: ");
raiz = sqrt(valor);
fprintf("A raiz quadrada do valor informado é %d\n", 
  raiz);

Uma saída deste código poderia ser:

Informe o valor desejado: 25
A raiz quadrada do valor informado é 5
>>

É importante ter em mente que a função sqrt() do GNU Octave retorna um erro caso o valor do radicando for negativo. Veja:

Informe o valor desejado: -5
A raiz quadrada do valor informado é error: octave_base_value::int64_scalar_value
(): wrong type argument 'complex scalar'
>>


C# ::: Windows Forms ::: TextBox

C# Windows Forms Avançado - Como rolar as linhas de um TextBox para o fundo (parte inferior) usando a API do Windows

Quantidade de visualizações: 6989 vezes
Em algumas situações gostaríamos de rolar para baixo (fundo) o conteúdo de um TextBox de múltiplas. Para isso podemos usar a API do Windows, mais especificamente a mensagem WM_VSCROLL com o valor SB_BOTTOM para seu parâmetro wParam. O valor do parâmetro lParam é zero.

Veja um trecho de código que rola para baixo o conteúdo de um TextBox. Antes de executar este exemplo, tenha a certeza de ter um TextBox de múltiplas, com barras de rolagem e conteúdo que force o aparecimento das barras de rolagem.

Comece adicionando a linha:

using System.Runtime.InteropServices;

na seção de usings do seu formulário ou classe. Em seguida adicione o trecho de código abaixo no corpo da classe, como um método:

[DllImport("user32.dll", EntryPoint = "SendMessage", 
  CharSet = CharSet.Auto, SetLastError = true)]
private static extern IntPtr SendMessage(IntPtr hWnd, uint Msg, 
  IntPtr wParam, IntPtr lParam);

Finalmente coloque o código abaixo no evento Click de um botão:

private void button2_Click(object sender, EventArgs e){
  // antes de executar este exemplo certifique-se de que
  // a propriedade Multiline do TextBox esteja definida
  // como true e a propriedade ScrollBars contenha o valor
  // Vertical ou Both
  textBox1.Multiline = true;
  textBox1.ScrollBars = ScrollBars.Vertical;
    
  // constante para a mensagem WM_VSCROLL
  const uint WM_VSCROLL = 0x115;
  // constante para o parâmetro wParam
  const int SB_BOTTOM = 7;
  
  // handle para a caixa de texto
  IntPtr handle = textBox1.Handle;
  IntPtr wParam = (IntPtr)SB_BOTTOM;
  IntPtr lParam = IntPtr.Zero;
  
  // vamos fazer com que o TextBox role para o fundo (parte inferior)
  SendMessage(textBox1.Handle, WM_VSCROLL, wParam, lParam);
}



CSS ::: Dicas & Truques ::: Cores de Fundo e Imagens de Fundo

Como definir uma imagem de fundo que se repete apenas verticalmente usando a propriedade background-repeat do CSS

Quantidade de visualizações: 7603 vezes
Nesta dica mostrarei como podemos definir uma imagem de fundo para a página HTML e ajustá-la para repetir apenas verticalmente usando a propriedade background-repeat com o valor repeat-y. Note que, para definir a imagem de fundo, nós usamos a propriedade background-image.

Veja o código CSS para o exemplo:

<style type="text/css">
<!--
  body {background-image: url('fundo.gif'); 
        background-repeat: repeat-y}
//-->
</style>



Java ::: Java + MySQL ::: Metadados da Base de Dados (Database Metadata)

Java MySQL - Como obter os tipos de dados suportados pelo MySQL e seus correspondentes JDBC usando o método getTypeInfo() da interface DatabaseMetaData

Quantidade de visualizações: 6209 vezes
Em algumas situações precisamos obter os tipos de dados suportados pelo MySQL e mapeá-los para seus correspondentes JDBC. Esta não é uma tarefa fácil, mas que, com uma pequena ajuda dos recursos de reflexão do Java, pode ser realizada depois de algumas xícaras de café.

O primeiro passo é obter os tipos de dados suportados pelo MySQL com uma chamada ao método getTypeInfo() da interface DatabaseMetaData. Os campos do ResultSet que nos interessam são TYPE_NAME e DATA_TYPE. TYPE_NAME traz o nome do tipo de dados no MySQL enquanto DATA_TYPE traz o tipo JDBC correspondente como um inteiro. Assim, o que temos que fazer é usar reflexão para obter todos os campos da classe java.sql.Types e efetuar um mapeamento entre os tipos.

Veja o código completo para o exemplo:

package estudosbancodados;

import java.lang.reflect.Field;
import java.sql.*;
import java.util.HashMap;
import java.util.Map;

public class EstudosBancoDados{
  static Map mapa; // usado para mapear os tipos JDBC
  
  public static void main(String[] args) {
    // strings de conexão
    String databaseURL = "jdbc:mysql://localhost/estudos";
    String usuario = "root";
    String senha = "osmar1234";
    String driverName = "com.mysql.jdbc.Driver";

    try {
      Class.forName(driverName).newInstance();
      Connection conn = DriverManager.getConnection(databaseURL, usuario, senha);

      // vamos obter um objeto da classe com.mysql.jdbc.DatabaseMetaData
      DatabaseMetaData dbmd = conn.getMetaData();

      // vamos obter os tipos de dados suportados por esta versão do MySQL
      // e seus correspondentes JDBC
      ResultSet tiposDados = dbmd.getTypeInfo();
      while(tiposDados.next()){
        System.out.println("MySQL: " + tiposDados.getString("TYPE_NAME") + " - JDBC: " 
          + getJdbcTypeName(Integer.parseInt(tiposDados.getString("DATA_TYPE"))));
      }
      
      // vamos fechar o ResultSet
      tiposDados.close();
    }
    catch (SQLException ex) {
      System.out.println("SQLException: " + ex.getMessage());
      System.out.println("SQLState: " + ex.getSQLState());
      System.out.println("VendorError: " + ex.getErrorCode());
    }
    catch (Exception e) {
      System.out.println("Problemas ao tentar conectar com o banco de dados: " + e);
    }
  }

  // Este método retorna o nome de um tipo JDBC
  // O retorno é null se o tipo JDBC não puder ser reconhecido
  public static String getJdbcTypeName(int jdbcType){
    // vamos usar reflection para mapear valores inteiros a seus nomes
    if(mapa == null) {
      mapa = new HashMap();

      // vamos obter todos os campos da classe java.sql.Types
      Field[] campos = java.sql.Types.class.getFields();
      
      // vamos percorrer os campos
      for(int i = 0; i < campos.length; i++){
        try{
          // vamos obter o nome do campo
          String nome = campos[i].getName();

          // vamos obter o valor do campo
          Integer valor = (Integer)campos[i].get(null);

          // vamos adicionar ao mapa
          mapa.put(valor, nome);
        }
        catch(IllegalAccessException e){
          System.out.println("Ops: " + e.getMessage());
        }
      }
    }

    // vamos retornar o nome do tipo JDBC
    return (String)mapa.get(new Integer(jdbcType));
  }
}

O resultado da execução deste código foi:

MySQL: BIT - JDBC: BIT
MySQL: BOOL - JDBC: BIT
MySQL: TINYINT - JDBC: TINYINT
MySQL: TINYINT UNSIGNED - JDBC: TINYINT
MySQL: BIGINT - JDBC: BIGINT
MySQL: BIGINT UNSIGNED - JDBC: BIGINT
MySQL: LONG VARBINARY - JDBC: LONGVARBINARY
MySQL: MEDIUMBLOB - JDBC: LONGVARBINARY
MySQL: LONGBLOB - JDBC: LONGVARBINARY
MySQL: BLOB - JDBC: LONGVARBINARY
MySQL: TINYBLOB - JDBC: LONGVARBINARY
MySQL: VARBINARY - JDBC: VARBINARY
MySQL: BINARY - JDBC: BINARY
MySQL: LONG VARCHAR - JDBC: LONGVARCHAR
MySQL: MEDIUMTEXT - JDBC: LONGVARCHAR
MySQL: LONGTEXT - JDBC: LONGVARCHAR
MySQL: TEXT - JDBC: LONGVARCHAR
MySQL: TINYTEXT - JDBC: LONGVARCHAR
MySQL: CHAR - JDBC: CHAR
MySQL: NUMERIC - JDBC: NUMERIC
MySQL: DECIMAL - JDBC: DECIMAL
MySQL: INTEGER - JDBC: INTEGER
MySQL: INTEGER UNSIGNED - JDBC: INTEGER
MySQL: INT - JDBC: INTEGER
MySQL: INT UNSIGNED - JDBC: INTEGER
MySQL: MEDIUMINT - JDBC: INTEGER
MySQL: MEDIUMINT UNSIGNED - JDBC: INTEGER
MySQL: SMALLINT - JDBC: SMALLINT
MySQL: SMALLINT UNSIGNED - JDBC: SMALLINT
MySQL: FLOAT - JDBC: REAL
MySQL: DOUBLE - JDBC: DOUBLE
MySQL: DOUBLE PRECISION - JDBC: DOUBLE
MySQL: REAL - JDBC: DOUBLE
MySQL: VARCHAR - JDBC: VARCHAR
MySQL: ENUM - JDBC: VARCHAR
MySQL: SET - JDBC: VARCHAR
MySQL: DATE - JDBC: DATE
MySQL: TIME - JDBC: TIME
MySQL: DATETIME - JDBC: TIMESTAMP
MySQL: TIMESTAMP - JDBC: TIMESTAMP


Flutter ::: Material Library - Biblioteca Material ::: TextField

Como clicar em um botão, obter o texto digitado em um TextField do Flutter e exibí-lo em uma AlertDialog

Quantidade de visualizações: 2812 vezes
Nesta dica mostrarei como clicar em um botão, obter o texto que o usuário digitou em um TextField e exibí-lo em uma caixa de mensagem AlertDialog. Para isso vamos tirar proveito da classe TextEditingController, que nos fornece um controller que pode ser associado a uma caixa de texto.

Quando o usuário clicar no botão, nós chamamos o método setState() para atualizar uma variável com o texto do controller e em seguida exibimos uma mensagem AlertDialog com o texto digitado. Veja o exemplo completo:

import 'package:flutter/material.dart';

// método principal do Dart, que inicia a aplicação
void main() {
  runApp(MeuApp());
}

class MeuApp extends StatelessWidget {
  // Este  widget é a raiz da aplicação Flutter
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Controle TextField',
      theme: ThemeData(
        primarySwatch: Colors.blue,
      ),
      home: TelaInicial(),
    );
  }
}

// Vamos construir a view e retornar para a raiz da aplicação
class TelaInicial extends StatefulWidget {
  TelaInicial({Key key}) : super(key: key);

  @override
  _TelaInicialState createState() => _TelaInicialState();
}

class _TelaInicialState extends State<TelaInicial> {
  String nomeUsuario; // vai guarda o nome digitado no TextField
  // controler para o TextField
  TextEditingController nomeController = TextEditingController();

  // método que nos permite obter o conteúdo digitado no TextField
  void obterTexto() {
    setState(() {
      // transferimos para a variável nomeUsuario o conteúdo
      // do texto do controller do TextField
      nomeUsuario = nomeController.text;
    });

    // agora vamos mostrar o texto digitado em uma mensagem
    // AlertDialog
    showDialog<void>(context: context,
      barrierDismissible: false, builder: (BuildContext context) {
        return new AlertDialog(
          title: new Text("Texto Digitado"),
          content: new SingleChildScrollView(
            child: new ListBody(
              children: [
                new Text("O texto digitado foi: $nomeUsuario"),
              ],
            ),
          ),
          actions: [
            new FlatButton(
              child: new Text('OK'),
              onPressed: () {
                Navigator.of(context).pop();
              },
            ),
          ],
        );
      },
    );
  }

  @override
  Widget build(BuildContext context) {
    // vamos criar uma caixa de texto chamada nomeTxt
    final nomeTxt = TextField(
      controller: nomeController,
      decoration: InputDecoration(
          border: OutlineInputBorder(
              borderRadius: BorderRadius.circular(10.0)),
          hintText: 'Digite seu nome'
      ),
    );

    final btnNome = ElevatedButton(
      onPressed: obterTexto,
      child: Text('Clique Aqui'),
    );

    return Scaffold(
      appBar: AppBar(
        title: Text("O Widget TextField"),
      ),
      body: Center(
        child: Container(
          child: Padding(
            padding: const EdgeInsets.all(20.0),
            child: Column(
              children: <Widget>[
                // a caixa de texto TextField vai aqui
                nomeTxt,
                // o botão vai aqui
                btnNome,
              ],
            ),
          ),
        ),
      ),
    );
  }
}



Python ::: Desafios e Lista de Exercícios Resolvidos ::: Recursão (Recursividade)

Exercícios Resolvidos de Python - Um método recursivo que recebe um valor inteiro e o exibe na ordem inversa

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

Escreva um método recursivo que recebe um valor inteiro (com qualquer quantidade de dígitos) e o exibe na ordem inversa. Se o método receber o valor 467, o valor inverso será 764. Seu método deverá possuir a seguinte assinatura:

def exibirInverso(valor):
  # sua implementação aqui
Observe que você poderá usar, na resolução, somente os operadores aritméticos. Não é permitido o uso de métodos adicionais ou presentes em classes da linguagem Python.

Sua saída deverá ser parecida com:

Informe um valor inteiro: 932
O valor invertido é: 239
Resposta/Solução:

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

# método recursivo que recebe um valor inteiro e o exibe na ordem
# inversa
def exibirInverso(valor):
  # a parada da recursividade é o valor igual a 0
  if valor != 0:
    print(valor % 10, end ="")
    valor = valor // 10
    exibirInverso(valor) # efetua uma nova chamada recursiva

# método principal
def main():
  # solicita um valor inteiro ao usuário
  numero = int(input("Informe um valor inteiro: "))
  # exibe o valor na ordem invertida
  print("O valor invertido é: ", end =" ")
  exibirInverso(numero)
  
if __name__== "__main__":
  main()



PHP ::: Sistemas Completos com Código Fonte ::: Projetos PHP com Código Fonte - Códigos Fonte PHP

Como criar um Cadastro de Usuários em PHP e MySQL - Cadastrar, Listar, Editar, Exluir e Pesquisar - Código fonte completo

Quantidade de visualizações: 7745 vezes
Sobre este projeto PHP e MySQL

Quando se está dando os primeiros passos em PHP e banco de dados, principalmente no MySQL, é sempre uma boa idéia desenvolver aplicações do mundo real para ver como as coisas realmente funcionam. É muito difícil aprender uma linguagem de programação ou um banco de dados sem visualizar situações nas quais esse conhecimento pode ser aplicado.

Veja na figura abaixo o projeto que desenvolvemos para você nesta dica:



O que vou aprender neste código fonte?

Escrevemos uma aplicação PHP e MySQL bem simples, sem muita formatação e sem firulas de programador exibido, apenas com o propósito de ensiná-lo(a) como gravar, listar, editar, excluir e pesquisar dados em uma tabela MySQL a partir de uma aplicação PHP.

Como você pode ver na imagem acima, o cadastro é muito simples: nome, e-mail, idade e sexo. Porém, não se deixe levar pela simplicidade, pois este é o conhecimento básico para se desenvolver programas PHP e MySQL mais avançados. Isso quer dizer que, uma vez dominado as técnicas ensinadas aqui, você será capaz de criar sistemas para folha de pagamento em PHP, gestão financeira, contas a pagar e a receber, gestão de documentos em PHP, muita coisa mesmo.

Por meio de um código simples e bem documentado, você verá como disparar os comandos SQL INSERT, DELETE, UPDATE e SELECT a partir de seus códigos PHP. Mostramos também como escrever uma função tratar_entrada() para que os dados vindos de formulários POST ou GET sejam devidamente tratados antes de entrar na sua aplicação. Isso garante maior segurança e também evita que usuários mal intencionados fiquem tentando injetar código nas suas aplicações usando SQL Injection.

Por fim, você também aprenderá como escrever páginas PHP separadas para representar o topo da aplicação, o menu do lado e o rodapé, de forma que você não precise atualizar todas estas partes sempre que decidir mudar a cor ou o layout da aplicação.

Como posso obter este código fonte?

Para adquirir este código fonte, me chama no WhatsApp ou no e-mail indicando na lateral do site. Se necessário podemos combinar e faço a instalação na sua máquina ou no seu domínio. Podemos também combinar as alterações ou a adição de novas funcionalidades.

Não se esqueça: Uma boa forma de estudar o código é fazendo pequenas alterações e rodando para ver os resultados. Outra opção é começar um projeto PHP do zero e ir adicionando trechos do código fonte para melhor entendimento de suas partes.


Python ::: Fundamentos da Linguagem ::: Passos Iniciais

Como obter a entrada do usuário usando o método raw_input() - Atualizado para Python 3.0

Quantidade de visualizações: 8621 vezes
Até pouco tempo era possível usar o método raw_input(), nativo do Python, para ler a entrada do usuário. O código abaixo, por exemplo, funcionava corretamente no Python 2.5:

# obtém o nome do usuário
nome = raw_input("Por favor, informe seu nome: ")
 
print "Ola, " + nome + "! Voce tambem gosta de Python?"

No Python 3.0 em diante, a execução deste código exibe o seguinte erro de tempo de execução:

Exception has occurred: NameError
name 'raw_input' is not defined
  File "C:\estudos_python\estudos.py", line 4, in main
    nome = raw_input("Por favor, informe seu nome: ")
  File "C:\estudos_python\estudos.py", line 7, in <module>
    main()

A correção para esta exceção, é usar somente a função input(). Veja:

def main():
  nome = input("Por favor, informe seu nome: ")
  print("Olá, " + nome + "! Voce tambem gosta de Python?")

if __name__== "__main__":
  main()

A saída deste código será parecida com:

Por favor, informe seu nome: Osmar
Olá, Osmar! Voce tambem gosta de Python?



Python ::: Dicas & Truques ::: Lista (List)

Como adicionar uma lista Python ao final de outra usando o método extend()

Quantidade de visualizações: 7761 vezes
A função extend() do objeto List da linguagem Python nos permite adicionar todos os elementos de uma determinada lista ao final de outra lista. É claro que qualquer objeto que fornece uma forma de iteração pode ser passado ao método, incluindo uma List, um Set, uma Tuple, etc.

Veja um trecho de código no qual criamos duas listas de inteiros e adicionamos todos os elementos da segunda lista ao final da primeira:

"""
  Este exemplo mostra como adicionar os elementos
  de uma lista ao final de outra
"""

def main():
  # cria uma lista de inteiros
  valores1 = [2, 5, 12, 2, 3]
  print(valores1)

  # cria uma lista de pontos-flutuantes 
  valores2 = [4.3, 6.43, 8.1]
  print(valores2)

  # insere a segunda lista no final da primeira
  valores1.extend(valores2)

  # exibe o resultado final
  print(valores1)

if __name__== "__main__":
  main()

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

[2, 5, 12, 2, 3]
[4.3, 6.43, 8.1]
[2, 5, 12, 2, 3, 4.3, 6.43, 8.1]

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