Ajuda para resolver um exercicio !

31 respostas
J

Crie um algoritmo que solicite ao usuário o nome da rua que reside e depois apresente o nome e a quantidade de caracteres digitado no nome da rua.

de maneira simples por favor, muito obrigado !!!

31 Respostas

6

Acho que é isso, python fica fácil de entender. A função len quando receber uma palavra acentuada ou o ç, vai retornar dois caracteres, então fica pra ti aprimorar essa parte.

address = raw_input('Rua: ')
addresSpace = address.replace(" ", "")
print ("Rua -> %s |  Nº de caracteres -> %d " % (address, len(addresSpace)))
F

Olá, @Jackpro .Percebi que é um usuário novo.

Primeiramente, bem vindo ao GUJ. O GUJ é um fórum de discussões e dúvidas sobre tecnologia. Qualquer um pode postar sobre qualquer assunto (desde que dentro do escopo do fórum).

Em segundo lugar, devo lhe advertir que não é costume nem objetivo da comunidade deste fórum solucionar exercícios de faculdade ou coisas assim. Nós incentivamos você a pensar e formular sua lógica e seu código, mas não resolvemos exercícios para você. Não é esse o objetivo do fórum.

Dito isso, também digo que seu post ficou incompleto. Você pede ajuda, mas não informa a linguagem que quer.

A comunidade preza muito pelo seu esforço em resolver o problema. O que você já fez? O que você não conseguiu fazer? O que já pesquisou?

Espero que você tenha uma boa estadia no GUJ e que o fórum possa lhe ser útil da maneira correta.

[]'s

J

Bom dia meu querido!
Realmente não pesquisei antes para ver como funcionava o fórum, peço desculpas se me equivoquei.
Como você mesmo disse, é sim um exercício para a faculdade , estou na primeira fase no curso de ( analise e desenvolvimento de sistemas ) esse exercício, o professor passou para nós treinarmos em casa, porém, estou com muitas dificuldades ( linguagem JAVA ) a minha intenção era que alguém solucionasse ele, e a partir dai eu pudesse aprender olhando ele pronto!

Obrigado !

F

Eu entendo como é. Curso ADS também, e usamos Java em certa parte.

É realmente agoniante não entender algo da linguagem. Todavia, é só fazendo, treinando, errando e quebrando a cabeça pra resolver que você vai conseguir aprender de verdade.

Vou tentar te auxiliar, mas como disse, não é costume resolver os exercícios para você.

Vamos lá. O enunciado diz:

Crie um algoritmo que solicite ao usuário o nome da rua que reside e depois apresente o nome e a quantidade de caracteres digitado no nome da rua.

Acredito eu que esse algoritmo deve estar na sintaxe do Java. Então, o que precisa ser feito?

Passo 1: Solicitar ao usuário o nome da rua que reside
Passo 2: Salvar esse nome em algum lugar
Passo 3: Contar quantos caracteres tem aquele nome
Passo 4: Exibir essa quantidade

De forma técnica, seria:

Passo 1: Como escrever no console?
Passo 2: Como gravar o valor digitado pelo usuário?
Passo 3: Como contar quantos caracteres tem uma String? Atenção com o espaço! (" ")
Passo 4: Como escrever no console, exibindo uma variável?

A “receita de bolo”, ou seja, algoritmo, seria:

Informar ao usuário que ele tem que digitar algo. Depois, salvar o conteúdo em uma variável. Pegar essa variável, tirar todos os espaços, salvar em uma outra variável. Aí, contar os caracteres restantes. Guardar essa contagem em uma variável. Informar ao usuário a quantidade de letras.

Eu espero que isso possa te ajudar em algo. Sério, tudo que você precisa está aqui nessa resposta - você só tem que aprender a ler como um programador!

Qualquer dúvida, estamos aí.

[]'s

J

Cara, vou tentar fazer aqui, sem pesquisar na internet o bolo pronto, eu vou montar esse bolo! Valeu!!! Qualquer coisa posso te perguntar aqui ?

F

Pode, sim. Sem problema algum. Eu fiz aqui rapidinho para ver como ficaria, e em umas 10 linhas você consegue fazer. Tente algo e traga para cá, que ai eu compartilho a resposta com você. :wink:

[]'s

J

meu querido, não peguei a ideia ali de " tirar todos os espaços "

por enquanto ta assim :
package javaexercicios;

import java.util.Scanner;

public class JavaExercicios {

**public static void main**(String[] args) {
    Scanner teia = new Scanner(System.in);
    System.out.println("digite o nome da rua?");

  String nomeRua = teia.nextLine();
F

Muito bem!

Vamos esquecer dos espaços por um momento, certo?

Agora, algo que de começo é bem chato e dificil, mas é necessário na vida de um desenvolvedor: Ler documentações.

Aqui você encontra a documentação da classe String. Toda variável/atributo da classe String tem esses métodos nela. Me diga, você consegue encontrar algum método que retorne o comprimento dessa String? Dica: Se a documentação tá em inglês, pense em inglês!

J

Seria o ( char ) ?

F

Vamos lá:

Conforme especificação, o método que retorna o comprimento (que, em inglês, é length)… é o método homônimo (com o mesmo nome):

Então… se você fizer:
nomeRua.lenght();

Você estará pegando o número de caracteres daquela String. Como ele retorna (especificado do lado esquerdo) um tipo inteiro, basta salvar numa variavel do tipo int e printar ela! :slight_smile:

[]'s

J

então no lugar de nomeRua , eu já devo colocar o nome da rua ? ou isso vai ser feito depois quando a gente executa ?

meu querido, não quero tirar teu tempo mesmo, mas se puder continuar me ajudando ate eu conseguir fazer esse problema, pra mim pegar a ideia sabe, me sinto atrás dos meus colegas, tenho que viver perguntando , mas também, foram apenas 3 semanas de aula ainda …

F

Você está fazendo tudo certo até agora. Seu código faz isso:

Você instancia o Scanner
Você escreve no console: Digite o nome da rua
Você lê o nome da rua.
Você salva o nome da rua na string nomeRua

Agora você precisa salvar o numero de caracteres numa variavel do tipo inteiro. Então você vai fazer assim:

int numeroDeCaracteres = nomeRua.aqueleMetodoQueRetornaOTamanhoDaString();

Depois, basta voce imprimir essa variavel:

System.out.println(numeroDeCaracteres);

J

botei assim :

int numCaracteres = nomeRua.lenght();

e fica aquela bolinha vermelha do lado dizendo assim : cannot find symbol, symbol: method lenght , location: variable nomeRua of type string

(??) oque será isso ?

F

O nome do método está errado. É length(), não lenght()

J

Poxa deu certo mesmo ahah botei e o nome da rua ’ portela e logo embaixo apareceu ( 7 )
bah sem comentários, valeu mesmo brother !!

J

o mesmo se aplicaria aqui , correto ? ou não ?

" Crie um algoritmo que solicite ao usuário um nome e apresente a quantidade de letras que esse nome possui e a tabuada referente a quantidade de letras do nome. Exemplo: “Felipe” à Quantidade de caracteres: 6. Apresentar a tabuada do 6 (de 6 x 1 até 6 x 10) "

F

Fico feliz que você tenha conseguido! Como prometido, essa é a forma que eu fiz:

import java.util.Scanner;
public class teste {
    public static void main(String[] args) {
        Scanner scan = new Scanner(System.in); //Aqui, estamos instanciando o objeto Scanner numa variavel chamada scan. Parece dificil, mas você vai aprender sobre isso em Programação Orientada a Objetos. É bem mais simples do que parece!
        System.out.println("Digite o nome da rua"); //Aqui, estamos imprimindo no console a mensagem "Digite o nome da rua:"
        String rua = scan.nextLine(); //Aqui, declaramos que uma nova variável do tipo String chamada rua vai receber o valor do scan.nextLine(). No final, explico o que é isso.
        //Se o professor disser que não quer que o espaço seja contabilizado, adicione essa linha:
        //rua = rua.replaceAll(" ", ""); (explicação abaixo)
        System.out.println(rua.length()); //Aqui, exibimos no console o valor de rua.length(). O método length retorna o TAMANHO da String, ou seja, a quantidade de caracteres que tem nela.
    }
}

Explicação sobre o replaceAll(" ", “”):

Você pode ler isso:

rua = rua.replaceAll(" ", "")

assim:

rua = rua.substituaTodos(o que substituir, pelo que substituir);

No caso, você esta falando:

Substitua todos os " " por "’, e depois, salve na String rua.

Entendeu? Você está substituindo os espaços por nada. Ou seja, está retirando os espaços!

Fique tranquilo. Eu gosto de ajudar com essas questões e fico feliz por você querer aprender. Estudar, apesar de necessário, é dificil. Não tenha medo e não desista nunca! :slight_smile:

[]'s

F

Sim. Conseguindo o número de letras, basta exibir as multiplicações provenientes dele. Aqui você vai usar um laço de repetição para automatizar essas operações.

É algo simples. Tente e vai dizendo suas dificuldades :slight_smile:

J

Perfeito ! Explicando assim consegui entender agora !! Ficou bem claro pra mim!!

J

to montando em, switch/case , sera que pode dar certo ?

F

Em Java isso não rola, até onde sei.

F

Não é a melhor forma, não. Você vai fazer um switch case infinito, afinal, os numeros são infinitos. O nome de uma rua pode ter um, dois, vinte caracteres. Não tem como você ficar comparando, certo?

Pense comigo: Um laço de repetição repete operações. A sintaxe básica de um dos comandos de repetição (existem três) é:

for (inicialização de variaveis; condição de parada; ação){
//coisa que deverá ser repetida
}

O que isso quer dizer?

Inicialização de variáveis: Aqui, você cria e atribui os valores de variáveis que vão existir dentro do seu laço de repetição. As variáveis não são recriadas com as voltas do laço: rola uma vez só.

Condição de parada: Aqui você sempre vai ler se a condição é verdadeira ou falsa. Quando deixar de ser verdadeira, o laço não é mais repetido. Toda vez que o laço “roda”, a condição é checada.

Ação: Ação que é executada após cada operação no laço.

Vamos criar aqui, em exemplo, um contador para contar até cinco.

for(int i=0; i<=5; i++){
System.out.println(i);
}

O funcionamento dele é o seguinte:

Inicialização de variaveis: Uma variavel do tipo inteiro chamada i vale zero.
Checagem da condição de parada. i é menor ou igual (<=) a cinco? Sim, pois 0 <= 5
Imprima na tela o valor de i; (aqui é a coisa que deverá ser repetida)
Ação: Acresça um na variavel i. Agora, i=1.

REPETE:

<strong>Checagem da condição de parada</strong>. i é menor ou igual (<=) a cinco? Sim, pois 1 <= 5

Imprima na tela o valor de i;

<strong>Ação</strong>: Acresça um na variavel i. Agora, i = 2;
REPETE:

<strong>Checagem da condição de parada</strong>. i é menor ou igual (<=) a cinco? Sim, pois 2 <= 5

Imprima na tela o valor de i;

<strong>Ação</strong>: Acresça um na variavel i. Agora, i = 3;
REPETE:

<strong>Checagem da condição de parada</strong>. i é menor ou igual (<=) a cinco? Sim, pois 3 <= 5

Imprima na tela o valor de i;

<strong>Ação</strong>: Acresça um na variavel i. Agora, i = 4;
REPETE:

<strong>Checagem da condição de parada</strong>. i é menor ou igual (<=) a cinco? Sim, pois 4 <= 5

Imprima na tela o valor de i;

<strong>Ação</strong>: Acresça um na variavel i. Agora, i = 5;
REPETE:

<strong>Checagem da condição de parada</strong>. i é menor ou igual (<=) a cinco? Sim, pois 5 = 5

Imprima na tela o valor de i;

<strong>Ação</strong>: Acresça um na variavel i. Agora, i = 6;

REPETE:
Checagem da condição de parada. i é menor ou igual (<=) a cinco? Não, pois 6 > 5
Fim do laço de repetição.

Pense nessa estrutura. Ficou fácil? :slight_smile:

[]'s

6

Ainda não cheguei no Java, mas vou buscar. Até bom aprender por causa POO.

J

Brother, sou eu , com outra conta, a que a gente tava conversando atingiu o limite de mensagem de um novo usuário do fórum !

Cara, sem palavras para esta explicação mas oque eu ainda não entendi é como aplicar isso pra fazer a tabuada que pede no enunciado …

F

Pensa assim: Uma tabuada consiste em um número multiplicado pelo outro. O nosso laço de repetição tá fazendo com que I sempre mude, certo? Começa com 0, vai pra 1, 2, 3…

Se você pensar bem, sua tabuada precisa de todos esses números! Você precisa fazer, basicamente, a quantidade de caracteres que você vai pegar vezes i! (Não esqueça de alterar o limite de sua tabuada).

Você só precisa alterar o código pro seguinte pensamento:

Ao invés de apenas exibir i, eu vou exibir a multiplicação x*i, onde x é a quantidade de caracteres que vou pegar.

Em exemplo:

Digite o nome da rua
Rua Santa Clara
Número de caracteres contidos em Rua Santa Clara: 15
15x1=15
15x2=30
15x3=45
15x4=60
15x5=75
15x6=90
15x7=105
15x8=120
15x9=135
15x10=150

Você consegue visualizar que eu só fiz com que a operação de multiplicação fosse repetida? É isso. Agora, é só pensar em como estruturar seu laço. É fácil, vamos lá! :smiley:

J

Vc ta quase desenhando pra mim e eu não to conseguindo captar … explicar melhor que isso não tem como :confused: e eu tenho certeza que é fácil

F
for (int contador =1; contador <= 10; contador++) {
            System.out.println(rua.length() + "x" + contador + "=" + rua.length() * contador);
        }

Dá uma olhada nessa aula pra entender melhor :slight_smile:

D

Daí vai lá e fala do @staroski a respeito de paciência…

S

Não entendi… O @FearX me acha impaciente?
O que foi que eu fiz, ou deixei de fazer?

F

De forma alguma!

D

@staroski, pelo contrário.
E ele também se mostrou um monge budista com esse tópico.

Criado 15 de março de 2019
Ultima resposta 18 de mar. de 2019
Respostas 31
Participantes 6