Zobacz poprzedni temat :: Zobacz następny temat |
Autor |
Wiadomość |
barszcz
Administrator
Dołączył: 20 Lut 2007
Posty: 307
Przeczytał: 0 tematów
Ostrzeżeń: 0/3 Skąd: Pochodzenie: Przemyśl, zamieszkanie: Warszawa
|
Wysłany: Nie 21:24, 27 Maj 2007 Temat postu: JavaScript, zadanie nr 1 |
|
|
Napisz skrypt, który:
- Wczyta za pomocą funkcji "prompt" liczbę nr 1
- Wczyta za pomocą funkcji "prompt" liczbę nr 2
- Wyświetli używając funkcji write i alert średnią arytmetyczną liczby nr 1 i liczby nr 2.
Post został pochwalony 0 razy
|
|
Powrót do góry |
|
|
|
|
Krzych
Dołączył: 22 Lut 2007
Posty: 234
Przeczytał: 0 tematów
Ostrzeżeń: 0/3
|
Wysłany: Czw 21:21, 06 Wrz 2007 Temat postu: |
|
|
jakbyś miał ochotę to zamknąć to proszę wstrzymaj się jeszcze
Post został pochwalony 0 razy
|
|
Powrót do góry |
|
|
Krzych
Dołączył: 22 Lut 2007
Posty: 234
Przeczytał: 0 tematów
Ostrzeżeń: 0/3
|
Wysłany: Pią 17:02, 07 Wrz 2007 Temat postu: |
|
|
Kod: | <script type="text/javascript">
//zadeklarowanie zmiennej liczba1 i wywołanie okna dialogowego
var liczba1 = prompt("Podaj pierwsza liczbe..." ,"");
//sprawdzenie czy została podana jakaś liczba, jeśli nie to liczba1 = 0
if(liczba1 == null || liczba1 == "")
{
liczba1 = 0;
}
//zadeklarowanie zmiennej liczba2 i wywołanie okna dialogowego
var liczba2 = prompt("Podaj druga liczbe...", "");
//sprawdzenie czy została podana jakaś liczba, jeśli nie to liczba2 = 0
if(liczba2 == null || liczba1 == "")
{
liczba2 = 0;
}
//zadeklarowanie zmiennej wynik
var wynik = liczba1 + liczba2 / 2;
//wyswietlenie na ekranie sredniej arytmetycznej tych liczb
document.write(liczba1 + " + " + liczba2 + "/ 2 = " + wynik);
//wywołanie okna alert
window.alert(liczba1 + " + " + liczba2 + "/ 2 = " + wynik);
</script> |
Edit: to jest źle ale zaraz poprawie
Edit2: nie wiem czemu ale zamiast dodawać do siebie wartości zmiennych np. 2 + 2 = 4 to skrypt traktuje je jako ciągi i wyświetla 2 + 2 = 22
jak zrobię analogicznie z mnożeniem to jest ok np. 2 * 2 = 4 a z dodawaniem już nie np. 2 + 2 = 22
Post został pochwalony 0 razy
|
|
Powrót do góry |
|
|
barszcz
Administrator
Dołączył: 20 Lut 2007
Posty: 307
Przeczytał: 0 tematów
Ostrzeżeń: 0/3 Skąd: Pochodzenie: Przemyśl, zamieszkanie: Warszawa
|
Wysłany: Pią 19:05, 07 Wrz 2007 Temat postu: |
|
|
Zamiast wpierw zainicjować zmienne, od razu do nich przypisujesz wartości (rezultat funkcji prompt, co na Twoje nieszczęście jest oczywiście stringiem).
'2'+'2'='22'
To jest oczywiste
Poczytaj o inicjacji zmiennych.
Post został pochwalony 0 razy
|
|
Powrót do góry |
|
|
barszcz
Administrator
Dołączył: 20 Lut 2007
Posty: 307
Przeczytał: 0 tematów
Ostrzeżeń: 0/3 Skąd: Pochodzenie: Przemyśl, zamieszkanie: Warszawa
|
Wysłany: Pią 19:18, 07 Wrz 2007 Temat postu: |
|
|
Mam prośbę; w językach takich jak (począwszy od) JavaScript, przez Pascala, Javę, skończywszy w końcu na C++, bardzo ważną rzeczą jest czytelność kodu, a co za tym idzie stosowanie wcięć - bez nich sam się pogubisz; ale dobrze że stosujesz komentarze, to również bardzo ważna rzecz, wiedzieć do czego dana procedura, funkcja się odwołuje.
dla przykładu, rekurencyjna silnia w object pascalu:
Kod: |
function silnia(n: Integer): Integer;
begin
if n=0 then
silnia:=1
else
silnia:=n*silnia(n-1);
end;
|
a teraz z wcięciami:
Kod: |
function silnia(n: Integer): Integer;
begin
if n=0 then
silnia:=1
else
silnia:=n*silnia(n-1);
end;
|
O wiele lepiej wygląda, prawda?
Post został pochwalony 0 razy
|
|
Powrót do góry |
|
|
Krzych
Dołączył: 22 Lut 2007
Posty: 234
Przeczytał: 0 tematów
Ostrzeżeń: 0/3
|
Wysłany: Pią 19:36, 07 Wrz 2007 Temat postu: |
|
|
tak - jak robię długie kody to zazwyczaj robię wcięcia jednak teraz mi się nie chciało
Post został pochwalony 0 razy
|
|
Powrót do góry |
|
|
Krzych
Dołączył: 22 Lut 2007
Posty: 234
Przeczytał: 0 tematów
Ostrzeżeń: 0/3
|
Wysłany: Sob 12:51, 08 Wrz 2007 Temat postu: |
|
|
Kod: | <script type="text/javascript">
//zadeklarowanie zmiennej liczba1 i wywołanie okna dialogowego
var liczba1 = 0;
liczba1 = prompt("Podaj pierwsza liczbe..." ,"");
//sprawdzenie czy została podana jakaś liczba, jeśli nie to liczba1 = 0
if(liczba1 == null || liczba1 == "")
{
liczba1 = 0;
}
liczba1 = parseInt(liczba1);
//zadeklarowanie zmiennej liczba2 i wywołanie okna dialogowego
var liczba2 = 0;
liczba2 = prompt("Podaj druga liczbe...", "");
//sprawdzenie czy została podana jakaś liczba, jeśli nie to liczba2 = 0
if(liczba2 == null || liczba1 == "")
{
liczba2 = 0;
}
liczba2 = parseInt(liczba2);
//zadeklarowanie zmiennej suma i wynik
var suma = 0;
suma = liczba1 + liczba2;
var wynik = 0;
wynik = suma / 2;
//wyswietlenie na ekranie sredniej arytmetycznej tych liczb
document.write(wynik);
//wywołanie okna alert
window.alert(wynik);
</script> |
Post został pochwalony 0 razy
|
|
Powrót do góry |
|
|
barszcz
Administrator
Dołączył: 20 Lut 2007
Posty: 307
Przeczytał: 0 tematów
Ostrzeżeń: 0/3 Skąd: Pochodzenie: Przemyśl, zamieszkanie: Warszawa
|
Wysłany: Sob 13:58, 08 Wrz 2007 Temat postu: |
|
|
Niestety JavaScript jest bardzo elastycznym językiem (niekiedy typ zmiennej nie gra znaczącej roli), dlatego konwersja ze stringa to typu numerycznego było dobrym pomysłem. Jest kilka mało istotnych błędów:
- Zrobiłeś sprawdzenie poprawności wprowadzonych danych (elegancko, bo nie wymagane), lecz nie najlepszym rozwiązaniem jest wprowadzać domyślną wartość - 0; lepszym rozwiązaniem, byłoby dać użytkownikowi jeszcze jedną szansę na wprowadzenie danych, a kod nie byłby dłuższy:
Kod: |
var liczba1=null;
while(liczba1==null) {
liczba1=prompt("Podaj pierwszą liczbę:", "");
}
liczba1=parseInt(liczba1);
|
- Kod jest bardzo przejrzysty, jednak powinieneś również pamiętać o zajmowanej przez skrypt pamięci operacyjnej (na konkursach informatycznych jest to bardzo ważne); zamiast pisać:
Kod: |
suma=liczba1+liczb2
wynik=suma/2
|
Można było od razu napisać:
Kod: |
wynik=(liczba1+liczb2)/2
|
- No i wreszcie ostatni błąd, czyli kilkakrotne przypisanie do zmiennej, to oczywiście obciąża procesor (wyobraź sobie, gdyby system miał do zsumowania kilka milionów liczb, Twoim sposobem zrobiłby to dwa razy dłużej). Zamiast pisac:
Kod: |
var suma=0
suma=liczba1+liczba2
|
Można by od razu napisać:
Kod: |
var suma=liczba1+liczba2
|
Ale poza tym gratuluję fachowego rozwiązania. Udzieliłem Ci przedtem złej wskazówki, apropo odpowiedniej inicjacji zmiennej, oczywiście w marnej JavieScript, czegoś takiego nie ma, zasugerowałem się pascalem i javą, Twój pomysł z konwersją na inny typ był bardzo dobry!
ZADANIE ROZWIĄZANE
Post został pochwalony 0 razy
|
|
Powrót do góry |
|
|
|