Skip to content
Open

1 #1

Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
.vscode
build
50 changes: 50 additions & 0 deletions .travis.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@
dist: focal
sudo: required # используем Virtual Machine (а не Docker container)

language: c

os:
- linux

compiler:
- gcc

addons:
apt:
packages:
- cmake
- lcov
- gcovr

install:
- sudo apt -y install python3-pip
- sudo apt-get install valgrind
- sudo pip3 install cpplint
- sudo apt update
- sudo apt install build-essential
- sudo apt install libgtest-dev
- sudo apt-get install cmake
- sudo apt-get install -y gcovr
- sudo apt install lcov
- sudo apt install cppcheck
- sudo apt install curl

before_script:
- sudo apt-get install -y libgtest-dev
- cd /usr/src/gtest
- sudo cmake CMakeLists.txt && sudo make
- cd "${TRAVIS_BUILD_DIR}"/
- sudo mkdir build
- sudo cd build
- sudo cmake ..
- sudo make clean
- sudo make
- cd ..
- cd ..

script:
- cpplint --extensions=c,cpp src/main.c src/find_letters.c include/testy/find_letters.h test/main.cpp
- cppcheck --enable=warning,performance,portability,style --language=c++ ./
- valgrind --track-origins=yes --child-silent-after-fork=yes --leak-check=full "${TRAVIS_BUILD_DIR}"/build/TEST
- cd "${TRAVIS_BUILD_DIR}"/src
- bash <(curl -s https://codecov.io/bash)
8 changes: 8 additions & 0 deletions .vscode/settings.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
{
"C_Cpp.errorSquiggles": "Disabled",
"files.associations": {
"find_letters.h": "c",
"stdio.h": "c",
"types.h": "c"
}
}
51 changes: 51 additions & 0 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
cmake_minimum_required(VERSION 3.16)
project(try C CXX)

set(CMAKE_C_STANDARD 11)
set(CMAKE_CXX_STANDARD 17)

set(CMAKE_C_FLAGS "-g -Wall -Werror -Wextra -O3 -fprofile-arcs -ftest-coverage")
set(CMAKE_CXX_FLAGS "-g -Wall -O3 -fprofile-arcs -ftest-coverage")

find_package(GTest REQUIRED)
find_package(Threads REQUIRED)



set(DIR ${CMAKE_CURRENT_SOURCE_DIR})
add_definitions(-DSOURCE_DIR="${CMAKE_CURRENT_SOURCE_DIR}")

set(INC_DIR ${DIR}/include/testy)

set(SRC_DIR ${DIR}/src)

set(TESTS_DIR ${DIR}/test)

include_directories("${GTEST_INCLUDE_DIRS}")
include_directories(/include/testy)

add_library(f_letter STATIC
${INC_DIR}/find_letters.h
${SRC_DIR}/find_letters.c)

add_library(multi_compute_matrix MODULE
${INC_DIR}/find_letters.h
${SRC_DIR}/find_letters.c)

add_executable(TEST
test/main.cpp)

target_include_directories(TEST PUBLIC ${INC_DIR})

target_link_libraries(TEST ${GTEST_LIBRARIES} Threads::Threads pthread -ldl f_letter)

enable_testing()



add_executable(try
${SRC_DIR}/main.c)

target_link_libraries(try Threads::Threads pthread -ldl f_letter)

target_include_directories(try PUBLIC ${INC_DIR})
19 changes: 19 additions & 0 deletions CMakeLists.txt.in
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
cmake_minimum_required(VERSION 3.1)

project(googletest-download NONE)

set(CMAKE_CXX_STANDARD 11)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS}-pthread")

include(ExternalProject)
ExternalProject_Add(googletest
GIT_REPOSITORY https://github.com/google/googletest.git
GIT_TAG release-1.8.1
SOURCE_DIR "${CMAKE_BINARY_DIR}/googletest-src"
BINARY_DIR "${CMAKE_BINARY_DIR}/googletest-build"
CONFIGURE_COMMAND ""
BUILD_COMMAND ""
INSTALL_COMMAND ""
TEST_COMMAND ""
)
6 changes: 6 additions & 0 deletions CPPLINT.cfg
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
headers=h
linelength=120
filter=-runtime/int
filter=-legal/copyright
filter=-build/include_subdir
filter=-build/include
9 changes: 3 additions & 6 deletions README.rst
Original file line number Diff line number Diff line change
@@ -1,14 +1,11 @@
.. image:: https://travis-ci.com/Golem24434/IZ2.svg?branch=other
:target: https://travis-ci.com/Golem24434/IZ2
.. image:: https://codecov.io/gh/Golem24434/IZ2/branch/other/graph/badge.svg?token=A9Q0DV7S7K
:target: https://codecov.io/gh/Golem24434/IZ2
:target: https://travis-ci.com/Golem24434/IZ2CD

Второе индивидуальное задание по курсу "Углубленное программирование на C/C++
-----------------------------------------------------------------------------

Вариант #12
В вашем распоряжении — квадратная матрица из 10 000 x 10 000 чисел. Составьте наивный алгоритм подсчета сумм диагональных элементов матрицы (для каждой диагонали), а затем реализуйте параллельный алгоритм с использованием нескольких процессов с учетом оптимизации работы с кэш-памятью.

Вариант #35
В вашем распоряжении – данные о письмах пользователей (отправитель, список получателей, тема, тело письма, дата отправки). Суммарное количество пользователей – 10к, писем – 1 млн. Реализуйте последовательный и параллельный алгоритм поиска с использованием нескольких процессов тем всех писем, которые были получены пользователем в определённый временной промежуток, отсортированных по дате.
На что необходимо обратить внимание:
- основная информация описана в https://park.mail.ru/blog/topic/view/14270/
- параллельная реализация не должна быть осуществлена с помощью процессов, когда требуется реализация с помощью потоков (и наоборот);
Expand Down
Loading