![]() |
|
||||
![]() Planilha Web - Planilhas e Calculadoras online para estudantes e profissionais de Engenharia Civil, Engenharia Elétrica e Engenharia Mecânica. |
|||||
PHP ::: Dicas & Truques ::: Gráficos e Cores |
Gráficos em PHP - Como verificar se a extensão GD está disponível na sua instalação do PHPQuantidade de visualizações: 10523 vezes |
Gráficos em PHP são gerados a partir da biblioteca (ou extensão) GD. É claro que você pode usar outras bibliotecas, mas esta é a mais comumente usada e disponível nas hospedagens compartilhadas. Antes de começar a gerar gráficos e imagens, porém, você precisa verificar se a GD está disponível no seu interpretador. A melhor forma de verificar isso é usar a página phpinfo() e procurar a seção "GD". Você deverá ter algo assim: GD Support enabled GD Version 2.0 or higher FreeType Support enabled FreeType Linkage with freetype JPG Support enabled PNG Support enabled WBMP Support enabled A partir da versão 4.3 do PHP, uma versão da GD (equivalente à GD 2.0 ou mais recente) já vem instalada por padrão. Isso dispensa a instalação da biblioteca. |
C ::: Fundamentos da Linguagem ::: Estruturas de Controle |
Como usar a instrução break da linguagem C para interromper a execução de um laçoQuantidade de visualizações: 15768 vezes |
Laços for, while, do...while e switch podem ter suas iterações (repetições) interrompidas com o uso da instrução break. Quando isso acontece, o fluxo de execução salta para a primeira instrução após o laço. Veja um exemplo:#include <stdio.h> #include <stdlib.h> int main(int argc, char *argv[]) { int i; for(i = 0; i <= 10; i++){ printf("%d ", i); if(i == 6) break; // sai do laço } printf("\n\n"); system("PAUSE"); return 0; } Este código exibirá os valores de 0 à 6. Veja que execução do laço é interrompida exatamente no ponto em que a instrução break é encontrada. Se houver mais instruções dentro do laço mas logo após o break, estas instruções não serão executadas. |
VB.NET ::: VB.NET para Engenharia ::: Geometria Analítica e Álgebra Linear |
Como somar os elementos da diagonal principal de uma matriz em VB.NETQuantidade de visualizações: 317 vezes |
A Matriz quadrada é um tipo especial de matriz que possui o mesmo número de linhas e o mesmo número de colunas, ou seja, dada uma matriz Anxm, ela será uma matriz quadrada se, e somente se, n = m, onde n é o número de linhas e m é o número de colunas. Em geral as matrizes quadradas são chamadas de Matrizes de Ordem n, onde n é o número de linhas e colunas. Dessa forma, uma matriz de ordem 4 é uma matriz que possui 4 linhas e quatro colunas. Toda matriz quadrada possui duas diagonais, e elas são muito exploradas tanto na matemática quanto na construção de algorítmos. Essas duas diagonais são chamadas de Diagonal Principal e Diagonal Secundária. A diagonal principal de uma matriz quadrada une o seu canto superior esquerdo ao canto inferior direito. Veja: ![]() Nesta dica veremos como calcular a soma dos valores dos elementos da diagonal principal de uma matriz usando VB.NET. Para isso, só precisamos manter em mente que a diagonal principal de uma matriz A é a coleção das entradas Aij em que i é igual a j. Assim, tudo que temos a fazer é converter essa regra para código VB.NET. Veja um trecho de código VB.NET completo no qual pedimos para o usuário informar os elementos da matriz e em seguida mostramos a soma dos elementos da diagonal superior: Imports System Module Program ' função principal do programa VB.NET Sub Main(args As String()) ' vamos declarar e construir uma matriz de três linhas ' e três colunas Dim matriz(2, 2) As Integer ' guarda a soma dos elementos na diagonal principal Dim soma_diagonal As Integer = 0 For i As Integer = 0 To matriz.GetUpperBound(0) For j As Integer = 0 To matriz.GetUpperBound(1) Console.Write("Informe o valor para a linha " & i & " e coluna " _ & j & ": ") ' lê o número e guarda na linha e coluna especificadas matriz(i, j) = Integer.Parse(Console.ReadLine()) Next Next ' vamos mostrar a matriz da forma que ela foi informada Console.WriteLine(vbCrLf & "Valores na matriz: " & vbCrLf) For i As Integer = 0 To matriz.GetUpperBound(0) For j As Integer = 0 To matriz.GetUpperBound(1) Console.Write(matriz(i, j).ToString().PadLeft(5) & " ") Next ' passa para a próxima linha Console.WriteLine() Next ' vamos calcular a soma dos elementos da diagonal ' principal For i As Integer = 0 To matriz.GetUpperBound(0) For j As Integer = 0 To matriz.GetUpperBound(1) If i = j Then soma_diagonal = soma_diagonal + matriz(i, j) End If Next Next ' finalmente mostramos a soma da diagonal principal Console.WriteLine(vbCrLf & "A soma dos elementos da diagonal principal é: " _ & soma_diagonal) Console.WriteLine(vbCrLf & vbCrLf & "Pressione qualquer tecla para sair...") ' pausa o programa Console.ReadKey() End Sub End Module Ao executar este código VB.NET nós teremos o seguinte resultado: Informe o valor para a linha 0 e coluna 0: 3 Informe o valor para a linha 0 e coluna 1: 7 Informe o valor para a linha 0 e coluna 2: 9 Informe o valor para a linha 1 e coluna 0: 2 Informe o valor para a linha 1 e coluna 1: 4 Informe o valor para a linha 1 e coluna 2: 1 Informe o valor para a linha 2 e coluna 0: 5 Informe o valor para a linha 2 e coluna 1: 6 Informe o valor para a linha 2 e coluna 2: 8 3 7 9 2 4 1 5 6 8 A soma dos elementos da diagonal principal é: 15 |
CSS ::: Dicas & Truques ::: Cores de Fundo e Imagens de Fundo |
Exemplos de uso da propriedade background do CSS para definições cores e imagens de fundo em elementos HTMLQuantidade de visualizações: 9210 vezes |
Nesta dica mostrarei alguns exemplos muito úteis da propriedade background do CSS para definirmos cores e imagens de fundo para a página HTML e também para os elementos HTML: Exemplo 1: Como definir a cor de fundo para a página HTML usando a propriedade background: body {background: #0099CC} Exemplo 2: Como definir a cor de fundo e a imagem de fundo para a página HTML usando as propriedades background e url: body {background: #0099CC url(fundo.gif)} Exemplo 3: Como definir a cor de fundo, a imagem de fundo para a página HTML e a forma de repetição usando as propriedade background, url e repeat-x: body {background: #0099CC url(fundo.gif) repeat-x} Exemplo 4: Como definir a cor de fundo, a imagem de fundo para a página HTML, a forma de repetição e como fixar a imagem de fundo usando as propriedade background, url, repeat-x e fixed: body {background: #0099CC url(fundo.gif) repeat-x fixed} Exemplo 5: Como definir a cor de fundo, a imagem de fundo para a página HTML, sem repetição, fixa e posições inicias usando as propriedade background, url, repeat-x e fixed: body {background: #0099CC url(fundo.gif) no-repeat fixed 40 60} |
Python ::: Python para Engenharia ::: Geometria Analítica e Álgebra Linear |
Como calcular a transposta de uma matriz em Python - Python para Geometria Analítica e Álgebra LinearQuantidade de visualizações: 7077 vezes |
A matriz transposta de uma matriz A é a matriz AT. Tal matriz é obtida quando copiamos os elementos da matriz A para uma outra matriz (ou para ela mesma) e trocamos de posição as linhas e colunas. Dessa forma, a primeira linha da matriz A se transforma na primeira coluna da matriz transposta, a segunda linha da matriz A se transforma na segunda coluna da matriz transposta e assim por diante. Em termos de notação, podemos dizer, de forma algébrica, que: ATji = Aij Onde i representa as linhas e j representa as colunas, tanto na matriz original quanto na matriz transposta. É importante estar atento à quantidade de linhas e colunas na matriz original e na matriz transposta equivalente. Assim, se a matriz original for 3x2, a matriz transposta será 2x3. Antes de vermos o código Python, dê uma olhada na seguinte matriz de duas linhas e três colunas: \[A = \left[\begin{matrix} 3 & 5 & 7 \\ 1 & 2 & 9 \end{matrix}\right] \] Sua matriz transposta correspondente é: \[A^T = \left[\begin{matrix} 3 & 1 \\ 5 & 2 \\ 7 & 9 \end{matrix}\right] \] E agora veja o código Python que declara uma matriz 2x3 e gera a matriz transposta 3x2: # importamos a bibliteca NumPy import numpy as np def main(): # vamos declarar e construir uma matrix # 2x3 (duas linhas e três colunas matriz = np.array([(3, 5, 7), (1, 2, 9)]) # vamos exibir os valores da matriz print("Elementos da matriz:") for i in range(np.shape(matriz)[0]): for j in range(np.shape(matriz)[1]): print("%7.2f" % matriz[i][j], end="") print() # como temos uma matriz 2x3, a transposta deverá ser # 3x2, ou seja, três linhas e duas colunas linhas = np.shape(matriz)[0] # linhas da matriz original colunas = np.shape(matriz)[1] # colunas da matriz original transposta = np.empty((colunas, linhas)) # e agora vamos preencher a matriz transposta for i in range(np.shape(matriz)[0]): for j in range(np.shape(matriz)[1]): transposta[j][i] = matriz[i][j] # vamos exibir os valores da matriz transposta print("\nElementos da matriz transposta:") for i in range(np.shape(transposta)[0]): for j in range(np.shape(transposta)[1]): print("%7.2f" % transposta[i][j], end="") print() if __name__== "__main__": main() Ao executar este código Python nós teremos o seguinte resultado: Elementos da matriz: 3 5 7 1 2 9 Elementos da matriz transposta: 3 1 5 2 7 9 É possível também obter a matriz transposta de um outra matriz usando o método transpose() da biblioteca NumPy da linguagem Python. Veja: # importamos a bibliteca NumPy import numpy as np def main(): # vamos declarar e construir uma matrix # 2x3 (duas linhas e três colunas matriz = np.array([(3, 5, 7), (1, 2, 9)]) # vamos exibir os valores da matriz print("Elementos da matriz:") for i in range(np.shape(matriz)[0]): for j in range(np.shape(matriz)[1]): print("%7.2f" % matriz[i][j], end="") print() # vamos transpor a matriz usando o método transpose() transposta = matriz.transpose() # vamos exibir os valores da matriz transposta print("\nElementos da matriz transposta:") for i in range(np.shape(transposta)[0]): for j in range(np.shape(transposta)[1]): print("%7.2f" % transposta[i][j], end="") print() if __name__== "__main__": main() Ao executar este novo código Python veremos que o resultado é o mesmo. |
Java ::: Desafios e Lista de Exercícios Resolvidos ::: Arrays e Matrix (Vetores e Matrizes) |
Exercício Resolvido de Java - Como rotacionar os elementos de um vetor de inteiros n vezes para a direita - Solução usando força-brutaQuantidade de visualizações: 662 vezes |
Pergunta/Tarefa: Dado o vetor: // vamos criar um vetor de inteiros int valores[] = {1, 6, 9, 3, 7, 8, 5, 2}; Sua saída deverá ser parecida com: Array na ordem original: 1 6 9 3 7 8 5 2 Rotação do vetor depois do passo 1: 2 1 6 9 3 7 8 5 Rotação do vetor depois do passo 2: 5 2 1 6 9 3 7 8 Rotação do vetor depois do passo 3: 8 5 2 1 6 9 3 7 Array depois de rotacionar 3 vezes: 8 5 2 1 6 9 3 7 Veja a resolução comentada deste exercício em Java: package estudos; public class Estudos { public static void main(String[] args) { // vamos criar um vetor de inteiros int valores[] = {1, 6, 9, 3, 7, 8, 5, 2}; // mostramos o array na ordem original System.out.println("Array na ordem original:"); exibirVetor(valores); // vamos rotacionar o array 3 casas para a direita valores = rotacionarArray(valores, 3); // e mostramos o resultado System.out.println("Array depois de rotacionar 3 vezes:"); exibirVetor(valores); } // método usado para exibir o array public static void exibirVetor(int []vetor){ // percorremos cada elemento do vetor for (int i = 0; i < vetor.length; i++) { System.out.print(vetor[i] + " "); } System.out.println("\n"); } // método que recebe um vetor de inteiros e o rotaciona um // determinado número de vezes public static int[] rotacionarArray(int[] vetor, int n) { // um laço externo que repete a mesma quantidade de n for (int i = 0; i < n; i++) { // começamos no último elemento e regredimos até // o segundo elemento do vetor for (int j = vetor.length - 1; j > 0; j--) { // avançamos um elemento de cada vez para // a direita int temp = vetor[j]; vetor[j] = vetor[j - 1]; vetor[j - 1] = temp; } // mostramos o progresso System.out.println("Rotação do vetor depois do passo " + (i + 1) + ":"); exibirVetor(vetor); } return vetor; } } A solução que apresentamos aqui usa a força-bruta, isto é, uma solução não otimizada e pouco recomendada para arrays com um número exagerado de elementos. Por ser força-bruta, o laço interno percorre todos os elementos do vetor, trocando-os de lugares. Em outras dicas do site nós colocamos versões melhoradas deste código. |
C# ::: LINQ ::: LINQ to Objects |
Como retornar o último elemento de um array de strings em C# usando a função Last() do LINQQuantidade de visualizações: 1316 vezes |
Nesta dica mostrarei um exemplo bem simples do uso do método Last() do LINQ (Language-Integrated Query) do C# para retornar o último elemento de um vetor de strings. É claro que este método funciona com qualquer coleção, mas um exemplo simples nos ajudará a entender melhor o seu funcionamento. Em outras dicas eu aprofundo o uso deste método. Vamos ao código então. Veja: using System; using System.Linq; namespace Estudos { class Principal { static void Main(string[] args) { // vamos construir um vetor de strings string[] linguagens = {"Java", "Python", "PHP", "Ruby"}; // vamos obter o último elemento do vetor string ultimo = linguagens.Last(); // vamos mostrar o resultado Console.WriteLine("A última linguagem é: {0}", ultimo); Console.WriteLine("\nPressione uma tecla para sair..."); Console.ReadKey(); } } } Ao executar este código C# nós teremos o seguinte resultado: A última linguagem é: Ruby Fique atento ao fato de que o método Last() pode atirar uma exceção do tipo InvalidOperation se o array ou coleção estiver vazia ou não incluir nenhum elemento que se encaixe nas condições testadas. Veja o resultado ao chamarmos este método em um vetor vazio: System.InvalidOperationException HResult=0x80131509 Message=Sequence contains no elements Source=System.Linq StackTrace: at System.Linq.ThrowHelper.ThrowNoElementsException() at System.Linq.Enumerable.Last[TSource](IEnumerable`1 source) at Estudos.Principal.Main(String[] args) in C:\estudos_c#\Estudos\Principal.cs:line 11 |
PHP ::: Fundamentos da Linguagem ::: Tipos de Dados |
PHP do básico ao profissional - Como usar o tipo de dados integer do PHPQuantidade de visualizações: 9114 vezes |
Integers (inteiros) são números inteiros, tais como 1, 12, 50, etc. A faixa de valores aceitáveis varia de acordo com os detalhes da plataforma na qual o PHP está sendo executado. Mas, geralmente, a faixa vai de -2.147.483.648 até +2.147.483.647. Especificamente, esta faixa é equivalente à faixa do tipo de dados long de seu compilador C. Infelizmente, o C padrão não define qual faixa o tipo long deve ter. Assim, em alguns sistemas poderemos ter uma faixa de inteiros diferente do afirmado acima. Literais integer podem ser escritos em decimal, octal ou hexadecimal. Valores decimais são representados por uma sequencia de dígitos não precedidos de zeros. A sequencia pode começar com um sinal de positivo (+) ou negativo (-). Se não houver sinal, assume-se que o valor é positivo. Exemplos de inteiros decimal incluem: 1998 -641 +33 Números octais consistem de um 0 (zero) e uma sequencia de dígitos de 0 à 7. Assim como os números decimais, números octais podem ser prefixados com um sinal de positivo ou negativo. Veja alguns exemplos de números octais e seus equivalentes decimais: 0755 // decimal 493 +010 // decimal 8 Valores hexadecimais começam com 0x, seguido por uma sequencia de dígitos (0-9) ou letras (A-F). As letras podem estar em maiúsculas ou minúsculas mas geralmente são escritas em maiúsculas. Números hexadecimais também podem incluir um sinal de positivo ou negativo. Veja alguns exemplos: 0xFF // decimal 255 0x10 // decimal 16 -0xDAD1 // decimal -56017 Se tentarmos armazenar um número inteiro que é grande demais para ser armazenado como inteiro, ou que não seja um número inteiro, ele será automaticamente convertido em um número de ponto-flutuante (contendo casas decimais). Podemos testar se uma variável é do tipo integer usando as funções is_int() ou is_integer(). Veja: <? $valor = 10; if(is_int($valor)){ echo 'A variável $valor é do tipo integer'; } ?> |
C++ ::: Dicas & Truques ::: Programação Orientada a Objetos |
Como criar uma classe C++ completa, incluindo os arquivos de definição .h e implementação .cppQuantidade de visualizações: 28198 vezes |
Esta dica o guiará passo-a-passo na criação de uma classe C++, incluindo os arquivos .h e .cpp. Para isso vamos usar o Dev-C++ (acreditamos que o procedimento é parecido com outros compiladores). Vamos começar com o arquivo de definição. Com um projeto já iniciado no Dev-C++, vá em File -> New -> Source File. Quando perguntado se deseja adicionar o arquivo ao projeto existente, clique Yes. Salve o arquivo com o nome de "pessoa.h" e inclua nele o seguinte código: /* Código de definição: pessoa.h */ #ifndef PESSOA_H #define PESSOA_H #include <string> using std::string; class Pessoa{ public: void setNome(string nome); void setIdade(int idade); string getNome(); int getIdade(); private: string nome; int idade; }; #endif Salve este código como pessoa.h no diretório de sua aplicação C++. Este é o arquivo de definição da classe. É nele que declaramos os membros públicos e privados, incluindo as assinaturas dos métodos da classe. Passemos agora ao arquivo de implementação. Novamente vá em File -> New -> Source File. Quando perguntado se deseja adicionar o arquivo ao projeto existente, clique Yes. Salve o novo arquivo como "pessoa.cpp" e inclua nele o seguinte conteúdo: /* Código de implementação: pessoa.cpp */ #include "pessoa.h" void Pessoa::setNome(string nome){ this->nome = nome; } void Pessoa::setIdade(int idade){ this->idade = idade; } string Pessoa::getNome(){ return this->nome; } int Pessoa::getIdade(){ return this->idade; } Salve este código como pessoa.cpp no diretório de sua aplicação C++. Este é o arquivo de implementação dos métodos da classe Pessoa. Veja o uso da palavra-chave this quando queremos referenciar o objeto atual da classe e, é claro, evitar ambiguidade entre o nome das variáveis da classe e os nomes dos parâmetros dos métodos. Hora de testar. Crie o arquivo principal da aplicação (aquele que contém o método main()): #include <iostream> #include "pessoa.h" using namespace std; int main(int argc, char *argv[]) { // declara um objeto da classe Pessoa Pessoa p; // informa o nome e idade da pessoa p.setNome("Osmar J. Silva"); p.setIdade(27); // obtém o nome e idade da pessoa cout << "Nome: " << p.getNome() << endl; cout << "Idade: " << p.getIdade() << endl; cout << "\n" << endl; system("PAUSE"); // pausa o programa return EXIT_SUCCESS; } Funcionou tudo como planejado? Se funcionou, parabéns! Já fizemos um bom progresso na criação e uso de classes em C++. |
PHP ::: Dicas & Truques ::: Arquivos e Diretórios |
Quais as diferenças entre as funções fgetc(), fread() e fgets() da linguagem PHP? - RevisadoQuantidade de visualizações: 15841 vezes |
As funções fgetc(), fread() e fgets() do PHP nos permitem fazer a leitura de caracteres, palavras, textos e bytes de um arquivo. No entanto, nem sempre os iniciantes nesta linguagem conseguem identificar as diferenças entre essas três funções. Nessa dica falarei sobre o que diferencia uma da outra. Em mais dicas e truques dessa seção você aprenderá como usá-las. A função fgetc() lê um caractere por vez em um arquivo. Sua assinatura é: string fgetc(resource $handle) A função fgets(), por sua vez, retorna uma linha de texto de cada vez. Veja a assinatura: string fgets(resource $handle [, int $length]) O parâmetro $length pode ser omitido, o que significa que o tamanho da linha será definindo pela ocorrência de uma quebra de linha "\n". Já a função fread() permite ler uma determinada quantidade de bytes de um arquivo. Sua assinatura é: string fread(resource $handle, int $length) O parâmetro $length indica a quantidade de bytes que serão lidos, de cada vez, do arquivo. Esta dica foi revisada para o PHP 8. |
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 |
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 |