Você está aqui: Cards de Engenharia Civil - Fundações |
||
|
||
|
|
||
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: 12650 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 |
C ::: Desafios e Lista de Exercícios Resolvidos ::: Arrays e Matrix (Vetores e Matrizes) |
Exercícios Resolvidos de C - Como retornar o primeiro elemento de um vetor em CQuantidade de visualizações: 668 vezes |
|
Pergunta/Tarefa: Dado o vetor: [9, 5, 3, 2, 4, 8] Escreva um programa C que mostra como acessar e retornar o primeiro elemento de um vetor (array) em C. Sua saída deverá ser parecida com: O primeiro elemento do array é: 9 Veja a resolução comentada deste exercício usando C:
#include <stdio.h>
#include <stdlib.h>
// função principal do programa
int main(int argc, char *argv[]){
// vamos criar um array de inteiros
int valores[] = {9, 5, 3, 2, 4, 8};
// agora vamos retornar o primeiro elemento do vetor
int primeiro = valores[0];
// e mostramos o resultado
printf("O primeiro elemento do array é: %d", primeiro);
printf("\n\n");
system("PAUSE");
return 0;
}
|
Java ::: Pacote java.lang ::: String |
Como testar o conteúdo no final de uma string usando Java - O método endsWith() da classe StringQuantidade de visualizações: 1 vezes |
|
Em algumas situações nós precisamos de verificar o conteúdo no final de uma palavra, frase ou texto. Para isso nós podemos usar o método endsWith() da classe String da linguagem Java. Este método recebe a substring a ser testada e retorna true se ela for encontrada no final da string e false em caso contrário. Note que este método diferencia maiúsculas de minúsculas. Veja um exemplo completo de seu uso:
package arquivodecodigos;
public class Estudos{
public static void main(String[] args){
String arquivo = "Pessoa.java";
// o nome do arquivo termina em ".java"?
if(arquivo.endsWith(".java")){
System.out.println("O arquivo contém a extensão desejada");
}
else{
System.out.println("O arquivo não contém a extensão desejada");
}
System.exit(0);
}
}
Ao executarmos este código Java nós teremos o seguinte resultado: O arquivo contém a extensão desejada. |
VBA ::: Dicas & Truques ::: Laços de Repetição |
Como usar o laço de repetição For Next em nossas aplicações VBAQuantidade de visualizações: 1014 vezes |
|
O laço For da linguagem VBA é uma estrutura de controle de repetição que nos permite, de forma eficiente, repetir uma instrução ou grupo de instruções um determinado número de vezes. Veja, por exemplo, como escrever um laço For Next que mostra os números de 0 até 10:
Sub ExemploLacoFor()
' exemplo de laço For Next que conta de 0 até 10
For i = 0 To 10
MsgBox "O valor de i é: " & i
Next
End Sub
Ao executar este código VBA nós teremos o seguinte resultado: O valor de i é: 0 O valor de i é: 1 O valor de i é: 2 O valor de i é: 3 O valor de i é: 4 O valor de i é: 5 O valor de i é: 6 O valor de i é: 7 O valor de i é: 8 O valor de i é: 9 O valor de i é: 10 É possível usar a palavra-chave Step para definirmos o incremento da variável de controle do laço. Veja:
Sub ExemploLacoFor()
' exemplo de laço For Next que mostra os números
' pares de 0 até 10
For i = 0 To 10 Step 2
MsgBox "O valor de i é: " & i
Next
End Sub
Ao executarmos o código novamente, o resultado será: O valor de i é: 0 O valor de i é: 2 O valor de i é: 4 O valor de i é: 6 O valor de i é: 8 O valor de i é: 10 Finalmente, se quisermos um laço For Next que conta de trás para a frente, ou seja, diminui a variável de controle, basta fornecermos um valor negativo para a palavra-chave Step. Veja:
Sub ExemploLacoFor()
' exemplo de laço For Next que mostra os números
' pares de 10 até 0
For i = 10 To 0 Step -2
MsgBox "O valor de i é: " & i
Next
End Sub
|
C ::: Desafios e Lista de Exercícios Resolvidos ::: Data e Hora |
Exercícios Resolvidos de C - Escreva um programa C que peça para o usuário informar um ano e informe o dia da semana que o ano começou (domingo, segunda-feiraQuantidade de visualizações: 832 vezes |
|
Pergunta/Tarefa: Escreva um programa C que pede para o usuário informar um ano e então mostre em qual dia da semana o ano começou, por exemplo, domingo, segunda-feira, terça-feira, quarta-feira, etc. Sua saída deverá ser parecida com: Informe um ano: 2022 O ano informado começou em um(a) Sábado Informe um ano: 2023 O ano informado começou em um(a) Domingo Informe um ano: 2024 O ano informado começou em um(a) Segunda-feira Informe um ano: 2025 O ano informado começou em um(a) Quarta-feira Veja a resolução comentada deste exercício usando C:
#include <stdio.h>
#include <stdlib.h>
// função principal do programa
int main(int argc, char *argv[]) {
// variáveis usadas na resolução do problema
char dias_semana[][20] = {"Domingo", "Segunda-feira", "Terça-feira",
"Quarta-feira", "Quinta-feira", "Sexta-feira", "Sábado"};
int ano, dia_inicial;
// vamos pedir para o usuário informar o ano
printf("Informe um ano: ");
scanf("%d", &ano);
// vamos calcular o número equivalente ao dia da semana que o
// ano iniciou: 0:Domingo, 1:Segunda-feira, 2:Terça-feira, etc
// note que as divisões abaixo são divisões por inteiro, ou seja,
// sem a parte fracionária
dia_inicial = (ano + (ano - 1) / 4) - ((ano - 1) / 100) +
((ano - 1) / 400);
dia_inicial = dia_inicial % 7;
// e mostramos o resultado
printf("O ano informado começou em um(a) %s", dias_semana[dia_inicial]);
printf("\n\n");
system("PAUSE");
return 0;
}
|
Mais Desafios de Programação e Exercícios e Algoritmos Resolvidos de C |
Veja mais Dicas e truques de C |
Dicas e truques de outras linguagens |
E-Books em PDF |
||||
|
||||
|
||||
Linguagens Mais Populares |
||||
|
1º lugar: Java |


