Java ::: Desafios e Lista de Exercícios Resolvidos ::: Sistemas Digitais - Manipulação de Bits |
Exercícios Resolvidos de Java - Como fazer o complemento de 1 de um número binário em Java - Solução usando manipulação de stringsQuantidade de visualizações: 602 vezes |
|
Pergunta/Tarefa: Em Sistemas Digitais e na manipulação de bits, o complemento de 1 de um número binário é realizado de forma direta invertendo-se os "0s" e "1s", ou seja, todo zero (0) vira um (1) e todo um (1) vira zero (0). Dessa forma, se tivermos o número binário 11001, seu complemento de 1 será 00110. Escreva um programa Java que pede para o usuário informar um número binário e exiba o seu complemento de um. Para esta solução você deverá usar exclusivamente manipulação de strings. Sua saída deve ser parecida com: Informe um número binário: 1011001 O complemento de 1 é: 0100110 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) {
// para ler a entrada do usuário
Scanner entrada = new Scanner(System.in);
// vamos solicitar um número binário
System.out.print("Informe um número binário: ");
String binario = entrada.nextLine();
// vamos converter a string em um arrays de chars
char digitos[] = binario.toCharArray();
// agora percorremos todos os dígitos do número binário
// e trocamos os "0s" por "1s" e vice-versa
for(int i = 0; i < digitos.length; i++){
if(digitos[i] == '0'){
digitos[i] = '1';
}
else{
digitos[i] = '0';
}
}
// convertemos de novo para string
String complemento1 = String.valueOf(digitos);
// e mostramos o resultado
System.out.println("O complemento de 1 é: " + complemento1);
}
}
|
C ::: Dicas & Truques ::: Arquivos e Diretórios |
Como escrever em um arquivo um caractere de cada vez usando a função fputc() da linguagem CQuantidade de visualizações: 9659 vezes |
|
Em algumas situações precisamos escrever em um arquivo um caractere de cada vez. Para isso podemos usar a função fputc() do header stdio.h. Esta função recebe o caractere a ser escrito e um ponteiro para o objeto FILE que identifica o arquivo no qual queremos escrever. Se o caractere for escrito com sucesso, o indicador de posição interna do arquivo é adiantado para a inserção do próximo caractere. Veja um exemplo no qual escrevemos o alfabeto maiúsculo em um arquivo chamado alfabeto.txt:
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char *argv[]){
FILE *arquivo;
char letra;
// vamos abrir o arquivo para escrita
arquivo = fopen("alfabeto.txt", "w");
if(arquivo != NULL){
for(letra = 'A'; letra <= 'Z'; letra++){
fputc((int)letra, arquivo);
}
fclose(arquivo);
}
puts("Tentei escrever no arquivo. Veja se funcionou.");
puts("\n\n");
system("PAUSE");
return 0;
}
Ao executar este código nós teremos o seguinte resultado: Tentei escrever no arquivo. Veja se funcionou. Em seguida, se olharmos o conteúdo do arquivo "alfabeto.txt" veremos que o conteúdo foi escrito da forma que imaginamos. |
Java ::: Coleções (Collections) ::: ArrayList |
Como adicionar todos os elementos de uma ArrayList ou coleção à uma outra ArrayList do Java usando o método addAll()Quantidade de visualizações: 15881 vezes |
Em algumas situações pode ser necessário adicionar todos os elementos de uma ArrayList ou outra coleção a uma determinada ArrayList já existente. Isso pode ser feito por meio do uso do método addAll() da classe ArrayList. Na versão 1.5 do Java, este método possui duas assinaturas. Veja a primeira:public boolean addAll(Collection<? extends E> c) Aqui nós podemos adicionar à uma ArrayList existente todos os elementos de uma determinada coleção, desde que, é claro, esta coleção implemente ou descenda de alguma classe que implemente a interface Collection. Note também o uso de genéricos na coleção a ser fornecida como argumento. É importante observar que, se passarmos uma coleção de tipos diferentes daquela na qual estamos chamando o método addAll() teremos um erro de compilação. Veja um exemplo no qual adicionamos todos os elementos de uma ArrayList no final de outra:
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>();
// cria uma segunda ArrayList que conterá mais strings
ArrayList<String> nomes2 = new ArrayList<String>();
// adiciona itens na primeira lista
nomes.add("Carlos");
nomes.add("Maria");
nomes.add("Fernanda");
// adiciona itens na segunda lista
nomes2.add("Osmar");
nomes2.add("Zacarias");
// vamos adicionar os elementos da segunda lista
// no final da primeira lista
nomes.addAll(nomes2);
// vamos exibir o resultado
for(int i = 0; i < nomes.size(); i++){
System.out.println(nomes.get(i));
}
System.exit(0);
}
}
A segunda assinatura do método addAll() nos permite definir a posição no ArrayList alvo a partir da qual os elementos da coleção fonte serão adicionados. Veja: public boolean addAll(int index, Collection<? extends E> c) Eis um exemplo no qual inserimos os elementos de uma ArrayList a partir do segundo elemento da ArrayList alvo. Note que os itens existentes têm suas posições alteradas de forma a acomodar os novos elementos:
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>();
// cria uma segunda ArrayList que conterá mais strings
ArrayList<String> nomes2 = new ArrayList<String>();
// adiciona itens na primeira lista
nomes.add("Carlos");
nomes.add("Maria");
nomes.add("Fernanda");
// adiciona itens na segunda lista
nomes2.add("Osmar");
nomes2.add("Zacarias");
// vamos adicionar os elementos da segunda lista
// a partir do segundo elemento da primeira lista
nomes.addAll(1, nomes2);
// vamos exibir o resultado
for(int i = 0; i < nomes.size(); i++){
System.out.println(nomes.get(i));
}
System.exit(0);
}
}
Como resultado da execução deste código nós teremos: Carlos Osmar Zacarias Maria Fernanda |
VB.NET ::: Fundamentos da Linguagem ::: Estruturas de Controle |
Como usar o laço Do...Until...Loop do VB.NETQuantidade de visualizações: 10520 vezes |
|
O laço Do...While...Loop é usado quando queremos testar uma condição e, executar um bloco de código repetidamente ENQUANTO esta condição for verdadeira. O laço Do...Until...Loop, por sua vez, executa uma bloco de códigos repetidamente ATÉ que uma condição se torne verdadeira. Veja um exemplo de laço Do...Until...Loop que nos permite exibir os números de 0 a 10: Dim numero As Integer = 0 Do Until numero > 10 Console.WriteLine(numero) numero += 1 Loop Veja uma nova versão deste código, desta vez contando de 10 a 0: Dim numero As Integer = 10 Do Until numero < 0 Console.WriteLine(numero) numero -= 1 Loop Aqui nós estamos novamente avaliando uma condição, ou seja, se o resultado da condição for True, a execução do laço pára. Se for False, o laço continua. Veja um exemplo no qual a condição booleana está bem explícita:
Dim pode As Boolean = True
Dim valor As Integer = 1
Do Until pode = False
Console.WriteLine(valor)
valor += 1
If valor > 20 Then
pode = False
End If
Loop
|
Você também poderá gostar das dicas e truques de programação abaixo |
|
JavaScript - Como usar a função alert() do objeto window para exibir mensagens de alerta aos usuários MySQL - Como usar joins no MySQL Python - Como retornar o dia do mês em Python como um decimal no intervalo 01-31 usando strftime("%d") C - Como ler o conteúdo de um arquivo um caractere de cada vez usando a função fgetc() da linguagem C JavaScript - Como filtrar os elementos de um array em JavaScript usando a função filter() - Vetores e matrizes em JavaScript |
Nossas 20 dicas & truques de programação mais recentes |
Últimos Projetos e Códigos Fonte Liberados Para Apoiadores do Site |
|
Python - Como criar o jogo Pedra, Papel, Tesoura em Python - Jogo completo em Python com código comentado |
Últimos Exercícios Resolvidos |
E-Books em PDF |
||||
|
||||
|
||||
Linguagens Mais Populares |
||||
|
1º lugar: Java |





