Ir ao conteúdo
  • Cadastre-se

Brian Nicolas

Membro Júnior
  • Posts

    7
  • Cadastrado em

  • Última visita

Tudo que Brian Nicolas postou

  1. import java.io.BufferedReader; import java.io.FileNotFoundException; import java.io.FileReader; import java.io.IOException; import java.util.ArrayList; import java.util.List; public class TrabalhoPratico { public static void main(String[] args) { // write your code here List<String> lista = new ArrayList<String>(); String filename = "D:\\Downloads\\entrada-100-dec.txt"; try { FileReader fr = new FileReader(filename); BufferedReader in = new BufferedReader(fr); String line = in.readLine(); while (line != null) { lista.add(line); line = in.readLine(); } in.close(); } catch (FileNotFoundException e) { System.out.println("Arquivo \"" + filename + "\" não existe."); } catch (IOException e) { System.out.println("Erro na leitura do arquivo " + filename + "."); } String[] array = lista.toArray(new String[0]); ShellSort shellSort = new ShellSort(); shellSort.sort(array); } } class ShellSort { public void sort(String[] arr) { // String[] arr = { "Elissa Eichmann", // "Meghan Johns III", // "Naomie Beier", // "Stephon Miller", // "Dexter Harber", // "Gerda Toy", // "Mabel Zemlak", // "Gage Gerhold", // "Berry Schaden", // "Roman Daniel", // "Lily Krajcik" }; int counter = 0; int tamanho = arr.length; for (int gap = tamanho / 2; gap > 0; gap /= 2) { for (int i = gap; i < tamanho; i++) { String aux = arr[i]; int j; for (j = i; j >= gap && compara(arr[j], arr[j - gap]); j -= gap) { counter++; arr[j] = arr[j - gap]; } arr[j] = aux; } } for (String string : arr) { System.out.println(string); } System.out.println(" Comparacoes:" + counter); } private static boolean compara(String v, String w) { return v.compareTo(w) < 0; } // private static boolean comparaString(Comparable v, Comparable w) { // return v.compareTo(w) < 0; // } }
  2. erro: Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: Index 0 out of bounds for length 0 at Main.main(Main.java:9) import java.io.File; import java.io.FileNotFoundException; import java.util.Scanner; import java.util.StringJoiner; public class Main { public static void main(String args[]) { String palavra; String nomeArquivo = args[0]; for (int i = 1; i < args.length; i++) { nomeArquivo += " " + args[i]; } File inputFile = new File(nomeArquivo); Scanner str = new Scanner(System.in); System.out.println(" Digite a palavra a ser buscada:"); palavra = str.nextLine(); str.close(); try { Scanner scanner = new Scanner(inputFile); while (scanner.hasNextLine()) { String linha = scanner.nextLine(); String[] palavras = linha.split(" "); for (int i = -1; i < palavras.length; i++) { if (palavras[i].equals(palavra)) { System.out.println(" A palavra " + palavra + " aparece na linha " + i); } } } scanner.close(); System.out.print(""); } catch (FileNotFoundException e) { e.printStackTrace(); } } } json: { // Use IntelliSense to learn about possible attributes. // Hover to view descriptions of existing attributes. // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387 "version": "0.2.0", "configurations": [ { "type": "java", "name": "Launch Current File", "request": "launch", "mainClass": "${file}" }, { "type": "java", "name": "Launch Main", "request": "launch", "mainClass": "Main", "projectName": "Brian", "args": "Metal Contra as Nuvens.txt" } ] } arquivo q estou tentando ler: Metal Contra as Nuvens.txt tambem tentei assim: package Brian; import java.io.File; import java.io.FileNotFoundException; import java.util.Scanner; public class Main { public static void main(String[] args) { String palavra; String nomeArquivo = args[0]; for (int i = 1; i < args.length; i++) { nomeArquivo += " " + args[i]; System.out.println(args); } File inputFile = new File(nomeArquivo); System.out.println(inputFile); Scanner str = new Scanner(System.in); System.out.println(" Digite a palavra a ser buscada:"); palavra = str.nextLine(); str.close(); int j = -1, numLinha = 0; try { Scanner scanner = new Scanner(inputFile); while (scanner.hasNextLine()) { String linha = scanner.nextLine(); j++; String[] palavras = linha.split(" "); for (int i = 0; i < palavras.length; i++) { if (palavras[i].equals(palavra)) { numLinha = j; System.out.println(" A palavra " + palavra + " aparece na linha " + numLinha); } } } scanner.close(); } catch (FileNotFoundException e) { e.printStackTrace(); } return; } } e tive o erro "java.io.FileNotFoundException: ..\Metal Contra as Nuvens.txt (O sistema não pode encontrar o arquivo especificado) at java.base/java.io.FileInputStream.open0(Native Method) at java.base/java.io.FileInputStream.open(FileInputStream.java:216) at java.base/java.io.FileInputStream.<init>(FileInputStream.java:157) at java.base/java.util.Scanner.<init>(Scanner.java:641) at Brian.Main.main(Main.java:24) " em algum lugar a partir da linha 23. fiz um debug e o erro tá nessa linha
  3. @arfneto Entendi. Eu não inicializei a variavel, usei 2 return e 2 variaveis sem necessidade. Valeu pela ajuda, deu pra aprender mt. @devair1010 Valeu pela ajuda também. V
  4. @arfneto a professora especificou no enunciado do exercicio para não usarmos strlen(), esse é o unico motivo para eu não estar usando...
  5. O codigo ficou o seguinte: //Brian Nicolas Dias Costa #include <stdio.h> #include <stdlib.h> #include <string.h> /* run this program using the console pauser or add your own getch, system("pause") or input loop */ int totalCaracteres(char* senha); int contaNumero(char* senha); int contaLetraMaiuscula(char* senha); int contaLetraMinuscula(char* senha); int contaSimbolo(char* senha); int main(int argc, char *argv[]) { char senha[50]; printf("Digite sua senha\n"); gets(senha); printf("Total de caracteres: %d\n", totalCaracteres(senha)); printf("Total de caracteres numericos: %d\n", contaNumero(senha)); printf("Total de letras maiusculas: %d\n", contaLetraMaiuscula(senha)); printf("Total de letras minusculas: %d\n", contaLetraMinuscula(senha)); printf("Total de simbolos: %d\n", contaSimbolo(senha)); //testa se a senha é valida ou não int senha_valida = totalCaracteres(senha) == (contaNumero(senha) + contaLetraMaiuscula(senha) + contaLetraMinuscula(senha) + contaSimbolo(senha)); if(senha_valida){ printf("Senha valida\n"); }else{ printf("Senha invalida\n"); } return 0; } int totalCaracteres(char* senha){ int i, total; for(i=0; i<50; i++){ if(senha[i] != '\0'){ total++; }else{ return total; } } return total; } int contaNumero(char* senha){ int n = 0; // contador char* p = &senha[0]; // primeira letra da senha while( *p != 0) // 0 marca o fim da string { if( *p >= 48 && *p <= 57 ) n += 1; p += 1; // proxima letra } return n; } int contaLetraMaiuscula(char* senha){ int n = 0; // contador char* p = &senha[0]; // primeira letra da senha while( *p != 0) // 0 marca o fim da string { if( *p >= 65 && *p <= 90 ) n += 1; p += 1; // proxima letra } return n; } int contaLetraMinuscula(char* senha){ int n = 0; // contador char* p = &senha[0]; // primeira letra da senha while( *p != 0) // 0 marca o fim da string { if( *p >= 97 && *p <= 122 ) n += 1; p += 1; // proxima letra } return n; } int contaSimbolo(char* senha){ int n = 0; //contador char* p = &senha[0]; //primeira letra da senha while( *p != 0){ // 0 = fim da string if( *p >= 33 && *p <= 46) n++; p++; if(*p == 63 || *p == 64 || *p == 95)n++; p++; //proxima letra } return n; } E ja que você disse aquela parada do scanf, resolvi usar gets pra ler a string
  6. @devair1010 e como faço para em vez de enviar a posiçao 50, enviar a string completa?
  7. To com problema na parte de testar se a senha é valida e no total de outros caracteres( parte 6 e 7). também to com algum erro de parametros no codigo, ou seja, to fudidasso. exercicio é o seguinte: " Leia um texto de até 50 caracteres correspondente ao cadastro de uma senha. Verifique se a senha é válida para cadastro. Para isso implemente, as funções abaixo: a. Implemente a função totalCaracteres que recebe como parâmetro uma string e retorna o total de caracteres válidos nessa string. (não utilizar strlen). b. Implemente a função contaNumero que recebe como parâmetro uma string e retorna a quantidade de caracteres numéricos (algarismo entre 0-9) que aparecem na string. (Obs.: utilize os valores da tabela ASCII para fazer as comparações). c. Implemente a função contaLetraMaiuscula que recebe como parâmetro uma string e retorna a quantidade de caracteres que são letras maiúsculas (A-Z). (Obs.: utilize os valores da tabela ASCII para fazer as comparações). d. Implemente a função contaLetraMinuscula que recebe como parâmetro uma string e retorna a quantidade de caracteres que são letras minúsculas (a-z) (Obs.: utilize os valores da tabela ASCII para fazer as comparações). e. Implemente a função contaSimbolo que recebe como parâmetro uma string e retorna a quantidade de caracteres que são símbolos conforme a lista abaixo: i. se for qualquer símbolo da tabela ASCII a partir do símbolo de exclamação ( ! ) - código ASCII 33 até a ponto ( . ) - código ASCII 46. ii. interrogação (?) - código ASCII 63 iii. arroba ( @ ) - código ASCII 64 iv. sublinhado ( _ ) - código ASCII 95 f. No main, escreva um programa que leia uma string de tamanho máximo 50. Utilizando as funções anteriormente escritas, conte e mostre: i. o total de caracteres ii. total de algarismos numéricos iii. total de letras maiúsculas iv. total de letras minúsculas v. total de símbolos vi. total de outros caracteres (nem letra, nem número, nem símbolo). vii. Verifique e informe se a senha é válida ou não: a. Válida: no mínimo 8 caracteres, com pelo menos: um caractere do tipo numérico, uma letra maiúscula, uma letra minúscula e um símbolo. Não pode ter outro tipo de caractere além dos descritos." //Brian Nicolas Dias Costa #include <stdio.h> #include <stdlib.h> #include <string.h> /* run this program using the console pauser or add your own getch, system("pause") or input loop */ int totalCaracteres(char senha[50]){ int i, total; for(i=0; i<50; i++){ if(senha[i] != '\0'){ total++; }else{ return total; } } return total; } int contaNumero(char senha[50]){ int i, num; for (i=0; i =! '\0'; i++){ if(senha[i] >47 && senha[i]< 58){ num++; }else{ return num; } } return num; } int contaLetraMaiuscula(char senha[50]){ int i, maiuscula; for (i=0; i =! '\0'; i++){ if(senha[i] >= 65 && senha[i] <= 90){ maiuscula++; }else{ return maiuscula; } } return maiuscula; } int contaLetraMinuscula(char senha[50]){ int minuscula, i; for (i=0; i =! '\0'; i++){ if(senha[i] >= 97 && senha[i] <= 122){ minuscula++; }else{ return minuscula; } } return minuscula; } int contaSimbolo(char senha[50]){ int simbolo, i; for (i=0; i =! '\0'; i++){ if(senha[i] >= 33 && senha[i] <= 46){ simbolo++; }else if(senha[i] == 63 || senha[i] == 64 || senha[i] == 95){ simbolo++; } } return simbolo; } int main(int argc, char *argv[]) { char senha[50]; printf("Digite sua senha\n"); scanf("%s", &senha[50]); printf("Total de caracteres: %d\n", totalCaracteres(senha[50])); printf("Total de caracteres numericos: %d\n", contaNumero(senha[50])); printf("Total de letras maiusculas: %d\n", contaLetraMaiuscula(senha [50])); printf("Total de letras minusculas: %d\n", contaLetraMinuscula(senha [50])); return 0; }

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

 

GRÁTIS: ebook Redes Wi-Fi – 2ª Edição

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!