Laboratorijas darbs 4.1. Salīdzināšanas operācijas un if priekšraksts (C++, Python)

  1. Atvērt failu lab4.1.cpp (lab4.1.py),

a.     C++ (nokompilēt):

#include <iostream>

using namespace std;

 

int main ()

{

    int a;

    cin >> a;

    if (a > 0) cout << "LIELAIS" << endl;

    else cout << "mazais" << endl;

    return 0;

}

b.     Python:

a = int(input())

if a>0:

    print("LIELAIS")

else:

    print("mazais")

2.     Darbināt trīs reizes – attiecīgi ar ievaddatiem 5, 0 un -5.

Izdrukājas attiecīgi “LIELAIS”, “mazais” un “mazais”

  1. Uzdevums. Nomainīt salīdzināšanu > ar <=, bez tam veikt arī pārējās nepieciešamās izmaiņas tā, lai programma strādātu identiski iepriekšējai.
  2. Darbināt divas reizes – attiecīgi ar ievaddatiem 5 un -5, secinot, ka programma strādā tāpat.

Pareizo atbildi var atrast failā lab4.1a.cpp (lab4.1a.py).

 

 

Laboratorijas darbs 4.2. Salīdzināšanas operācijas un if priekšraksts #2 (C++, Python)

1.     Atvērt failu lab4.2.cpp (lab4.2.py),

a.     C++ (nokompilēt):

#include <iostream>

using namespace std;

 

int main ()

{

    int a;

    cin >> a;

    if (a > 0) cout << "LIELAIS" << endl;

    else if (a == 0) cout << "n-u-l-l-e" << endl;

    else cout << "mazais" << endl;

    return 0;

}

b.     Python:

a = int(input())

if a>0: print("LIELAIS")

elif a==0: print("n-u-l-l-e")

else: print("mazais")

  1. Darbināt trīs reizes – attiecīgi ar ievaddatiem 5, -5 un 0.

Lai iegūtu rezultātu, tika izmantotas divas salīdzināšanas operācijas: > un ==.

  1. Pārveidot programmu par funkcionāli identisku programmu tā, ka tiek izmantotas salīdzināšanas operācijas < un != (mazāks un nav vienāds) – iepriekš izmantoto operāciju > un == vietā.
  2. Darbināt trīs reizes – attiecīgi ar ievaddatiem 5, -5 un 0, secinot, ka programma strādā tāpat.

Neveiksmes gadījumā pareizo atbildi var atrast failā lab4.2a.cpp (lab4.2a.py).

  1. Pārveidot programmu par identisku programmu tā, ka tiek izmantotas salīdzināšanas operācijas < un >.
  2. Darbināt trīs reizes – attiecīgi ar ievaddatiem 5, -5 un 0, secinot, ka programma strādā tāpat.

Pareizo atbildi var atrast failā lab4.2b.cpp (lab4.2b.py).

  1. Pārveidot programmu par funkcionāli identisku programmu tā, ka tiek izmantota tikai viena veida salīdzināšanas operācija <.
  2. Darbināt trīs reizes – attiecīgi ar ievaddatiem 5, -5 un 0, secinot, ka programma strādā tāpat.

Pareizo atbildi var atrast failā lab4.2c.cpp (lab4.2c.py).

  1. Pārveidot programmu par identisku programmu tā, ka tiek izmantota tikai viena veida salīdzināšanas operācija >.
  2. Darbināt trīs reizes – attiecīgi ar ievaddatiem 5, -5 un 0, secinot, ka programma strādā tāpat.

Neveiksmes gadījumā pareizo atbildi var atrast failā lab4.2d.cpp (lab4.2d.py).

 

 

Laboratorijas darbs 4.3. Salīdzināšanas operācijas un if priekšraksts #3 (C++, Python)

1.     Atvērt failu lab4.3.cpp (lab4.3.py),

a.     C++ (nokompilēt):

#include <iostream>

using namespace std;

 

int main ()

{

    int a;

    cin >> a;

    if (a > 0)

    {

        if (a > 9) cout << "LIELAIS PLUS" << endl;

        else cout << "mazais plus" << endl;

    }

    else

    {

        if (a < -9) cout << "LIELAIS -" << endl;

        else if (a < 0) cout << "mazais -" << endl;

        else cout << "n-u-l-l-e" << endl;

    };

    return 0;

}

b.     Python:

a = int(input())

if a>0:

    if a>9: print("LIELAIS PLUS")

    else: print("mazais plus")

else:

    if a<-9: print("LIELAIS -")

    elif a<0: print("mazais -")

    else: print("n-u-l-l-e")

  1. Darbināt piecas reizes – attiecīgi ar ievaddatiem 5, 15, 0, -5 un -15.
  2. Pārveidot programmu par funkcionāli identisku programmu tā, ka divu līmeņu hierarhiska if priekšraksta izmantošanas vietā tiek lietota kaskādes veida izmantošana pēc sekojošas shēmas:

a.     C++:

if ...

else if ...

else if ...

else if ...

else

b.     Python:

if ...

elif ...

elif ...

elif ...

else

  1. Darbināt piecas reizes – attiecīgi ar ievaddatiem 5, 15, 0, -5 un -15, secinot, ka programma strādā tāpat.

Pareizo atbildi var atrast failā lab4.3a.cpp (lab4.3a.py).

 

 

Laboratorijas darbs 4.4. Cikls for (C++, Python)

1.     Atvērt un darbināt failu lab4.4.cpp (lab4.4.py)

a.     C++:

#include <iostream>

using namespace std;

 

int main ()

{

    int i,a;

    for (i=0; i<5; i++)

    {

        a = i * i;

        cout << a << endl;

    };

    cout << i << endl;

    return 0;

}

b.     Python:

for i in range(0,5):

    a = i * i

    print(a)

print(i)

Programma izdrukā skaitļu kvadrātus.

Ievērot, ka mainīgā i vērtība pēc cikla C++ gadījumā ir 5, bet Python gadījumā 4!

  1. (tikai C++) Rindiņu int i,a; nomainīt par int a;, bet rindiņu

for (i=0; i<5; i++)

par

for (int i=0; i<5; i++)

Tādā veidā mainīgā i deklarēšana tiek pārnesta uz ciklu (lab4.4a.cpp).

3.     (tikai C++) Kompilēt.

Kompilācija ir neveiksmīgi, jo for cikla ietvaros deklarēts mainīgais darbojas tikai cikla ietvaros, bet aiz tā vairs nav redzams.

Piezīme. Uz valodu Python tas (blakusefekts, mainīgo deklarējot ciklā) neattiecas, jo tajā nav tik smalka mainīgā redzamības apgabala kā bloka (šeit tas būtu for) līmeņa redzamības apgabals.

4.     Izdzēst no programmas rindiņu

a.     C++ (lab4.4b.cpp):

cout << i << endl;

b.     Python (lab4.4b.py):

print(i)

5.     Darbināt.

6.     Aiz rindiņas a = i * i; ievietot rindiņu

a.     C++ (lab4.4c.cpp):

if (i == 3) continue;

b.     Python (lab4.4c.py):

if i == 3: continue

7.     Darbināt.

Neizdrukājas skaitļa 3 kvadrāts. Operators continue izlaiž visas darbības līdz cikla ķermeņa beigām un uzreiz sāk jaunu iterāciju.

8.     Aiz rindiņas a = i * i; ievietot rindiņu

a.     C++ (lab4.4d.cpp):

if (i == 2) break;

b.     Python (lab4.4d.py):

if i == 2: break

Izdrukājas tikai 0 un 1.

Operators break pārtrauc cikla izpildi un nodod vadību nākošajai komandai aiz cikla. Šajā kontekstā komandai continue vairs nav jēgas. break ir otra iespēja iziet no cikla papildus standarta variantam – cikla nosacījumam.

 

 

Laboratorijas darbs 4.5. Vingrinājumi ar if priekšrakstu (C++, Python)

Vingrinājums 1. (lab4.5a.cpp/lab4.5a.py)

Doti 2 veseli skaitļi a, b.

Ja abi ir mazāki par 0, tad izdrukāt to reizinājumu,

citādi izdrukāt to summu.

Piemērs #1. a=-7, b=-5; rezultāts 35.

Piemērs #2. a=7, b=-5; rezultāts 2.

 

Vingrinājums 2. (lab4.5b.cpp/lab4.5b.py)

Doti 3 veseli atšķirīgi skaitļi a, b, c.

Atrast pēc lieluma vidējo skaitli un noskaidrot,

vai tā vērtība ir tuvāka lielajam vai mazajam skaitlim.

Piemērs #1. a=1, b=2, c=3; 2, Atbilde: vienādā attālumā.

Piemērs #2. a=-7, b=2, c=-5; Atbilde: -5, tuvāk mazākajam.

Piemērs #3. a=-7, b=2, c=5; Atbilde: 2, tuvāk lielākajam.

 

Vingrinājums 3. (lab4.5c.cpp/lab4.5c.py)

Doti 3 veseli skaitļi a, b, c.

Noskaidrot, vai starp tiem ir negatīvi skaitļi,

un ja ir, kurš starp negatīvajiem ir lielākais.

Piemērs #1. a=1, b=2, c=3; Nav negatīvu skaitļu.

Piemērs #2. a=7, b=-2, b=-5; rezultāts -2.

 

 

Laboratorijas darbs 4.6. Vingrinājumi ar for priekšrakstu (C++, Python)

Vingrinājums 1. (lab4.6a.cpp/lab4.6a.py)

Doti naturāls skaitlis n.

Izdrukāt figūru no zvaigznītēm ‘*’, kas sastāv no n rindiņām tādējādi, ka pirmajā rindā ir 1 zvaigznīte, otrajā rindā – 2, trešajā 3, tad atkal 1, 2, 3 utt.

Piemērs. n=10; rezultāts:

*

**

***

*

**

***

*

**

***

*

 

Vingrinājums 2. (lab4.6b.cpp/lab4.6b.py)

Doti naturāls skaitlis n.

Izmantojot for ciklu un elementu saskaitīšanu, aprēķināt un izdrukāt pirmo n nepāra skaitļu summu.

Piemērs. n=10; rezultāts: 100

(jo 1+3+5+7+9+11+13+15+17+19=100)