E-Book 650 Dicas, Truques e Exercícios Resolvidos de Python - PDF com 1.200 páginas
Domine lógica de programação e a linguagem Python com o nosso E-Book 650 Dicas, Truques e Exercícios Exercícios de Python, para você estudar onde e quando quiser. Este e-book contém dicas, truques e exercícios resolvidos abrangendo os tópicos: Python básico, matemática e estatística, banco de dados, programação dinâmica, strings e caracteres, entrada e saída, estruturas condicionais, vetores e matrizes, funções, laços, recursividade, internet, arquivos e diretórios, programação orientada a objetos e muito mais.
Ver Conteúdo do E-book Apenas R$ 32,90
Python ::: Dicas & Truques ::: Data e Hora

Como obter um datetime da data e hora atual usando o método today() da classe datetime da linguagem Python

Quantidade de visualizações: 10622 vezes
Neste exemplo mostrarei como podemos usar o método today() da classe datetime do Python para retornar a data e hora local.

Veja o código completo:

from datetime import datetime

def main():
  # Obtém um datetime da data e hora atual
  hoje = datetime.today()
 
  # Exibe o conteúdo do datetime
  print("Hoje é: " + str(hoje))
 
if __name__== "__main__":
  main()

Ao executar este código nós teremos o seguinte resultado:

Hoje é: 2018-03-03 15:54:01.477809


Java ::: Desafios e Lista de Exercícios Resolvidos ::: Java Básico

Exercícios Resolvidos de Java - Como somar o primeiro e o último dígito de um número inteiro informado pelo usuário em Java

Quantidade de visualizações: 914 vezes
Pergunta/Tarefa:

Escreva um programa Java que pede para o usuário informar um número inteiro e mostre a soma do primeiro dígito com o último dígito. Atenção: você deve usar apenas os operadores matemáticos e a função log10().

Sua saída deverá ser parecida com:

Informe um número inteiro: 48763
A soma do primeiro e do último dígito é: 7
Resposta/Solução:

Veja a resolução comentada deste exercício usando Java:

package estudos;
 
import java.util.Scanner;
 
public class Estudos{ 
  public static void main(String args[]){ 
    // vamos usar a classe Scanner para a leitura dos dados
    Scanner entrada = new Scanner(System.in);
    
    // vamos pedir para o usuário informar um número inteiro
    System.out.print("Informe um número inteiro: ");
    int numero = Integer.parseInt(entrada.nextLine());
    
    // vamos obter a quantidade (-1) de dígitos no número informado
    int quant = (int)Math.log10(numero);
    int primeiro_digito = (int)(numero / Math.pow(10, quant));
    int ultimo_digito = numero % 10;
  	
    // soma o primeiro e o último dígito
    int soma = primeiro_digito + ultimo_digito;
	
    // mostra o resultado
    System.out.println("A soma do primeiro e do último dígito é: " + soma);
  }
}



Java ::: Java para Engenharia ::: Geometria Analítica e Álgebra Linear

Como calcular a transposta de uma matriz em Java - Java para Geometria Analítica e Álgebra Linear

Quantidade de visualizações: 3485 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 Java, 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 Java que declara uma matriz 2x3 e gera a matriz transposta 3x2:

package arquivodecodigos;

public class Estudos{
  public static void main(String args[]){
    // vamos declarar e construir uma matrix
    // 2x3 (duas linhas e três colunas
    int matriz[][] = {{3, 5, 7}, {1, 2, 9}};
    
    // vamos exibir os valores da matriz
    System.out.println("Elementos da matriz:");
    for(int i = 0; i < matriz.length; i++){
      for(int j = 0; j < matriz[0].length; j++){
        System.out.printf("%5d  ", matriz[i][j]);
      }
      System.out.println();
    }
    
    // como temos uma matriz 2x3, a transposta deverá ser
    // 3x2, ou seja, três linhas e duas colunas
    int linhas = matriz.length; // linhas da matriz original
    int colunas = matriz[0].length; // colunas da matriz original
    int transposta[][] = new int[colunas][linhas]; 
    
    // e agora vamos preencher a matriz transposta
    for(int i = 0; i < matriz.length; i++){
      for(int j = 0; j < matriz[0].length; j++){
        transposta[j][i] = matriz[i][j];
      }
    }
    
    // vamos exibir os valores da matriz transposta
    System.out.println("Elementos da matriz transposta:");
    for(int i = 0; i < transposta.length; i++){
      for(int j = 0; j < transposta[0].length; j++){
        System.out.printf("%5d  ", transposta[i][j]);
      }
      System.out.println();
    }
  }
}

Ao executar este código Java 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  



Java ::: Classes e Componentes ::: JTable

Java Swing - Como colorir as células de uma JTable individualmente ao passar o mouse sobre elas

Quantidade de visualizações: 157 vezes
Nesta dica eu mostro como é possível aplicar uma cor diferente às células individuais de uma JTable ao passar o mouse em cima delas. O efeito visual é muito interessante, principalmente quando temos uma JTable com muitos dados.

No exemplo eu construí a aplicação Java Swing na mão mesmo, sem usar nenhum editor visual. É um ótimo exercício para realmente entender as partes que compoem uma aplicação Java Swing.

Veja o código Java completo:

import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import javax.swing.table.*;
import javax.swing.event.*;
 
public class Estudos extends JFrame{
  int linha, coluna;
   
  public Estudos(){
    super("JTable");
         
    // colunas da tabela
    String[] colunas = {"Cidade", "Estado", "Habitantes"};
         
    // conteúdo da tabela   
    Object[][] conteudo = {
        {"Goiânia", "GO", "43.023.432"},
        {"São Paulo", "SP", "5.343.234"},
        {"Rio de Janeiro", "RJ", "6.434.212"},
        {"Jussara", "GO", "87.454"},
        {"Barra do Garças", "MT", "64.344"}
    };
         
    // constrói a tabela
    final JTable tabela = new JTable(conteudo, colunas);
    tabela.setPreferredScrollableViewportSize(new 
      Dimension(350, 50));
     
    class CellListener extends MouseMotionAdapter{
      public void mouseMoved(MouseEvent e){
    JTable tb = (JTable)e.getSource();
        linha = tb.rowAtPoint(e.getPoint());
        coluna = tb.columnAtPoint(e.getPoint());
        tb.repaint();
      }
    }
     
    class ColorirCelula extends JLabel 
         implements TableCellRenderer{
      public ColorirCelula(){
        setOpaque(true);
      }
 
      public Component getTableCellRendererComponent(
                 JTable table, Object value,
                 boolean isSelected, boolean hasFocus, 
                 int row, int column){
        if(row == linha && column == coluna){
          this.setBackground(Color.yellow);
        }
        else{
          this.setBackground(table.getBackground());
        }
         
        this.setText(value.toString());
        return this;
      }
    }
     
    Container c = getContentPane();
    c.setLayout(new FlowLayout());
     
    tabela.addMouseMotionListener(new CellListener());
     
    tabela.setDefaultRenderer(Object.class, 
       new ColorirCelula());
 
             
    JScrollPane scrollPane = new JScrollPane(tabela);
    c.add(scrollPane);
         
    setSize(400, 300);
    setVisible(true);
  }
     
  public static void main(String args[]){
    Estudos app = new Estudos();
    app.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  }
}

Ao executarmos esta aplicação Java Swing nós teremos o seguinte resultado:




MySQL ::: Dicas & Truques ::: Chaves, Índices e Restrições de Integridade Referencial

Como criar chaves estrangeiras no MySQL - Como criar Foreign Keys em tabelas do MySQL

Quantidade de visualizações: 89788 vezes
O que é chave estrangeira (foreign key)?

O papel da chave estrangeira é manter uma referência a um registro presente em outra tabela. Imagine o seguinte cenário. Temos uma tabela livros e uma tabela autores. Neste cenário, um autor pode escrever vários livros e um livro pode ser escrito somente por um determinado autor. Aqui temos uma relação 1:N, ou seja, um para muitos: um autor pode escrever zero, um ou vários livros.

Comece analisando a tabela autores:

Field    Type               Null   Key    Default   Extra    
id       int(10) unsigned   NO     PRI    -         auto_increment    
nome     varchar(45)        NO            -                
email    varchar(45)        NO            -                
Como podemos ver, esta tabela possui três campos: id, nome e email. O campo id é do tipo int, auto-incremento e é a chave primária da tabela (não poderá haver ids repetidos nem o valor NULL). Esta tabela foi criada com o seguinte comando DDL CREATE TABLE:

CREATE TABLE autores(
  id int(10) unsigned NOT NULL auto_increment,
  nome varchar(45) NOT NULL,
  email varchar(45) NOT NULL,
  PRIMARY KEY(id)
)ENGINE=InnoDB;

Analise agora a tabela livros:

Field      Type                Null    Key    Default    Extra    
id         int(10) unsigned    NO      PRI    -          auto_increment    
titulo     varchar(45)         NO             -               
paginas    int(10) unsigned    NO             -               
id_autor   int(10) unsigned    NO             -               
Note que esta tabela possui os campos id, titulo, paginas e id_autor. Veja o comando DDL CREATE TABLE usado para sua criação:

CREATE TABLE livros(
  id INTEGER UNSIGNED NOT NULL DEFAULT NULL AUTO_INCREMENT,
  titulo VARCHAR(45) NOT NULL,
  paginas INTEGER UNSIGNED NOT NULL,
  id_autor INTEGER UNSIGNED NOT NULL,
  PRIMARY KEY(id)
)ENGINE = InnoDB;

O campo id é do tipo int, auto-incremento e foi marcado como chave primária. Dessa forma, o campo id identifica unicamente cada livro. O campo id_autor é do tipo int e sua função é guardar o id do autor que escreveu um determinado livro. Ao trazer o valor do campo id da tabela autores para o campo id_autor da tabela livros nós estamos relacionando as duas tabelas. O campo id_autor, neste cenário, é a chave estrangeira, pois seu valor sempre refletirá o valor do campo id da tabela autores (a única exceção é quando queremos deixar, temporariamente, um livro sem autor). Lembre-se, em uma relação 1:N, a chave estrangeira, em geral, ficará no lado N da relação.

Integridade Referencial (Restrições de Chave Estrangeira) - Referential Integrity (Foreign Key Constraints)

Imagine agora que você inseriu alguns registros na tabela autores e na tabela livros. Todas as vezes que o valor do campo id_autor na tabela livros for igual ao valor do campo id na tabela autores nós estaremos criando um relação autor-livro. É possível, a qualquer momento, listar um livro e saber de imediato o id do seu autor (isso permite fazer um join com a tabela autores para obter os dados do respectivo autor).

Mas, o que acontecerá se excluirmos um registro na tabela autores e, mais tarde, descobrirmos que o campo id_autor da tabela livros guardava uma referência para o autor excluído? Teremos a quebra da integridade referencial. Para evitar tais situações, é responsabilidade do programador escrever códigos de verificações para prevenir estas ocorrências.

Os bancos de dados, e principalmente o MySQL, possuem mecanismos para reforçar esta proteção: restrições de chave estrangeira. As restrições de chave estrangeira asseguram duas situações possíveis:

1) Não permitir que um autor seja excluído quando qualquer livro possuir uma referência a ele;

2) Se o autor for excluído, todos os livros que o referenciam também o serão.

Definindo a chave estrangeira na tabela livros usando o atributo CONSTRAINT FOREIGN KEY REFERENCES

Vamos agora reescrever o comando DDL CREATE TABLE para a tabela livros de forma a aplicar as restrições de chaves estrangeiras. Veja a nova versão:

CREATE TABLE livros(
  id INTEGER UNSIGNED NOT NULL DEFAULT NULL AUTO_INCREMENT,
  titulo VARCHAR(45) NOT NULL,
  paginas INTEGER UNSIGNED NOT NULL,
  id_autor INTEGER UNSIGNED NOT NULL,
  PRIMARY KEY(id),
  CONSTRAINT livros_autores FOREIGN KEY(id_autor) REFERENCES autores(id)
)ENGINE = InnoDB;

A estrutura da tabela livros será alterada para aquela mostrada abaixo:

Field      Type                Null   Key    Default    Extra    
id         int(10) unsigned    NO     PRI    -          auto_increment    
titulo     varchar(45)         NO            -              
paginas    int(10) unsigned    NO            -                
id_autor   int(10) unsigned    NO     MUL    -
Veja que agora o campo id_autor foi sinalizado como MUL, ou seja, parte de um índice não único. Experimente agora inserir dados em ambas as tabelas e faça relacionamentos entre autores e livros. Tente excluir um autor que tenha um livro relacionado a ele. Imediatamente o MySQL abortará a operação com a seguinte mensagem de erro:

ErrorNr. 1451: Cannot delete or update a parent row: a foreign key constraint fails (`estudos/livros`, CONSTRAINT `livros_autores` FOREIGN KEY (`id_autor`) REFERENCES `autores` (`id`))

Em mais dicas desta seção você aprenderá a usar as cláusulas ON DELETE e ON UPDATE e as ações RESTRICT, SET NULL, CASCADE e NO ACTION. Todas estas cláusulas e ações são usadas para reforçar a integridade referencial de suas bases de dados.


C++ ::: Desafios e Lista de Exercícios Resolvidos ::: C++ Básico

Exercício Resolvido de C++ - Como ler um número inteiro e imprimir seu sucessor e seu antecessor em C++

Quantidade de visualizações: 1721 vezes
Pergunta/Tarefa:

Escreva um programa C++ para ler um número inteiro e imprimir seu sucessor e seu antecessor. O usuário poderá informar um valor positivo ou negativo.

Sua saída deverá ser parecida com:

Informe um número inteiro: 16
O número informado foi: 16
O antecessor é 15
O sucessor é: 17
Resposta/Solução:

Veja a resolução comentada deste exercício usando C++:

#include <string>
#include <iostream>

using namespace std;

int main(int argc, char *argv[]){
  // variáveis usadas na resolução do problema
  int numero, sucessor, antecessor;
  
  // vamos pedir para o usuário informar um número inteiro
  cout << "Informe um número inteiro: ";
  cin >> numero;
    
  // vamos calcular o sucessor do número informado
  sucessor = numero + 1;
    
  // vamos calcular o antecessor do número informado
  antecessor = numero - 1;
    
  // e agora mostramos os resultados
  cout << "O número informado foi: " << numero << endl;
  cout << "O antecessor é " << antecessor << endl;
  cout << "O sucessor é: " << sucessor << endl;
  
  system("PAUSE"); // pausa o programa
  return EXIT_SUCCESS; 
}



Python ::: Fundamentos da Linguagem ::: Variáveis e Constantes

Como usar a função type() da linguagem Python para descobrir o tipo de dados de uma variável

Quantidade de visualizações: 14021 vezes
Em algumas situações nós gostaríamos de verificar o tipo de uma variável, ou seja, o tipo do valor que ele contém no momento, antes de efetuar algum cálculo ou procedimento.

Em Python isso pode ser feito por meio da função type(), que nos retorna uma string indicando o tipo de dados sendo armazenado no momento. Note que, em Python, uma mesma variável pode assumir tipos diferentes durante a execução do programa.

Veja o código completo para o exemplo:

def main():
  var = "Osmar J. Silva"
  print("O tipo da variavel var é:", type(var)) 
 
  var = 45
  print("Agora o tipo da variavel var é:", type(var))
 
  var = 45.30
  print("E agora o tipo da variavel var é:", type(var))   
 
if __name__== "__main__":
  main()

Ao executarmos este código nós teremos o seguinte resultado:

O tipo da variavel var é: <class 'str'>
Agora o tipo da variavel var é: <class 'int'>
E agora o tipo da variavel var é: <class 'float'>


VB.NET ::: VB.NET para Engenharia ::: Geometria Analítica e Álgebra Linear

Como somar os elementos da diagonal principal de uma matriz em VB.NET

Quantidade de visualizações: 302 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



VisuAlg ::: Dicas & Truques ::: Geometria, Trigonometria e Figuras Geométricas

Como calcular o coeficiente angular de uma reta em VisuAlg dados dois pontos no plano cartesiano

Quantidade de visualizações: 624 vezes
O Coeficiente Angular de uma reta é a variação, na vertical, ou seja, no eixo y, pela variação horizontal, no eixo x. Sim, isso mesmo. O coeficiente angular de uma reta tem tudo a ver com a derivada, que nada mais é que a taxa de variação de y em relação a x.

Vamos começar analisando o seguinte gráfico, no qual temos dois pontos distintos no plano cartesiano:



Veja que o segmento de reta AB passa pelos pontos A (x=3, y=6) e B (x=9, y=10). Dessa forma, a fórmula para obtenção do coeficiente angular m dessa reta é:

\[\ \text{m} = \frac{y_2 - y_1}{x_2 - x_1} = \frac{\Delta y}{\Delta x} = tg \theta \]

Note que __$\Delta y__$ e __$\Delta x__$ são as variações dos valores no eixo das abscissas e no eixo das ordenadas. No triângulo retângulo que desenhei acima, a variação __$\Delta y__$ se refere ao comprimento do cateto oposto e a variação __$\Delta y__$ se refere ao comprimento do cateto adjascente.

Veja agora o trecho de código na linguagem VisuAlg que solicita as coordenadas x e y dos dois pontos, efetua o cálculo e mostra o coeficiente angular m da reta que passa pelos dois pontos:

algoritmo "Calcular o coeficiente angular de uma reta em VisuAlg"

var
  // coordenadas dos dois pontos
  x1, y1, x2, y2: real
  // guarda o coeficiente angular
  m: real

inicio
  // x e y do primeiro ponto
  escreva("Coordenada x do primeiro ponto: ")
  leia(x1)
  escreva("Coordenada y do primeiro ponto: ")
  leia(y1)

  // x e y do segundo ponto
  escreva("Coordenada x do segundo ponto: ")
  leia(x2)
  escreva("Coordenada y do segundo ponto: ")
  leia(y2)

  // vamos calcular o coeficiente angular
  m <- (y2 - y1) / (x2 - x1)

  // mostramos o resultado
  escreva("O coeficiente angular é: ", m)

fimalgoritmo 

Ao executar este código VisuAlg nós teremos o seguinte resultado:

Coordenada x do primeiro ponto: 3
Coordenada y do primeiro ponto: 6
Coordenada x do segundo ponto: 9
Coordenada y do segundo ponto: 10
O coeficiente angular é: 0.6666666666666666

Veja agora como podemos calcular o coeficiente angular da reta que passa pelos dois pontos usando o Teorema de Pitágoras. Note que agora nós estamos tirando proveito da tangente do ângulo Theta (__$\theta__$), também chamado de ângulo Alfa ou Alpha (__$\alpha__$):

algoritmo "Calcular o coeficiente angular de uma reta em VisuAlg"

var
  // coordenadas dos dois pontos
  x1, y1, x2, y2: real
  // guarda os comprimentos dos catetos oposto e adjascente
  cateto_oposto, cateto_adjascente: real
  // guarda o ângulo tetha (em radianos) e a tangente
  tetha, tangente: real

inicio
  // x e y do primeiro ponto
  escreva("Coordenada x do primeiro ponto: ")
  leia(x1)
  escreva("Coordenada y do primeiro ponto: ")
  leia(y1)

  // x e y do segundo ponto
  escreva("Coordenada x do segundo ponto: ")
  leia(x2)
  escreva("Coordenada y do segundo ponto: ")
  leia(y2)

  // vamos obter o comprimento do cateto oposto
  cateto_oposto <- y2 - y1
  // e agora o cateto adjascente
  cateto_adjascente <- x2 - x1
  // vamos obter o ângulo tetha, ou seja, a inclinação da hipetunesa
  // (em radianos, não se esqueça)
  tetha <- ArcTan(cateto_oposto / cateto_adjascente)
  // e finalmente usamos a tangente desse ângulo para calcular
  // o coeficiente angular
  tangente <- Tan(tetha)

  // mostramos o resultado
  escreva("O coeficiente angular é: ", tangente)

fimalgoritmo 

Ao executar este código você verá que o resultado é o mesmo. No entanto, fique atento às propriedades do coeficiente angular da reta:

1) O coeficiente angular é positivo quando a reta for crescente, ou seja, m > 0;

2) O coeficiente angular é negativo quando a reta for decrescente, ou seja, m < 0;

3) Se a reta estiver na horizontal, ou seja, paralela ao eixo x, seu coeficiente angular é zero (0).

4) Se a reta estiver na vertical, ou seja, paralela ao eixo y, o coeficiente angular não existe.


C++ ::: Dicas & Truques ::: Strings e Caracteres

Como embaralhar os caracteres de uma string em C++ usando a função random_shuffle()

Quantidade de visualizações: 13064 vezes
Em algumas situações, tais como o desenvolvimento de um gerador de senhas aleatórias, pode ser necessário embaralharmos as letras de uma palavra. Em C++ isso pode ser feito por meio do uso da função random_shuffle() da STL (Standard Template Library). Não se esqueça de efetuar uma chamada a srand() antes do código que embaralha os caracteres da string.

Veja o código C++ completo para o exemplo:

#include <string>
#include <iostream>
#include <algorithm>
#include <time.h>

using namespace std;

int main(int argc, char *argv[]){
  // vamos iniciar o gerador de números
  // aleatórios
  srand(time(NULL));

  // vamos criar uma string
  string palavra = "JAVASCRIPT";
  cout << "Palavra original: " << palavra << endl;
  
  // vamos embaralhar as palavras da string
  random_shuffle(palavra.begin(), palavra.end());

  // exibe o resultado
  cout << "Palavra com caracteres embaralhados: " << palavra << "\n\n";

  system("PAUSE"); // pausa o programa
  return EXIT_SUCCESS;
}

Ao executar este código C++ nós teremos o seguinte resultado:

Palavra original: JAVASCRIPT
Palavra com caracteres embaralhados: RPSAITCVAJ

Carregar Publicações Anteriores


Nossas 20 dicas & truques de programação mais populares

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

Últimos Exercícios Resolvidos

E-Books em PDF

E-Book 350 Exercícios Resolvidos de Java - PDF com 500 páginas
Domine lógica de programação e a linguagem Java com o nosso E-Book 350 Exercícios Exercícios de Java, para você estudar onde e quando quiser.

Este e-book contém exercícios resolvidos abrangendo os tópicos: Java básico, matemática e estatística, programação dinâmica, strings e caracteres, entrada e saída, estruturas condicionais, vetores e matrizes, funções, laços, recursividade, internet, arquivos e diretórios, programação orientada a objetos e muito mais.
Ver Conteúdo do E-book
E-Book 650 Dicas, Truques e Exercícios Resolvidos de Python - PDF com 1.200 páginas
Domine lógica de programação e a linguagem Python com o nosso E-Book 650 Dicas, Truques e Exercícios Exercícios de Python, para você estudar onde e quando quiser.

Este e-book contém dicas, truques e exercícios resolvidos abrangendo os tópicos: Python básico, matemática e estatística, banco de dados, programação dinâmica, strings e caracteres, entrada e saída, estruturas condicionais, vetores e matrizes, funções, laços, recursividade, internet, arquivos e diretórios, programação orientada a objetos e muito mais.
Ver Conteúdo do E-book

Linguagens Mais Populares

1º lugar: Java
2º lugar: Python
3º lugar: C#
4º lugar: PHP
5º lugar: C
6º lugar: Delphi
7º lugar: JavaScript
8º lugar: C++
9º lugar: VB.NET
10º lugar: Ruby



© 2025 Arquivo de Códigos - Todos os direitos reservados
Neste momento há 21 usuários muito felizes estudando em nosso site.