• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

question-closed JavaScript Złe Działanie Sprawdzenie czy wyraz to palindron

0 głosów
1,582 wizyt
pytanie zadane 31 marca 2017 w JavaScript przez Kitsugaya Nowicjusz (200 p.)
zamknięte 31 marca 2017 przez Kitsugaya
Witam! Otóż mam kod(podam niżej) i jeśli wpiszę w niego wyraz który jest faktycznie palindronem wypisuje się że to palindron ale jeśli wpiszę normalne słowo które nim nie jest dzieje się to samo ktoś ma pomysł?

<html>
<head>
<script type="text/javascript">
 
function palindrom(){
    var tekst = document.getElementById('tekst').value;
    var dlugosc=tekst.length;
    var napis = "";
   
    for(var i = 0; i < dlugosc; i++){
        if(tekst.charAt(i) != tekst.charAt(dlugosc -i -1)){napis = "Wyraz nie jest palindromem!"}
        else {napis = "Wyraz jest palindromem"}
    }
    document.getElementById('pole').innerHTML = napis;
}

 
</script>
</head>
<body>
Podaj wyraz: <input type="text" id="tekst">
 
<input type="button" onClick="palindrom()" value="Sprawdz!">
<div id="pole"></div>
</body>
komentarz zamknięcia: Rozwiązane

1 odpowiedź

+2 głosów
odpowiedź 31 marca 2017 przez niezalogowany
wybrane 31 marca 2017 przez Kitsugaya
 
Najlepsza

W momencie w którym stwierdzisz, że wyraz nie jest palindromem, musisz wyjść z pętli for

komentarz 31 marca 2017 przez Kitsugaya Nowicjusz (200 p.)
Dzięki wielkie! :)
komentarz 31 marca 2017 przez niezalogowany
Tak z ciekawości, jak z niej wyszedłeś?
komentarz 31 marca 2017 przez Kitsugaya Nowicjusz (200 p.)
for(var i = 0; i < dlugosc; i++)
        
        if(tekst.charAt(i) != tekst.charAt(dlugosc -i -1)){napis = "Wyraz nie jest palindromem!"}
        else {napis = "Wyraz jest palindromem"}
    document.getElementById('pole').innerHTML = napis;

Nie wiem, czy do końca prawidłowo, ale działa tak jak powinno.
komentarz 31 marca 2017 przez niezalogowany
według mnie, nie działa - sprawdź na przykład "abaa"
komentarz 31 marca 2017 przez Kitsugaya Nowicjusz (200 p.)
To znaczy tak myślę, że tyle do szkoły co mogę mieć na poprawie powinno wystarczyć. A można to jakoś zabezpieczyć?
komentarz 31 marca 2017 przez niezalogowany

Zostaw poprzednią wersję z nawiasami. 

Jeśli wyraz nie jest palindromem, ustaw zmienną i na długość, dzięki temu, pętla for nie wykona się już więcej razy

(przy kolejnych iteracjach, zmienna napis ponownie zostałaby nadpisana - możliwe, że błędnym wynikiem)

komentarz 31 marca 2017 przez niezalogowany

Miej na uwadze, że to najprostsze rozwiązanie problemu przy obecnym kodzie. Najlepiej byłoby zrobić osobną funkcję, do sprawdzania, czy string, rzeczywiście jest palindromem. W momencie wykrycia, że nie jest - po prostu return false

komentarz 31 marca 2017 przez Kitsugaya Nowicjusz (200 p.)
Mógłbyś mnie oświecić bo nie bardzo sobie radzę z progrowaniem?
komentarz 31 marca 2017 przez niezalogowany

czasem, to sam się załamuję, jak patrze na to co piszę... już chyba za późno jest : ) Zrobimy tak: zapomnij o moich 2 poprzednich komentarzach.

po prostu break;

if ( wyraz jest palindromem ) {
    tekst = '...'
    break;
}

Podobne pytania

0 głosów
3 odpowiedzi 1,961 wizyt
pytanie zadane 21 października 2019 w C i C++ przez Maciek Zębala Nowicjusz (140 p.)
0 głosów
1 odpowiedź 435 wizyt
pytanie zadane 7 sierpnia 2022 w C i C++ przez Noizz00 Użytkownik (910 p.)
0 głosów
3 odpowiedzi 12,483 wizyt
pytanie zadane 1 grudnia 2017 w C i C++ przez prosialke2391 Nowicjusz (140 p.)

93,604 zapytań

142,529 odpowiedzi

322,995 komentarzy

63,090 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj

Kursy INF.02 i INF.03
...