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
Delphi ::: VCL - Visual Component Library ::: TStringGrid

Como usar o controle TStringGrid em suas aplicações Delphi - O componente TStringGrid do Delphi

Quantidade de visualizações: 19568 vezes
Um objeto da classe TStringGrid representa um controle de grid que pode ser usado em suas aplicações Delphi para simplificar o processo de se lidar com strings e objetos associados a esta. Veja a posição desta classe na hierarquia de classes do Delphi:

System.TObject
  Classes.TPersistent
    Classes.TComponent
      Controls.TControl
        Controls.TWinControl
          Controls.TCustomControl
            Grids.TCustomGrid
              Grids.TCustomDrawGrid
                Grids.TDrawGrid
                  Grids.TStringGrid


Esta classe implementa também as interfaces IInterfaceComponentReference e IInterface.

O uso mais frequente de um controle TStringGrid é quando queremos apresentar um conteúdo texto em um formato tabular. Este controle fornece muitas propriedades para controlar a aparência da grid, assim como eventos e métodos que tiram vantagem da organização tabular da grid ao responder às ações do usuário.

Para adicionar um controle TStringGrid ao seu formulário você só precisa acessar a aba Additional no Tool Palette, clicar no controle e arrastá-lo para a posição desejada no formulário. Por padrão, um controle TStringGrid contém 5 linhas e 5 colunas. Novas linhas e novas colunas podem ser adicionadas por meio das propriedades RowCount e ColCount da classe TCustomGrid.

Cada célula da grid pode ter seu valor definido ou acessado usando-se a propriedade Cells. Veja um trecho de código no qual definimos o conteúdo da célula situada na segunda linha da primeira coluna do TStringGrid:

procedure TForm1.Button1Click(Sender: TObject);
begin
  // vamos definir o conteúdo da célula na segunda linha
  // da primeira coluna da grid
  StringGrid1.Cells[0, 1] := 'Osmar J. Silva';
end;

Um controle TStringGrid introduz a possibilidade de associar um objeto com cada string na grid. Estes objetos podem encapsular quaisquer informações ou comportamento representado pelas strings apresentadas ao usuário.

Se as strings a serem apresentadas na grid representarem valores de campos dos registros de um conjunto de dados (dataset), devemos usar um TDBGrid em vez de um TStringGrid.


Python ::: Dicas & Truques ::: Data e Hora

Como formatar a data e hora atual em Python usando a função strftime() da classe datetime

Quantidade de visualizações: 10253 vezes
Nesta dica eu vou mostrar como é possível usar o método strftime() da classe datetime para formatar e mostrar a data e hora atual no Python.

Veja o código completo para o exemplo:

from datetime import datetime
import locale

def main():
  # Configurações do usuário
  locale.setlocale(locale.LC_ALL, '')
 
  # Obtém um datetime da data e hora atual
  hoje = datetime.today()
 
  # Exibe a data atual formatada
  data = hoje.strftime("Hoje é %A, %d de %B de %Y")
  print(data)
 
if __name__== "__main__":
  main()

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

Hoje é segunda-feira, 08 de março de 2019


Python ::: Python para Engenharia ::: Engenharia Civil - Concreto, Concreto Armado e Concretos Especiais

Como calcular o Momento Mínimo de uma viga de concreto armado usando Python - Python para Engenharia Civil e Cálculo Estrutural

Quantidade de visualizações: 179 vezes
A ABNT NBR 6118 (Projeto de estruturas de concreto armado) define que todas as vigas, independente de suas dimensões e momentos solicitantes, precisam apresentar uma taxa mínima de armadura de tração. O concreto possui excelente resistência à compressão, porém, sua resistência à tração é muito baixa, ficando em torno de 10% do valor de sua resistência à compressão.

A NBR 6118 lista, como primeira exigência, uma taxa mínima absoluta de 0,15% de armadura longitudinal para as vigas de concreto armado. A segunda exigência é calcular a área de armadura mínima a partir do Mdmin, que é o momento mínimo (de projeto) a ser considerado no dimensionamento.

Dessa forma, após calcularmos o momento mínimo Mdmin, só precisamos calcular a área de aço correspondente a este momento.

A fórmula do momento mínimo para as vigas de concreto armado é:

\[M_\text{dmin} = 0,8 \cdot W_\text{0} \cdot f_\text{ctk,sup}\]
Onde:

Mdmin é o momento mínimo de projeto a ser considerado, em kN.m (ou kN.cm dependendo da necessidade);

fctk,sup é o limite superior da resistência à tração média do concreto, em kN.cm2. Em outra dica desta seção eu mostrei como o fctk,sup é calculado;

W0 é o módulo de resistência da seção transversal da viga, em m3.

Já o Módulo de Resistência da Seção (para seções retangulares), é calculado pela seguinte fórmula:

\[W_\text{0} = \frac{b \cdot h^2}{6}\]
Onde:

W0 é o módulo de resistência da seção transversal da viga, em cm3;

b é a largura da viga em centímetros;

h é a altura da viga em centímetros.

Veja agora o código Python que pede para o usuário informar o FCK do concreto e as dimensões da viga e calcula o fctk,sup, o W0 e finalmente o Mdmin solicitante para o cálculo da armadura longitudinal mínima da viga:

# vamos importar o módulo Math
import math

# função principal do programa
def main():
  # vamos pedir para o usuário informar o FCK do concreto
  fck = float(input("Informe o FCK do concreto em Mpa: "))

  # vamos ler a largura da viga
  bw = float(input("Informe a largura bw da viga em cm: "))
  
  # vamos ler a altura da viga
  h = float(input("Informe a altura h da viga em cm: "))
  
  # agora vamos calcular a resistência à tração média
  # do concreto
  fctk_m = 0.3 * math.pow(fck, 2.0 / 3.0)

  # vamos calcular o limite superior
  fctk_sup = 1.3 * fctk_m

  # vamos calcular o módulo de resistência da seção
  w0 = (bw * math.pow(h, 2) / 6.0) 

  # agora já podemos calcular o momento mínimo
  mdmin = 0.8 * w0 * (fctk_sup / 10.0)

  # e mostramos os resultados
  print("\nO fctk,sup é: {0} Mpa ({1} kN/cm2)".format(round(fctk_sup, 5),
    round(fctk_sup / 10.0, 5)))
  print("O módulo de resistência da seção W0 é: {0} cm3 ({1} m3)".format(
    round(w0, 5), round(w0 / 1000000.0, 5)))
  print("O momento mínimo Mdmin é: {0} kN.cm ({1} kN.m)".format(
    round(mdmin, 5), round(mdmin / 100.0, 5)))

if __name__ == "__main__":
  main()

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

Informe o FCK do concreto em Mpa: 30
Informe a largura bw da viga em cm: 20
Informe a altura h da viga em cm: 50

O fctk,sup é: 3.76541 Mpa (0.37654 kN/cm2)
O módulo de resistência da seção W0 é: 8333.33333 cm3 (0.00833 m3)
O momento mínimo Mdmin é: 2510.2724 kN.cm (25.10272 kN.m)


jQuery ::: Dicas & Truques ::: AJAX

Quais os parâmetros que podem ser usados com o método ajax() da biblioteca jQuery

Quantidade de visualizações: 13329 vezes
O método ajax() do jQuery aceita um mapa de opções para a requisição HTTP a ser realizada. Boa parte destas opções possuem valores padrões e, portanto, não precisam ser especificadas. A lista a seguir mostra os parâmetros disponíveis para o método ajax() na versão 1.2.3:

url: Uma string contendo a URL para a qual a requisição HTTP será feita.

type (opcional): Uma string definindo o método HTTP a ser usado na requisição (GET ou POST). O valor padrão é GET.

dataType (opcional): Uma string definindo o tipo de dados aguardados como resposta do servidor (xml, html, json ou script).

ifModified (opcional): Um valor Boolean indicando se o servidor deverá verificar se a página foi modificada antes de responder à requisição.

timeout (opcional): O número de milisegundos após o qual a requisição sofrerá timeout e apresentará uma falha.

global (opcional): Um valor Boolean indicando se gerenciadores de eventos AJAX globais serão disparados por esta requisição. O valor padrão é true.

beforeSend (opcional): Uma função de callback que será executada antes da requisição HTTP ser feita.

error (opcional): Uma função de callback que é executada se a requisição falhar.

success (opcional): Uma função de callback que será executada se a requisição for feita com sucesso.

complete (opcional): Uma função de callback que é executada quando a requisição finalizar.

data (opcional): Um mapa ou string que será enviado ao servidor junto com a requisição.

processData (opcional): Um valor boolean indicando se a conversão dos dados enviados em um formato objeto para o formato query-string deverá ser feita. O valor padrão é true.

contentType (opcional): Uma string contendo o tipo de conteúdo MIME a ser definindo para a requisição. O valor padrão é application/x-www-form-urlencoded.

async (opcional): Um valor Boolean indicando se a requisição deverá ser feita de forma assíncrona. O valor padrão é true.

Nesta seção você encontra vários exemplos de uso da função ajax() do jQuery.


JavaScript ::: Dicas & Truques ::: Set (Conjunto)

Como retornar elementos presentes no primeiro vetor e não presentes no segundo vetor em JavaScript usando o objeto Set

Quantidade de visualizações: 1457 vezes
Este é um código muito interessante de ser feito em JavaScript. Dados dois arrays a e b, temos que retornar os números que estão presentes no primeiro array, mas que não estão presentes no segundo array.

Este código pode ser escrito usando diversas abordagens. Nesta dica mostrarei como resolvê-lo usando um objeto Set, adicionado à linguagem JavaScript na revisão ECMAScript 2015, também chamada de ES6 e ECMAScript 6.

Vamos ao código então:

<html>
<head>
  <title>O objeto Set do JavaScript</title>
</head>
<body>

<script type="text/javascript">
  // primeiro vetor
  var a = [4, 8, 1, 23, 65];
  // segundo vetor
  var b = [23, 8, 90, 3, 7];
  // vetor resultante
  var c = [];
  
  // criamos um objeto Set e guardamos nele os
  // elementos do segundo vetor
  var set = new Set();
  for (var i = 0; i < b.length; i++){
    set.add(b[i]);
  }
  
  // agora varremos o primeiro vetor e usamos
  // o método has() do objeto Set para verificar se
  // o valor não está contido nele
  for (var i = 0; i < a.length; i++){
    if(!set.has(a[i])){
      c.push(a[i]);
    }
  }
  
  document.writeln("Primeiro vetor: " + a);
  document.writeln("<br>Segundo vetor: " + b);
  document.writeln("<br>Resultado: " + c);
</script>

</body>
</html>

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

Primeiro vetor: 4, 8, 1, 23, 65
Segundo vetor: 23, 8, 90, 3, 7
Resultado: 4, 1, 65

Note que os valores 4, 1 e 65 estão presentes no primeiro array mas não estão presentes no segundo.


Java ::: Dicas & Truques ::: Expressões Regulares

Como remover todos os espaços de uma string em Java usando expressões regulares

Quantidade de visualizações: 8192 vezes
Nesta dica mostrarei como usar o método replaceAll() da classe Matcher da linguagem Java para remover todos os espaços de um texto ou frase. Esta classe faz parte do pacote java.util.regex e é usada em quase todos os códigos Java envolvendo expressões regulares.

Veja o código completo para o exemplo:

package arquivodecodigos;

import java.util.regex.*;
 
public class Estudos{ 
  public static void main(String args[]){ 
    String padrao = "\\s";
    Pattern regPat = Pattern.compile(padrao);
    String frase = "Esta frase contém alguns espaços"; 
    System.out.println(frase);
    Matcher matcher = regPat.matcher(frase);
    String res = matcher.replaceAll("");
    System.out.println("Sem espaços: " + res);
  } 
}

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

Esta frase contém alguns espaços
Sem espaços: Estafrasecontémalgunsespaços


Delphi ::: Dicas & Truques ::: Arrays e Matrix (Vetores e Matrizes)

Como obter o índice inicial e final de um vetor usando as funções Low() e High() da unit System do Delphi

Quantidade de visualizações: 11975 vezes
Como os índices dos vetores em Delphi, diferente de outras linguagens, nem sempre começam em 0, não podemos deduzir que Length() - 1 retornará o índice final do vetor. Desta forma, podemos usar as funções Low() e High(), ambas presentes na unit System.

A função Low() retorna o índice inicial do vetor, enquanto High() retorna o índice final. Veja:

procedure TForm3.Button1Click(Sender: TObject);
var
  valores: array[11..20] of Integer;
  inicio, fim: Integer;
begin
  // vamos obter o índice inicial do vetor
  inicio := Low(valores);

  // vamos obter o índice final da vetor
  fim := High(valores);

  // vamos exibir o resultado
  ShowMessage('O índice inicial do vetor é: ' + IntToStr(inicio));
  ShowMessage('O índice final do vetor é: ' + IntToStr(fim));
  ShowMessage('O tamanho do vetor é: ' + IntToStr((fim - inicio) + 1));
end;

Lembre-se desta dica quando precisar percorrer os elementos de um vetor ou uma matriz usando o laço For da linguagem Delphi.


Delphi ::: Dicas & Truques ::: MIDI Musical Instrument Digital Interface, Mapeamento e sequenciamento MIDI, Entrada e saída MIDI

Como retornar uma lista dos dispositivos de entrada MIDI no sistema usando Delphi

Quantidade de visualizações: 11259 vezes
Em algumas ocasiões nós precisamos obter uma lista dos dispositivos de entrada MIDI no sistema, talvez com o propósito de selecionar um determinado dispositivo em uma ListBox ou ComboBox. O trecho de código abaixo mostra como isso pode ser feito.

O primeiro passo é declarar uma variável do tipo TMidiInCaps. Este registro está declarado na unit MMSystem.pas e é uma tradução da estrutura MIDIINCAPS da API do Windows. Entre outros tipos de dados, esta estrutura possui um membro szPname que retorna o nome do dispositivo. Na unit MMSystem.pas este membro está declarado como array[0..MAXPNAMELEN-1] of AnsiChar, ou seja, uma matriz de AnsiChar que será preenchida pela API do Windows e terá seu final marcado com o caractere null (NULL terminated string). Note a conversão deste valor para o tipo String no momento de inserí-lo no ComboBox. Em versões anteriores do Delphi (estou escrevendo este código no Delphi 2009) podíamos usar a função StrPas() para esta finalidade.

O passo seguinte é obter a quantidade de dispositivos de entrada MIDI. Isso é feito com uma chamada à função midiInGetNumDevs da API do Windows. Uma vez obtida a quantidade de dispositivos nós usamos um laço for e, no corpo deste laço, usamos o valor da variável de controle i para efetuar uma chamada à função midiInGetDevCaps(), também da API do Windows:

midiInGetDevCaps(i, @MidiInCaps, sizeof(TMidiInCaps));

Esta função recebe o identificador do dispositivo (um valor inteiro começando em 0 e indo até a quantidade de dispositivos - 1), um ponteiro para um registro MidiInCaps e o tamanho em bytes do registro. Se a função for executada com sucesso, o registro MidiInCaps será preenchido com várias informações úteis, tais como o nome do dispositivo, o ID do fabricante, o ID do produto, versão do driver, etc.

Para finalizar, nós acessamos o campo szPname do registro MidiInCaps e o adicionamos no ComboBox. Veja o código completo a seguir:

procedure TForm1.Button1Click(Sender: TObject);
var
  i: Integer;
  MidiInCaps: TMidiInCaps; // este record está definido em MMSystem.pas
  erro: Word;
begin
  // uses MMSystem  

  ComboBox1.Clear;
  // midiInGetNumDevs retorna a quantidade de dispositivos de entrada
  // MIDI no sistema
  for i := 0 to midiInGetNumDevs - 1 do
  begin
    // vamos obter o dispositivo identificado pela variável i (uDeviceID)
    erro := midiInGetDevCaps(i, @MidiInCaps, sizeof(TMidiInCaps));
    if erro <> MMSYSERR_NOERROR then
       raise Exception.Create('Não foi possível obter a lista de dispositivos ' +
         'de entrada MIDI');

    // vamos adicionar o nome do dispositivo no ComboBox
    ComboBox1.Items.Add(String(MidiInCaps.szPname));
  end;
end;

Ao executar este código o ComboBox será preenchido no mínimo com o valor:

MPU-401

Este é o MPU 401-compatible MIDI input port, um dos dispositivos de entrada MIDI mais comuns nos PCs, embora já não esteja tão presente nos computadores mais atuais.

Para fins de compatibilidade esta dica ou anotação foi escrita usando Delphi 2009.


Python ::: Dicas & Truques ::: Data e Hora

Datas e horas em Python - Como obter a hora como um decimal no intervalo 00-12 (formato 12 horas)

Quantidade de visualizações: 7539 vezes
Este exemplo mostra como obter a hora como um decimal no intervalo 00-12 (formato 12 horas) usando o método strftime() da classe datetime com o sinalizador "%I".

Veja o código completo para a dica:

from datetime import datetime

def main():
  # Obtém um datetime da data e hora atual
  hoje = datetime.today()
 
  # Exibe a hora atual como um decimal
  print(hoje.strftime("A hora é: %I"))

if __name__== "__main__":
  main()

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

A hora é: 10


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

Exercício Resolvido de Ruby - Como percorrer os elementos de um array em Ruby usando a função each

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

Dado o seguinte array de int:

# vamos criar um array com 5 elementos
valores = [8, 3, 10, 4, 7]
Escreva um programa Ruby que usa a função each para percorrer os elementos deste array e exibir seus valores, todos na mesma linha e separados por espaço.

Sua saída deverá ser parecida com:

8 3 10 4 7
Resposta/Solução:

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

# vamos criar um array com 5 elementos
valores = [8, 3, 10, 4, 7]

# vamos usar a função each para percorrer
# os itens do array e exibir seus valores
valores.each { | valor | print valor.to_s + " " }

Veja agora essa mesma resolução usando uma pequena variação, dessa vez usando each...do:

# vamos criar um array com 5 elementos
valores = [8, 3, 10, 4, 7]

# vamos usar a função each para percorrer
# os itens do array e exibir seus valores
valores.each do | valor |
  print valor.to_s + " "
end


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