Laboratorijas darbs 8.1. Masīva/saraksta apstrāde

Dots viendimensijas masīvs ar veseliem skaitļiem.

a.       C++ (lab8.1.cpp):

#include <iostream>

using namespace std;

const int arr_size = 11;

 

int main ()

{

    int arr[arr_size]={0,-2,0,-10,2,-1,0,0,3,2,-3};

    return 0;

}

b.      Python (lab8.1.py):

arr=[0,-2,0,-10,2,-1,0,0,3,2,-3]

 

Noskaidrot masīvā zīmju nomaiņu skaitu (no + un – vai otrādi, ievērojot, ka skaitlim 0 nav zīmes).

Algoritms iet pa masīvu no sākuma uz beigām un salīdzina blakusesošos skaitļus – ja šo skaitļu zīmes atšķiras, tad pāris tiek pieskaitīts.

Piemēram

0

-2

0

-10

2

-1

0

0

3

2

-3

jāatgriež 3, jo (-10->2; 2->-1; 2->-3)

 (lab8.1a.cpp, lab8.1a.py).

 

 

Laboratorijas darbs 8.2. Masīva apstrāde

Dots skaitļu masīvs m (lab8.2.cpp).

#include <iostream>

using namespace std;

const int arr_size = 6;

 

int main ()

{

    double arr[arr_size]={1, 2, 3.5, -5, 6.2, 0};

    for (int i=0; i<arr_size; i++) cout << arr[i] << endl;

    return 0;

}

Nomainīt katra elementa mi vērtību ar masīva pirmo i elementu vidējo vērtību.

Piemēram

1

2

3.5

-5

6.2

0

jāpārveido par

1

1.5

2.1667

0.375

1.54

1.2833

 (lab8.2a.cpp).

Jo

1.5 = (1+2)/2

2.1667 = (1+2+3.5)/3

...

1.2833 = (1+2+3.5-5+6.2+0)/6

 

 

Laboratorijas darbs 8.3. Divu dimensiju masīva apstrāde

Uzdevums ar masīvu.

Dota matrica A(m,n) kā divu dimensiju masīvs ar veseliem skaitļiem (lab8.3.cpp).

#include <iostream>

#include <iomanip>

using namespace std;

const int m = 3;

const int n = 4;

 

int main ()

{

    int arr[m][n]={{3, 8, 4, 6},

                   {2, 7, 1, 5},

                   {0, 9, -1, 2}};

    for (int i=0; i<m; i++, cout<<endl)

    {

        for (int k=0; k<n; k++) cout << setw(4) << arr[i][k];

    };

    return 0;

}

3

8

4

6

2

7

1

5

0

9

-1

2

Nomainīt katru matricas elementu aij ar minimālo apakšmatricas A’(i,j) vērtību – apakšmatrica izvietota matricas A kreisajā augšējā stūrī.

3

3

3

3

2

2

1

1

0

0

-1

-1

 (lab8.3a.cpp).