Você está aqui: Cards de Engenharia Civil - Estruturas de Aço e Madeira |
||
|
||
|
|
||
C++ ::: Fundamentos da Linguagem ::: Estruturas de Controle |
Como usar o operador condicional (operador ternário) da linguagem C++ - C++ para iniciantesQuantidade de visualizações: 27241 vezes |
A linguagem C++ fornece um operador condicional, também chamado de operador ternário) que é muito semelhante a um bloco if...else. Este operador aceita três operandos. O primeiro operando é uma condição, o segundo é valor para a expressão condicional se o resultado do teste for true. O terceiro operando é o valor para a expressão condicional caso o resultado do teste for false. Veja um exemplo:int valor = 10; cout << (valor >= 5 ? "Maior ou igual a 5" : "Menor que 5"); Este trecho de código pode ser escrito usando if...else da seguinte forma: int valor = 10; if(valor >= 5) cout << "Maior ou igual a 5"; else cout << "Menor que 5"; O operador condicional pode ser resumido na seguinte estrutura: Exp1 ? Exp2 : Exp3 A expressão Exp1 é avaliada. Se esta resultar verdadeira, a expressão Exp2 se torna o resultado da operação. Se a expressão Exp1 resultar falso, a expressão Exp3 se torna o resultado da operação. Veja mais um exemplo: int valor = 5; // usando o operador condicional I bool res = (valor > 10 ? true : false); // usando o operador condicional II (res ? cout << "Verdadeiro" : cout << "False"); |
Python ::: NumPy Python Library (Biblioteca Python NumPy) ::: Arrays e Matrix (Vetores e Matrizes) |
Como gerar vetores e matrizes com números inteiros aleatórios usando a função random.randint() da biblioteca NumPy para - Machine Learning com PythonQuantidade de visualizações: 1286 vezes |
|
Veremos nessa dica como podemos usar o método random.randint() da biblioteca NumPy para gerar vetores e matrizes já preenchidos com números inteiros aleatórios. Note que a criação de vetores e matrizes preenchidos com números randômicos é uma parte importante para o desenvolvimento de modelos de teste (test models) em Inteligência Artificial (IA), Machine Learning e outras áreas de estudo que envolvem Data Science. Vamos começar com a forma mais simples do uso da função random.randint() para gerar um vetor de 10 elementos contendo números aleatórios de 0 até 10 (não incluído):
# importamos o módulo random da bibliteca NumPy
from numpy import random
def main():
# vamos gerar um vetor de números inteiros aleatórios
# de 0 (incluído) à 10 (não incluído)
valores = random.randint(10, size=10)
print("O vetor gerado foi: ", valores)
if __name__== "__main__":
main()
Ao executar este código teremos um resultado parecido com: O vetor gerado foi: [0 3 2 3 8 9 3 9 6 4] Aqui nós informamos o limite alto do valor aleatório a ser gerado (mas ele não é incluído). Se quisermos limitar a faixa inferior, podemos tirar proveito dos parâmetros low e high da função randint(). Veja:
# importamos o módulo random da bibliteca NumPy
from numpy import random
def main():
# vamos gerar um vetor de números inteiros aleatórios
# de 50 (incluído) à 101 (não incluído)
valores = random.randint(50, 101, 10)
print("O vetor gerado foi: ", valores)
if __name__== "__main__":
main()
Agora o resultado será parecido com: O vetor gerado foi: [92 89 66 52 61 77 55 58 72 55] Para gerarmos uma matriz, por exemplo, de 2 linhas e 4 colunas, só precisamos gerar o vetor de números aleatórios e em seguida usar o método reshape(), também da biblioteca NumPy para converter a matriz de uma dimensão (vetor) em uma matriz de duas dimensões. Veja:
from numpy import random
def main():
# vamos gerar um vetor de números inteiros aleatórios
# de 1 (incluído) à 21 (não incluído)
valores = random.randint(1, 21, 8)
# agora vamos converter o vetor para uma matriz
# de 2 linhas e 4 colunas
valores = valores.reshape(2, 4)
print("A matriz gerada foi: ", valores)
if __name__== "__main__":
main()
Quando executamos este código nós temos um resultado parecido com: A matriz gerada foi: [[17 5 2 9] [14 10 10 19]] A partir da versão 1.19 da NumPy, os desenvolvedores da biblioteca recomendam o uso do método integers() do módulo default_rng(). |
PHP ::: Dicas & Truques ::: Arquivos e Diretórios |
Como ler e processar os dados de um arquivo CSV usando a função fgetcsv() do PHPQuantidade de visualizações: 27229 vezes |
|
Arquivos CSV são arquivos texto cujas linhas possuem valores separados por vírgulas (ou ponto-e-vírgula, dois pontos, etc). As informações contidas em tais arquivos podem ser lidas usando-se a função fgetcsv(). Esta função recebe um ponteiro para um arquivo, o tamanho da maior linha de texto no arquivo (forneça 0 se não quiser ter este limite em seu código) e o caractere de delimitação (no exemplo eu usei ponto-e-vírgula). Observe a estrutura do seguinte arquivo CSV: 23;OSMAR J SILVA;AV. LESTE, 54;GOIANIA;GO 19;MARCOS DE PAULA;RUA L, 523;SÃO PAULO;SP As informações deste arquivo podem ser lidas usando-se o código abaixo:
<?php
// nome do arquivo
$arquivo = 'dados.csv';
// ponteiro para o arquivo
$fp = fopen($arquivo, "r");
// processa os dados do arquivo
while(($dados = fgetcsv($fp, 0, ";")) !== FALSE){
$quant_campos = count($dados);
for($i = 0; $i < $quant_campos; $i++){
echo $dados[$i] . "<br>";
}
echo "<br>";
}
fclose($fp);
?>
Ao executar este código PHP nós teremos o seguinte resultado: 23 OSMAR J SILVA AV. LESTE, 54 GOIANIA GO 19 MARCOS DE PAULA RUA L, 523 SÃO PAULO SP |
C++ ::: Desafios e Lista de Exercícios Resolvidos ::: Arrays e Matrix (Vetores e Matrizes) |
Algoritmos Resolvidos de C++ - Escreva um programa C++ que efetue a soma dos elementos da diagonal principal de uma matrizQuantidade de visualizações: 15227 vezes |
|
Exercício Resolvido de C++ - Escreva um programa C++ que efetue a soma dos elementos da diagonal principal de uma matriz Pergunta/Tarefa: Em álgebra linear, a diagonal principal de uma matriz A é a coleção das entradas Aij em que i é igual a j. A diagonal principal de uma matriz quadrada une o seu canto superior esquerdo ao canto inferior direito (conforme mostrado na saída do problema proposto abaixo). Escreva um programa C++ que declara uma matriz 3x3 e pede ao usuário para informar seus valores. Em seguida mostre todos os valores da matriz e a soma dos elementos da diagonal principal. Sua saída deverá ser parecida com a imagem abaixo: ![]() Resposta/Solução: Veja a resolução comentada deste exercício:
#include <cstdlib>
#include <iostream>
#include <iomanip>
using namespace std;
int main(int argc, char *argv[])
{
int matriz[3][3]; // uma matriz de três linhas e três colunas
int soma_diagonal = 0; // guarda a soma dos elementos na diagonal principal
// vamos ler os valores para os elementos da matriz
for(int i = 0; i < 3; i++){ // linhas
for(int j = 0; j < 3; j++){ // colunas
cout << "Valor para a linha " << i << " e coluna " << j << ": ";
cin >> matriz[i][j];
}
}
// vamos mostrar a matriz da forma que ela foi informada
cout << "\n\nValores na matriz\n" << endl;
for(int i = 0; i < 3; i++){
for(int j = 0; j < 3; j++){
cout << setw(5) << matriz[i][j];
}
cout << "\n" << endl;
}
// vamos calcular a soma dos elementos da diagonal principal
for(int i = 0; i < 3; i++){
for(int j = 0; j < 3; j++){
if(i == j){
soma_diagonal = soma_diagonal + matriz[i][j];
}
}
}
cout << "A soma dos elementos da diagonal principal e: " <<
soma_diagonal << endl;
cout << "\n" << endl;
system("PAUSE");
return EXIT_SUCCESS;
}
|
Python ::: wxPython ::: Eventos e Tratadores de Eventos |
Como tratar o evento wx.EVT_MOVE em suas aplicações wxPython - Interfaces gráficas no PythonQuantidade de visualizações: 604 vezes |
|
Em algumas situações nós precisamos reagir ao evento wx.EVT_MOVE em nossas aplicações wxPython. Este evento é gerado todas as vezes que movemos uma janela para uma nova posição. Veja o código completo para uma aplicação wxPython na qual interceptamos e tratamos o evento wx.EVT_MOVE na janela principal do programa. Note o uso da função e.GetPosition() para recuperarmos as coordenadas x e y do evento e mostrarmos o resultado em controles wx.StaticText.
# vamos importar o framework wxPython
import wx
# classe que representará a janela principal da
# aplicação wxPython
class JanelaPrincipal(wx.Frame):
# o método construtor
def __init__(self, *args, **kw):
# chama o construtor da classe wx.Frame
super(JanelaPrincipal, self).__init__(*args, **kw)
# chama a função que inicializa a GUI
self.InicializarGUI()
# método usado para gerenciar o evento Move
def OnMove(self, e):
# obtemos a posição do evento e guardamos nas variáveis x e y
x, y = e.GetPosition()
# mostramos os valores nas labels
self.st1.SetLabel(str(x))
self.st2.SetLabel(str(y))
# função que inicializa a GUI do programa
def InicializarGUI(self):
# criamos dois controles StaticText com os labels já definindos
wx.StaticText(self, label='x:', pos=(10,10))
wx.StaticText(self, label='y:', pos=(10,30))
# criamos mais dois controles StaticText para escrevermos neles
self.st1 = wx.StaticText(self, label='', pos=(30, 10))
self.st2 = wx.StaticText(self, label='', pos=(30, 30))
# fazemos um binding o evento wx.EVT_MOVE para a
# função OnMove que criamos
self.Bind(wx.EVT_MOVE, self.OnMove)
# definimos o tamanho da janela
self.SetSize((450, 350))
# define a cor de fundo da janela (Windows 10)
self.SetBackgroundColour((150, 250, 100, 255))
# definimos o título da janela
self.SetTitle('O evento Move')
# e centralizamos a janela
self.Centre()
# função principal do programa Python
def main():
# vamos criar a aplicação wxPython
app = wx.App()
janela_principal = JanelaPrincipal(None)
janela_principal.Show()
app.MainLoop()
if __name__ == "__main__":
main()
|
Desafios, Exercícios e Algoritmos Resolvidos de Python |
Veja mais Dicas e truques de Python |
Dicas e truques de outras linguagens |
E-Books em PDF |
||||
|
||||
|
||||
Linguagens Mais Populares |
||||
|
1º lugar: Java |







