Você está aqui: Cards de Engenharia Civil - Estruturas de Aço e Madeira |
||
|
||
|
|
||
C++ ::: Dicas & Truques ::: Ponteiros, Referências e Memória |
Como alocar memória dinâmica usando o operador new do C++Quantidade de visualizações: 12608 vezes |
|
Em algumas situações precisamos alocar memória dinamicamente. Em C++ isso é feito com o auxílio do operador new. Este operador permite alocar uma determinada quantidade de bytes, alinhados de forma a representar o objeto para o qual queremos reservar memória. Veja um exemplo de código no qual alocamos memória dinâmica para uma variável do tipo int:
#include <iostream>
using namespace std;
int main(int argc, char *argv[]){
// aloca memória para um objeto do tipo int
int *ponteiro = new int;
// vamos definir o valor para o objeto recém-alocado
*ponteiro = 20;
// vamos exibir seu valor
cout << *ponteiro << endl;
// vamos liberar a memória
delete ponteiro;
system("PAUSE"); // pausa o programa
return EXIT_SUCCESS;
}
Note que aqui a memória foi alocada e guardada em um ponteiro. Veja também o uso do operador delete para liberar a memória alocada. Isso evita os vazamentos de memória tão frequentes em aplicações que lidam com a memória dinâmica. É claro que este não é o exemplo mais prático. Qual a vantagem de se alocar memória para um int? Declarar uma variável teria sido mais eficiente. A alocação de memória dinâmica é mais útil quando estamos lidando com objetos mais complexos que os tipos básicos. Alguns exemplos envolvem a criação de objetos de classes, matrizes, estruturas de dados, etc. Veja um exemplo no qual temos uma declaração de uma classe chamada Cliente e em seguida alocamos memória para uma instância desta classe:
#include <iostream>
#include <string>
using namespace std;
// declaração da classe Cliente
class Cliente{
public:
Cliente();
string obterNome();
void definirNome(string);
private:
string nome;
};
// implementação dos métodos da classe
Cliente::Cliente(){} // construtor vazio
// obtém o nome do cliente
string Cliente::obterNome(){
return this->nome;
}
// define o nome do cliente
void Cliente::definirNome(string nome){
this->nome = nome;
}
int main(int argc, char *argv[]){
// aloca memória para um objeto da classe Cliente
Cliente *c = new Cliente();
// vamos definir o nome do cliente
c->definirNome("Osmar J. Silva");
// vamos exibir o nome do cliente
cout << c->obterNome() << endl;
// vamos liberar a memória usada
delete c;
system("PAUSE"); // pausa o programa
return EXIT_SUCCESS;
}
Ao executar este código C++ nós teremos o seguinte resultado: Nome do cliente: Osmar J. Silva |
Java ::: Desafios e Lista de Exercícios Resolvidos ::: Arrays e Matrix (Vetores e Matrizes) |
Exercícios e Algorítmos Resolvidos de Java - Somando os elementos da diagonal principal de uma matrizQuantidade de visualizações: 9525 vezes |
|
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 (algorítmo) Java 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:
Valor para a linha 0 e coluna 0: 1
Valor para a linha 0 e coluna 1: 4
Valor para a linha 0 e coluna 2: 7
Valor para a linha 1 e coluna 0: 12
Valor para a linha 1 e coluna 1: 9
Valor para a linha 1 e coluna 2: 8
Valor para a linha 2 e coluna 0: 5
Valor para a linha 2 e coluna 1: 10
Valor para a linha 2 e coluna 2: 14
Valores na matriz
1 4 7
12 9 8
5 10 14
A soma dos elementos da diagonal principal é: 24
Veja a resolução comentada deste exercício usando Java console:
package exercicios;
import java.util.Scanner;
public class Exercicios {
public static void main(String[] args) {
// vamos fazer a leitura usando a classe Scanner
Scanner entrada = new Scanner(System.in);
// vamos declarar e construir uma matriz de três linhas
// e três colunas
int matriz[][] = new int[3][3];
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 < matriz.length; i++){ // linhas
for(int j = 0; j < matriz[0].length; j++){ // colunas
System.out.print("Informe o valor para a linha " + i
+ " e coluna " + j + ": ");
matriz[i][j] = Integer.parseInt(entrada.nextLine());
}
}
// vamos mostrar a matriz da forma que ela foi informada
System.out.println();
// percorre as linhas
for(int i = 0; i < matriz.length; i++){
// percorre as colunas
for(int j = 0; j < matriz[0].length; j++){
System.out.printf("%5d ", matriz[i][j]);
}
// passa para a próxima linha da matriz
System.out.println();
}
// vamos calcular a soma dos elementos da diagonal principal
for(int i = 0; i < matriz.length; i++){
for(int j = 0; j < matriz[0].length; j++){
if(i == j){
soma_diagonal = soma_diagonal + matriz[i][j];
}
}
}
// finalmente mostramos a soma da diagonal principal
System.out.println("\nA soma dos elementos da diagonal principal é: "
+ soma_diagonal);
}
}
|
C ::: Dicas & Truques ::: Strings e Caracteres |
Como contar as ocorrências de uma substring em uma string em C usando uma função substring_count() personalizadaQuantidade de visualizações: 10619 vezes |
Em algumas situações precisamos obter a quantidade de vezes que uma substring ocorre dentro de uma string. Para isso podemos usar a função personalizada substring_count(). Esta função recebe a string e a substring que desejamos pesquisar e retorna um inteiro contendo a quantidade de vezes que a substring foi encontrada. Veja o código:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
// função personalizada que permite contar as
// ocorrências de uma substring em uma string
int substring_count(const char *str, const char *substring){
int i, j, k, quant = 0;
// vamos percorrer todos os caracteres da string
for(i = 0; str[i]; i++){
for(j = i, k = 0; str[j] == substring[k]; j++, k++){
if(substring[k + 1] == 0) // fim da comparação
quant++;
}
}
return quant;
}
int main(int argc, char *argv[]){
char frase[] = "Gosto muito de Java, JavaScript e Python";
printf("Ocorrencias encontradas: %d",
substring_count(frase, "Java"));
puts("\n\n");
system("PAUSE");
return 0;
}
|
Java ::: Java + MySQL ::: Metadados da Base de Dados (Database Metadata) |
Java MySQL - Como obter uma lista das funções de strings e caracteres suportadas pelo MySQL usando o método getStringFunctions() da interface DatabaseMetaDataQuantidade de visualizações: 5625 vezes |
|
Em algumas situações gostaríamos de, via código, obter uma lista das funções de strings e caracteres suportadas pelo MySQL. Para isso podemos usar o método getStringFunctions() da interface DatabaseMetaData. É importante observar que, no Sun Microsystem's JDBC Driver for MySQL, a interface DatabaseMetaData é implementada por uma classe do mesmo nome, no pacote com.mysql.jdbc.DatabaseMetaData. E esta classe implementa o método getStringFunctions() de forma a retornar a lista de funções de string e caracteres separadas por vírgulas. Veja um trecho de código Java no qual listamos todas as funções de strings e caracteres suportados no MySQL 5.0:
package estudosbancodados;
import java.sql.Connection;
import java.sql.DatabaseMetaData;
import java.sql.DriverManager;
import java.sql.SQLException;
public class EstudosBancoDados{
public static void main(String[] args) {
// strings de conexão
String databaseURL = "jdbc:mysql://localhost/estudos";
String usuario = "root";
String senha = "osmar1234";
String driverName = "com.mysql.jdbc.Driver";
try {
Class.forName(driverName).newInstance();
Connection conn = DriverManager.getConnection(databaseURL, usuario, senha);
// vamos obter um objeto da classe com.mysql.jdbc.DatabaseMetaData
DatabaseMetaData dbmd = conn.getMetaData();
// vamos obter a lista de funções de strings e caracteres disponíveis
// nesta versão do SQL Server
String funcoesStringChar = dbmd.getStringFunctions();
// como a lista de funções está separada por vírgulas, vamos obter
// uma matriz de strings
String funcoes[] = funcoesStringChar.split(",");
// vamos mostrar o resultado
for(int i = 0; i < funcoes.length; i++){
System.out.println(funcoes[i]);
}
}
catch (SQLException ex) {
System.out.println("SQLException: " + ex.getMessage());
System.out.println("SQLState: " + ex.getSQLState());
System.out.println("VendorError: " + ex.getErrorCode());
}
catch (Exception e) {
System.out.println("Problemas ao tentar conectar com o banco de dados: " + e);
}
}
}
Ao executarmos este código teremos o seguite resultado: ASCII BIN BIT_LENGTH CHAR CHARACTER_LENGTH CHAR_LENGTH CONCAT CONCAT_WS CONV ELT EXPORT_SET FIELD FIND_IN_SET HEX INSERT INSTR LCASE LEFT LENGTH LOAD_FILE LOCATE LOCATE LOWER LPAD LTRIM MAKE_SET MATCH MID OCT OCTET_LENGTH ORD POSITION QUOTE REPEAT REPLACE REVERSE RIGHT RPAD RTRIM SOUNDEX SPACE STRCMP SUBSTRING SUBSTRING SUBSTRING SUBSTRING SUBSTRING_INDEX TRIM UCASE UPPER |
Python ::: Dicas & Truques ::: Strings e Caracteres |
Como pesquisar substrings em strings usando a função index() da linguagem PythonQuantidade de visualizações: 8829 vezes |
Este exemplo mostra como pesquisar uma substring em uma string usando o método index() do Python. A assinatura desta função é:index(substring[, start[, end]]) onde substring é a substring a ser pesquisada e start e end são argumentos opcionais que definem os índices de início e fim da pesquisa. Se a substring não for encontrada, uma exceção do tipo ValueError é levantada. Se for encontrada, o índice do primeiro caractere é retornado. Veja o código Python completo para a dica:
def main():
frase = "Gosto de Python e JavaScript"
try:
indice = frase.index("Python")
except ValueError:
print("A palavra não foi encontrada")
else:
print("A palavra foi encontrada no índice", indice)
if __name__== "__main__":
main()
Ao executarmos este código Python nós teremos o seguinte resultado: A palavra foi encontrada no índice 9. |
Desafios, Exercícios e Algoritmos Resolvidos de Python |
Veja mais Dicas e truques de Python |
Dicas e truques de outras linguagens |
|
Delphi - Como calcular o cateto adjascente dadas as medidas da hipotenusa e do cateto oposto em Delphi |
E-Books em PDF |
||||
|
||||
|
||||
Linguagens Mais Populares |
||||
|
1º lugar: Java |






