![]() |
|
|
Planilha de Dimensionamento de Tubulações
Hidráulicas Água Fria e Água Quente CompletaNossa planilha automática de dimensionamento de tubulações de água fria e quente é uma ferramenta desenvolvida para auxiliar engenheiros e projetistas no cálculo rápido e preciso das redes hidráulicas de edificaçoes. Por meio da inserçao de dados como vazao, diâmetro da tubulaçao, comprimento da rede, material do tubo e coeficientes hidráulicos, a planilha realiza automaticamente os cálculos necessários para verificar velocidade da água, perda de carga e dimensionamento adequado das tubulaçoes. |
||
Você está aqui: Cards de Engenharia Civil - Estruturas de Aço e Madeira |
||
|
||
|
|
||
Python ::: Pandas Python Library (Biblioteca Python Pandas) ::: Input e Output (Entrada e Saída) |
Como usar o método read_csv() do Pandas da linguagem Python para carregar um dataset e retorná-lo como um DataFrameQuantidade de visualizações: 5870 vezes |
|
Quando estamos desenvolvendo soluções em Data Science ou Machine Learning, é comum precisarmos carregar dados contidos em arquivos .csv (nos quais os registros são separados por vírgulas ou ponto-e-vírgula). Para isso podemos usar o método read_csv() da biblioteca Pandas do Python. Veja um exemplo no qual usamos o método read_csv() para carregar um dataset e depois exibir o DataFrame resultante. Para isso usaremos uma amostra de dados de empréstimos aprovados ou recusados. O arquivo .csv pode ser baixado aqui. Eis o código:
# importamos a biblioteca Pandas
import pandas as pd
def main():
# vamos carregar os dados do arquivo .csv
dados = pd.read_csv("C:\\estudos_python\\emprestimos.csv",
delimiter=";")
# vamos mostrar o DataFrame resultante
print(dados)
if __name__== "__main__":
main()
Quando executarmos este código nós teremos um resultado parecido com:
id nome idade sexo renda valor parc pont ap
0 1 MIGUEL728 24 M 1800 12500 30 34 S
1 2 RAUL46 61 M 2300 10000 24 59 S
2 3 JONAS264 28 M 800 12500 36 59 N
3 4 LETICIA135 71 F 1800 10000 36 13 N
4 5 CARLOS931 60 F 4000 2000 6 10 N
.. ... ... ... ... ... ... ... ... ..
9 96 ANGELA391 91 F 4000 12500 12 33 N
96 97 PEDRO764 50 M 10200 2500 12 1 N
97 98 ADRIANA175 41 F 4000 2000 36 77 S
98 99 ROSA666 42 F 1800 20000 24 74 N
99 100 SARA653 36 F 970 11000 12 42 N
[100 rows x 9 columns]
Note que aqui nós temos uma amostra de 100 registros e cada registro possui 9 colunas. Se você quiser ver todos os 100 registros, troque a linha: print(dados) por print(dados.to_string()) Para finalizar, note que forneci ";" como delimitador para o método read_csv(). |
JavaScript ::: DOM (Document Object Model) ::: Eventos JavaScript + DOM (Document Object Model) |
Como usar o evento DOMContentLoaded para verificar se o DOM (Document Object Model) já está disponível para manipulação via JavaScriptQuantidade de visualizações: 3152 vezes |
|
Em algumas situações nós precisamos iniciar a manipulação dos elementos de uma página HTML a partir de nossos códigos JavaScript mas não sabemos com certeza se os elementos do DOM (Document Object Model) já estão disponíveis para acesso. Para essas situações nós podemos usar o evento DOMContentLoaded, que é disparado quando todo o conteúdo DOM já estiver carregado, mesmo que imagens e folhas de estilo CSS ainda estejam pendentes de carregamento. Vamos ver um exemplo? Considere o código JavaScript abaixo (incluindo o código HTML):
<html>
<head>
<title>Estudos PHP</title>
<script type="text/javascript">
// vamos obter uma referência ao elemento DIV
var divElem = document.getElementById("m_div");
// vamos a cor do texto da DIV
divElem.style.color = 'blue';
</script>
</head>
<body>
<div id="m_div">Sou um elemento DIV</div>
</body>
</html>
Veja que temos um elemento DIV na parte <body> do página e, na parte <head> temos um código JavaScript que tenta alterar a cor do texto da DIV. Como já era de se esperar, ao abrirmos este documento HTM no navegador, teremos o seguinte erro: Uncaught TypeError: Cannot read property 'style' of null at index.html:9 Isso aconteceu porque o código JavaScript foi executado antes que o elemento DIV fosse inserido no DOM da página. Para evitar isso, só precisamos usar o evento DOMContentLoaded. Veja a nova versão do código:
<html>
<head>
<title>Estudos PHP</title>
<script type="text/javascript">
// vamos tratar o evento DOMContentLoaded
document.addEventListener('DOMContentLoaded', function(e){
// vamos obter uma referência ao elemento DIV
var divElem = document.getElementById("m_div");
// vamos a cor do texto da DIV
divElem.style.color = 'blue';
});
</script>
</head>
<body>
<div id="m_div">Sou um elemento DIV</div>
</body>
</html>
Agora execute o exemplo novamente e veja como o texto do elemento DIV é colorido de azul, uma boa indicação de que o evento DOMContentLoaded foi disparado com sucesso. Note ainda como usamos o método addEventListener() do objeto document para fazer a associação do evento. |
C++ ::: Fundamentos da Linguagem ::: Tipos de Dados |
Como usar o tipo de dados long ou long int da linguagem C++Quantidade de visualizações: 23231 vezes |
O tipo de dados long (também chamado de long int) da linguagem C++ é uma variação do tipo int e geralmente possui a mesma capacidade de armazenamento deste. Nós o usamos quando queremos representar números inteiros, ou seja, sem partes fracionárias, assim como int. É importante verificar se o seu compilador trata int e long da mesma forma. Veja um trecho de código demonstrando o uso deste tipo (note que estes estudos foram feitos no Windows XP - 32 bits - usando Dev-C++):
#include <iostream>
using namespace std;
int main(int argc, char *argv[]){
// declara uma variável do tipo long
long quant = 590;
cout << "Quantidade: " << quant << "\n\n";
system("PAUSE"); // pausa o programa
return EXIT_SUCCESS;
}
Veja que a maioria dos compiladores C++ não faz distinção entre os tipos long e long int. A capacidade de armazenamento do tipo long depende da arquitetura na qual o programa está sendo executado. Uma forma muito comum de descobrir esta capacidade é usar os símbolos LONG_MIN e LONG_MAX, definidos no header climits (limits.h). Veja:
#include <iostream>
using namespace std;
int main(int argc, char *argv[]){
cout << "Valor mínimo: " << LONG_MIN << "\n";
cout << "Valor máximo: " << LONG_MAX << "\n\n";
system("PAUSE"); // pausa o programa
return EXIT_SUCCESS;
}
Ao executar este programa você terá um resultado parecido com: Valor mínimo: -2147483648 Valor máximo: 2147483647 Veja que o tipo long aceita valores positivos e negativos. Tudo que você tem a fazer é tomar todo o cuidado para que os valores atribuidos a variáveis deste tipo não ultrapassem a faixa permitida. Veja um trecho de código que provoca o que chamamos de transbordamento (overflow):
#include <iostream>
using namespace std;
int main(int argc, char *argv[]){
long soma = LONG_MAX + 2;
cout << "Resultado: " << soma << "\n";
system("PAUSE"); // pausa o programa
return EXIT_SUCCESS;
}
Este programa exibirá o seguinte resultado: Resultado: -2147483647 Note que este não é o resultado esperado, visto que LONG_MAX + 2 deveria retornar: 2147483647 + 2 = 2147483649 Porém, como o valor máximo que pode ser armazenado em um long é 2147483647, o procedimento adotado pelo compilador foi tornar o número negativo e subtrair 1. É claro que, se você testar este código em arquiteturas diferentes o resultado poderá ser diferente do exemplificado aqui. Em termos de bytes, é comum o tipo long ser armazenado em 4 bytes, o que resulta em 32 bits (um byte é formado por 8 bits, lembra?). Veja um trecho de código que mostra como usar o operador sizeof() para determinar a quantidade de bytes necessários para armazenar um variável do tipo long:
#include <iostream>
using namespace std;
int main(int argc, char *argv[]){
cout << "Tamanho de um long: " << sizeof(long)
<< " bytes\n\n";
system("PAUSE"); // pausa o programa
return EXIT_SUCCESS;
}
O resultado da execução deste código será algo como: Tamanho de um long: 4 bytes |
C ::: Dicas & Truques ::: Ponteiros, Referências e Memória |
Apostila C para iniciantes - Como usar ponteiros na linguagem CQuantidade de visualizações: 32973 vezes |
|
Antes de pensarmos em ponteiros, é importante nos lembrarmos de alguns aspectos referentes à variáveis. Dependendo do seu conhecimento de programação, você deve saber que variáveis possuem nomes que as identificam durante a execução do programa. Você deve saber também que uma variável armazena um valor (que pode ser fixo, no caso de uma constante, ou pode mudar durante a execução de seus códigos). O que poucos programadores se lembram é que uma variável possui um endereço, e que o nome da variável não é nada mais que um apelido para a localização deste endereço. Desta forma, um ponteiro não é nada mais que um tipo especial de variável que armazena o endereço de outra. Veja um exemplo:
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char *argv[])
{
// variável do tipo int
int valor = 10;
// ponteiro para uma variável do tipo int
int *p = &valor;
// exibe o valor da variável "valor", apontada
// pelo ponteiro p
printf("%d", *p);
printf("\n\n");
system("PAUSE");
return 0;
}
Neste código nós temos a declaração e definição de duas variáveis: int valor = 10; int *p = &valor; A primeira variável é uma variável do tipo int e a segunda é um ponteiro para uma variável do tipo int. Veja que devemos sempre usar "*" antes do nome de um ponteiro em sua declaração. O símbolo "&" serve para indicar que estamos acessando o endereço de uma variável e não o seu conteúdo. O resultado destas duas linhas é que agora temos um ponteiro que nos permite acessar e manipular a variável valor. Observe a linha:
printf("%d", *p);
Aqui nós estamos acessando o valor da variável apontada por p. Veja o uso do símbolo "*" para acessar o valor da variável. Isso é chamado de desreferenciamento de ponteiros. Pareceu complicado? Veja uma linha de código que altera indiretamente o valor da variável valor para 30: *p = 30; Ponteiros são ferramentas muito importantes na programação em C. No entanto, é preciso ter muito cuidado ao lidar com eles. A primeira coisa a ter em mente é que um ponteiro não está apontando para nenhum lugar até que atribuimos a ele o endereço de uma outra variável. E é aí que mora o perigo. Um programa entra em colapso absoluto se tentarmos acessar um ponteiro que aponta para um local de memória que já foi liberado novamente ao sistema. No caso menos grave, estaremos tentando acessar locais de memória inválidos ou reservados a outros programas ou tarefas do sistema operacional. Isso me lembra os velhos tempos da tela azul de morte. |
Portugol ::: Desafios e Lista de Exercícios Resolvidos ::: Arrays e Matrix (Vetores e Matrizes) |
Exercícios Resolvidos de Portugol - Faça um algoritmo em Portugol que leia 9 números inteiros, guarde-os em uma matriz 3x3 e mostre os números paresQuantidade de visualizações: 1623 vezes |
|
Pergunta/Tarefa: Faça um algoritmo em Portugol que leia 9 números inteiros e guarde-os em uma matriz 3x3. Imprima a matriz no formato tabular, usando a melhor formatação que você conseguir. Em seguida, percorra a matriz novamente e imprima somente os números que são pares, todos na mesma linha e separados por espaço. Sua saída deverá ser parecida com:
Linha 1 e coluna 1: 8
Linha 1 e coluna 2: 1
Linha 1 e coluna 3: 5
Linha 2 e coluna 1: 3
Linha 2 e coluna 2: 9
Linha 2 e coluna 3: 30
Linha 3 e coluna 1: 7
Linha 3 e coluna 2: 23
Linha 3 e coluna 3: 10
Valores na matriz
8 1 5
3 9 30
7 23 10
Os valores pares são: 8 30 10
Veja a resolução completa para o exercício em Portugol, comentada linha a linha (fiz a resolução no Portugol Webstudio):
// Um algoritmo que lê uma matriz 3x3
programa {
funcao inicio() {
// variáveis usadas na resolução do problema
inteiro matriz[3][3]
inteiro i, j
// vamos pedir para o usuário informar os valores
// dos elementos da matriz, uma linha de cada vez
para (inteiro i = 0; i < 3; i++) {
para (inteiro j = 0; j < 3; j++) {
escreva("Linha ", (i + 1), " e coluna ", (j + 1), ": ")
leia(matriz[i][j])
}
}
// vamos mostrar a matriz da forma que ela foi informada
escreva("\nValores na matriz:\n\n")
para (inteiro i = 0; i < 3; i++) {
para (inteiro j = 0; j < 3; j++) {
escreva(matriz[i][j], " ")
}
// passa para a próxima linha da matriz
escreva("\n")
}
// agora vamos percorrer a matriz novamente e mostrar
// apenas os valores pares
escreva("\nOs valores pares são: ")
para (inteiro i = 0; i < 3; i++) {
para (inteiro j = 0; j < 3; j++) {
// é um número par?
se (matriz[i][j] % 2 == 0) {
escreva(matriz[i][j], " ")
}
}
}
}
}
|
Mais Desafios de Programação e Exercícios e Algoritmos Resolvidos de Portugol |
Veja mais Dicas e truques de Portugol |
Dicas e truques de outras linguagens |
|
JavaScript - JavaScript para iniciantes - Como obter o valor do maior número possível em JavaScript usando Number.MAX_VALUE |
E-Books em PDF |
||||
|
||||
|
||||
Linguagens Mais Populares |
||||
|
1º lugar: Java |




