diff --git a/bash/summ b/bash/summ new file mode 100755 index 0000000..2288b5c Binary files /dev/null and b/bash/summ differ diff --git a/bash/task.sh b/bash/task.sh old mode 100644 new mode 100755 index e69de29..df96fb4 --- a/bash/task.sh +++ b/bash/task.sh @@ -0,0 +1,57 @@ +#!/bin/bash + +CpArray_Mac() { + +# Оператор Присваивания + + echo -n 'eval ' + echo -n "$2" # Имя массива-результата + echo -n '=( ${' + echo -n "$1" # Имя исходного массива + echo -n '[@]} )' + +# Все это могло бы быть объединено в одну команду. +# Это лишь вопрос стиля. +} + +declare -f CopyArray # "Указатель" на функцию +CopyArray=CpArray_Mac # Оператор Присваивания + +Hype() +{ + +# Исходный массив с именем в $1. +# (Слить с массивом, содержащим "-- Настоящий Рок-н-Ролл".) +# Вернуть результат в массиве с именем $2. + + local -a TMP + local -a hype=( -- Настоящий Рок-н-Ролл ) + + $($CopyArray $1 TMP) + TMP=( ${TMP[@]} ${hype[@]} ) + $($CopyArray TMP $2) +} + +declare -a before=( Advanced Bash Scripting ) +declare -a after + +echo "Массив before = ${before[@]}" + +Hype before after + +echo "Массив after = ${after[@]}" + +# Еще? + +echo "Что такое ${after[@]:4:2}?" + +declare -a modest=( ${after[@]:2:1} ${after[@]:3:3} ) +# ---- выделение подстроки ---- + +echo "Массив Modest = ${modest[@]}" + +# А что в массиве 'before' ? + +echo "Массив Before = ${before[@]}" + +exit 0 diff --git a/bash/task2.sh b/bash/task2.sh new file mode 100755 index 0000000..34c028c --- /dev/null +++ b/bash/task2.sh @@ -0,0 +1,15 @@ +#!/bin/bash + +arg1_test=( 2 -3 5 -7 -200 5 -1 -1 ) +arg2_test=( 2 3 4 5 100 0 -1 -23 ) +result=( 4 0 10 -2 -100 5 -2 -24 ) + +for i in ${!arg1_test[@]} +do + output=$(./summ ${arg1_test[$i]} ${arg2_test[$i]}) + if [ $output -eq ${result[$i]} ]; then + echo "PASS" + else + echo "FAIL" + fi +done diff --git a/cpp/task.cpp b/cpp/task.cpp deleted file mode 100644 index e69de29..0000000 diff --git a/cpp/task.h b/cpp/task.h deleted file mode 100644 index e69de29..0000000 diff --git a/cpp/task1/CMakeLists.txt b/cpp/task1/CMakeLists.txt new file mode 100644 index 0000000..b162b8c --- /dev/null +++ b/cpp/task1/CMakeLists.txt @@ -0,0 +1,14 @@ +cmake_minimum_required(VERSION 3.10) + +# Укажите имя проекта +project(task1) + +# Укажите стандарт C++ +set(CMAKE_CXX_STANDARD 17) +set(CMAKE_CXX_STANDARD_REQUIRED True) + +set(SOURCE ${CMAKE_CURRENT_SOURCE}/main.cpp) + +# Добавьте исполняемый файл +add_executable(${CMAKE_PROJECT} ${SOURCE}) + diff --git a/cpp/task1/main.cpp b/cpp/task1/main.cpp new file mode 100644 index 0000000..b0aa9e0 --- /dev/null +++ b/cpp/task1/main.cpp @@ -0,0 +1,12 @@ +#include +#include + +int main (int argc, char *argv[]) { + int summ = 0; + for (int i = 1; i < argc; i++) { + summ += std::stoi(argv[i]); + } + std::cout << summ; + + return 0; +}