Javascript1 - zbirka zadataka Flashcards
Zatražiti od korisnika da unese 2 broja. Ukoliko je prvi broj veći od drugog, pozvati funkciju koja će oduzeti drugi od prvog. U suprotnom, pozvati funkciju koja će ih zbrojiti. Ispisati rezultat u oba slučaja.
var broj1 = parseInt(prompt(‘Unesite prvi broj:’)); var broj2 = parseInt(prompt(‘Unesite drugi broj:’));
function zbroj(br1, br2){ return br1 + br2; }
function razlika(br1, br2){ return br1 - br2; }
if(broj1 > broj2){ console.log(‘Razlika brojeva je: ‘ + razlika(broj1, broj2)); } else{ console.log(‘Zbroj brojeva je: ‘ + zbroj(broj1, broj2)); }
Jedostavan kalkulator - Zatražiti od korisnika unos dva broja i znaka za operaciju koju želi obaviti nad brojevima (+, -, *, /). Napisati funkciju koja imitira rad jednostavnog kalkulatora: prima dva broja, i znak operacije. Ovisno o znaku, obaviti traženu operaciju. Funkcija vraća rezultat u glavni program, zatim je on ispisuje.
function main() { let num1 = parseInt(prompt('Enter first number')); let num2 = parseInt(prompt('Enter second number')); let oper = prompt('Enter operation');
console.log(calculator(num1, num2, oper));
}
function calculator(a, b, op) {
switch(op) { case '+': return a + b; break; case '-': return a - b; break; case '*': return a * b; break; case '/': return a / b; break; default: return 'WRONG INPUT!'; } }
main();
Pomoću prompt-a korisniku postaviti jednostavan matematički izraz (npr: Koliko je 2+2?). U funkciji provjeriti točnost unesenog odgovora. Ako je točan, ispisati poruku i vratiti true. Ako nije točan, vratiti točan rezultat u glavni program, gdje se zatim treba ispisati poruka “Vaš odgovor je netočan, točan odgovor glasi: …”.
let question = '2 + 2?'; let correctAnswer = '4';
let userAnswer = parseInt(prompt(question)); console.log(checkAnswer(correctAnswer, userAnswer));
function checkAnswer(cor, userA) { if(userA == cor) { return 'correct!'; }else {
return 'wrong answer, the answer is ' + correctAnswer; } }
Napraviti funkciju koja je na proslijeđeni mjesec vratiti koliko dana ima u tom mjesecu. Rezultat ispisati u glavnom programu.
function br_dana(mjesec){ if(mjesec === “sijecanj” || mjesec === “ozujak” || mjesec === “svibanj” || mjesec === “srpanj” || mjesec === “kolovoz” || mjesec === “listopad” || mjesec === “prosinac”){ return 31; } else if(mjesec === “travanj” || mjesec === “lipanj” || mjesec === “rujan”|| mjesec === “studeni”){ return 30; } else if(mjesec === “veljaca”){ return 28; } else { return “Pogresno ste unijeli naziv mjeseca!Molimo unesite ponovo”; } } var mjesec = prompt(“Molimo unesite mjesec, čiji zelite znati broj dana : “); var broj = br_dana(mjesec); console.log(“Mjesec “ + mjesec + “ ima “ +broj+ “ dana!”);
Napisati funkciju koja će zahtijevati od korisnika da unese 5 brojeva i spremi ih u niz (osigurati da ih ima točno 5). Funkcija „check()“ treba provjeriti sve elemente iz niza i samo parne negativne pomnožiti same sa sobom. U glavnom programu ispisati niz.
let arr = [2, 6, 11, 12, -5];
let manipulatedArray = arr.map(function(el){
if(el % 2 === 0 || el < 0){ return el * el; } else { return el; }
});
console.log(manipulatedArray);
Napisati funkciju koja će izračunati porez na uplaćeni iznos. Stopa poreza za iznose između 100 i 500 je 1%, između 500 i 1000 je 5%, a preko 1000 10%. Funkcija kao parametar prima iznos, a vraća iznos poreza.
function izracunaj(iznos){ var porez; if(iznos >= 100 && iznos < 500){ porez = iznos*0.01; return porez; } else if(iznos >=500 && iznos < 1000){ porez = iznos*0.05; return porez; } else if(iznos >= 1000){ porez = iznos*0.1; return porez; } else{ return "Porez se ne racuna za iznose manje od 100"; } } console.log(izracunaj(9000));
Napisati funkciju koja će vraćati tiražu za prodani broj ploča. Ako je ploča prodana u više od 100 000 primjeraka, treba vratiti ‘srebrena’, preko 200 000 ‘zlatna’ i preko 500 000 ‘platinasta’. Funkcija prima broj prodanih primjeraka.
function tiraz(numSold) { if(numSold >= 100000) { return 'SREBRENA'; } else if (numSold >= 200000) { return 'ZLATNA'; } else if (numSold >= 500000) { return 'PLATINASTA' } }
console.log(tiraz(220000));
Napisati funkciju koja će za proslijeđeni tekst vraćati koliko ima dvotočki, a koliko razmaka.
let tekst = 'Rekao sam mu: nemoj ici, ici tako, daleko'; let prazno = 0; let dvotacka = 0;
for(let i = 0; i < tekst.length; i++) { if(tekst[i] === ':') { dvotacka++; }else if(tekst[i] === ' ') { prazno++; } }
console. log(‘Dvotacka:’, dvotacka);
console. log(‘Prazno:’, prazno);
Napisati funkciju koja će proslijeđenu rečenicu ispisati unatrag, ali i zamijeniti mala i velika slova. Funkciju pozvati u glavnom programu.
let citat = ‘Verujem u to da svako ima pravo da živi kako god želi, sve dok ne povređuje druge.’;
function processQuote(q) {
let newQ = q.split(‘’);
let inversedQ = newQ.map(function(el){ if(el === el.toLowerCase()) { return el = el.toUpperCase(); }else { return el = el.toLowerCase(); }
}).reverse().join(‘’);
console.log(inversedQ);
}
processQuote(citat);
Zatražiti od korisnika da unese neki tekst. Proslijediti tekst funkciji koja će provjeriti je li uneseni tekst palindrom. (Palindrom je riječ koja se isto čita i sprijeda i unatrag.)
let letters = [];
let word = ‘sirimamiris’;
let rword = ‘’;
for(let i = 0; i < word.length; i++) { letters.push(word[i]); }
for(let j = 0; j < word.length; j++) { rword += letters.pop(); }
if(word === rword) { console.log('Rijec je palindrom'); }else { console.log('Rijec nije palindorm'); }
Napisati funkciju koja će primati visinu u centimetrima kao parametar i koja će vratiti string koji sadrži visinu izraženu u metrima i centimetrima. Pozvati tu funkciju i ispisati rezultat. (Ako je parametar 178, funkcija treba vratiti “1m i 78cm”) .
function preracunaj_visinu(cm){ var m = parseInt(cm/100); cm = cm%100; return "Visoki ste: " + m + " m i " + cm +" cm."; } console.log(preracunaj_visinu(179));
Napisati funkciju „convertToSeconds()“ koja će proslijeđene sate pretvoriti u sekunde. Konverziju vršiti postepeno, i to na način da će se unutar ove funkcije, kreirati funkcija „convertToMinutes()“ koja će prvo poslane sate pretvoriti u minute i nakon toga vratiti u glavnu funkciju koja će završiti konverziju.
function convertToSeconds(h) {
let minutes = function(h) { return h * 60; } let seconds = minutes(h) * 60; return seconds; }
console.log(convertToSeconds(6));
Napisati funkciju koja će kao parametar primiti broj koševa i vraćati poziciju ako je u top 5 strijelca u NBA ligi. Ako je broj veći od: a) 31419, vratiti 5, b) 32292, vratiti 4, c) 32482, vratiti 3, d) 36928, vratiti 2, e) 38387, vratiti 1.
//
Napisati drugu funkciju koja će primiti ime igrača i broj koševa. Funkcija treba ispisati ime igrača i koliko je koševa postigao u karijeri te pomoću funkcije iz prvog zadatka provjeriti nalazi li se njegov broj koševa u top 5 strijelaca u NBA ligi te ispisati koju je poziciju zauzeo ako jest.
//
Ispisati sve property-e objekta i njihove vrijednosti: var ob = { ‘naziv’ :’The Wire’, ‘ocjena’ : 9.4, ‘autor’ : ‘David Simon’ };
for(var prop in ob){ console.log(“Property: “+prop+” ima vrijednost: “ + ob[prop]); }
Deklarirati objekt „zgrada“ i property-e adresa, broj zgrade, broj katova, broj stanova. Zatražiti od korisnika da preko prompt funkcije unese vrijednosti property-a te ispisati dodijeljene vrijednosti: ‘‘Živim u zgradi broj’’ +broj zgrade+’’ na adresi’‘+adresa+’‘koja ima’‘+broj katova+’‘katova i ukupno’‘+broj stanova+’‘stanova.’’
//
Deklarirati objekt „test“ koji ima svojstva: ostvareni_bodovi, max_bodovi i ocjena. Dodati metodu koja računa ocjenu s obzirom na iznos ostvarenih i maksimalnih bodova za taj test.
var test = { ostvareni_bodovi: 8,
max_bodovi: 10, ocjena: 0, racunajOcjenu: function(){ this.ocjena = (this.ostvareni_bodovi * 5 ) / this.max_bodovi; } }; test.racunajOcjenu(); console.log(‘Ostvarena je ocjena ‘ + test.ocjena);
Deklarirati objekt „osoba“ koja će imati svojstva ime, prezime i kilogrami. Ispisati vrijednosti koje ste unijeli. Zatim deklarirati metodu koja će računati koliko kilograma ta osoba ima na Marsu. Metodi proslijediti broj kilograma koji ste unijeli. Opet ispisati vrijednosti koje ste postavili. (Ubrzanje sile teže na Marsu iznosi 0.38 ubrzanja sile teže na Zemlji.)
let osoba = { ime: 'Admir', prezime: 'Husic', tezina : 88, izracunajTezinuNaMarsu: function(kg) { this.tezinaNaMarsu = kg * 0.38; } }
osoba. izracunajTezinuNaMarsu(osoba.tezina);
console. log(osoba.tezinaNaMarsu);
Zatražiti od korisnika da unese property-e za objekt „grad“. Potrebno je unijeti ime grada, broj stanovnika, površinu te gradonačelnika. Za ime grada i gradonačelnika provjeriti da nije unesen nijedan broj, a za broj stanovnika i površinu provjeriti da su uneseni samo brojevi. Prije dodijeljivanja vrijednosti površini dodati ‘km2’ i tek onda ispisati sve vezano za objekt „grad“.
let grad = { ime: null, gradonacelnik: null, brojStanovnika: null, povrsina: null }
let ulazIme = prompt('Unesi ime grada'); let ulazImeGradonacelnika = prompt('Unesi ime gradonacelnika'); let ulazBrojStanovnika = parseInt(prompt('Unesi broj stanovnika')); let ulazPovrsina = parseInt(prompt('Unesi povrsinu grada'));
let regExLetters = /^[a-zA-z\s]+$/;
let regExNumbers = /^[0-9]+$/;
if(regExLetters.test(ulazIme) && regExLetters.test(ulazImeGradonacelnika)
&& regExNumbers.test(ulazBrojStanovnika) && regExNumbers.test(ulazPovrsina)){
grad.ime = ulazIme;
grad.gradonacelnik = ulazImeGradonacelnika;
grad.brojStanovnika = ulazBrojStanovnika;
grad.povrsina = ulazPovrsina + ‘ km2’;
}else {
console.log(‘Jedan od podataka nije u ispravnom formatu’);
}
console.log(grad);