Você está aqui: Cards de |
||
|
||
|
|
||
Delphi ::: Dicas & Truques ::: Arquivos e Diretórios |
Como listar todos os arquivos de um diretório usando DelphiQuantidade de visualizações: 2747 vezes |
|
Como listar todos os arquivos de um diretório usando Delphi Em algumas situações precisamos listar todos os arquivos contidos em um determinado diretório. Para isso podemos usar a função abaixo. Esta função recebe o caminho e nome de um diretório e uma coleção de strings TStrings. Como resultado de sua execução, a função insere em TStrings todos os nomes dos diretórios encontrados. Para facilitar o entendimento do exemplo eu incluí uma chamada à função a partir do evento Click de um botão. Tenha a certeza de colocar uma TListBox no formulário antes de executar o código:
procedure listarArquivosDir(diretorio: string; lista: TStrings);
var
search_rec: TSearchRec;
begin
if FindFirst(diretorio + '*.*', faAnyFile, search_rec) = 0 then
begin
repeat
if search_rec.Attr <> faDirectory then
lista.Add(search_rec.Name);
until FindNext(search_rec) <> 0;
FindClose(search_rec);
end;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
listarArquivosDir('c:\', ListBox1.Items);
end;
Para fins de compatibilidade, esta dica foi escrita usando Delphi 2009. |
C ::: Dicas & Truques ::: Arquivos e Diretórios |
Como ler o conteúdo de um arquivo um caractere de cada vez usando a função fgetc() da linguagem CQuantidade de visualizações: 797 vezes |
|
A função fgetc() da linguagme C pode ser usada quando queremos ler o conteúdo de um arquivo um caractere de cada vez. Esta função retorna o caractere atualmente representado pelo indicador de posição interna no arquivo. Depois de lido o caractere, o indicador de posição avança para apontar para o próximo caractere. Veja a assinatura desta função: int fgetc(FILE *file); O trecho de código abaixo mostra como usar um laço while para ler todos os caracteres do arquivo especificado e exibir o conteúdo na tela:
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char *argv[])
{
FILE *arquivo = fopen("c:\\testes.txt", "r");
int caractere;
// testa se o arquivo foi aberto com sucesso
if(arquivo != NULL){
// vamos usar um laço para ler o conteúdo do arquivo
// e exibí-lo
while((caractere = fgetc(arquivo)) != EOF)
printf("%c", caractere);
fclose(arquivo); // libera o ponteiro para o arquivo
}
else
printf("Nao foi possivel abrir o arquivo.");
printf("\n\n");
system("PAUSE");
return 0;
}
|
Python ::: Python para Engenharia ::: Engenharia Civil - Cálculo Estrutural |
Como calcular o peso que um pilar aguenta usando Python - Python para Engenharia CivilQuantidade de visualizações: 462 vezes |
![]() O sonho de todo estudante de Engenharia Civil é poder responder, com segurança, a uma das perguntas mais recorrentes no nosso dia-a-dia: Quanto de peso um pilar aguenta? Para responder, basta nos lembrarmos de que o concreto é muito resistente à compressão, e, no caso dos pilares, a armadura é usada, em sua maior parte, para combater a flambagem, que é quando o pilar tende a fletir para os lados, parecendo-se com um arco ou com uma barriga de chope. Então, uma vez que o pilar recebe sua carga em seu eixo (carga axial) e o concreto é muito resistente à compressão, só precisamos nos concentrar na resistência característica do concreto à compressão e na área da seção transversal do pilar. Sempre que falamos de resistência do concreto, nós estamos falando de FCK C15, C20, C25, C30, etc, que são os termos usados para designar sua resistência. Assim, um concreto C25 é o mesmo que 25 MPa, ou seja, esse concreto resiste a 250Kg/cm2. Os concretos usinados, em geral, vêm com resistência de 25 MPa para cima, enquanto aquele concreto que fazemos na obra, na betoneira, usando a combinação de 3x1, chega no máximo a 15 MPa. Além disso, é importante nos lembrarmos de que a norma NBR 6118/2014 exige que o concreto seja igual ou superior a 25 MPa. Há também o fator de segurança de 40%, também exigido pela norma NBR 6118/2014. Dessa forma, se o concreto for de 25 MPa, aplicado o fator de segurança, só podemos contar com 15 MPa mais ou menos, o que daria 150Kg/cm2. Vamos ver código agora? Veja o código Python completo que pede os lados b (base) e h (altura) do pilar e o FCK do concreto usado e retorna o peso que o pilar suporta (já aplicado o fator de segurança):
# Algoritmo Python que calcula o peso suportado por um pilar
# dados os seus lados e o FCK do concreto
# função principal do programa
def main():
# vamos ler o lado b do pilar
base = float(input("Informe a base (b) do pilar em cm: "))
# vamos ler a altura h do pilar
altura = float(input("Informe a altura (h) do pilar em cm: "))
# vamos calcular a área da seção transversal do pilar
area = base * altura
# agora vamos ler o FCK do concreto em MPa
fck = float(input("Informe o FCK do concreto em MPa: "))
# vamos calcular o peso suportado pelo pilar
peso_suportado = area * (fck * 10)
# vamos aplicar o fator de segurança de 40%
peso_suportado = peso_suportado / 1.4
# e mostramos o resultado
print("A área da seção transversal é: {0} cm2".format(area))
print("Esse pilar suporta {0} kg".format(peso_suportado))
if __name__== "__main__":
main()
Ao executar este código Python nós teremos o seguinte resultado: Informe a base (b) do pilar em cm: 14 Informe a altura (h) do pilar em cm: 26 Informe o FCK do concreto em MPa: 20 A área da seção transversal é: 364.0 cm2 Esse pilar suporta 52000.0 kg Lembre-se de que a área mínima da seção de um pilar, de acordo com a NBR 6118/2014 é de 360 cm2. |
Delphi ::: Data Controls (Controles de Dados) ::: TDBGrid |
Como navegar (percorrer) pelas células do TDBGrid do Delphi usando a tecla EnterQuantidade de visualizações: 12717 vezes |
|
Há situações nas quais queremos que os usuários de nossas aplicações Delphi sejam capazes de pressionar a tecla Enter para passar (ou saltar) pelas células dos controles DBGrid. A navegação padrão é com a tecla Tab e/ou as teclas de direção. Nesta dica eu mostro como isso pode ser feito. Suponha que você tem um componente TDBGrid com o nome "DBGrid1". Vá ao seu evento OnKeyPress e modifique-o para o código abaixo:
procedure TForm3.DBGrid1KeyPress(Sender: TObject; var Key: Char);
begin
// o usuário pressionou a tecla Enter?
if Key = #13 then
begin
// ainda não estamos na última coluna
if DBGrid1.Columns.Grid.SelectedIndex < DBGrid1.Columns.Count - 1 then
// vamos passar para a próxima célula
DBGrid1.Columns[DBGrid1.Columns.Grid.SelectedIndex + 1].Field.FocusControl
else begin
// vamos passar para o próximo registro da tabela
DBGrid1.DataSource.DataSet.Next;
DBGrid1.Columns[0].Field.FocusControl;
end;
end;
end;
Execute a aplicação e experimente o efeito. É claro que a navegação com a tecla Enter só funciona em uma direção (tal qual a tecla Tab). Para voltar para as células anteriores você ainda terá que acionar as teclas de direção. Note o uso do método Next da classe TDataSet para forçarmos o foco a ir para a próxima linha do TDBGrid. Esta dica foi escrita e testada no Delphi 2009. |
C++ ::: Fundamentos da Linguagem ::: Tipos de Dados |
Como usar true e false em C e C++Quantidade de visualizações: 15176 vezes |
|
Em praticamente todas as linguagens de programação nós encontramos expressões condicionais que definem o fluxo de execução. Expressões condicionais são aquelas que, quando avaliadas, resultam em um valor true (verdadeiro) ou false (falso). Muitas linguagens de programação possuem um tipo booleano que armazena os valores true ou false. Enquanto o C++ possui o tipo bool, o C possui uma forma bem interessante de definir true ou false. Em C, um valor true é qualquer valor diferente de 0, incluindo numeros negativos. Veja:
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char *argv[])
{
int pode = 1; // verdadeiro
int nao_pode = 0; // falso
if(pode)
printf("Teste resultou verdadeiro\n\n");
if(!nao_pode)
printf("Teste resultou verdadeiro\n\n");
system("PAUSE");
return 0;
}
Lembre-se então. False em C é o valor zero. Qualquer outro valor é true. Embora C++ já possua o tipo bool, é possível usar a abordagem do zero para false e qualquer outro valor para true em C++ também. Você verá muito código legado usando este artifício. Quer ver algo interessante agora? Execute o seguinte código C++:
#include <string>
#include <iostream>
using namespace std;
int main(int argc, char *argv[]){
bool pode = true;
bool nao_pode = false;
cout << pode << "\n";
cout << nao_pode << "\n\n";
system("PAUSE"); // pausa o programa
return EXIT_SUCCESS;
}
Nos compiladores que obedecem o C++ padrão você verá os valores 1 e 0 serem impressos. |
Desafios, Exercícios e Algoritmos Resolvidos de C++ |
Veja mais Dicas e truques de C++ |
Dicas e truques de outras linguagens |
E-Books em PDF |
||||
|
||||
|
||||
Linguagens Mais Populares |
||||
|
1º lugar: Java |






