Você está aqui: Cards de Engenharia Civil - Estruturas de Concreto Armado |
||
|
||
|
|
||
Ruby ::: Dicas & Truques ::: Programação Orientada a Objetos |
Como acessar variáveis de instâncias para escrita em Ruby sem a necessidade de métodos mutatórios usando a função attr_accessorQuantidade de visualizações: 7612 vezes |
|
Por padrão, variáveis de instância em Ruby só podem ser acessadas para escrita usando métodos mutatórios, ou seja, uma variável de instância @nome deve ser modificada usando um método definir_nome. É possível dispensar o uso de métodos mutatórios empregando o método attr_accessor nos nomes das variáveis que poderão ser acessadas e modificadas. Lembre-se que, ao contrário de attr_reader, o método attr_accessor possibilita o acesso à variável de instância tanto para leitura quanto para escrita. Veja um exemplo:
# Definição da classe Cliente
class Cliente
attr_accessor :nome, :idade
def initialize(nome, idade)
@nome = nome
@idade = idade
end
end
# Cria uma instância da classe Cliente e inicializa as
# variáveis de instância @nome e @idade
cliente = Cliente.new("Osmar J. Silva", 35)
# Acessa as variáveis de instância sem a necessidade
# de métodos acessórios
puts cliente.nome
puts cliente.idade
# Modifica as variáveis de instância sem a necessidade
# de métodos mutatórios
cliente.nome = "Carlos da Silva"
cliente.idade = 56
# Obtém os resultados
puts cliente.nome
puts cliente.idade
Se tentarmos acessar e modificar as variáveis nome e idade diretamente, sem os métodos mutatórios e a função attr_accessor nós teremos um erro do tipo: Traceback (most recent call last): estudos.arb:15:in `<main>': undefined method `nome' for #<Cliente:0x0000029a7211f080 @nome="Osmar J. Silva", @idade=35> (NoMethodError) |
C ::: Dicas & Truques ::: Strings e Caracteres |
Como criar sua própria função substring() para obter uma substring a partir de uma string em CQuantidade de visualizações: 17353 vezes |
Em algumas situações precisamos obter uma substring a partir de uma string. A linguagem C já fornece algumas funções que tornam isso possível. No entanto, nenhuma destas funções permite especificar o índice inicial da substring. Sendo assim, o trecho de código abaixo mostra como escrever uma função substring() que permite informar a string de origem, o índice inicial e a quantidade de caracteres que serão obtidos. O retorno da função será um ponteiro para a substring obtida:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
char *substring(char *origem, int inicio, int quant){
char *res = origem;
int i = 0;
// posição inicial menor que 0 ou
// posição inicial muito exagerada?
if((inicio < 0) || (inicio > strlen(origem)))
inicio = 0;
// quantidade de caracteres muito exagerada?
if(quant > inicio + strlen(origem))
quant = strlen(origem) - inicio;
// obtem os caracteres desejados
for(i = 0; i <= quant - 1; i++){
res[i] = origem[inicio + i];
}
// marca o fim da string
res[i] = '\0';
return res;
}
int main(int argc, char *argv[])
{
char texto[] = "Gosto muito de C e C++";
// não podemos bagunçar a string original
char sub_temp[128];
strcpy(sub_temp, texto);
// 10 caracteres começando
// no índice 6
char *res = substring(sub_temp, 6, 10);
// exibe o resultado
puts(res);
// exibe a string original
puts(texto);
system("pause");
return 0;
}
Ao executar este código nós teremos o seguinte resultado: muito de C Gosto muito de C e C++ |
Java ::: Desafios e Lista de Exercícios Resolvidos ::: Arrays e Matrix (Vetores e Matrizes) |
Exercícios Resolvidos de Java - Escreva um programa Java para mover todos os zeros para o final do vetor, sem alterar a ordem dos elementos já presentes no arrayQuantidade de visualizações: 836 vezes |
|
Pergunta/Tarefa: Dado o seguinte vetor de inteiros:
// vamos declarar e construir um vetor de 8 inteiros
int valores[] = {0, 3, 0, 5, 7, 4, 0, 9};
Sua saída deverá ser parecida com: Vetor na ordem original: 0 3 0 5 7 4 0 9 Vetor com os zeros deslocados para o final: 3 5 7 4 9 0 0 0 Veja a resolução comentada deste exercício usando Java:
package exercicio;
public class Exercicio {
public static void main(String[] args) {
// vamos declarar e construir um vetor de 8 inteiros
int valores[] = {0, 3, 0, 5, 7, 4, 0, 9};
// vamos mostrar o vetor na ordem original
System.out.println("Vetor na ordem original:\n");
for(int i = 0; i < valores.length; i++){
System.out.print(valores[i] + " ");
}
// vamos inicializar j como 0 para que ele aponte para
// o primeiro elemento do vetor
int j = 0;
// agora o laço for percorre todos os elementos do vetor,
// incrementanto a variável i e deixando o j em 0
for(int i = 0; i < valores.length; i++){
// encontramos um valor que não é 0
if(valores[i] != 0){
// fazemos a troca entre os elementos nos índices
// i e j
int temp = valores[i];
valores[i] = valores[j];
valores[j] = temp;
// e avançamos o j para o elemento seguinte
j++;
}
}
// agora mostramos o resultado
System.out.println("\n\nVetor com os zeros deslocados para o final:\n");
for(int i = 0; i < valores.length; i++){
System.out.print(valores[i] + " ");
}
System.out.println();
}
}
Não se esqueça: A resolução do exercício deve ser feita sem a criação de um vetor, array ou lista adicional, e os elementos diferentes de zero devem permanecer na mesma ordem que eles estavam antes. |
C++ ::: Desafios e Lista de Exercícios Resolvidos ::: STL Vector C++ |
Exercício Resolvido de C++ - Escreva um programa C++ com uma função chamada possui_numeros() que recebe um Vector de strings como argumentoQuantidade de visualizações: 503 vezes |
|
Pergunta/Tarefa: Escreva um programa C++ com uma função chamada possui_numeros() que recebe um Vector de strings como argumento e retorna outro Vector contendo apenas as strings que possuem um ou mais números. Se nenhuma das strings recebidas passar no teste, retorne um Vector vazio. Sua saída deverá ser parecida com: Elementos do Vector original: livro mesa7 cami45sa porta Palavras que possuem um ou mais números: mesa7 cami45sa Veja a resolução comentada deste exercício em C++:
#include <iostream>
#include <vector>
using namespace std;
// função que recebe um vetor de strings e retorna
// outro vector contendo apenas as strings que possuem
// um ou mais números
vector<string> possui_numeros(vector<string> palavras) {
// para guardar o resultado
vector<string> resultado;
// vamos percorrer os itens do vector recebido
for(string palavra : palavras) {
// agora percorremos os caracteres de cada string
for(char carac : palavra) {
// é um caractere?
if(isdigit(carac)) {
// adicionamos no segundo vector
resultado.push_back(palavra);
break;
}
}
}
// retorna o vector obtido
return resultado;
}
// função principal do programa
int main(int argc, char *argv[]){
// vamos criar um vector de palavras
vector<string> palavras = {"livro", "mesa7", "cami45sa", "porta"};
// vamos mostrar o conteúdo do vector original
cout << "Elementos do Vector original:\n";
for (string palavra : palavras) {
cout << palavra << " ";
}
// agora obtemos um vector com as palavras que contenham um ou mais
// números
vector<string> resultado = possui_numeros(palavras);
// e mostramos o resultado
cout << "\n\nPalavras que possuem um ou mais números:\n";
for (string palavra : resultado) {
cout << palavra << " ";
}
cout << "\n\n";
system("PAUSE"); // pausa o programa
return EXIT_SUCCESS;
}
|
PHP ::: Dicas & Truques ::: Formulários |
Como obter o valor do radio button selecionado no formulário HTML usando PHPQuantidade de visualizações: 51052 vezes |
Controles do tipo radio button são úteis quando o usuário deverá marcar apenas UMA entre as várias opções fornecidas. Veja um exemplo abaixo:
<form name="cadastro" method="post" action="testes.php">
<b></b>Qual sua linguagem favorita?</b><br>
<input name="linguagem" type="radio"
value="Java" checked>Java<br>
<input type="radio" name="linguagem"
value="Delphi">Delphi<br>
<input type="radio" name="linguagem"
value="C++">C++<br>
<input type="radio" name="linguagem"
value="Python">Python<br>
<input type="submit" value="Enviar!">
</form>
Lembre-se de que um grupo de radio button relacionados deverá ter o mesmo valor para a propriedade name. Para obter o valor do radio button selecionado, podemos usar o seguinte código PHP: <?php // Obtém o radio button selecionado $opcao = $_POST["linguagem"]; // Exibe o resultado echo "Sua linguagem favorita é: " . $opcao; ?> |
Desafios, Exercícios e Algoritmos Resolvidos de PHP |
Veja mais Dicas e truques de PHP |
Dicas e truques de outras linguagens |
E-Books em PDF |
||||
|
||||
|
||||
Linguagens Mais Populares |
||||
|
1º lugar: Java |





