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