bsc

Comprehensive codebase and cou...
Log | Files | Refs | Activity | README | LICENSE

commit 0c161fef35923a8ba2185d361afe2fb40769cd75
parent 223130840c990274e45f97b57c2a6cfc427437b0
Author: Amit Dutta <mail@amit.is-a.dev>
Date:   Sun, 26 Jul 2026 12:43:21 +0530

added assignments

Diffstat:
M.vscode/tasks.json | 6+++---
Asemester_2/assignments/assignment_01.cpp | 151++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Asemester_2/assignments/assignments.odt | 0
Asemester_2/assignments/assignments.pdf | 0
4 files changed, 154 insertions(+), 3 deletions(-)

diff --git a/.vscode/tasks.json b/.vscode/tasks.json @@ -18,7 +18,7 @@ { "label": "C/C++: build active file", "type": "shell", - "command": "if [ \"${fileExtname}\" = \".cpp\" ]; then c=\"g++\"; else c=\"gcc\"; fi; exe=\"${fileDirname}/${fileBasenameNoExtension}\"; B=\"━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\"; fnH() { if [ \"${2:-true}\" = \"true\" ]; then echo \"\"; fi; echo -e \"\\e[90m$B\\e[0m\"; echo -e \" \\e[36m$1\\e[0m\"; echo -e \"\\e[90m$B\\e[0m\"; echo \"\"; }; fnR() { printf \"%-15s\" \"$1\"; echo -e \"\\e[${3:-0}m$2\\e[0m\"; }; fnT() { if [ $1 -ge 1000 ]; then echo \"$((1 / 1000)) sec ($1 ms)\"; else echo \"$1 ms\"; fi; }; fnH \"BUILD\" false; echo \"Compiling ${fileBasename}...\"; echo \"\"; start_t=$(date +%s%3N); out=$($c -fdiagnostics-color=always -g \"${file}\" -o \"$exe\" 2>&1); bexit=$?; end_t=$(date +%s%3N); bms=$((end_t - start_t)); if [ -n \"$out\" ]; then echo -e \"$out\"; fi; w=$(echo \"$out\" | grep -ic \"warning:\"); e=$(echo \"$out\" | grep -ic \"error:\"); if [ $bexit -eq 0 ]; then bs=\"✓ Success\"; bc=\"32\"; else bs=\"✗ Failed\"; bc=\"31\"; fi; echo -e \"\\e[${bc}m${bs} in $(fnT $bms)\\e[0m\"; fnH \"BUILD REPORT\"; fnR \"File\" \"${fileBasename}\"; fnR \"Compiler\" \"$c\"; fnR \"Target\" \"x64\"; fnR \"Build\" \"$bs\" \"$bc\"; if [ $w -gt 0 ]; then wc=\"33\"; else wc=\"0\"; fi; fnR \"Warnings\" \"$w\" \"$wc\"; if [ $e -gt 0 ]; then ec=\"31\"; else ec=\"0\"; fi; fnR \"Errors\" \"$e\" \"$ec\"; if [ -f \"$exe\" ]; then sz=$(du -h \"$exe\" | cut -f1); fnR \"Size\" \"$sz\"; fi; fnR \"Build Time\" \"$(fnT $bms)\"; if [ $bexit -ne 0 ]; then exit 1; fi; exit 0", + "command": "if [ \"${fileExtname}\" = \".cpp\" ]; then c=\"g++\"; else c=\"gcc\"; fi; exe=\"${fileDirname}/${fileBasenameNoExtension}\"; fnT() { if [ $1 -ge 1000 ]; then echo \"$(($1/1000)).$(( ($1%1000)/100 ))s\"; else echo \"${1}ms\"; fi; }; echo -e \"\\e[36m▶\\e[0m Building \\e[1m${fileBasename}\\e[0m \\e[90m($c)\\e[0m\"; start_t=$(date +%s%3N); out=$($c -fdiagnostics-color=always -g \"${file}\" -o \"$exe\" 2>&1); bexit=$?; end_t=$(date +%s%3N); bms=$((end_t - start_t)); if [ -n \"$out\" ]; then echo \"$out\"; fi; w=$(echo \"$out\" | grep -ic \"warning:\"); e=$(echo \"$out\" | grep -ic \"error:\"); if [ $bexit -eq 0 ]; then sz=$(du -h \"$exe\" 2>/dev/null | cut -f1); echo -e \"\\e[32m✓ build ok\\e[0m \\e[90min $(fnT $bms) · $w warn · $sz\\e[0m\"; else echo -e \"\\e[31m✗ build failed\\e[0m \\e[90min $(fnT $bms) · $e error(s) · $w warn\\e[0m\"; fi; exit $bexit", "args": [], "options": { "cwd": "${fileDirname}", @@ -34,7 +34,7 @@ { "label": "C/C++: build and run active file", "type": "shell", - "command": "if [ \"${fileExtname}\" = \".cpp\" ]; then c=\"g++\"; else c=\"gcc\"; fi; exe=\"${fileDirname}/${fileBasenameNoExtension}\"; logDir=\"/home/notamitgamer/Documents/bsc/buildLog\"; mkdir -p \"$logDir\"; ts=$(date +\"%Y-%m-%d_%H-%m-%M_%S\"); logFile=\"$logDir/buildLog_$ts.txt\"; B=\"━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\"; fnH() { title=\"$1\"; show_c=\"${2:-true}\"; show_l=\"${3:-true}\"; nl=\"${4:-true}\"; if [ \"$show_c\" = \"true\" ]; then if [ \"$nl\" = \"true\" ]; then echo \"\"; fi; echo -e \"\\e[90m$B\\e[0m\"; echo -e \" \\e[36m$title\\e[0m\"; echo -e \"\\e[90m$B\\e[0m\"; echo \"\"; fi; if [ \"$show_l\" = \"true\" ]; then if [ \"$nl\" = \"true\" ]; then echo \"\" >> \"$logFile\"; fi; echo \"$B\" >> \"$logFile\"; echo \" $title\" >> \"$logFile\"; echo \"$B\" >> \"$logFile\"; echo \"\" >> \"$logFile\"; fi; }; fnR() { pad=$(printf \"%-16s\" \"$1\"); echo -e \"${pad}\\e[${3:-0}m$2\\e[0m\"; echo \"${pad}$2\" >> \"$logFile\"; }; fnL() { echo -e \"\\e[${2:-0}m$1\\e[0m\"; clean=$(echo \"$1\" | sed -r \"s/\\x1B\\[([0-9]{1,3}(;[0-9]{1,3})*)?[mGK]//g\"); echo \"$clean\" >> \"$logFile\"; }; fnT() { if [ $1 -ge 1000 ]; then echo \"$(($1 / 1000)) sec ($1 ms)\"; else echo \"$1 ms\"; fi; }; ver=$($c --version | head -n 1); fnH \"BUILD\" true true false; fnL \"Compiling ${fileBasename}...\" \"0\"; fnL \"$ver\" \"90\"; fnL \"\" \"0\"; start_t=$(date +%s%3N); out=$($c -fdiagnostics-color=always -g \"${file}\" -o \"$exe\" 2>&1); bexit=$?; end_t=$(date +%s%3N); bms=$((end_t - start_t)); if [ -n \"$out\" ]; then echo -e \"$out\"; cleanOut=$(echo \"$out\" | sed -r \"s/\\x1B\\[([0-9]{1,3}(;[0-9]{1,3})*)?[mGK]//g\"); echo \"$cleanOut\" >> \"$logFile\"; fi; w=$(echo \"$out\" | grep -ic \"warning:\"); e=$(echo \"$out\" | grep -ic \"error:\"); if [ $bexit -eq 0 ]; then bs=\"✓ Success\"; bc=\"32\"; else bs=\"✗ Failed\"; bc=\"31\"; fi; fnL \"$bs in $(fnT $bms)\" \"$bc\"; fnH \"BUILD REPORT\"; fnR \"Source\" \"${file}\"; loc=$(wc -l < \"${file}\"); fnR \"Lines of Code\" \"$loc\"; fnR \"Timestamp\" \"$(date +'%Y-%m-%d %H:%M:%S')\"; fnR \"Compiler\" \"$c\"; fnR \"Target\" \"x64\"; fnR \"Build\" \"$bs\" \"$bc\"; if [ $w -gt 0 ]; then wc=\"33\"; else wc=\"0\"; fi; fnR \"Warnings\" \"$w\" \"$wc\"; if [ $e -gt 0 ]; then ec=\"31\"; else ec=\"0\"; fi; fnR \"Errors\" \"$e\" \"$ec\"; if [ -f \"$exe\" ]; then sz=$(du -h \"$exe\" | cut -f1); fnR \"Size\" \"$sz\"; fi; fnR \"Build Time\" \"$(fnT $bms)\"; fnR \"Log File\" \"$logFile\" \"90\"; if [ $bexit -ne 0 ]; then exit 1; fi; fnH \"RUN\" true false; rstart_t=$(date +%s%3N); \"$exe\"; rexit=$?; rend_t=$(date +%s%3N); rms=$((rend_t - rstart_t)); fnH \"EXECUTION REPORT\"; if [ $rexit -eq 0 ]; then rc=\"32\"; else rc=\"31\"; fi; fnR \"Exit Code\" \"$rexit\" \"$rc\"; fnR \"Runtime\" \"$(fnT $rms)\"; rm -f \"$exe\"; fnR \"Executable\" \"Removed\"; fnH \"SOURCE CODE\" false true; cat \"${file}\" >> \"$logFile\"; exit 0", + "command": "if [ \"${fileExtname}\" = \".cpp\" ]; then c=\"g++\"; else c=\"gcc\"; fi; exe=\"${fileDirname}/${fileBasenameNoExtension}\"; logDir=\"/home/notamitgamer/Documents/bsc/buildLog\"; mkdir -p \"$logDir\"; ts=$(date +\"%Y-%m-%d_%H-%m-%M_%S\"); logFile=\"$logDir/buildLog_$ts.txt\"; strip() { sed -r 's/\\x1B\\[([0-9]{1,3}(;[0-9]{1,3})*)?[mGK]//g'; }; log() { echo -e \"$1\"; echo -e \"$1\" | strip >> \"$logFile\"; }; fnT() { if [ $1 -ge 1000 ]; then echo \"$(($1/1000)).$(( ($1%1000)/100 ))s\"; else echo \"${1}ms\"; fi; }; ver=$($c --version | head -n 1); loc=$(wc -l < \"${file}\"); log \"\\e[90m$(date +'%Y-%m-%d %H:%M:%S') · ${loc} lines · $ver\\e[0m\"; log \"\\e[36m▶\\e[0m Building \\e[1m${fileBasename}\\e[0m \\e[90m($c)\\e[0m\"; start_t=$(date +%s%3N); out=$($c -fdiagnostics-color=always -g \"${file}\" -o \"$exe\" 2>&1); bexit=$?; end_t=$(date +%s%3N); bms=$((end_t - start_t)); if [ -n \"$out\" ]; then log \"$out\"; fi; w=$(echo \"$out\" | grep -ic \"warning:\"); e=$(echo \"$out\" | grep -ic \"error:\"); if [ $bexit -eq 0 ]; then sz=$(du -h \"$exe\" 2>/dev/null | cut -f1); log \"\\e[32m✓ build ok\\e[0m \\e[90min $(fnT $bms) · $w warn · $sz\\e[0m\"; else log \"\\e[31m✗ build failed\\e[0m \\e[90min $(fnT $bms) · $e error(s) · $w warn\\e[0m\"; log \"\\e[90mlog: $logFile\\e[0m\"; exit 1; fi; log \"\"; log \"\\e[36m▶\\e[0m Running \\e[1m${fileBasenameNoExtension}\\e[0m\"; log \"\\e[90m──────────────────────────────────────────\\e[0m\"; rstart_t=$(date +%s%3N); \"$exe\" 2>&1 | tee >(strip >> \"$logFile\"); rexit=${PIPESTATUS[0]}; rend_t=$(date +%s%3N); rms=$((rend_t - rstart_t)); log \"\\e[90m──────────────────────────────────────────\\e[0m\"; rm -f \"$exe\"; if [ $rexit -eq 0 ]; then rc=\"32\"; else rc=\"31\"; fi; log \"\\e[${rc}m■ exit $rexit\\e[0m \\e[90min $(fnT $rms)\\e[0m\"; log \"\\e[90mlog: $logFile\\e[0m\"; { echo \"\"; echo \"────── SOURCE ──────\"; cat \"${file}\"; } >> \"$logFile\"; exit 0", "args": [], "options": { "cwd": "${fileDirname}", @@ -56,7 +56,7 @@ "showReuseMessage": true, "clear": true }, - "detail": "Builds, runs, dynamic time, full logging, one-click close, flush top" + "detail": "Builds, runs, compact status lines, full logging preserved" } ] } \ No newline at end of file diff --git a/semester_2/assignments/assignment_01.cpp b/semester_2/assignments/assignment_01.cpp @@ -0,0 +1,150 @@ +#include <iostream> + +using namespace std; + +class Matrix +{ +private: + int n, *arr; + +public: + Matrix(int size) + { + n = size; + arr = new int[n * (n + 1) / 2]; + } + + void setDiagonal(int i, int j, int x) + { + if (i == j) + arr[i] = x; + } + void setLowerTri(int i, int j, int x) + { + if (i >= j) + arr[i * (i + 1) / 2 + j] = x; + } + void setUpperTri(int i, int j, int x) + { + if (i <= j) + arr[n * i - (i * (i - 1) / 2) + (j - i)] = x; + } + void setSymmetric(int i, int j, int x) + { + (i >= j) ? arr[i * (i + 1) / 2 + j] = x : arr[j * (j + 1) / 2 + i] = x; + } + + int getDiagonal(int i, int j) + { + return (i == j) ? arr[i] : 0; + } + int getLowerTri(int i, int j) + { + return (i >= j) ? arr[i * (i + 1) / 2 + j] : 0; + } + int getUpperTri(int i, int j) + { + return (i <= j) ? arr[n * i - i * (i - 1) / 2 + (j - i)] : 0; + } + int getSymmetric(int i, int j) + { + return (i >= j) ? arr[i * (i + 1) / 2 + j] : arr[j * (j + 1) / 2 + i]; + } + + void display(int type) + { + cout << endl + << "Matrix:" << endl; + for (int i = 0; i < n; i++) + { + for (int j = 0; j < n; j++) + { + if (type == 1) + cout << getDiagonal(i, j) << " "; + else if (type == 2) + cout << getLowerTri(i, j) << " "; + else if (type == 3) + cout << getUpperTri(i, j) << " "; + else if (type == 4) + cout << getSymmetric(i, j) << " "; + } + cout << endl; + } + } + + ~Matrix() + { + delete[] arr; + } +}; + +int main() +{ + int n, choice, x; + cout << "Enter the order of the matrix : "; + cin >> n; + Matrix M(n); + + cout << "\n1. Diagonal Matrix."; + cout << "\n2. Lower Triangular Matrix."; + cout << "\n3. Upper Triangular Matrix."; + cout << "\n4. Symmetric Matrix."; + cout << "\nEnter your choice : "; + cin >> choice; + + switch (choice) + { + case 1: + cout << "\nEnter the diagonal elements : "; + for (int i = 0; i < n; i++) + { + cin >> x; + M.setDiagonal(i, i, x); + } + M.display(1); + break; + + case 2: + cout << "\nEnter the elements : "; + for (int i = 0; i < n; i++) + { + for (int j = 0; j <= i; j++) + { + cin >> x; + M.setLowerTri(i, j, x); + } + } + M.display(2); + break; + + case 3: + cout << "\nEnter the elements : "; + for (int i = 0; i < n; i++) + { + for (int j = i; j < n; j++) + { + cin >> x; + M.setUpperTri(i, j, x); + } + } + M.display(3); + break; + + case 4: + cout << "\nEnter the elements : "; + for (int i = 0; i < n; i++) + { + for (int j = 0; j <= i; j++) + { + cin >> x; + M.setSymmetric(i, j, x); + } + } + M.display(4); + break; + + default: + cout << "Invalid Choice."; + } + return 0; +}+ \ No newline at end of file diff --git a/semester_2/assignments/assignments.odt b/semester_2/assignments/assignments.odt Binary files differ. diff --git a/semester_2/assignments/assignments.pdf b/semester_2/assignments/assignments.pdf Binary files differ.
© notamitgamer • Site Built: 2026-09-05 01:53:16 UTC • git-mirror commit: c170d72 [view raw info]
Originally created with stagit • modified by notamitgamer
Forked from github.com/notamitgamer/git-mirror