Você está aqui: C++ ::: Fundamentos da Linguagem ::: Tipos de Dados |
|
Como usar o tipo de dados size_t da linguagem C++Quantidade de visualizações: 15204 vezes |
|
O tipo size_t é definido no arquivo stddef.h e em outros headers, e sua definição pode ser encontrada da seguinte forma:typedef unsigned long size_t; ...... Este tipo é usado para definir tamanhos de strings e blocos de memória. Foi proposto pelo ANSI C. É comum encontrar size_t substituindo unsigned int ou unsigned long. Muito frequente também é ver este tipo recebendo o resultado de uma chamada ao operator sizeof. Veja: #include <iostream> using namespace std; int main(){ // vamos obter a quantidade de bytes em um int size_t tam = sizeof(int); ...... Ao executarmos este código nós teremos o seguinte resultado: Um inteiro nesta arquitetura contém: 4 bytes |
|
Link para compartilhar na Internet ou com seus amigos: | |
Python ::: Desafios e Lista de Exercícios Resolvidos ::: Python Básico |
Exercício Resolvido de Python - Como calcular o restante de um salário após o pagamento de duas contas com jurosQuantidade de visualizações: 982 vezes |
Pergunta/Tarefa: Cintia acaba de receber seu salário mas precisa pagar duas contas atrasadas. Por causa do atraso, ela deverá pagar multa de 2% sobre cada conta. Faça um programa que leia o valor do salário e das duas contas e que calcule e mostre quanto restará do salário de Cintia. Sua saída deverá ser parecida com: Informe o salário: 1350 Valor da primeira conta: 140 Valor da segunda conta: 300 Total das contas sem juros: 440.0 Total dos juros: 8.8 Total das contas com juros: 448.8 Sobra do salário: 901.2 Veja a resolução comentada deste exercício usando Python: # método principal def main(): # vamos pedir que o usuário informe o valor do salário e das duas contas salario = float(input("Informe o salário: ")) conta1 = float(input("Valor da primeira conta: ")) conta2 = float(input("Valor da segunda conta: ")) # total a ser pago nas duas contas sem os juros total_contas = conta1 + conta2 # calcula os juros total_juros = total_contas * 0.02 # total a ser pago com juros total_contas_com_juros = total_contas + total_juros ...... |
PHP ::: Dicas & Truques ::: Data e Hora |
Datas e horas em PHP - Como saber se um determinado ano é bissexto usando PHPQuantidade de visualizações: 9120 vezes |
Nesta dica veremos como é possível usar a função date() da linguagem PHP para verificar se um determinado ano é bissexto. Note como combinamos o parâmetro "L" da função date() e a função mktime() contendo o ano que queremos testar. Veja o código PHP completo para o exemplo: <html> <head> <title>Estudando PHP</title> </head> <body> <?php $ano = "2020"; $bissexto = date("L", mktime(0, 0, 0, 1, 1, $ano)); ...... Ao executar este código PHP nós teremos o seguinte resultado: O ano informado é bissexto |
Python ::: Dicas & Truques ::: Strings e Caracteres |
Como verificar se uma string contém apenas caracteres alfanuméricos (letras e números) usando a função isalnum() do módulo str da linguagem PythonQuantidade de visualizações: 17795 vezes |
Nesta dica mostrarei como é possível usar a função isalnum() do módulo str do Python para verificar se uma palavra, frase ou texto contém apenas caracteres alfanuméricos (letras e números). Veja o código completo para o exemplo: # função principal do programa def main(): texto = "34kwjii5992" if texto.isalnum(): print("A string contém apenas caracteres" \ " alfanumericos") ...... Ao executar este código Python nós teremos o seguinte resultado: A string contém apenas caracteres alfanuméricos |
Java ::: Dicas & Truques ::: Gráficos |
Como desenhar em um JComponent (JLabel, JButton, JPanel, etc) usando o método getGraphics() para obter o contexto de desenhoQuantidade de visualizações: 13811 vezes |
A classe JComponent possui um método chamado getGraphics() que retorna um objeto da classe Graphics que pode ser usado para desenhar na superfície do componente. Desta forma, qualquer componente que herda de JComponent pode ser usado para esta finalidade. Antes de demonstrarmos como isso funciona, tenha em mente que o contexto de desenho de um componente só está disponível após ele ser pintado pela primeira vez. Se tentarmos obter o Graphics antes que o componente tenha sido pintado, corremos o risco de lançar uma exceção NullPointerException. O trecho de código abaixo mostra como desenhar uma linha em um JLabel ao clicar em um botão. Fique atento a este código. Boa parte das dicas vistas nesta seção usam esta abordagem: import java.awt.*; import java.awt.event.*; import javax.swing.*; public class Estudos extends JFrame{ JLabel label; public Estudos() { super("Desenhando em um JLabel"); Container c = getContentPane(); c.setLayout(new BorderLayout()); // Cria um JLabel label = new JLabel(); c.add(label, BorderLayout.CENTER); // Cria um botão JButton btn = new JButton("Desenhar uma linha"); btn.addActionListener( new ActionListener(){ ...... Há algo de interessante neste código. Se você maximizar, minimizar ou redimensionar a janela verá que o desenho é apagado. Isso acontece porque todas as vezes que a janela sofre alguma alteração, ela é pintada novamente, juntamente com seus componentes filhos. Se você deseja que o desenho seja feito automaticamente novamente, é melhor fazer uma sub-classe do componente desejado e sobrescrever seu método paintComponent(). Nesta mesma seção você encontrará exemplos de como fazer isso. |
Java ::: Tratamento de Erros ::: Passos Iniciais |
Quais as diferenças entre checked exceptions, runtime exceptions e errors na linguagem Java?Quantidade de visualizações: 15233 vezes |
Checked exceptions (exceções verificadas), runtime exceptions (exceções de tempo de execução) e errors (erros) possuem diferenças importantes e devem ser entendidas perfeitamente para tirarmos maior proveito da plataforma Java. Entre as checked exceptions podemos citar FileNotFoundException, ClassNotFoundException e IOException. Agora veja: problemas tais como um arquivo não encontrado, uma classe não encontrada ou problemas com entrada e saída (talvez a impressora parou de responder ou a rede caiu) fogem completamente do domínio da aplicação. Tais exceções não são provocadas por código mal escrito ou mal testado. Desta forma, o Java força que todas as checked exceptions estejam em um bloco try...catch. Vamos ver se isso é verdade? Observe o trecho de código abaixo: import java.io.*; public class Estudos{ public static void main(String[] args){ DataInputStream in = new DataInputStream( new BufferedInputStream( new FileInputStream("conteudo.txt"))); ...... Se tentarmos compilar este código teremos o seguinte resultado: Estudos.java:7: unreported exception java.io.FileNotFoundException; must be caught or declared to be thrown new FileInputStream("conteudo.txt"))); ^ Estudos.java:9: unreported exception java.io.IOException; must be caught or declared to be thrown while(in.available() != 0) ^ Estudos.java:10: unreported exception java.io.IOException; must be caught or declared to be thrown System.out.print((char) in.readByte()); ^ 3 errors Aqui nós temos uma exceção FileNotFoundException e duas exceções IOException. Vamos nos concentrar na exceção gerada pelo construtor da classe FileInputStream. Folheando a documentação do Java nós encontramos: public FileInputStream(String name) throws FileNotFoundException É aqui que as coisas começam a ficar interessantes. Todos os métodos Java que podem atirar exceções verificadas são marcados com throws e o tipo de exceção lançada. A palavra throws é usada para transferir a responsabilidade do tratamento do erro para o chamador de tais métodos. Outro exemplo é o método readByte() da classe DataInputStream: public final byte readByte() throws IOException Para corrigir as exceções acima, só precisamos usar um bloco try...catch. Veja: import java.io.*; public class Estudos{ public static void main(String[] args){ try{ DataInputStream in = new DataInputStream( new BufferedInputStream( new FileInputStream("conteudo.txt"))); ...... Exceções verificadas são todas aquelas que descendem de Exception mas não descendem de RuntimeException. As exceções de tempo de execução (runtime exceptions) são provocadas por código mal escrito ou mal testado, ou seja, são causadas por nós programadores. Entre estas exceções podemos citar ArithmeticException, IndexOutOfBoundsException e NoSuchElementException. De fato, um erro aritmético é responsabilidade do programador, pois cabe a este verificar se os valores estão dentro da faixa permitida por cada tipo de dados. Ao contrário das exceções verificadas, o compilador não força o uso do bloco try...catch para as runtime exceptions. De fato, isso é fácil de compreender, uma vez que tais exceções não deveriam jamais aparecer. Contudo, pode ser desejável usar o bloco try...catch em casos em que os valores de uma operação são definidos pelo usuário. Veja um exemplo: import java.util.*; public class Estudos{ public static void main(String[] args){ Scanner in = new Scanner(System.in); System.out.print("Informe um inteiro: "); int valor = in.nextInt(); ...... Se executarmos este código e informarmos o valor 0 para o segundo inteiro, teremos a seguinte exceção: Informe um inteiro: 4 Informe outro inteiro: 0 Exception in thread "main" java.lang.ArithmeticException: / by zero at Estudos.main(Estudos.java:13) Uma forma de corrigir isso é testando os valores informados para verificar suas faixas ou lançar uma exceção. Veja como usamos esta última alternativa: import java.util.*; public class Estudos{ public static void main(String[] args){ Scanner in = new Scanner(System.in); System.out.print("Informe um inteiro: "); int valor = in.nextInt(); System.out.print("Informe outro inteiro: "); int valor2 = in.nextInt(); try{ ...... Agora se informarmos zero para o segundo inteiro, teremos: Informe um inteiro: 5 Informe outro inteiro: 0 Uma exceção ArithmeticException ocorreu, possivelmente uma tentativa de divisão por zero. As runtime exceptions (causadas por falha nossa, os programadores) descedem de java.lang.RuntimeException. Além das runtime exceptions e das checked exceptions, temos também os errors, que descedem de java.lang.Error e não devem jamais ser atirados ou tratados em blocos try...catch. Este tipo de erro é reservado para indicar problema na JVM. Entre tais erros temos OutOfMemoryError, que é lançado quando a Java Virtual Machine não consegue alocar um objeto porque sua fatia de memória esgotou e o Garbage Collector ainda não liberou mais memória. Não há razão para tratarmos isso em um bloco try...catch uma vez que, ao contrário de C++, a liberação de memória só é feita pelo GC. O melhor a fazer é deixar mesmo o programa ser encerrado e encontrar alternativas para a correção do problema. |
Desafios, Exercícios e Algoritmos Resolvidos de Java |
Veja mais Dicas e truques de Java |
Dicas e truques de outras linguagens |
Quem Somos |
Programador Freelancer - Full Stack Developer, Professional Java Developer, PHP, C/C++, Python Programmer, wxWidgets Professional C++ Programmer, Freelance Programmer. Formado em Ciência da Computação pela UNIP (Universidade Paulista Campus Goiânia) e cursando Engenharia Civil pela PUC-Goiás. Possuo conhecimentos avançados de Java, Python, JavaScript, C, C++, PHP, C#, VB.NET, Delphi, Android, Perl, e várias tecnologias que envolvem o desenvolvimento web, desktop, front-end e back-end. Atuo há mais de 20 anos como programador freelancer, atendendo clientes no Brasil, Portugal, Argentina e vários outros paises.
Entre em contato comigo para, juntos, vermos em que posso contribuir para resolver ou agilizar o desenvolvimento de seus códigos.
|
Programador Freelancer - Formado em Sistemas de Informação pela Faculdade Delta, Pós graduado em Engenharia de Software (PUC MINAS), Pós graduado Marketing Digital (IGTI) com ênfase em Growth Hacking. Mais de 15 anos de experiência em programação Web. Marketing Digital focado em desempenho, desenvolvimento de estratégia competitiva, analise de concorrência, SEO, webvitals, e Adwords, Métricas de retorno. Especialista Google Certificado desde 2011 Possui domínio nas linguagens PHP, C#, JavaScript, MySQL e frameworks Laravel, jQuery, flutter. Atualmente aluno de mestrado em Ciência da Computação (UFG)
Não basta ter um site. É necessário ter um site que é localizado e converte usuários em clientes. Se sua página não faz isso, Fale comigo e vamos fazer uma analise e conseguir resultados mais satisfatórios..
|
Linguagens Mais Populares |
1º lugar: Java |