// // Zadanie 3.1.7. // Napisz procedurę, której argumentami są dwie tablice typu double // o tej samej długości, zapisującą do pierwszej z nich sumę kolejnych // elementów obu tablic. Napisz program demonstrujący działanie procedury. // #include <iostream> using namespace std; // Procedury (w odróżnieniu od funkcji) nie zwracają wartości, czyli są // typu void. Procedura otrzymuje wskaźniki na obie tablice (przy czym zapisy // double *x oraz double x[] są równoważne) oraz ich wspólny rozmiar. void proc(double *v1, double *v2, int sz) { for (int i = 0; i < sz; i++) v1[i] += v2[i]; return; } int main() { int size = 16; double *t1 = new double[size]; double *t2 = new double[size]; // Wypełnienie pierwszej tablicy wartościami 2*n (na przykład) for (int i = 0; i < size; i++) t1[i] = 2 * i; // Wypełnienie drugiej tablicy wartościami n+1 (na przykład) for (int i = 0; i < size; i++) t2[i] = i + 1; // Wypisanie elementów pierwszej tablicy cout << "t1 = ["; for (int i = 0; i < size - 1; i++) cout << t1[i] << ", "; cout << t1[size - 1] << "]" << endl; // Wypisanie elementów drugiej tablicy cout << "t2 = ["; for (int i = 0; i < size - 1; i++) cout << t2[i] << ", "; cout << t2[size - 1] << "]" << endl; // Wywołanie procedury cout << "proc(t1, t2, " << size << ")" << endl; proc(t1, t2, size); // Ponowne wypisanie elementów pierwszej tablicy cout << "t1 = ["; for (int i = 0; i < size - 1; i++) cout << t1[i] << ", "; cout << t1[size - 1] << "]" << endl; // Ponowne wypisanie elementów drugiej tablicy cout << "t2 = ["; for (int i = 0; i < size - 1; i++) cout << t2[i] << ", "; cout << t2[size - 1] << "]" << endl; // Zwolnienie pamięci delete[] t1; delete[] t2; return 0; }
Standard input is empty
t1 = [0, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30] t2 = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16] proc(t1, t2, 16) t1 = [1, 4, 7, 10, 13, 16, 19, 22, 25, 28, 31, 34, 37, 40, 43, 46] t2 = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16]