![]() |
|
||||
![]() Planilha Web - Planilhas e Calculadoras online para estudantes e profissionais de Engenharia Civil, Engenharia Elétrica e Engenharia Mecânica. |
|||||
Delphi ::: Data Access Controls (Controles de Acesso a Dados) ::: TClientDataSet |
Como usar a propriedade Eof para verificar se estamos no último registro do TClientDataSet do DelphiQuantidade de visualizações: 14346 vezes |
Em algumas situações gostaríamos de verificar se já estamos no último registro do TClientDataSet, ou seja, estamos percorrendo todos os registros do dataset e queremos saber se já estamos no último. Para isso podemos usar a propriedade Eof da classe TClientDataSet. Esta propriedade retorna true se estivermos no último registro e false em caso contrário. Veja um trecho de código no qual usamos um laço while para percorrer todos os registros de um TClientDataSet. Note o uso da propriedade Eof para finalizar as iterações do laço: procedure TForm3.Button4Click(Sender: TObject); begin // vamos percorrer todos os registros do TClientDataSet ClientDataSet1.First; // vamos para o primeiro registro // e agora disparamos um laço While while not ClientDataSet1.Eof do begin // vamos mostrar em um TMemo os valores do // campo id de cada registro Memo1.Lines.Add(ClientDataSet1.FieldByName('id').AsString); // vamos mover para o próximo registro ClientDataSet1.Next; end; end; A propriedade Eof é verdadeira quando: a) Abrimos um dataset vazio. b) Efetuamos uma chamada ao método Last do dataset. c) Chamamos o método Next do dataset e a chamada falha porque o registro atual já é o último registro no dataset. d) Efetuamos uma chamada ao método SetRange em uma faixa de dados ou dataset vazio. Esta dica foi escrita e testada no Delphi 2009. |
Java ::: Dicas & Truques ::: Threads |
Threads em Java - Como usar a interface Runnable da Java API em suas aplicaçõesQuantidade de visualizações: 17959 vezes |
A interface pública Runnable deve ser implementada em nossas classes quando queremos que instâncias destas possam ser executadas por uma thread. Esta interface está no pacote java.lang e entre as classes que a implementam podemos citar AsyncBoxView.ChildState, FutureTask, RenderableImageProducer, Thread e TimerTask. Esta interface apresenta apenas um método, a saber: public void run(); Este interface foi idealizada para fornecer um protocolo comum para objetos que têm como objetivo executar determinadas porções de código enquanto ativos. Por exemplo, Runnable é implementada pela classe Thread. Estar ativa significa que uma thread foi iniciada e ainda não finalizou sua tarefa. Além disso, a interface Runnable fornece meios para que uma classe esteja ativa sem fazer sub-classe de Thread. Uma classe que implementa Runnable pode ser executada sem fazer sub-classe de Thread criando-se uma instância de Thread e fornecendo tal classe como alvo. Na maioria dos casos, a interface Runnable deve ser usada se estivermos planejando apenas sobrescrever o método run() e nenhum outro método da classe Thread. Isso é importante, uma vez que não devemos extender classes a menos que tenhamos a intenção de modificar ou extender o comportamento fundamental da classe. Veja uma aplicação na qual temos uma classe que implementa Runnable. Note como criamos instâncias de Thread e fornecemos nossa classe como alvo: // criamos uma classe que servirá como thread class MinhaThread implements Runnable{ private String nome; public MinhaThread(String nome){ this.nome = nome; } public void run(){ for(int i = 1; i <= 20; i++){ System.out.println(nome + ": " + i); } } } public class Estudos{ public static void main(String[] args){ // vamos criar duas threads MinhaThread mt1 = new MinhaThread("Thread 1"); Thread t1 = new Thread(mt1); t1.start(); MinhaThread mt2 = new MinhaThread("Thread 2"); Thread t2 = new Thread(mt2); t2.start(); System.exit(0); } } |
Java ::: Desafios e Lista de Exercícios Resolvidos ::: Java Básico |
Exercício Resolvido de Java - Escreva um algoritmo Java que leia o nome de um vendedor, o seu salário fixo e o total de vendas efetuadas por ele no mêsQuantidade de visualizações: 11418 vezes |
Pergunta/Tarefa: Escreva um algoritmo Java que leia o nome de um vendedor, o seu salário fixo e o total de vendas efetuadas por ele no mês (em dinheiro). Sabendo que este vendedor ganha 15% de comissão sobre suas vendas efetuadas, informar o seu nome, o salário fixo e o salário no final do mês. Sua saída deverá ser parecida com: Nome do vendedor: CAMILA REIS Informe o salário fixo: 1850 Total de vendas efetuadas: 5000 Resultados: Nome do vendedor: CAMILA REIS Salário fixo: 1850.0 Salário final do mês: 2600.0 Veja a resolução deste exercício usando Java: package estudos; import java.util.Scanner; public class Estudos { public static void main(String[] args) { // para ler a entrada do usuário Scanner entrada = new Scanner(System.in); // vamos ler o nome do vendedor System.out.print("Nome do vendedor: "); String nome = entrada.nextLine(); // vamos ler o salário fixo System.out.print("Informe o salário fixo: "); double salario_fixo = Double.parseDouble(entrada.nextLine()); // vamos o total de vendas efetuadas pelo vendedor System.out.print("Total de vendas efetuadas: "); double total_vendas = Double.parseDouble(entrada.nextLine()); // agora vamos calcular o total da comissão a ser paga double total_comissao = total_vendas * (15.0 / 100.0); // calculamos o salário final double salario_final = salario_fixo + total_comissao; // e mostramos os resultados System.out.println("\nResultados:\n"); System.out.println("Nome do vendedor: " + nome); System.out.println("Salário fixo: " + salario_fixo); System.out.println("Salário final do mês: " + salario_final); } } |
Delphi ::: Dicas & Truques ::: Strings e Caracteres |
Como substituir todas as ocorrências de uma substring em uma string em Delphi sem considerar maiúsculas e minúsculas usando a função ReplaceText()Quantidade de visualizações: 12021 vezes |
Algumas vezes precisamos substituir todas as ocorrências de uma substring em uma string mas não queremos diferenciar letras maiúsculas de letras minúsculas. Em Delphi isso pode ser feito com o auxílio da função ReplaceText(). Esta função requer a string na qual a substituição ocorrerá, a substring a ser substituída e a nova substring. O resultado será uma nova string resultante da substituição. Veja o exemplo:procedure TForm1.Button1Click(Sender: TObject); var frase: string; begin frase := 'PHP? Sim, eu gosto muito de PHP'; // vamos substituir todas as ocorrências de "PHP" por "Delphi' // sem considerar maiúsculas e minúsculas frase := ReplaceText(frase, 'Php', 'Delphi'); // vamos exibir o resultado ShowMessage(frase); end; Lembre-se de que esta função não diferencia maiúsculas e minúsculas. Não se esqueça de adicionar a unit StrUtils no uses do seu formulário. Para questões de compatibilidade, esta dica foi escrita usando Delphi 2009. |
Java ::: Classes e Componentes ::: JList |
Java Swing - Como obter o valor selecionado em um JList usando o método getSelectedValue()Quantidade de visualizações: 13278 vezes |
Nesta dica eu mostro como chamar o método getSelectedValue() de um controle JList para obter o valor do item selecionado na mesma. No exemplo nós exibimos o item selecionado em uma mensagem JOptionPane ao clicarmos em um botão JButton. Veja o código completo para o exemplo: package arquivodecodigos; import java.awt.*; import java.awt.event.*; import javax.swing.*; public class Estudos extends JFrame{ JList lista; public Estudos() { super("A classe JList"); Container c = getContentPane(); c.setLayout(new FlowLayout(FlowLayout.LEFT)); // Cria os itens da lista String nomes[] = {"Carlos", "Marcelo", "Fabiana", "Carolina", "Osmar"}; // Cria a JList lista = new JList(nomes); // Define a seleção única para a lista lista.setSelectionMode(ListSelectionModel.SINGLE_SELECTION); // Um botão que permite obter o valor do item selecionado JButton btn = new JButton("Obter valor selecionado"); btn.addActionListener( new ActionListener(){ public void actionPerformed(ActionEvent e){ String valor = (String)(lista.getSelectedValue()); JOptionPane.showMessageDialog(null, "O valor selecionado é: " + valor); } } ); // Adiciona a lista à janela c.add(new JScrollPane(lista)); // Adiciona o botão à janela c.add(btn); setSize(350, 250); setVisible(true); } public static void main(String args[]){ Estudos app = new Estudos(); app.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); } } Ao executar esta aplicação Java Swing nós teremos o seguinte resultado: ![]() |
Python ::: Python para Engenharia ::: Engenharia Civil - Cálculo Estrutural |
Como calcular o Momento Fletor Mínimo e a Excentricidade Mínima de 1ª Ordem de um pilar em Python - Python para Engenharia Civil e Cálculo EstruturalQuantidade de visualizações: 667 vezes |
![]() O cálculo e dimensionamento de pilares, sejam pilares de canto, extremidade ou intermediários, sempre seguem alguns passos cujas ordens são muito importantes, pois os dados de entrada de um passo podem vir de um ou mais passos anteriores. Em dicas anteriores do uso da linguagem Python no cálculo de pilares eu mostrei como calcular os esforços solicitantes majorados em pilares e também como calcular o índice de esbeltez de um pilar nas direções x e y. Nesta dica mostrarei como calcular o Momento Fletor Mínimo e a Excentricidade Mínima de 1ª Ordem de um pilar. Estes dados são muito importantes para a aplicação das fórmulas que embasam a área de aço a ser usada no pilar. Note que a Excentricidade Mínima de 1ª Ordem pode ser desprezada no caso de pilares intermediários (também chamados pilares de centro). O Momento Fletor Mínimo é o momento mínimo que deve ser considerado, mesmo em pilares nos quais a carga está centrada, e é calculado por meio da seguinte fórmula: \[M_\text{1d,min} = Nd \cdot (1,5 + (0,03 \cdot h) \] Onde: M1d,min é o momento fletor mínimo na direção x ou y em kN.cm. Nd são os esforços solicitantes majorados em kN. h é a dimensão do pilar na direção considerada (x ou y) em cm. A Excentricidade Mínima de 1ª Ordem do pilar pode ser calculada por meio da fórmula: \[e_\text{1,min} = \frac{M_\text{1d,min}}{Nd} \] Onde: e1,min é excentricidade mínima de 1ª ordem na direção escolhida. Nd são os esforços solicitantes majorados em kN. Note que, a exemplo do momento fletor mínimo, a excentricidade mínima de 1ª ordem também deve ser calculada nas direções x e y do pilar. Vamos ao código Python agora? Veja que o código pede para o usuário informar as dimensões do pilar nas direções x e y em centímetros, a carga total que chega ao pilar em kN e mostra o momento fletor mínimo e a excentricidade mínima de 1ª ordem no pilar, tanto na direção x quanto na direção y: # método principal def main(): # vamos pedir as dimensões do pilar hx = float(input("Informe a dimensão do pilar na direção x (em cm): ")) hy = float(input("Informe a dimensão do pilar na direção y (em cm): ")) # vamos pedir a carga total no pilar em kN Nk = float(input("Informe a carga total no pilar (em kN): ")) # vamos obter o menor lado do pilar (menor dimensão da seção transversal) if (hx < hy): b = hx else: b = hy # agora vamos calcular a área do pilar em centímetros quadrados area = hx * hy # a área está de acordo com a norma NBR 6118 (ABNT, 2014) if (area < 360): print("A área do pilar não pode ser inferior a 360cm2") return # vamos calcular a força normal de projeto Nd yn = 1.95 - (0.05 * b) # de acordo com a norma NBR 6118 (ABNT, 2014) Tabela 13.1 yf = 1.4 # regra geral para concreto armado Nd = yn * yf * Nk # e agora vamos calcular o momento fletor mínimo na direção x do pilar M1d_min_x = Nd * (1.5 + (0.03 * hx)) # e agora vamos calcular o momento fletor mínimo na direção y do pilar M1d_min_y = Nd * (1.5 + (0.03 * hy)) # agora vamos calcular a excentricidade mínima de 1ª ordem na direção x do pilar e1x_min = M1d_min_x / Nd # e finalmente a excentricidade mínima de 1ª ordem na direção y do pilar e1y_min = M1d_min_y / Nd # e mostramos os resultados print("\nO momento fletor mínimo na direção x é: {0} kN.cm".format( round(M1d_min_x, 2))) print("O momento fletor mínimo na direção y é: {0} kN.cm".format( round(M1d_min_y, 2))) print("A excentricidade mínima de 1ª ordem na direção x é: {0} cm".format( round(e1x_min, 2))) print("A excentricidade mínima de 1ª ordem na direção y é: {0} cm".format( round(e1y_min, 2))) if __name__== "__main__": main() Ao executar este código Python nós teremos o seguinte resultado: Informe a dimensão do pilar na direção x (em cm): 40 Informe a dimensão do pilar na direção y (em cm): 19 Informe a carga total no pilar (em kN): 841.35 O momento fletor mínimo na direção x é: 3180.3 kN.cm O momento fletor mínimo na direção y é: 2438.23 kN.cm A excentricidade mínima de 1ª ordem na direção x é: 2.7 cm A excentricidade mínima de 1ª ordem na direção y é: 2.07 cm |
Python ::: Dicas & Truques ::: Strings e Caracteres |
Como converter uma string para float ou double em Python usando a função float()Quantidade de visualizações: 1675 vezes |
Em algumas situações nós temos um valor numérico representado por uma string e gostaríamos de convertê-lo para um valor float ou double na linguagem Python. Para isso nós podemos usar a função float(), disponível por padrão na linguagem. Note o uso da função type() para exibirmos o tipo da variável antes e depois da conversão. Veja o código Python completo para o exemplo: # método principal def main(): # vamos pedir para o usuário informar o preço de um produto # note que o preço será lido como uma string preco = input("Informe o valor do produto: ") # vamos exibir o valor lido e o tipo da variável print("Você informou o valor: {0}".format(preco)) print("O tipo da variável é: {0}".format(type(preco))) # agora vamos converter a string para o tipo float preco = float(preco) # vamos mostrar o novo tipo da variável print("O novo tipo da variável é: {0}".format(type(preco))) if __name__== "__main__": main() Ao executar este código Python nós teremos o seguinte resultado: Informe o valor do produto: 45.92 Você informou o valor: 45.92 O tipo da variável é: <class 'str'> O novo tipo da variável é: <class 'float'> É preciso, no entanto, ter cuidado ao informar a string que será convertida para float. Se, em vez de informar o ponto separador de decimal, nós informarmos a vírgula, o seguinte erro será apresentado: Informe o valor do produto: 45,21 Você informou o valor: 45,21 O tipo da variável é: <class 'str'> Traceback (most recent call last): File "c:\estudos_python\estudos.py", line 18, in <module> main() File "c:\estudos_python\estudos.py", line 12, in main preco = float(preco) ValueError: could not convert string to float: '45,21' |
C# ::: Dicas & Truques ::: Arrays e Matrix (Vetores e Matrizes) |
Como zerar todos os valores dos elementos de um array de inteiros em C# usando o método Clear() da classe ArrayQuantidade de visualizações: 11013 vezes |
Nesta dica mostrarei como é possível usar o método estático Clear() da classe Array da linguagem C# para zerarmos todos os valores de um vetor de inteiros. Note que este método altera o array original. Veja o exemplo C# completo: using System; namespace Estudos { class Program { static void Main(string[] args) { // cria e inicializa um array de inteiros int[] valores = {4, 69, 1, 0, 17, 23, 14}; Console.WriteLine("Com valores originais:"); // percorre todos os elementos originais for (int i = 0; i < valores.Length; i++) { Console.WriteLine(valores[i]); } // zera todos os elementos do array Array.Clear(valores, 0, valores.Length); Console.WriteLine("Valores zerados:"); for (int i = 0; i < valores.Length; i++) { Console.WriteLine(valores[i]); } Console.WriteLine("\n\nPressione qualquer tecla para sair..."); // pausa o programa Console.ReadKey(); } } } Ao executar este código C# nós teremos o seguinte resultado: Com valores originais: 4 69 1 0 17 23 14 Valores zerados: 0 0 0 0 0 0 0 |
GNU Octave ::: GNU Octave para Engenharia ::: Geometria Analítica e Álgebra Linear |
GNU Octave para Álgebra Linear - Como calcular o determinante de uma matriz usando a função det() do GNU OctaveQuantidade de visualizações: 2812 vezes |
Na Matemática e na Álgebra Linear, o determinante é uma função matricial que associa a cada matriz quadrada um escalar, ou seja, o determinante é uma função que transforma uma matriz quadrada em um número real. O determinante, ou melhor, a função determinante, permite saber se a matriz tem ou não inversa (matriz inversa), pois, as matriz que não tem inversa, são precisamente aquelas cujo determinante é igual a 0. Se o determinante for diferente de zero, então a matriz é uma matriz invertível. O determinante de uma matriz A é denotado por det(A), det A ou |A|. O software GNU Octave nos fornece uma forma rápida para obtermos o determinante de uma matriz: a função det(). Veja o exemplo a seguir (digitando diretamente na Janela de Comandos): >> A = [1, 2, 3; 2, 5, 2; 1, 3, 1] [ENTER] A = 1 2 3 2 5 2 1 3 1 >> det(A) [ENTER] ans = 2 >> Veja que declaramos uma matriz 3x3 com o nome A e em seguida usamos a função det() para obter o seu determinante. Vamos ver agora como podemos fazer esse mesmo cálculo em um script do GNU Octave: # declara uma matriz quadrada de ordem 3 A = [1, 2, 3; 2, 5, 2; 1, 3, 1] # calculamos o determinante determinante = det(A) # mostramos os resultado fprintf("O determinante da matriz A é %f\n", determinante); Não se esqueça de pesquisar sobre as propriedades do determinante. São cerca de 10 propriedades que nos ajudam a calcular o determinante da matriz simplesmente olhando para a sua composição. |
Java ::: Desafios e Lista de Exercícios Resolvidos ::: Métodos, Procedimentos e Funções |
Exercício Resolvido de Java - Como converter minutos em segundos em Java usando uma funçãoQuantidade de visualizações: 916 vezes |
Pergunta/Tarefa: Escreva um programa Java para converter minutos em segundos. Você deverá criar uma função converter() que receberá, como argumento, um número inteiro representando os minutos e retornará, também como um inteiro, os segundos correspondentes. Os minutos deverão ser informados pelo usuário. Sua saída deverá ser parecida com: Informe os minutos: 15 A quantidade de segundos é: 900 Veja a resolução comentada deste exercício em Java: package estudos; import java.util.Scanner; public class Estudos { public static void main(String[] args) { // para ler a entrada do usuário Scanner entrada = new Scanner(System.in); // vamos pedir para o usuário informar os minutos System.out.print("Informe os minutos: "); int minutos = Integer.parseInt(entrada.nextLine()); // agora vamos chamar a função converter() para converter // os minutos em segundos int segundos = converter(minutos); // e mostramos o resultado System.out.println("A quantidade de segundos é: " + segundos); } // função usada para converter minutos em segundos public static int converter(int minutos){ int segundos = minutos * 60; return segundos; } } |
Nossas 20 dicas & truques de programação mais populares |
Java - Apostila de Java - Como retornar uma substring em Java usando o método substring() da classe String C# - Como retornar a quantidade de elementos que podem ser armazenados na List do C# sem redimensioná-la |
Você também poderá gostar das dicas e truques de programação abaixo |
JavaScript - Como retornar o dia da semana em JavaScript no formato Domingo, Segunda-feira, Terça-feira, etc JavaScript - JavaScript Avançado - Como remover todas as ocorrências de uma substring em uma string usando uma função recursiva |
Nossas 20 dicas & truques de programação mais recentes |
Últimos Projetos e Códigos Fonte Liberados Para Apoiadores do Site |
Python - Como criar o jogo Pedra, Papel, Tesoura em Python - Jogo completo em Python com código comentado |
Últimos Exercícios Resolvidos |
E-Books em PDF |
||||
|
||||
|
||||
Linguagens Mais Populares |
||||
1º lugar: Java |