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

Zadanie 2 odcinek 2 javascript (kurs p. Mirosława)

Object Storage Arubacloud
0 głosów
475 wizyt
pytanie zadane 11 grudnia 2015 w JavaScript przez Łukasz R. Użytkownik (700 p.)
edycja 13 grudnia 2015 przez Łukasz R.

Cześć,

tak jak poprzednim razem chciałem pokazać kod zadania2 z drugiego odcinka kursu javascript z "kompletną walidacją wprowadzonych danych". Co można tu jeszcze dodać / uprościć?

//funkcja sprawdza czy liczby są całkowite
	function sprawdzamLiczbe(liczba)
	{
		if (!isNaN(liczba) && (liczba%2==0 || liczba%2==1 || liczba%2==-1) && parseInt(liczba)!= "NaN") 
		{
			
			return true;	
		}
		
		else 
		{
			return false;
		}
			
	}
   
   
	function wypisz()
	{
		var liczba1 = document.getElementById("pole1").value;
		var liczba2 = document.getElementById("pole2").value;
		var napis = "";
		
		//sprawdzam czy liczba jest liczbą całkowitą
		if(sprawdzamLiczbe(liczba1) && sprawdzamLiczbe(liczba2))
		{ 
			
			liczba1=parseInt(liczba1);
			liczba2=parseInt(liczba2);
			//sprawdzam czy liczby sa takie same
			if(liczba1==liczba2) napis = "Obie liczby są takie same!!!";
				else
				{
					//sprawdzamy czy liczba pierwsza jest mniejsza od liczby drugiej
					if(liczba1>liczba2)
					{
						liczba1 = document.getElementById("pole2").value;
						liczba2 = document.getElementById("pole1").value;
					}
					//wypisuje liczby
					for(i=liczba1; i<=liczba2; i++)
						{
							
							napis = napis + i + " ";
			
						}
				}
		}
		else
		if(sprawdzamLiczbe(liczba1))
			napis = "Druga liczba nie jest całkowita!!!";
		else 
		if(sprawdzamLiczbe(liczba2))
			napis = "Pierwsza liczba nie jest całkowita!!!";
		else napis = "Obie liczby nie są całkowite.";
		
		document.getElementById("wynik").innerHTML = napis;
	
	}

 

1 odpowiedź

+1 głos
odpowiedź 12 grudnia 2015 przez qoster Początkujący (350 p.)
edycja 13 grudnia 2015 przez qoster
Ja zrobiłem w ten sposób :)
        function wypisz()
        {
         var liczba0 = document.getElementById("text1").value;
         var liczba1 = document.getElementById("text2").value;
         var napis = "";
            if(isNaN(liczba0) == true){
               document.getElementById("wynik").innerHTML = "Piersze pole nie jest liczba";              
            }
            else if(isNaN(liczba1) == true){
               document.getElementById("wynik").innerHTML = "Drugie pole nie jest liczba";  
            }
            else if (liczba0<liczba1){              
                for(i=liczba0; i<=liczba1; i++){
                  napis = napis + i + " ";
                }
                document.getElementById("wynik").innerHTML = napis;             
            }
            else if(liczba0>liczba1){
                for(i=liczba0; i>=liczba1; i--){
                   napis = napis + i + " ";  
                }
                document.getElementById("wynik").innerHTML = napis;  
            }
            else if (liczba0==liczba1 && liczba0 != "" && liczba1 !=""){
                napis="liczby sa rowne";
                document.getElementById("wynik").innerHTML = napis;  
            }
            else{
                 document.getElementById("wynik").innerHTML = "Nie podano liczb!"; 
            }
        
        }

 

komentarz 13 grudnia 2015 przez Łukasz R. Użytkownik (700 p.)
Dobrze zrobiłeś, bo w filmiku jest powiedziane, że wartości mają maleć jeżeli pierwsza liczba jest większa od drugiej, nie zwróciłem na to uwagi :). Spróbuj zabezpieczyć jeszcze skrypt przed wpisaniem liczby niecałkowitej (tak jak jest to powiedziane w filmiku - że przedział zawiera liczby całkowite), możesz też dołożyć sprawdzanie czy obie liczby są poprawne - wtedy powinien pojawić się napis że oba pola nie są liczbami. Pełna walidacja jest ważna, bo dane mogą być zapisywane np w bazie danych i potem mogą być problemy jeżeli będzie miała dziury :)
komentarz 9 stycznia 2016 przez PreZmyK Pasjonat (21,470 p.)

Pozwoliłem sobie zedytować kod uzupełniając o rozwiązania ze swojego.

function wypisz()
        {
         var liczba0 = document.getElementById("text1").value;
         var liczba1 = document.getElementById("text2").value;
         var napis = "";

        var liczba0 = parseInt(liczba0);
		var liczba1 = parseInt(liczba1);

            if(isNaN(liczba0) == true && isNaN(liczba1) == true){
               document.getElementById("wynik").innerHTML = "To nie sa liczby!";  
            }

            else if(isNaN(liczba0) == true){
               document.getElementById("wynik").innerHTML = "Piersze pole nie jest liczba";              
            }
            else if(isNaN(liczba1) == true){
               document.getElementById("wynik").innerHTML = "Drugie pole nie jest liczba";  
            }
          
            else if (liczba0<liczba1){              
                for(i=liczba0; i<=liczba1; i++){
                  napis = napis + i + " ";
                }
                document.getElementById("wynik").innerHTML = napis;             
            }
            else if(liczba0>liczba1){
                for(i=liczba0; i>=liczba1; i--){
                   napis = napis + i + " ";  
                }
                document.getElementById("wynik").innerHTML = napis;  
            }
            else if (liczba0==liczba1 && liczba0 != "" && liczba1 !="" || (liczba1==0 && liczba1==0)){
                napis="liczby sa rowne";
                document.getElementById("wynik").innerHTML = napis;  
            }
       
             else{
                 document.getElementById("wynik").innerHTML = "Nie podano liczb!"; 
            }
         
        }

 

komentarz 21 lipca 2019 przez Ania2019 Użytkownik (530 p.)
Witam

Czy moglbys wyjasnic dlaczego zastosowales taki warunek

 else if (liczba0==liczba1 && liczba0 != "" && liczba1 !="" || (liczba1==0 && liczba1==0))

kiedy warunek  else if (liczba0==liczba1) dziala wg mnie tak samo.

Ponadto else "Nie podano liczb" nie wyswietla sie nigdy. Mam wrazenie, ze za duzo warunkow zostalo dopisanych powyzej.

Prosze wyprowadz mnie z bledu

Pozdrawiam

Ania

Podobne pytania

+1 głos
2 odpowiedzi 293 wizyt
0 głosów
1 odpowiedź 237 wizyt
0 głosów
2 odpowiedzi 268 wizyt
pytanie zadane 25 sierpnia 2016 w JavaScript przez niezalogowany

92,631 zapytań

141,498 odpowiedzi

319,869 komentarzy

62,011 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.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...