From 9fa339652bc4c14145121fb5933732f6ffe6fd7e Mon Sep 17 00:00:00 2001 From: SowinskiBraeden Date: Mon, 15 Sep 2025 18:52:55 -0700 Subject: [PATCH] initial commit --- lab01/Makefile | 26 +++++++++ lab01/hello.c | 7 +++ lab01/hello.out | Bin 0 -> 15960 bytes lab02/Makefile | 25 +++++++++ lab02/lab2.c | 57 ++++++++++++++++++++ lab02/main.out | Bin 0 -> 16232 bytes testing/main.c | 135 +++++++++++++++++++++++++++++++++++++++++++++++ testing/main.out | Bin 0 -> 16408 bytes 8 files changed, 250 insertions(+) create mode 100644 lab01/Makefile create mode 100644 lab01/hello.c create mode 100755 lab01/hello.out create mode 100644 lab02/Makefile create mode 100644 lab02/lab2.c create mode 100755 lab02/main.out create mode 100644 testing/main.c create mode 100755 testing/main.out diff --git a/lab01/Makefile b/lab01/Makefile new file mode 100644 index 0000000..10d7030 --- /dev/null +++ b/lab01/Makefile @@ -0,0 +1,26 @@ +# Makefile +# Compiler and flags +CC = gcc +CFLAGS = -Wall -std=c11 + +# Source files +SRCS = hello.c + +# Output +TARGET = hello.out + +# Default target +all: $(TARGET) + +# Rule to build the executable +$(TARGET): $(SRCS) + $(CC) $(CFLAGS) $(SRCS) -o $(TARGET) + +# Rule to run the program +run: $(TARGET) + ./$(TARGET) + +# Rule to clean generated files +clean: + rm -f $(TARGET) + diff --git a/lab01/hello.c b/lab01/hello.c new file mode 100644 index 0000000..a104b37 --- /dev/null +++ b/lab01/hello.c @@ -0,0 +1,7 @@ +#include + +int main() { + printf("Hello World\n"); + return 0; +} + diff --git a/lab01/hello.out b/lab01/hello.out new file mode 100755 index 0000000000000000000000000000000000000000..aed49e89416ae8b7e00038eb09f05fa66383444f GIT binary patch literal 15960 zcmeHOYit}>6~4Q!6Ne=BI!&nKK)fmqq*R{x6)OQuHhzwglbG06K_ZOD-m!P3eK@BJ*Ao-fO}GuE{uoh$qK{ zKZhiqVQeEC7hsr|5ndSkJ(>b?A6&+++vyL|->C2sNw*ml#x75-favdw#FI-a9(M;^ z=9ALjM%O`?_yZ-p>Od|#)!lUz9kt!hY}tDL?H{ubkDEE{!-dv(t9IOZLtpx3-9`80oP$3kwX^R$9UEFwiv2TedFPtrI5W#EJNte_)|rNu ze&yPoeUGh^+ut2Nd-<#S*=zdJpVmgl2ijNLf1{u4`7O2L>>4B2_h+<*mT$TJk$!T|AV~@58u|$uIaD-<%s_3tr|UcNxyvC z-boGAN&|JyRd1Z&^Y|Bg*sLm#Oz2BJ*EFi?XRq7a^e21XCgH|zI?)?xI$Wy#BgwH- z#P$1U{yUG8kt-9#qmjQ<&n^7=#@cPiS>eH+y6DEmjk6zFHbfBC<0Lgq6qwdBEavrbSsxDCLb-9a%mOYQ}bDV_sZ{z5^Ijb&-!hI%Y-Sy z7YIiQM+pz#bevT}F8pqjOYDi0DmI^p?b)`uZkb+Ov7X=I-+Iq+KFJRKo84Dw4^fr- zxj_0Pp{h>|);E2jVe8{{i|R=8;ZJuyB4_O3|SBN}9!WjJ!qUVZ;8n+fI>PUXdh0x{E0T|hTu1ox^B)(^Q{?i12Pz>QLq945!?;()kCHgug7(~J zMbg0UUygTv6jxV8uX5em8Rxli46!d@Kr7+Ic@ zz$C@te!^=0d|l#{eY+ewFXpj+HKgwpJ-!ztx@DM-G1aURDNn|A<1Fi#`lz3u>sgih zI#sxR|9d8e@4EiG{5)UyKTnlv@kWLF z5A=iLA8vn)^hr1caEkPe@!bmZ6{aHVc|<~z+mJd#`UG9~rW8Cq93lMjP&jwTLB$c|3La3ak^`V=Cc}`F4^r` zk&@WWsjOj}vx*dDyD~GQO{+Tz?}nW>ra9%Elj+k%V>VZuGIK`SE|$uMS(#VU#r#~( zvaPh%R^5Y>?X!kiDwzw0Rj^A7YNll7EhAmY=NE_)kPPy)*STi+FGL!UVGN!;dThWL zINonirhWgHj~_iY+(&BK&tMGbV%7UkDr0EmMDNiNKV5G}MBV!iQyj5WM1bL;i1*1~7($q+S z4#rfuEL_=}K-&v&ioEZj>SluVI~dlFjpL`3R$j>4<`kh_@-Ty1wm_R0=9E?_+Lkt3 zsAzMg;+$2o7XqrON|v^#WYeNL+B@9J)5CSonB|Pp(hCLZ!b7{{Sst@WWrVD53eD>-)KJ-`*Oj$ z!IPBY?Q%hWcwZI&{~av2UqQ#eS3y30FM&xo3WoWQlK$_s2Eq8TP6MKUtkc5dH;K<{ zH1M&G1HK^r@)$YJ;A1_NB_037gTE*P1Y#XXE^gsAg5@*`yv70_>nb0`8RLf^@C?~` z%?26kHej3Z!{ZmV;_>m2!N)ohxGIk5KYac_5Pq-tVO-y^>#vgHDH!fA%zr(^$NCJ|CCvfC{I^1UJ?VJ@Ujk7O^9Snd zRG~Cfe-9U)^RN#x><<}ulei55KAr + +void multiplicationTable(int n) { + printf("Multiplication table of %d\n", n); + + for (int i = 1; i <= 10; i++) { + printf("%d x %d = %d\n", n, i, n * i); + } + + printf("\n"); +} + +void numberAnalysis(int n) { + int c = (n > 0) - (n < 0); + + switch (c) { + case -1: // n is negative + multiplicationTable(n); + + printf("Sum not applicable for negative numbers\n"); + printf("The number is Negative.\n"); + + break; + case 0: // n is zero + multiplicationTable(n); + + printf("Sum not applicable for zero\n"); + printf("The number is Zero.\n"); + + break; + default: // n is positive + multiplicationTable(n); + + int sum = 0; + int current = 0; + while (current <= n) { + sum += current; + current++; + } + + printf("Sum of 1 to %d = %d\n", n, sum); + printf("The number is Positive.\n"); + + break; + } +} + +int main(void) { + int number; + + printf("Enter a number: "); + scanf("%d", &number); + + numberAnalysis(number); + + return 0; +} diff --git a/lab02/main.out b/lab02/main.out new file mode 100755 index 0000000000000000000000000000000000000000..11415f1e8594155a9ce79f3e64e5cdbbfe995988 GIT binary patch literal 16232 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 G)jt6T`;h(s literal 0 HcmV?d00001 diff --git a/testing/main.c b/testing/main.c new file mode 100644 index 0000000..f2833fd --- /dev/null +++ b/testing/main.c @@ -0,0 +1,135 @@ +#include +#include +#include +#include +#include + +#define NUMBER_PARTICLES 100 // 100 + +typedef struct { + int x; + int y; + int lastX; + int lastY; + int velocityX; + int velocityY; +} PARTICLE; + +void render(char **space, int WIDTH, int HEIGHT) { + system("clear"); + for (int y = 0; y < HEIGHT; y++) { + for (int x = 0; x < WIDTH; x++) { + printf("%c", space[y][x]); + } + printf("\n"); + } +} + +void updateParticles(PARTICLE *particles, int WIDTH, int HEIGHT) { + for (int i = 0; i < NUMBER_PARTICLES; i++) { + PARTICLE p = particles[i]; + + p.lastX = p.x; + p.lastY = p.y; + p.x = p.x + p.velocityX; + p.y = p.y + p.velocityY; + + if (p.x <= 0 || p.x >= WIDTH - 1) { + p.velocityX *= -1; + } + + if (p.y <= 0 || p.y >= HEIGHT - 1) { + p.velocityY *= -1; + } + + particles[i] = p; + } +} + +void update2DSpace(PARTICLE *particles, char **space) { + for (int i = 0; i < NUMBER_PARTICLES; i++) { + PARTICLE p = particles[i]; + + space[p.y][p.x] = '*'; + } +} + +char** create2DSpace(int WIDTH, int HEIGHT) { + char **space = malloc(HEIGHT * sizeof(char*)); + if (space == NULL) { + perror("Failed to allocate space"); + return NULL; + } + + for (int i = 0; i < HEIGHT; i++) { + + space[i] = malloc(WIDTH * sizeof(char)); + + if (space[i] == NULL) { + perror("Failed to allocate space"); + + for (int j = 0; j < HEIGHT; j++) { + free(space[i]); + } + + free(space); + + return NULL; + } + } + + for (int i = 0; i < HEIGHT; i++) { + for (int j = 0; j < WIDTH; j++) { + space[i][j] = ' '; + } + } + + return space; +} + +PARTICLE* generateParticles(int WIDTH, int HEIGHT) { + PARTICLE *particles = malloc(NUMBER_PARTICLES * sizeof(PARTICLE)); + + if (particles == NULL) { + perror("Failed to allocate memory for particles"); + return NULL; + } + int blockWidth = sqrt((float) NUMBER_PARTICLES); + + int index = 0; + for (int i = -(blockWidth / 2); i < blockWidth / 2; i++) { + for (int j = -(blockWidth / 2); j < blockWidth / 2; j++) { + // printf("%d - (%d, %d)\n", index, WIDTH / 2 + i, HEIGHT / 2 + j); + PARTICLE p = {WIDTH / 2 + i, HEIGHT / 2 + j, WIDTH / 2 + i, HEIGHT / 2 + j, 0, 1}; + particles[index] = p; + index++; + } + } + + return particles; +} + +int main(void) { + struct winsize w; + ioctl(0, TIOCGWINSZ, &w); + + int HEIGHT = w.ws_row; + int WIDTH = w.ws_col; + + char **space = create2DSpace(WIDTH, HEIGHT); + + PARTICLE *particles = generateParticles(WIDTH, HEIGHT); + + // return 0; + int micro = 100000; + + while (1) { + updateParticles(particles, WIDTH, HEIGHT); + space = create2DSpace(WIDTH, HEIGHT); // resset grid space + update2DSpace(particles, space); + render(space, WIDTH, HEIGHT); + usleep(0.5 * micro); + } + + return 0; +} \ No newline at end of file diff --git a/testing/main.out b/testing/main.out new file mode 100755 index 0000000000000000000000000000000000000000..74357220f986c494c23ae6c9161c7b9ced1641c9 GIT binary patch literal 16408 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 literal 0 HcmV?d00001