Você está aqui: Cards de Engenharia Civil - Estruturas de Aço e Madeira |
||
|
||
|
|
||
C ::: Dicas & Truques ::: Recursão (Recursividade) |
Como somar os elementos de um vetor em C usando uma função recursiva - Linguagem C para iniciantesQuantidade de visualizações: 5768 vezes |
|
Em algumas ocasiões ficamos imaginando o que pode ser feito com os métodos e funções recursivas. A resposta é: praticamente tudo. Veja abaixo um programa C completo no qual eu mostro como escrever uma função recursiva que recebe um array e mostra a soma de seus elementos (lembre-se de que um array é o mesmo que vetor, ou seja, uma matriz de uma linha e várias colunas):
#include <stdio.h>
#include <stdlib.h>
// função recursiva para somar todos os elementos de um array
int somar(int indice, int tamanho, int vetor[]){
// o caso base...hora de encerrar a recursividade
if(indice == (tamanho - 1)){
return vetor[indice];
}
else{
// ainda não é o caso base? vamos fazer uma nova chamada à função somar()
return vetor[indice] + somar(indice + 1, 10, vetor);
}
}
// função principal do programa
int main(int argc, char *argv[]){
// vamos declarar um array de 10 elementos
int valores[10];
int i, soma;
// vamos pedir ao usuário para informar os valores para o vetor
for(i = 0; i < 10; i++){
printf("Informe o valor do elemento %d: ", i);
scanf("%d", &valores[i]);
}
// vamos efetuar uma chamada à função recursiva somar();
// nota que estamos passando o índice inicial, o tamanho do
// array e o array em si
soma = somar(0, 10, valores);
printf("\nA soma dos elementos è: %d", soma);
printf("\n\n");
system("PAUSE");
return 0;
}
Ao executarmos este código C nós teremos o seguinte resultado: Informe o valor do elemento 0: 7 Informe o valor do elemento 1: 3 Informe o valor do elemento 2: 1 Informe o valor do elemento 3: 3 Informe o valor do elemento 4: 8 Informe o valor do elemento 5: 9 Informe o valor do elemento 6: 4 Informe o valor do elemento 7: 3 Informe o valor do elemento 8: 2 Informe o valor do elemento 9: 6 A soma dos elementos é: 46 |
Java ::: Pacote java.util ::: ArrayList |
Como acessar um determinado item de uma ArrayList em Java usando índices - Como usar o método get() da classe ArrayList do Java - RevisadoQuantidade de visualizações: 21070 vezes |
|
Em várias situações nós precisamos acessar os elementos da ArrayList de forma individual. Para isso podemos usar o seu método get() e fornecer o índice do elemento desejado. Lembre-se de que os índices em Java começam sempre em 0, ou seja, o primeiro elemento da ArrayList está no índice 0, o segundo no índice 1 e assim por diante. Veja o código para o exemplo:
import java.util.ArrayList;
public class Estudos{
public static void main(String[] args){
// cria uma ArrayList que conterá strings
ArrayList<String> nomes = new ArrayList<String>();
// adiciona itens na lista
nomes.add("Carlos");
nomes.add("Maria");
nomes.add("Fernanda");
nomes.add("Osmar");
// obtém o terceiro item na lista
String nome = nomes.get(2);
System.out.println("O valor obtido foi: " + nome);
System.exit(0);
}
}
Ao executar este código nós teremos o seguinte resultado: O valor obtido foi: Fernanda Esta dica foi revisada e testada no Java 8. |
C# ::: Windows Forms ::: ListBox |
Como inserir um item em uma determinada posição da ListBox do C# Windows Forms usando o método Insert()Quantidade de visualizações: 1172 vezes |
|
Em algumas situações nós gostaríamos de adicionar um novo item a uma ListBox do C# Windows Forms e indicar a posição (índice) na qual ela deverá ficar. Para isso podemos usar a função Insert() do objeto Items da ListBox. O método Insert() recebe o índice no qual o elemento será inserido e o item a ser inserido. Veja um exemplo de seu uso no trecho de código a seguir:
private void button2_Click(object sender, EventArgs e)
{
// insere um item na terceira posição
listBox1.Items.Insert(2, "Fortaleza");
}
Se o índice fornecido para o método Insert() não estiver dentro da faixa de índices válidos para os elementos da ListBox, uma exceção do tipo ArgumentOutOfRangeException será atirada: System.ArgumentOutOfRangeException HResult=0x80131502 Message=InvalidArgument=Value '20' não é um valor válido para 'index'. Parameter name: index Source=System.Windows.Forms StackTrace: em System.Windows.Forms.ListBox.ObjectCollection.Insert(Int32 index, Object item) |
Java ::: Desafios e Lista de Exercícios Resolvidos ::: Métodos, Procedimentos e Funções |
Exercício Resolvido de Java - Escreva um método chamado inverter() que recebe um número inteiro e retorna este mesmo número invertidoQuantidade de visualizações: 7682 vezes |
|
Pergunta/Tarefa: Escreva um método Java chamado inverter() que recebe um número inteiro e retorna este mesmo número invertido. Este método deverá ter a seguinte assinatura:
public static int inverter(int numero){
// sua implementação aqui
}
ATENÇÃO: Para a resolução deste exercício é permitido usar apenas os operadores aritméticos. Sua saída deverá ser parecida com: Informe um número inteiro: 487 O valor invertido é: 784 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 fazer a leitura usando a classe Scanner
Scanner entrada = new Scanner(System.in);
// vamos pedir ao usuário que informe um número inteiro
System.out.print("Informe um número inteiro: ");
int numero = Integer.parseInt(entrada.nextLine());
// fazer efetuar uma chamada ao método inverter() e obter o valor invertido
int invertido = inverter(numero);
// e exibir o resultado
System.out.println("O valor invertido é: " + invertido);
}
// método estático que recebe um número inteiro e o devolve invertido
public static int inverter(int numero){
int resultado = 0; // guarda o resultado da inversão
// enquanto número for diferente de 0
while(numero != 0){
// obtém resto da divisão de número por 10
int resto = numero % 10;
// resultado recebe ele mesmo multiplicado por 10 mais o resto
resultado = resultado * 10 + resto;
// finalmente número recebe ele mesmo dividido por 10
numero = numero / 10;
}
return resultado; // retorna o resultado
}
}
|
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: 17369 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++ |
Desafios, Exercícios e Algoritmos Resolvidos de C |
Veja mais Dicas e truques de C |
Dicas e truques de outras linguagens |
|
Java - Como usar null em Java |
E-Books em PDF |
||||
|
||||
|
||||
Linguagens Mais Populares |
||||
|
1º lugar: Java |






