Лабы / Отчёт Лаба 8
.docxЛабораторная работа № 8
Программирование с применением функций
выполнила Бибикова А.А
ИВТ-245
8.1
Схема алгоритма:
#include <stdio.h>
#include <locale.h>
// Функция для обработки массивов
void pr(int a1[], int a2[], int res[], int size) {
for (int i = 0; i < size; i++) {
if (a1[i] != a2[i]) {
res[i] = a1[i] + a2[i];
}
else {
res[i] = a1[i];
}
}
}
// Функция для вывода массива
void pri(int a[], int size) {
for (int i = 0; i < size; i++) {
printf("%d ", a[i]);
}
printf("\n");
}
int main() {
setlocale(LC_ALL, "RUS");
int a[10] = { 5, 2, 7, 1, 8, 3, 4, 5, 6, 6 };
int b[10] = { 4, 1, 7, 3, 8, 9, 1, 5, 3, 6 };
int c[10];
int d[5] = { 10, 20, 30, 40, 50 };
int e[5] = { 5, 20, 15, 40, 5 };
int f[5];
pr(a, b, c, 10);
printf("Результат обработки массивов a и b:\n");
pri(c, 10);
pr(d, e, f, 5);
printf("Результат обработки массивов d и e:\n");
pri(f, 5);
return 0;
}
8.2
Схема алгоритма:
#include <stdio.h>
#include <locale.h>
void pr(int a[], int b[], int c[], int size) {
for (int i = 0; i < size; i++) {
if (a[i] != b[i]) {
c[i] = a[i] + b[i];
}
else {
c[i] = a[i];
}
}
}
void in(int arr[], int size, const char* name) {
printf("Введите элементы массива %s: ", name);
for (int i = 0; i < size; i++) {
printf("%s[%d]:", name, i);
scanf_s("%d", &arr[i]);
}
}
void out(int arr[], int size) {
printf("Результаты: ");
for (int i = 0; i < size; i++) {
printf("%d ", arr[i]);
}
printf("\n");
}
int main() {
setlocale(LC_ALL, "RUS");
const int SIZE = 10;
int a[SIZE], b[SIZE], c[SIZE];
in(a, SIZE, "A");
in(b, SIZE, "B");
pr(a, b, c, SIZE);
out(c, SIZE);
int d[SIZE], e[SIZE], f[SIZE];
in(d, SIZE, "D");
in(e, SIZE, "E");
pr(d, e, f, SIZE);
out(f, SIZE);
return 0;
}
8.3
Схема алгоритма:
#include <stdio.h>
#include <math.h>
#include <locale.h>
#define SIZE_A 6
#define SIZE_B 8
#define SIZE_C 7
double geo(double a[], int size) {
setlocale(LC_ALL, "RUS");
double pr = 1.0;
int c = 0;
for (int i = 0; i < size; i++) {
if (a[i] > 0) {
pr *= a[i];
c++;
}
}
if (c > 0) {
return pow(pr, 1.0 / c);
}
else {
return -1;
}
}
int main() {
double A[SIZE_A] = { 1.0, -2.0, 3.0, 4.0, -5.0, 6.0 };
double B[SIZE_B] = { 0.5, 2.5, -1.0, 8.0, 3.0, -3.0, 9.0, 4.0 };
double C[SIZE_C] = { -1.0, -2.0, -3.0, -4.0, -5.0, 10.0, 12.0 };
double mA = geo(A, SIZE_A);
double mB = geo(B, SIZE_B);
double mC = geo(C, SIZE_C);
if (mA >= 0) {
printf("Среднее геометрическое положительных элементов массива A: %.2f \n", mA);
}
else {
printf("В массиве A нет положительных элементов \n");
}
if (mB >= 0) {
printf("Среднее геометрическое положительных элементов массива B: %.2f\n", mB);
}
else {
printf("В массиве B нет положительных элементов \n");
}
if (mC >= 0) {
printf("Среднее геометрическое положительных элементов массива C: %.2f\n", mC);
}
else {
printf("В массиве C нет положительных элементов \n");
}
return 0;
}
