3

Run Settings
LanguageC
Language Version
Run Command
#include <stdio.h> #include <time.h> #include <stdlib.h> #include <locale.h> #include "prototypes.h" int main() { setlocale(LC_ALL, "Ukr"); int input; int array[MATRIX_WIDTH][MATRIX_HEIGHT]; printf("Виберiть спосіб заповнення матриці: \n1 - з клавiатури \n2 - випадковi числа\n"); scanf_s("%d", &input); switch (input) { //заповнення з клавіатури case 1: from_keyboard(array); break; //випадкове заповнення case 2: by_random(array); break; //невірне введення default:printf("Некоректне введення"); return 0; } output(array); printf("Сума видiлених елементiв матрицi = %d\n", summ(array)); printf("Визначник пiдматрицi = %ld", determinant(array)); }
#include "prototypes.h" //функція заповнення матриці з клавіатури void from_keyboard(int array[]) { for (int i = 0; i < MATRIX_WIDTH*MATRIX_HEIGHT; i++) { printf("Введіть %d число: ",i+1); scanf_s("%d", &array[i]); } } //функція заповнення матриці випадковими числами void by_random(int array[]) { srand(time(0)); for (int i = 0; i < MATRIX_WIDTH * MATRIX_HEIGHT; i++) array[i] = (rand() % (N * 2) - N); } //функція виведення матриці void output(int array[]) { printf("Ваша матриця: \n"); for (int i = 0; i < MATRIX_WIDTH * MATRIX_HEIGHT; i++) { printf("\t%d", array[i]); if (i != 0 && (i == 6 || (i + 1) % 7 == 0)) printf("\n"); } } //функція обчислення суми виділених елементів int summ(int array[]) { int temp = 0; for (int i = 1; i < MATRIX_WIDTH * MATRIX_HEIGHT; i += 2) { temp += array[i]; } return temp; } //функція обчислення визначника підматриці 3х3 long determinant(int array[]) { //обчислення мінорів int minor1 = array[32] * array[40] - array[39] * array[33]; int minor2 = array[31] * array[40] - array[38] * array[33]; int minor3 = array[31] * array[39] - array[38] * array[32]; //обчислення визначника return (array[24]*minor1 - array[25] * minor2 + array[26] * minor3); }
#ifndef PROTOTYPES #define PROTOTYPES #include "constants.h" void from_keyboard(int array[]); void by_random(int array[]); void output(int array[]); int summ(int array[]); long determinant(int array[]); #endif
#ifndef CONST #define CONST #define N 120 #define MATRIX_WIDTH 7 #define MATRIX_HEIGHT 7 #endif
#include "pch.h" #include "..\task3\module1.c" TEST(SUMM, TEST1) { int array[7][7] = { 1,1,1,1,1,1,1, 1,1,1,1,1,1,1, 1,1,1,1,1,1,1, 1,1,1,1,1,1,1, 1,1,1,1,1,1,1, 1,1,1,1,1,1,1, 1,1,1,1,1,1,1 }; int* a = &array[0][0]; EXPECT_EQ(summ(a), 24); EXPECT_EQ(determinant(a), 0); } TEST(SUMM, TEST2) { int array[7][7], * a = &array[0][0]; for (int i = 0; i < 49; i++) { *(a + i) = i + 1; } EXPECT_EQ(600, summ(a)); EXPECT_EQ(0, determinant(a)); } TEST(SUMM, TEST3) { int array[7][7] = { 120,-35,6,13,18,22,-42, 59,7,-35,64,-13,23,14, 67,-13,0,62,32,-95,15, 85,32,-43,85,27,-16,57, 102,15,-1,-49,1,-10,6, 14,-11,21,4,-2,67,13, 12,101,53,-105,8,16,58 }; int* a = &array[0][0]; EXPECT_EQ(summ(a), 119); EXPECT_EQ(determinant(a), 90052); }
Editor Settings
Theme
Key bindings
Full width
Lines