mirror of
https://github.com/Kaehvaman/OAIP.git
synced 2025-01-31 09:28:24 +04:00
exam training variant
This commit is contained in:
parent
0c32b4dd13
commit
1b2ab06b3a
@ -13,9 +13,9 @@
|
|||||||
#include "dynamic_memory.h"
|
#include "dynamic_memory.h"
|
||||||
#include "memory_arena.h"
|
#include "memory_arena.h"
|
||||||
|
|
||||||
#define MAP_X 1200
|
#define MAP_X 100
|
||||||
#define MAP_Y 600
|
#define MAP_Y 100
|
||||||
#define CELL_SIZE 2
|
#define CELL_SIZE 10
|
||||||
#define FCELL_SIZE (float)CELL_SIZE
|
#define FCELL_SIZE (float)CELL_SIZE
|
||||||
#define BOTTOM_BAR_HEIGHT 60
|
#define BOTTOM_BAR_HEIGHT 60
|
||||||
|
|
||||||
@ -74,22 +74,24 @@ static inline single_gol(int x, int y)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
int gol_thread(void* arg_ptr)
|
int gol_thread(void* arg_ptr)
|
||||||
{
|
{
|
||||||
golArgs args = *(golArgs*)(arg_ptr);
|
golArgs args = *(golArgs*)(arg_ptr);
|
||||||
|
|
||||||
for (int x = args.startX; x < args.endX; x++) {
|
for (int x = args.startX + 1; x < args.endX - 1; x++) {
|
||||||
for (int y = args.startY; y < args.endY; y++) {
|
for (int y = args.startY + 1; y < args.endY - 1; y++) {
|
||||||
int neighbours = 0;
|
int neighbours = 0;
|
||||||
|
|
||||||
neighbours += checkCell(x - 1, y);
|
neighbours += map[x - 1][y];
|
||||||
neighbours += checkCell(x - 1, y + 1);
|
neighbours += map[x - 1][y + 1];
|
||||||
neighbours += checkCell(x - 1, y - 1);
|
neighbours += map[x - 1][y - 1];
|
||||||
neighbours += checkCell(x + 1, y);
|
neighbours += map[x + 1][y];
|
||||||
neighbours += checkCell(x + 1, y + 1);
|
neighbours += map[x + 1][y + 1];
|
||||||
neighbours += checkCell(x + 1, y - 1);
|
neighbours += map[x + 1][y - 1];
|
||||||
neighbours += checkCell(x, y + 1);
|
neighbours += map[x][y + 1];
|
||||||
neighbours += checkCell(x, y - 1);
|
neighbours += map[x][y - 1];
|
||||||
|
|
||||||
if (neighbours == 2) {
|
if (neighbours == 2) {
|
||||||
tempMap[x][y] = map[x][y];
|
tempMap[x][y] = map[x][y];
|
||||||
@ -104,10 +106,38 @@ int gol_thread(void* arg_ptr)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
single_gol(args.startX, args.startY);
|
for (int x = args.startX; x < args.endX; x++) {
|
||||||
single_gol(args.startX, args.endY);
|
int neighbours = 0;
|
||||||
single_gol(args.endX, args.startY);
|
|
||||||
single_gol(args.endX, args.endY);
|
neighbours += map[x - 1][y];
|
||||||
|
neighbours += map[x - 1][y + 1];
|
||||||
|
neighbours += map[x - 1][y - 1];
|
||||||
|
neighbours += map[x + 1][y];
|
||||||
|
neighbours += map[x + 1][y + 1];
|
||||||
|
neighbours += map[x + 1][y - 1];
|
||||||
|
neighbours += map[x][y + 1];
|
||||||
|
neighbours += map[x][y - 1];
|
||||||
|
|
||||||
|
if (neighbours == 2) {
|
||||||
|
tempMap[x][y] = map[x][y];
|
||||||
|
}
|
||||||
|
else if (neighbours == 3) {
|
||||||
|
tempMap[x][y] = true;
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
tempMap[x][y] = false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
for (int x = args.startX; x < args.endX; x++) {
|
||||||
|
|
||||||
|
}
|
||||||
|
for (int y = args.startY; y < args.endY; y++) {
|
||||||
|
|
||||||
|
}
|
||||||
|
for (int y = args.startY; y < args.endY; y++) {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
@ -1,7 +1,6 @@
|
|||||||
#define _CRT_SECURE_NO_WARNINGS
|
#define _CRT_SECURE_NO_WARNINGS
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include <Windows.h>
|
#include <Windows.h>
|
||||||
#include <stdlib.h>
|
|
||||||
|
|
||||||
int N1;
|
int N1;
|
||||||
int N2;
|
int N2;
|
||||||
@ -122,6 +121,45 @@ void deleteRow(int row)
|
|||||||
N2 -= 1;
|
N2 -= 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void addRow() {
|
||||||
|
if (N2 + 1 <= MAX_N2) {
|
||||||
|
for (int m = 0; m < M2; m++) {
|
||||||
|
A2[N2][m] = 0;
|
||||||
|
}
|
||||||
|
N2++;
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
printf("Äîñòèãíóò ìàêñèìóì ñòðîê!\n");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void insertRow(int row) {
|
||||||
|
if (N2 + 1 <= MAX_N2) {
|
||||||
|
for (int n = N2; n > row; n--) {
|
||||||
|
for (int m = 0; m < M2; m++) {
|
||||||
|
A2[n][m] = A2[n - 1][m];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
for (int m = 0; m < M2; m++) {
|
||||||
|
A2[row][m] = 0;
|
||||||
|
}
|
||||||
|
N2++;
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
printf("Äîñòèãíóò ìàêñèìóì ñòðîê!\n");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void deleteColumn(int column)
|
||||||
|
{
|
||||||
|
for (int n = 0; n < N2; n++) {
|
||||||
|
for (int m = column; m < M2 - 1; m++) {
|
||||||
|
A2[n][m] = A2[n][m + 1];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
M2 -= 1;
|
||||||
|
}
|
||||||
|
|
||||||
void addColumn() {
|
void addColumn() {
|
||||||
if (M2 + 1 <= MAX_M2) {
|
if (M2 + 1 <= MAX_M2) {
|
||||||
for (int n = 0; n < N2; n++) {
|
for (int n = 0; n < N2; n++) {
|
||||||
@ -151,28 +189,12 @@ void insertColumn(int column) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void insertRow(int row) {
|
|
||||||
if (N2 + 1 <= MAX_N2) {
|
|
||||||
for (int n = N2; n > row; n--) {
|
|
||||||
for (int m = 0; m < M2; m++) {
|
|
||||||
A2[n][m] = A2[n - 1][m];
|
|
||||||
}
|
|
||||||
}
|
|
||||||
for (int m = 0; m < M2; m++) {
|
|
||||||
A2[row][m] = 0;
|
|
||||||
}
|
|
||||||
N2++;
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
printf("Äîñòèãíóò ìàêñèìóì ñòðîê!\n");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
void task3() {
|
void task3() {
|
||||||
for (int n = 0; n < N2; n++) {
|
for (int n = 0; n < N2; n++) {
|
||||||
for (int m = 0; m < M2; m++) {
|
for (int m = 0; m < M2; m++) {
|
||||||
if (A2[n][m] < 0) {
|
if (A2[n][m] < 0) {
|
||||||
deleteRow(n);
|
deleteRow(n);
|
||||||
|
n--;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -185,7 +207,7 @@ int main()
|
|||||||
SetConsoleCP(1251);
|
SetConsoleCP(1251);
|
||||||
SetConsoleOutputCP(1251);
|
SetConsoleOutputCP(1251);
|
||||||
|
|
||||||
loadLists("test.txt");
|
loadLists("test1.txt");
|
||||||
printLists();
|
printLists();
|
||||||
|
|
||||||
task2();
|
task2();
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
6
|
6
|
||||||
1 2 104 106 7 8
|
1 2 104 106 7 8
|
||||||
2 4
|
2 4
|
||||||
-2 -1 0 1
|
6 4 5 1
|
||||||
2 3 4 3
|
2 3 4 3
|
||||||
|
10
exam test variant/exam test variant/test1.txt
Normal file
10
exam test variant/exam test variant/test1.txt
Normal file
@ -0,0 +1,10 @@
|
|||||||
|
6
|
||||||
|
1 2 4 6 7 8
|
||||||
|
7 4
|
||||||
|
-2 -1 0 1
|
||||||
|
3 4 -5 6
|
||||||
|
6 4 5 1
|
||||||
|
10 -1 0 1
|
||||||
|
2 3 4 3
|
||||||
|
2 1 0 -1
|
||||||
|
5 -6 7 -8
|
Loading…
Reference in New Issue
Block a user