Laboratorijas darbs 5.1. Loģiskas izteiksmes (C++, Python)

  1. Atvērt failu lab5.1.cpp (lab5.1.py).

a.       C++:

#include <iostream>

using namespace std;

 

int main ()

{

    int a;

    cin >> a;

    if (a >= 0 && a <= 9) cout << "LABAIS" << endl;

    else cout << "sliktais" << endl;

    return 0;

}

b.      Python:

a = int(input())

if a >= 0 and a <= 9: print("LABAIS")

else: print("sliktais")

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

Izdrukājas attiecīgi “sliktais”/“LABAIS”/“sliktais”.

  1. Pārveidot programmu tā, lai, nemainot tās darbību, izpildītos šādas prasības: (a) izvēles nosacījumā netiktu izmantots && (and), (b) joprojām būtu tikai viens izvēles nosacījums (nelietot else if / elif)
  2. Darbināt trīs reizes – attiecīgi ar ievaddatiem –5, 5 un 15 un pārbaudīt, vai programma strādā tieši tāpat.

Divi pareizie varianti pieejami failos lab5.1a.cpp un lab5.1b.cpp (lab5.1a.py un lab5.1b.py)

 

 

Laboratorijas darbs 5.2. Cikli (C++)

4.      Atvērt failu lab5.2.cpp, nokompilēt.

#include <iostream>

using namespace std;

 

int main ()

{

    int sum = 0, i, n = 10;

    for (i=1; i<=10; i++)

    {

        sum += i;

    };

    cout << "Sum = " << sum << endl;

    return 0;

}

5.      Darbināt programmu – programma izrēķina skaitļu 1..10 summu.

Izdrukājas Sum = 55.

  1. Nomainīt rindiņu for (i=1; i<=10; i++) ar for (i=0; i<10; i++)

Tādējādi skaitītājs aptver apgabalu 0..9 (lab5.2a.cpp)

7.      Darbināt programmu, iegūstot rezultātu 45.

  1. Izdarīt nepieciešamās izmaiņas cikla ķermenī, lai programma atkal rēķinātu skaitļu 1..10 summu (lab5.2b.cpp).

9.      Darbināt programmu, izdrukājas Sum = 55.

  1. Balstoties uz shēmu, kas parādīta zemāk, nomainīt for ciklu par while ciklu (lab5.2c.cpp).

for (<1>;<2>;<3>) <4>

<1> while(<2>) {<4><3>}

11.  Darbināt programmu, izdrukājas Sum = 55.

12.  Pārveidot programmu, saglabājot tās funkcionalitāti, tā, lai while tiktu nomainīts par do-while (lab5.2d.cpp).

13.  Darbināt programmu, izdrukājas Sum = 55.

14.  Atvērt atkāroti failu lab5.2.cpp, nokompilēt, darbināt, iegūstot rezultātu 55.

15.  Samainīt vietām koda fragmentus sum += i un i++ (lab5.2e.cpp).

16.  Kompilēt un darbināt programmu, izdrukājas Sum = 65, t.i. skaitļu 2..11 summa

17.  Nomainīt koda fragmentu i=1; i<=10 ar i=0; i<10 (lab5.2f.cpp).

18.  Kompilēt un darbināt programmu, izdrukājas Sum = 55, t.i. atkal skaitļu 1..10 summa.

 

Laboratorijas darbs 5.3. Iekļautais cikls

1.      Atvērt failu lab5.3.cpp, nokompilēt un darbināt.

#include <iostream>

#include <iomanip>

using namespace std;

 

int main ()

{

    for (int i=1; i<=4; i++)

    {

        for (int k=1; k<=4; k++) cout << setw(4) << i*k;

        cout << endl;

    };

    return 0;

}

Programma izdrukā reizrēķina tabulu 4X4, izmantojot iekļautu ciklu (divu līmeņu cikla konstrukciju).

2.      Mēģināt pārveidot programmu tā, lai tā izmantotu tikai viena līmeņa ciklu, bet veiktu precīzi tādu pašu darbu – izdrukātu reizrēķina tabulu 4X4 (lab5.3a.cpp).

Ieteikums: visticamāk, lai kompensētu iekšējo ciklu, nāksies izmantot papildus if operatoru, kā arī veselo skaitļu dalīšanas / un atlikuma % operācijas.

 

 

Laboratorijas darbs 5.4. Vingrinājumi ar cikliem.

Vingrinājums 1. (lab5.4a.cpp)

Doti naturāls skaitlis n.

Izdrukāt „eglīti” no zvaigznītēm ‘*’, kas sastāv no n rindiņām tādējādi, ka pirmajā rindā ir 1 zvaigznīte, bet katrā nākamajā par vienu vairāk.

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

*

**

***

****

*****

******

 

Vingrinājums 2. (lab5.4b.cpp)

Doti naturāls nepāra skaitlis n.

Izdrukāt laukumu n × n no simboliem, kur pa diagonālēm ir zvaigznītes ‘*’, bet pārējie simboli ir mīnusi ‘-’.

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

*---------*

-*-------*-

--*-----*--

---*---*---

----*-*----

-----*-----

----*-*----

---*---*---

--*-----*--

-*-------*-

*---------*

 

Vingrinājums 3. (lab5.4c.cpp)

Doti naturāls skaitlis n.

Izdrukāt laukumu n × n no simboliem, kas atbilst šādam musturim (pie n=13):

*--*--*--*--*

-*--*--*--*--

--*--*--*--*-

*--*--*--*--*

-*--*--*--*--

--*--*--*--*-

*--*--*--*--*

-*--*--*--*--

--*--*--*--*-

*--*--*--*--*

-*--*--*--*--

--*--*--*--*-

*--*--*--*--*

 

 

 

Laboratorijas darbs 5.5. Cikli (Python)

1.      Atvērt failu lab5.2.py, nokompilēt.

sum = 0

for i in range(1,10):

    sum += i

print ("Sum =",sum)

2.      Darbināt programmu – programma izrēķina skaitļu 1..10 summu.

Izdrukājas Sum = 45.

Ievērojiet, ka mehānisms range() ignorē 10 (saskaita tikai līdz 1+2+...+9) – tas jau ir vienu vienību „aiz”.

  1. Nomainīt rindiņu

for i in range(1,10):

ar

for i in range(0,9):

Tādējādi tiks saskaitīti skaitļi 0..8, iegūstot rezultātu 36 (lab5.2a.py)

  1. Koriģēt cikla ķermeni, lai pie šādas cikla galvas programma atkal rēķinātu skaitļu 1..9 summu, izdrukājot 45 (lab5.2b.py).
  2. Balstoties uz shēmu, kas parādīta zemāk, nomainīt for ciklu

for i in range ({1},{2}):

{3}

  1. par while ciklu (lab5.2c.py):

i = {1}

while(i < {2}):

{3}

i += 1

7.      Darbināt programmu, izdrukājas Sum = 45.