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

Como testar a ocorrência de uma substring em uma string do C# usando o método Contains() da classe String

Quantidade de visualizações: 188 vezes
Nesta dica mostrarei como usar o método Contains() da classe String do C# para verificar se uma letra ou palavra está contida em uma frase ou texto. Se a substring for encontrada, a função Contains() retorna um valor true (verdadeiro), e false (falso) em caso contrário.

Veja o exemplo completo:

using System;

namespace Estudos {
  class Program {
    static void Main(string[] args) {
      string frase = "Gosto de programar em C#";

      // a frase contém a palavra "programar"?
      if (frase.Contains("programar")) {
        Console.WriteLine("A palavra pesquisada está contida na string");
      }
      // a palavra pesquisada não foi encontrada na string
      else {
        Console.WriteLine("A palavra pesquisada NÃO está contida na string");
      }

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

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

A palavra pesquisada está contida na string

Tenha em mente que o método Contains() da classe String do C# diferencia letras maiúsculas de letras minúsculas.


PHP ::: Dicas & Truques ::: Arquivos e Diretórios

Como ler o conteúdo de um arquivo um caractere de cada vez em PHP usando a função fgetc()

Quantidade de visualizações: 7873 vezes
A função fgetc() da linguagem PHP é usada quando queremos ler um caractere de cada vez a partir de um arquivo. Note que esta função é um pouco lenta, e deve ser usada somente com arquivos pequenos. A leitura é interrompida quando a função fgetc() retorna um valor false.

Veja um código PHP completo demonstrando o seu uso:

<?php
  $arquivo = fopen("testes.txt", "r");
  if(!$arquivo){
    echo "Não foi possível abrir o arquivo";
  }
else{
  while(false !== ($char = fgetc($arquivo))){
    echo $char;
  }
}
?>



Ruby ::: Desafios e Lista de Exercícios Resolvidos ::: Arrays e Matrix (Vetores e Matrizes)

Exercícios Resolvidos de Ruby - Escreva um programa Ruby para mover todos os zeros para o final do vetor, sem alterar a ordem dos elementos já presentes no array

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

Dado o seguinte vetor de inteiros:

# vamos declarar e construir um vetor de 8 inteiros
valores = [0, 3, 0, 5, 7, 4, 0, 9]
Escreva um programa Ruby para mover todos os zeros para o final do vetor, ou seja, para a direita, sem alterar a ordem dos elementos diferentes de zero já presentes no array e sem criar um vetor adicional ou temporário.

Sua saída deverá ser parecida com:

Vetor na ordem original:

0   3   0   5   7   4   0   9   

Vetor com os zeros deslocados para o final:

3   5   7   4   9   0   0   0
Resposta/Solução:

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

# vamos declarar e construir um vetor de 8 inteiros
valores = [0, 3, 0, 5, 7, 4, 0, 9]   
	
# vamos mostrar o vetor na ordem original
print("Vetor na ordem original:\n")
for i in (0..valores.length - 1)
  printf("%d   ", valores[i])
end    
	
# vamos inicializar j como 0 para que ele aponte para
# o primeiro elemento do vetor
j = 0
    
# agora o laço for percorre todos os elementos do vetor,
# incrementanto a variável i e deixando o j em 0
for i in (0..valores.length - 1)
  # encontramos um valor que não é 0
  if(valores[i] != 0)
    # fazemos a troca entre os elementos nos índices
    # i e j
    temp = valores[i]
    valores[i] = valores[j]
    valores[j] = temp
    # e avançamos o j para o elemento seguinte
    j = j + 1
  end
end

# agora mostramos o resultado
print("\n\nVetor com os zeros deslocados para o final:\n")
for i in (0..valores.length - 1)
  printf("%d   ", valores[i])
end

Não se esqueça: A resolução do exercício deve ser feita sem a criação de um vetor, array ou lista adicional, e os elementos diferentes de zero devem permanecer na mesma ordem que eles estavam antes.


Java ::: Desafios e Lista de Exercícios Resolvidos ::: Laços de Repetição

Exercícios Resolvidos de Java - Usando um laço for para solicitar ao usuário que informe 10 valores inteiros e mostrar quantos valores negativos foram informados

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

Escreva um programa Java console que usa o laço for para solicitar que o usuário digite 10 valores inteiros. Em seguida seu programa deverá contar quantos valores negativos foram informados.

Dica: Use um objeto da classe Scanner para obter a entrada do usuário.

Resposta/Solução:

A resolução deste exercício envolve a criação de uma variável auxiliar para contar a quantidade de valores negativos lidos, do tipo int, e que deverá ser inicializada com o valor 0. Veja:

int negativos = 0; // guardará a quantidade de valores negativos
Veja a resolução completa para o exercício, comentada linha a linha:

public static void main(String[] args){
  // para este exercício você deverá importar a classe
  // Scanner. Ela está no pacote java.util.*;
    
  // vamos construir um objeto da classe Scanner para ler a
  // entrada do usuário
  Scanner entrada = new Scanner(System.in);

  int valor; // guarda o valor lido
  int negativos = 0; // guardará a quantidade de valores negativos

  // vamos pedir ao usuário que informe 10 valores inteiros
  for(int i = 0; i < 10; i++){
    System.out.print("Informe o " + (i + 1) + "º valor: ");
    valor = Integer.parseInt(entrada.nextLine());

    // vamos verificar se o valor informado é negativo
    if(valor < 0){
      negativos++;
    }
  }

  // vamos exibir a quantidade de números negativos lidos
  System.out.println("\nVocê informou " + negativos + " valores negativos.\n");
}



Android Java ::: android.widget ::: Spinner

Entenda e aprenda a usar a classe Spinner em suas aplicações Android

Quantidade de visualizações: 2306 vezes
Um objeto da classe Spinner no Android representa uma lista de itens, ou uma caixa de combinação, a partir da qual o usuário poderá escolher apenas uma opção. Em outras linguagens de programação tais como Delphi e C#, este controle é chamado de ComboBox. No Swing do Java, ele é chamado JComboBox. No HTML, nós o conhecemos como <select>.

Veja a posição da classe Spinner na hieraquia de classes do Android:

public class Spinner
extends AbsSpinner implements DialogInterface.OnClickListener

java.lang.Object android.view.View -> android.view.ViewGroup -> android.widget.AdapterView<android.widget.SpinnerAdapter> -> android.widget.AbsSpinner -> android.widget.Spinner

Veja a seguir como podemos declarar um elemento Spinner no arquivo XML de layout:

Spinner
  android:id="@+id/cidade"
  android:layout_width="wrap_content"
  android:layout_height="wrap_content"
  android:layout_marginTop="10dp"
  android:layout_gravity="center"
  android:layout_margin="10dp"
  android:entries="@array/cidades_nomes" />

Note que o elemento Spinner que declaramos possui o id "cidade" e, a parte mais importante, o vetor "cidades_nomes" para o seu atributo entries. Este vetor foi declarado no arquivo strings.xml da seguinte forma:

<string-array name="cidades_nomes">
  <item>Goiânia</item>
  <item>Cuiabá</item>
  <item>São Paulo</item>
  <item>Rio de Janeiro</item>
  <item>Curitiba</item>
</string-array>

Pronto. Isso é tudo. Se você executar seu aplicativo agora, já verá um caixa de combinação, ou seja, um Spinner com os nomes de cinco cidades ser exibido na tela. Experimente selecionar um dos itens. Em mais dicas dessa seção você verá como obter o item selecionado, como disparar uma ação como resultado da mudança de seleção de itens, como adicionar itens ao Spinner em tempo de execução e muito mais.


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

Exercício Resolvido de C - Um método recursivo que conta de 0 até 10

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

Escreva um método recursivo que conta e exibe os valores de 0 até 10. Seu método deverá possuir a seguinte assinatura:

void contar_recursivamente(int n){
  // sua implementação aqui
}
Veja que o método deverá receber o valor 0 e efetuar novas chamadas a si mesmo até que os valores de 0 a 10 sejam exibidos. O ponto de parada da recursividade é a exibição do valor 10.

Sua saída deverá ser parecida com:

0  1  2  3  4  5  6  7  8  9  10
Resposta/Solução:

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

#include <stdio.h>
#include <stdlib.h>
  
// método recursivo que conta de 0 até 10;
void contar_recursivamente(int n){
  // vamos exibir o número atual
  printf("%d  ", n);
    
  // devemos prosseguir com a recursividade?
  if(n < 10){
    // incrementa o valor de n
    n++;  
    contar_recursivamente(n); // e faz uma nova chamada recursiva
  }
}  
  
// método principal do programa  
int main(int argc, char *argv[]){
  // efetua uma chamada ao método recursivo fornecendo o primeiro valor
  contar_recursivamente(0);
  
  printf("\n\n");
  system("pause");
  return 0;
}



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

Python para iniciantes - Como importar módulos para seus programas Python

Quantidade de visualizações: 10883 vezes
A importação de módulos para um programa Python é feita com o uso da palavra-chave import seguida pelo(s) nomes(s) do(s) módulo. Veja um exemplo no qual importamos o módulo math:

import math

Caso precise importar mais de um módulo, você pode usar a palavra import mais de uma vez:

import math
import random

ou:

import math, random



C# ::: Dicas & Truques ::: Geometria, Trigonometria e Figuras Geométricas

Como calcular o coeficiente angular de uma reta em C# dados dois pontos no plano cartesiano

Quantidade de visualizações: 1602 vezes
O Coeficiente Angular de uma reta é a variação, na vertical, ou seja, no eixo y, pela variação horizontal, no eixo x. Sim, isso mesmo. O coeficiente angular de uma reta tem tudo a ver com a derivada, que nada mais é que a taxa de variação de y em relação a x.

Vamos começar analisando o seguinte gráfico, no qual temos dois pontos distintos no plano cartesiano:



Veja que o segmento de reta AB passa pelos pontos A (x=3, y=6) e B (x=9, y=10). Dessa forma, a fórmula para obtenção do coeficiente angular m dessa reta é:

\[\ \text{m} = \frac{y_2 - y_1}{x_2 - x_1} = \frac{\Delta y}{\Delta x} = tg \theta \]

Note que __$\Delta y__$ e __$\Delta x__$ são as variações dos valores no eixo das abscissas e no eixo das ordenadas. No triângulo retângulo que desenhei acima, a variação __$\Delta y__$ se refere ao comprimento do cateto oposto e a variação __$\Delta y__$ se refere ao comprimento do cateto adjascente.

Veja agora o trecho de código na linguagem C# que solicita as coordenadas x e y dos dois pontos, efetua o cálculo e mostra o coeficiente angular m da reta que passa pelos dois pontos:

using System;
using System.Collections;

namespace Estudos {
  class Program {
    static void Main(string[] args) {
      // x e y do primeiro ponto
      Console.Write("Informe a coordenada x do primeiro ponto: ");
      double x1 = double.Parse(Console.ReadLine());
      Console.Write("Informe a coordenada y do primeiro ponto: ");
      double y1 = double.Parse(Console.ReadLine());

      // x e y do segundo ponto
      Console.Write("Informe a coordenada x do segundo ponto: ");
      double x2 = double.Parse(Console.ReadLine());
      Console.Write("Informe a coordenada y do segundo ponto: ");
      double y2 = double.Parse(Console.ReadLine());

      // agora vamos calcular o coeficiente angular
      double m = (y2 - y1) / (x2 - x1);

      // e mostramos o resultado
      Console.WriteLine("O coeficiente angular é: " + m);

      Console.WriteLine("\nPressione qualquer tecla para sair...");
      // pausa o programa
      Console.ReadKey();
    }
  }
}

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

O coeficiente angular é: 0,6666666666666666

Veja agora como podemos calcular o coeficiente angular da reta que passa pelos dois pontos usando o Teorema de Pitágoras. Note que agora nós estamos tirando proveito da tangente do ângulo Theta (__$\theta__$), também chamado de ângulo Alfa ou Alpha (__$\alpha__$):

using System;
using System.Collections;

namespace Estudos {
  class Program {
    static void Main(string[] args) {
      // x e y do primeiro ponto
      Console.Write("Informe a coordenada x do primeiro ponto: ");
      double x1 = double.Parse(Console.ReadLine());
      Console.Write("Informe a coordenada y do primeiro ponto: ");
      double y1 = double.Parse(Console.ReadLine());

      // x e y do segundo ponto
      Console.Write("Informe a coordenada x do segundo ponto: ");
      double x2 = double.Parse(Console.ReadLine());
      Console.Write("Informe a coordenada y do segundo ponto: ");
      double y2 = double.Parse(Console.ReadLine());

      // vamos obter o comprimento do cateto oposto
      double cateto_oposto = y2 - y1;
      // e agora o cateto adjascente
      double cateto_adjascente = x2 - x1;
      // vamos obter o ângulo tetha, ou seja, a inclinação da hipetunesa
      // (em radianos, não se esqueça)
      double tetha = Math.Atan2(cateto_oposto, cateto_adjascente);
      // e finalmente usamos a tangente desse ângulo para calcular
      // o coeficiente angular
      double tangente = Math.Tan(tetha);

      // e mostramos o resultado
      Console.WriteLine("O coeficiente angular é: " + tangente);

      Console.WriteLine("\nPressione qualquer tecla para sair...");
      // pausa o programa
      Console.ReadKey();
    }
  }
}

Ao executar este código você verá que o resultado é o mesmo. No entanto, fique atento às propriedades do coeficiente angular da reta:

1) O coeficiente angular é positivo quando a reta for crescente, ou seja, m > 0;

2) O coeficiente angular é negativo quando a reta for decrescente, ou seja, m < 0;

3) Se a reta estiver na horizontal, ou seja, paralela ao eixo x, seu coeficiente angular é zero (0).

4) Se a reta estiver na vertical, ou seja, paralela ao eixo y, o coeficiente angular não existe.


Python ::: Tkinter GUI Toolkit ::: Círculos, Ovais e Elípses

Como desenhar círculos no Tkinter usando a função create_oval() do componente Canvas

Quantidade de visualizações: 1253 vezes
Em várias situações nós precisamos desenhar círculos não preenchidos e preenchidos em Tkinter. Para isso nós podemos usar a função create_oval() do componente Canvas.

Em sua forma mais simples, a função create_oval() requer as coordenadas x e y a partir das quais o círculo ou elípse será desenhada e a largura e a altura do retângulo dentro do qual o círculo estará contido. Para desenhar uma oval ou elípse, basta manipular a largura ou altura desse retângulo.

Veja um trecho de código no qual usamos a função create_oval() para desenhar um círculo com 5 pixels de largura da linha de desenho:

# vamos importar o módulo Tkinter
from tkinter import *
from tkinter.ttk import *
 
# método principal
def main():
  # cria a janela principal da aplicação
  janela_principal = Tk() 
  
  # define as dimensões da janela
  janela_principal.geometry("400x350")
  
  # define o título da janela
  janela_principal.title("Uso do controle Canvas")
 
  # vamos criar o objeto Canvas
  canvas = Canvas(janela_principal, bg="white", width=400, height=350)
 
  # colocamos o Canvas na janela principal
  canvas.grid(row=0, column=0)
 
  # agora vamos desenhar um círculo no Canvas começando nas
  # coordenadas x=20 e y=30 centro de um retângulo de largura
  # 150 pixels por uma altura de 150 pixels e largura da linha
  # de 5 pixels
  canvas.create_oval(20, 30, 150, 150, width="5")
 
  # entramos no loop de eventos 
  janela_principal.mainloop()
 
if __name__== "__main__":
  main()

Note que a largura da linha de desenho foi informada por meio do parâmetro width. Se quisermos definir também a cor da linha do desenho, basta usarmos o parâmetro outline e fornecer a cor desejada.


Delphi ::: Data Controls (Controles de Dados) ::: TDBGrid

Como aplicar cores alternadas às linhas de um TDBGrid do Delphi (efeito zebrinha)

Quantidade de visualizações: 9691 vezes
Em algumas situações gostaríamos de aplicar o efeito zebrinha, ou seja, aplicar cores alternadas às linhas de um controle TDBGrid. Esta técnica é muito útil quando temos grids com várias linhas e queremos facilitar a visualização dos dados por parte dos usuários.

A forma mais comum de se aplicar cores alternadas às linhas do DBGrid é por meio do evento OnDrawColumnCell. Veja o trecho de código abaixo:

procedure TForm3.DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect;
  DataCol: Integer; Column: TColumn; State: TGridDrawState);
var
  grid: TDBGrid;
  linha: Integer;
begin
  // obtém um referência ao DBGrid
  grid := sender as TDBGrid;

  // obtém o número da linha atual usando a propriedade
  // RecNo da classe TDataSet
  linha := grid.DataSource.DataSet.RecNo;

  // o número da linha é par?
  if Odd(linha) then
    grid.Canvas.Brush.Color := clWhite
  else
    grid.Canvas.Brush.Color := clYellow;

  // vamos terminar de desenhar a célula
  grid.DefaultDrawColumnCell(Rect, DataCol, Column, State);
end;

Execute este código e verá que a primeira linha é pintada de branco, a segunda de amarelo, a terceira de branco e assim por diante. Note que neste código eu não tratei a seleção de células, na qual a cor do texto se iguala ao branco do fundo da célula. Veja mais dicas nesta seção para saber como realizar esta tarefa você mesmo.

Esta dica foi escrita e testada no Delphi 2009.

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