Algoritmi un programmēšana Praktiskie darbi

Slides:



Advertisements
Similar presentations
While Loops Programming. COMP102 Prog Fundamentals I: while Loops/Slide 2 Shortcut Assignments l C++ has a set of shortcut operators for applying an operation.
Advertisements

Slide 1 Summary Two basic concepts: variables and assignments Some C++ practical issues: division rule, operator precedence  Sequential structure of a.
Programming Switch command. COMP102 Prog. Fundamentals: Switch command / Slide 2 Multiple Selection: The switch Statement value1 action 1 value2 action.
Local, Global Variables, and Scope. COMP104 Slide 2 Functions are ‘global’, variables are ‘local’ int main() { int x,y,z; … } int one(int x, …) { double.
General Computer Science for Engineers CISC 106 Lecture 26 Dr. John Cavazos Computer and Information Sciences 04/24/2009.
Unit 4 Review Solutions a 5 – 32a 2 4a 2 (3a 3 – 8) 2. a 2 b 2 + ab ab(ab + 1) 3. x(x – 2) + y(2 – x) x(x – 2) – y(x – 2) (x – 2)(x – y)
Loops Programming. COMP104 Lecture 9 / Slide 2 Shortcut Assignment l C++ has a set of operators for applying an operation to a variable and then storing.
VARIABLES, TYPES, INPUT/OUTPUT, ASSIGNMENT OPERATION Shieu-Hong Lin MATH/CS Department Chapel.
Introduction to Programming (in C++) Data and statements Jordi Cortadella, Ricard Gavaldà, Fernando Orejas Dept. of Computer Science, UPC.
Modernās Programmēšanas Tehnoloģijas (Advanced Programming Technologies) Edgars Celms, Mārtiņš Opmanis Latvijas Universitātes Matemātikas.
Functions Parameters & Variable Scope Chapter 6. 2 Overview  Using Function Arguments and Parameters  Differences between Value Parameters and Reference.
Cienot pagātni, Domājot par nākotni, Čakli strādājot šodienai ! Mērsragā, 2013.gada 6.aprīlī.
 Review structures  Program to demonstrate a structure containing a pointer.
Paralēlo sistēmu programmēšana ar MPI, 3 Lekciju kurss: Paralēlie algoritmi Autors: Maksims Kravcevs Rīga 2007.
1 EMT 101 – Engineering Programming Dr. Farzad Ismail School of Aerospace Engineering Universiti Sains Malaysia Nibong Tebal Pulau Pinang Week 4.
CS31: Introduction to Computer Science I Discussion 1A 4/9/2010 Sungwon Yang
Current Assignments Homework 3 is due tonight. Iteration and basic functions. Exam 1 on Monday.
While Loops Programming. COMP102 Prog Fundamentals I: while Loops/Slide 2 Shortcut Assignments l C++ has a set of shortcut operators for applying an operation.
Review the following: if-else One branch if Conditional operators Logical operators Switch statement Conditional expression operator Nested ifs if –else.
1 C++. 2 Literatūra 3 Saturs Informācijas ievads un izvads; Sazarošanās; Cikli; Masīvi;
CSC1201: Programming Language 2 Lecture 1 Level 2 Course Nouf Aljaffan (C) CSC 1201 Course at KSU1.
Lecture 7: Making Decisions Professor: Dr. Miguel Alonso Jr. Fall 2008 CGS2423/COP1220.
LESSON 2 Basic of C++.
Section 3 Review Mr. Crone.
Intro to Programming Week # 6 Repetition Structure Lecture # 10
Command Line Arguments
Introduction to C++ October 2, 2017.
לולאות קרן כליף.
Quiz Next Monday.
Jānis Zuters, Ratnieki Latvijas Universitāte Datorikas fakultāte
Programma, kas iekarojusi popularitāti
Kopīpašums.
Darbības - sazarojuma operatori
تصنيف التفاعلات الكيميائية
Random Number Generation
פונקציות לעיתים קרובות לא נוח להגדיר את כל התוכנה בתוך גוף אחד.
Komandu faili Komandu fails (pakešdatne) – specializēta datne ar secīgi vienu pēc otras izpildāmu operētājsistēmas komandu sarakstu. BAT datne – operētājsistēmas.
Strukturētie datu tipi - Masīvi
Ms Access Tabulas 2. daļa Andris Šteins, 2009.
Datu bāze, tās mācību metodika
Algoritmi un programmēšana Praktiskie darbi
Programmēšanas valodu pamati
אבני היסוד של תוכנית ב- C++
אבני היסוד של תוכנית ב- C++
מחרוזות-String בשפת C++ ישנו תפקיד מיוחד למערך מסוג char רצף של תווים הנמצאים במערך מסוג char המסתיימת בתו אפס (הכוונה לאפס ממש '0\' , ולא לתו '0')
OBJECTIVE QUESTIONS.
הרצאה 03 אבני היסוד של תוכנית ב- C
يمكن استدعاء الكود الوظيفي عند حدث معين أو عند استدعاء الكود الوظيفي .
Starting Out with C++: From Control Structures through Objects
Pointers & Functions.
اصول کامپیوتر ۱ مبانی کامپیوتر و برنامه‌سازی
Programmēšanas valodas Valoda C++
Pass by Reference.
Summary Two basic concepts: variables and assignments Basic types:
Degëzimet.
If Statements.
Objectives The student will be able to:
Bell Ringer 10/27/10 What is the GCF? 18x³y² and 24x² ab and a³b².
Control Structures Part 1
Local, Global Variables, and Scope
Degëzimet.
Pointers & Functions.
(Dreaded) Quiz 2 Next Monday.
Factoring using the greatest common factor (GCF).
Objectives The student will be able to:
Objectives The student will be able to:
Programming Strings.
Objectives The student will be able to:
CSE Module 1 A Programming Primer
Presentation transcript:

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

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

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

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

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

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>

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

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;

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;

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

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

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ā ...

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;

"x++" un "++x" atšķirība Atceroties 10. 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"

"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++;

"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++;

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; }

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>

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ē")

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

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

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; }

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>

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++

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; }

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;