/**
* @file Main.cpp
* @autor Коваленко І. В. 515б
* @date 20.03.2023
* @brief Лабораторна робота №3, варіант 11
*
* Використання масивів. Завдання 3
*/
#include "Module.h"
#include <stdio.h>
#include <stdlib.h>
#include <locale.h>
#include <time.h>
int main(void) {
//подключение языковых пакетов
setlocale(LC_ALL, "ru");
srand(time(NULL));
//создание ключевых переменных
int arr[COL][ROW] = { {0}, {0} };
int* parr = &arr[0][0];
//выбор и заполнение массива
fill_array(parr);
//вывод массива на экран
show_array(parr);
//Сумма выбраных элементов
printf("\n");
printf("Сумма выбраных элементов: %i\n", Foonk1(parr));
printf("\n");
//Показатель подматрицы
printf("Показатель подматрицы 3х3: %i\n", Foonk2(parr));
printf("\n");
//Завершение программы
printf("Завершение програмы.");
}
#define PRIVATE static
#define PUBLIC
#define ERROR 0
#define CORRECT 1
#define ROW 7
#define COL 7
#define LINE "+===============+===============+===============+===============+===============+===============+===============+\n"
#define INFO_LINE "\t+====================================+\n"
#define bool int
void show_array(int* parr);
void fill_array(int* parr);
int Foonk1(int* parr);
int Foonk2(int* parr);
#include "Module.h"
#include <stdio.h>
#include <stdlib.h>
//Вывод массива на экран
PUBLIC void show_array(int* parr) {
printf("Ваш массив: \n\n");
printf(LINE);
for (int i = 0; i < COL * ROW; i++) {
printf("| \t%i\t", *(parr + i));
if (!((i + 1) % 7)) {
printf("|\n");
printf(LINE);
}
}
}
//заполнение массива
PUBLIC void fill_array(int* parr) {
printf("Выбирете способ заполнения вашего вектора: \n");
printf(INFO_LINE);
printf("\t| f - заполнение вручную |\n");
printf("\t| r - заполнение случайными числами |\n");
printf(INFO_LINE);
char choise;
bool cor_choise = 0;
do {
choise = getchar();
if (choise == 'f' || choise == 'r')
cor_choise = 1;
} while (cor_choise == 0);
if (choise == 'f') {
for (int i = 0; i < COL * ROW; i++) {
printf("Введите число: \n");
int j = 0;
scanf("%i", &j);
*(parr + i) = j;
show_array(parr);
}
}
else {
for (int i = 0; i < COL * ROW; i++) {
*(parr + i) = rand() % 21 - 10;
}
}
}
//сумма выбраных элементов
PUBLIC int Foonk1(int* parr) {
return *(parr + 6) + *(parr + 12) + *(parr + 18) + *(parr + 30) + *(parr + 36) + *(parr + 42);
}
/*
*parr 17 *parr 18 *parr 19
*parr 24 *parr 25 *parr 26
*parr 31 *parr 32 *parr 33
*/
//показатель подматрицы
PUBLIC int Foonk2(int* parr) {
int K1, K2, K3, K4, K5, K6;
K1 = *(parr + 17) * *(parr + 25) * *(parr + 33);
K2 = *(parr + 18) * *(parr + 26) * *(parr + 31);
K3 = *(parr + 19) * *(parr + 32) * *(parr + 24);
K4 = *(parr + 19) * *(parr + 25) * *(parr + 31);
K5 = *(parr + 18) * *(parr + 24) * *(parr + 33);
K6 = *(parr + 17) * *(parr + 26) * *(parr + 32);
return K1 + K2 + K3 - K4 - K5 - K6;
}