• 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

Konkurs Mistrz Programowania
0 głosów
1,634 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,996 wizyt
pytanie zadane 21 października 2019 w C i C++ przez Maciek Zębala Nowicjusz (140 p.)
0 głosów
1 odpowiedź 453 wizyt
pytanie zadane 7 sierpnia 2022 w C i C++ przez Noizz00 Użytkownik (910 p.)
0 głosów
3 odpowiedzi 12,609 wizyt
pytanie zadane 1 grudnia 2017 w C i C++ przez prosialke2391 Nowicjusz (140 p.)

93,653 zapytań

142,574 odpowiedzi

323,090 komentarzy

63,170 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
...