Notiek prezentācijas ielādēšana. Lūdzu uzgaidiet

Notiek prezentācijas ielādēšana. Lūdzu uzgaidiet

Algoritmi un programmēšana Praktiskie darbi

Līdzīgas prezentācijas


Prezentācija par tēmu: "Algoritmi un programmēšana Praktiskie darbi"— Prezentācijas transkripts:

1 Algoritmi un programmēšana Praktiskie darbi
C++ un Javascript – pamati Doc. Dr. Sc. Comp. Edgars Rencis, Latvijas Universitāte, Datorikas fakultāte, 12. septembris, 2019.

2 19. septembrī praktisko darbu lekcija nenotiek!!

3 C++ programmas struktūra
Viena vai vairākas funkcijas vienmēr tieši viena galvenā funkcija ar nosaukumu main ar šo funkciju tiek sākta izpilde (atbilst blokshēmas starta simbolam) šīs funkcijas beigās izpilde tiek pārtraukta (atbilst blokshēmas beigu simbolam) pēc dažām lekcijām veidosim arī citas funkcijas Komandas (instrukcijas, priekšraksti) algoritma secīgie soļi atrodas funkciju iekšienē atbilst tādiem blokshēmu elementiem kā deklarācija, komanda, ievads, izvads, zarošanās Direktīvas paziņojumi kompilatoriem, par tiem vēlāk... Komentāri paskaidrojumi cilvēkam, atbilst blokshēmu komentāriem

4 Vienkārša programmiņa C++
#include <iostream> using namespace std; int main () { //Sākas programmas izpilde cout << "Hello, world!" << endl; return 0; }

5 Vienkārša programmiņa C++
#include <iostream> using namespace std; int main () { //Sākas programmas izpilde cout << "Hello, world!" << endl; return 0; } funkcijas priekšraksti direktīvas komentāri

6 Javascript programmas struktūra
Pamatā ir HTML dokuments, kura dažādās vietās var parādīties Javascript kods saglabāts kā datne ar paplašinājumu ".html" Javascript vieta HTML dokumentā vienkārša reakcija uz notikumiem <button onclick='document.write("Hello JavaScript!");'>Click Me!</button> lielāki koda gabali <script> birkās <script> document.write("My First JavaScript"); </script> Kods var tikt sadalīts funkcijās bet atšķirībā no C++ funkcijas nav obligātas

7 Vienkārša programmiņa Javascript
<html> <body> <button onclick = 'document.write ("Hello JavaScript!")'>Click Me!</button> <script> document.write("My First JavaScript"); </script> </body> </html>

8 Mainīgie C++ C++ ir stingri tipizēta valoda
Mainīgais pirms lietošanas ir jādeklarē jāpaziņo, kāda datu tipa vērtības mainīgais drīkstēs pieņemt int – veselo skaitļu datu tips (17, 3, -5, 0, ...) double – reālo skaitļu datu tips (17.5, 3.0, 0.0, -5.78, ...) char – simboliskais datu tips ('a', 'R', '\n', '\\', '5', ...) bool – loģiskais datu tips (true, false) deklarācijā jānorāda datu tipa vārds un mainīgā vārds (drīkst arī uzreiz piešķirt mainīgajam sākuma vērtību) int x; double x,y; int x=0,y,z=17; char c,c1='B'; bool b=false; Pirms mainīgā izmantošanas tam ir jābūt inicializētam

9 Mainīgie Javascript Javascript ir vāji tipizēta valoda
mainīgo tipi netiek atklāti norādīti Mainīgā deklarācija var x; var x=0;

10 Mainīgā inicializēšana – vērtības iegūšana
Mainīgā vērtību var likt ievadīt lietotājam C++ cin >> x; cin >> x >> y; Javascript var valText = prompt();  teksta ievade var valNum = Number(prompt());  skaitļa ievade Mainīgajam vērtību var piešķirt, izmantojot piešķiršanas operatoru = x = 17; y = 5.78; c = 'A'; b = true;

11 Piešķiršanas operators =
Jāatšķir divas lietas =  piešķiršanas operators x = 17;  piešķiršanas komanda Piešķiršanas operatora semantika kreisās puses mainīgajam tiek piešķirta labās puses vērtība piešķiršanas komandai tiek piešķirta labās puses vērtība sekas – piešķiršanas komandu var lietot kā labās puses vērtību citās piešķiršanas komandās (un arī citur) x=y=17; vispirms mainīgajam y un komandai y=17 tiek piešķirta labās puses vērtība: 17 pēc tam tiek izpildīta otra piešķiršana, līdz ar kuru mainīgajam x tiek piešķirta labās puses (y=17) vērtība: 17 int x=y=z=5; Lietojot piešķiršanas operatoru C++, jāievēro datu tipu saderība int x=5.5;  kļūda – veselo skaitļu mainīgajam nedrīkst piešķirt daļskaitli double y=17;  reālo skaitļu mainīgajam atļauts piešķirt veselu skaitli char c=true;  kļūda – pilnīga tipu nesaderība

12 Datu ievade un izvade C++
cin >> x >> y; Izvade cout << x; cout << "Sveiki!"; cout <<x<<" kvadrātā ir " <<y<< endl; endl – pāreja uz jaunu rindu cout << "Hello, world!\n"; "\n" – pāreja uz jaunu rindu

13 Datu ievade un izvade Javascript
var valText = prompt();  teksta ievade var valNum = Number(prompt());  skaitļa ievade Izvade alert(value);  izvade izlecošā logā console.log(value);  izvade konsolē document.write("Value: "+value);  izvade HTML dokumentā document.getElementById("demo").innerHTML = value1+"<br/>"+value2;  izvade HTML dokumenta konkrētā elementā ...

14 Saīsinātie piešķiršanas pieraksti
Jebkuram aritmētiskajam operatoram – vērtības izmainīšana par jebkādu lielumu a x=x<op>a; ... jeb... x<op>=a; x=x+5; ... jeb... x+=5; y=y-1; ... jeb... y-=1; z=z*y; ... jeb... z*=y; Aritmētiskajiem operatoriem "+" un "-" – vērtības izmanīšana par 1 x=x<op>1; ... jeb... x<op><op>; x=x+1; ... jeb... x++; y=y-1; ... jeb... y--; x=x<op>1; ... jeb... <op><op>x; x=x+1; ... jeb x; y=y-1; ... jeb y;

15 "x++" un "++x" atšķirība Atceroties 11. slaidu...
piešķiršanas operatora semantika kreisās puses mainīgajam tiek piešķirta labās puses vērtība piešķiršanas komandai tiek piešķirta labās puses vērtība "x++" un "++x" atšķirība ir darbību secībā x++ piešķiršanas komandai tiek piešķirta x vērtība x vērtība tiek palielināta par 1 ++x Sekas x vērtība abos gadījumos tiek palielināta par 1 izteiksmes (piešķiršanas komandas) iegūst dažādas vērtības Tas pats attiecas uz saīsinātajiem pierakstiem "x--" un "--x"

16 "x++" un "++x" piemērs valodā C++
y=x; x++; int x=17,y; y=x++; cout << x << " " << y; int x=17,y; y=++x; cout << x << " " << y; int x=5; cout << x; cout << ++x; cout << x++; cout << x;  18 17 ++x; y=x;  18 18 ++x; cout << x; cout << x; x++;

17 "x++" un "++x" piemērs valodā C++
y=x; x++; int x=17,y; y=x++; cout << x << " " << y; int x=17,y; y=++x; cout << x << " " << y; int x=5; cout << x; //5 cout << ++x; //6 cout << x++; //6 cout << x; //7  18 17 ++x; y=x;  18 18 ++x; cout << x; cout << x; x++;

18 Vienkāršs pilnas programmas piemērs
Uzdevums Lietotājs ievada veselu skaitli. Izvadīt šī skaitļa kvadrātu. Risinājums valodā C++ #include <iostream> using namespace std; int main() { int x; cout << "Ievadiet skaitli: "; cin >> x; int y = x*x; cout << "Šī skaitļa kvadrāts ir " << y <<endl; return 0; }

19 Vienkāršs pilnas programmas piemērs
Uzdevums Lietotājs ievada veselu skaitli. Izvadīt šī skaitļa kvadrātu. Risinājums valodā Javascript <html> <body> <script> var x = Number(prompt("Ievadiet skaitli!")); var y = x*x; alert("Šī skaitļa kvadrāts ir "+y); </script> </body> </html>

20 Zarošanās komanda if (<loģiska izteiksme>) { ... } else {
Jautājums, uz kuru var atbildēt ar "jā" vai "nē" if (<loģiska izteiksme>) { ... } else { “else” zars ir neobligāts Figūriekavas blokam obligātas gadījumā, ja tas satur vairāk par vienu komandu Komandas, kas izpildāmas, ejot pa "+" zaru (ja atbilde uz jautājumu ir "jā") Komandas, kas izpildāmas, ejot pa "-" zaru (ja atbilde uz jautājumu ir "nē")

21 Zarošanās piemērs if (a<b) { x=a; } else { x=b;
Tā kā ir tikai pa vienai komandai katrā no abiem blokiem, tad figūriekavas drīkst nelietot

22 Uzdevums 1 Lietotājs ievada trīs veselus skaitļus. Noskaidrot, vai eksistē trijstūris ar šādiem malu garumiem. uzrakstīt programmas C++ un Javascript

23 Uzdevums 1 – risinājums C++
#include <iostream> using namespace std; int main() { int a,b,c; cout << "Ievadiet skaitļus: "; cin >> a >> b >> c; if (a+b<=c) cout << "Trijstūris NEEKSISTĒ!\n"; else if (a+c<=b) if (b+c<=a) cout << "Trijstūris EKSISTĒ!\n"; return 0; }

24 Uzdevums 1 – risinājums Javascript
<html> <body> <script> var a,b,c; a = Number(prompt("Ievadi 1. skaitli!")); b = Number(prompt("Ievadi 2. skaitli!")); c = Number(prompt("Ievadi 3. skaitli!")); if (a+b<=c) alert("Trijstūris NEEKSISTĒ!\n"); else if (a+c<=b) if (b+c<=a) alert("Trijstūris EKSISTĒ!\n"); </script> </body> </html>

25 Uzdevums 2 Lietotājs ievada 3 ciparus. Izdrukāt lielāko skaitli, kādu iespējams sastādīt no šiem cipariem, izmantojot katru ciparu tieši vienu reizi. uzrakstīt programmu valodā C++

26 Uzdevums 2 – risinājums 1 #include <iostream>
using namespace std; int main() { int a,b,c; cout << "Ievadiet ciparus: "; cin >> a >> b >> c; if (a>b) if (b>c) cout << a << b << c; else if (a>c) cout << a << c << b; cout << c << a << b; cout << b << a << c; cout << b << c << a; cout << c << b << a; return 0; }

27 Uzdevums 2 – risinājums 2 #include <iostream>
using namespace std; int main() { int a,b,c,x; cout << "Ievadiet ciparus: "; cin >> a >> b >> c; if (a<b) { x=a; a=b; b=x; } if (a<c) { a=c; c=x; if (b<c) { x=b; b=c; cout << a << b << c; return 0;

28 Uzdevums 3 Uzrakstīt Javascript kodu, kas ļauj lietotājam ievadīt veselu pozitīvu skaitli un izdrukā tā pirmspēdējo ciparu x%y – atlikums, dalot x ar y Math.floor(x/y) – veselā daļa no dalījuma x/y Algoritms – kā tikt pie skaitļa pirmspēdējā cipara? dots skaitlis x > 9 (ja x<=9, tad pirmspēdējais cipars neeksistē) y = Math.floor(x/10) šādi no x atšķeļam tā pēdējo ciparu (kurš mums neinteresē) tagad mums interesē skaitļa y pēdējais cipars z = y%10 y pēdējais cipars tiek iegūts kā atlikums, dalot y ar 10

29 Uzdevums 3 – risinājums <html> <body> <script> var x,y,z; x = Number(prompt("Ievadi skaitli!")); if (x>9) { y=Math.floor(x/10); z=y%10; alert("Skaiļa "+x+" pirmspēdējais cipars ir "+z); } else alert("Skaitlis ir par mazu!"); </script> </body> </html>

30 Uzdevums 3 – īsāks risinājums
<html> <body> <script> var x; x = Number(prompt("Ievadi skaitli!")); if (x>9) alert("Skaiļa "+x+" pirmspēdējais cipars ir "+Math.floor(x/10)%10); else alert("Skaitlis ir par mazu!"); </script> </body> </html>


Lejuplādēt ppt "Algoritmi un programmēšana Praktiskie darbi"

Līdzīgas prezentācijas


Google reklāma