Added HW3B Assign and started function generation
This commit is contained in:
parent
ec1585a38d
commit
e11f2c662e
16
.vscode/c_cpp_properties.json
vendored
Normal file
16
.vscode/c_cpp_properties.json
vendored
Normal file
@ -0,0 +1,16 @@
|
|||||||
|
{
|
||||||
|
"configurations": [
|
||||||
|
{
|
||||||
|
"name": "Linux",
|
||||||
|
"includePath": [
|
||||||
|
"${workspaceFolder}/**"
|
||||||
|
],
|
||||||
|
"defines": [],
|
||||||
|
"compilerPath": "/usr/bin/gcc",
|
||||||
|
"cStandard": "c17",
|
||||||
|
"cppStandard": "gnu++17",
|
||||||
|
"intelliSenseMode": "linux-gcc-x64"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"version": 4
|
||||||
|
}
|
||||||
BIN
Research/a.out
Executable file
BIN
Research/a.out
Executable file
Binary file not shown.
101
Research/test.c
Normal file
101
Research/test.c
Normal file
@ -0,0 +1,101 @@
|
|||||||
|
#include <X11/Xlib.h>
|
||||||
|
#include <math.h>
|
||||||
|
#include <stdio.h>
|
||||||
|
#include <stdlib.h>
|
||||||
|
|
||||||
|
#define WIDTH 800 // Width of the window
|
||||||
|
#define HEIGHT 600 // Height of the window
|
||||||
|
#define SCALE_X 50 // Scale factor for x-axis
|
||||||
|
#define SCALE_Y 100 // Scale factor for y-axis
|
||||||
|
#define OFFSET_X 100 // Horizontal offset
|
||||||
|
#define OFFSET_Y 300 // Vertical offset (middle of the window)
|
||||||
|
#define GRID_SPACING_X 50 // Grid spacing for x-axis
|
||||||
|
#define GRID_SPACING_Y 50 // Grid spacing for y-axis
|
||||||
|
|
||||||
|
void draw_grid(Display *display, Window window, GC gc) {
|
||||||
|
int x, y;
|
||||||
|
|
||||||
|
// Set color for grid lines (light gray)
|
||||||
|
XSetForeground(display, gc, 0xcccccc);
|
||||||
|
|
||||||
|
// Draw vertical grid lines
|
||||||
|
for (x = OFFSET_X; x < WIDTH; x += GRID_SPACING_X) {
|
||||||
|
XDrawLine(display, window, gc, x, 0, x, HEIGHT);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Draw horizontal grid lines
|
||||||
|
for (y = 0; y < HEIGHT; y += GRID_SPACING_Y) {
|
||||||
|
XDrawLine(display, window, gc, OFFSET_X, y, WIDTH, y);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void draw_sine_wave(Display *display, Window window, GC gc) {
|
||||||
|
double x;
|
||||||
|
int prev_x = OFFSET_X;
|
||||||
|
int prev_y = OFFSET_Y;
|
||||||
|
|
||||||
|
// Set color for sine wave (black)
|
||||||
|
XSetForeground(display, gc, BlackPixel(display, DefaultScreen(display)));
|
||||||
|
|
||||||
|
for (x = 0; x < 2 * M_PI * 4; x += 0.01) {
|
||||||
|
// Compute screen coordinates for the sine wave
|
||||||
|
int screen_x = OFFSET_X + (int)(x * SCALE_X);
|
||||||
|
int screen_y = OFFSET_Y - (int)(sin(x) * SCALE_Y);
|
||||||
|
|
||||||
|
// Draw a line from the previous point to the current point
|
||||||
|
XDrawLine(display, window, gc, prev_x, prev_y, screen_x, screen_y);
|
||||||
|
|
||||||
|
// Update previous coordinates
|
||||||
|
prev_x = screen_x;
|
||||||
|
prev_y = screen_y;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
int main(void) {
|
||||||
|
Display *display;
|
||||||
|
Window window;
|
||||||
|
int screen;
|
||||||
|
GC gc;
|
||||||
|
|
||||||
|
// Open connection to X server
|
||||||
|
display = XOpenDisplay(NULL);
|
||||||
|
if (display == NULL) {
|
||||||
|
fprintf(stderr, "Unable to open X display\n");
|
||||||
|
exit(1);
|
||||||
|
}
|
||||||
|
|
||||||
|
screen = DefaultScreen(display);
|
||||||
|
|
||||||
|
// Create a simple window
|
||||||
|
window = XCreateSimpleWindow(display, RootWindow(display, screen), 10, 10, WIDTH, HEIGHT, 1,
|
||||||
|
BlackPixel(display, screen), WhitePixel(display, screen));
|
||||||
|
|
||||||
|
// Set window properties and show it
|
||||||
|
XSelectInput(display, window, ExposureMask | KeyPressMask);
|
||||||
|
XMapWindow(display, window);
|
||||||
|
|
||||||
|
// Create graphics context
|
||||||
|
gc = XCreateGC(display, window, 0, NULL);
|
||||||
|
|
||||||
|
// Event loop
|
||||||
|
XEvent event;
|
||||||
|
while (1) {
|
||||||
|
XNextEvent(display, &event);
|
||||||
|
|
||||||
|
if (event.type == Expose) {
|
||||||
|
// When the window is exposed, first draw the grid, then the sine wave
|
||||||
|
draw_grid(display, window, gc);
|
||||||
|
draw_sine_wave(display, window, gc);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (event.type == KeyPress)
|
||||||
|
break; // Exit the loop on any keypress
|
||||||
|
}
|
||||||
|
|
||||||
|
// Clean up
|
||||||
|
XFreeGC(display, gc);
|
||||||
|
XDestroyWindow(display, window);
|
||||||
|
XCloseDisplay(display);
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
BIN
csci218/Assignments/a.out
Executable file
BIN
csci218/Assignments/a.out
Executable file
Binary file not shown.
32
csci218/Assignments/ohmsLaw.c
Normal file
32
csci218/Assignments/ohmsLaw.c
Normal file
@ -0,0 +1,32 @@
|
|||||||
|
/* Name: Garrett Haldrup
|
||||||
|
ohmsLaw.c
|
||||||
|
Problem: Take an input of Voltage and Resistance and calculate Current.
|
||||||
|
Certification of Authenticity:
|
||||||
|
I certify that this assignment is entirely my own work.
|
||||||
|
*/
|
||||||
|
#include <stdio.h>
|
||||||
|
|
||||||
|
int main(void){
|
||||||
|
// Program purpose output
|
||||||
|
printf("This program will take in Voltage(V) and Resistance(Ω) to calculate the Current(A)\n");
|
||||||
|
|
||||||
|
// Declare voltage and current as double, and resistance as int
|
||||||
|
double voltage, current;
|
||||||
|
int resistance;
|
||||||
|
|
||||||
|
// Scan in voltage and resistance from user
|
||||||
|
printf("Input the Voltage in Volts(V): ");
|
||||||
|
scanf("%lf", &voltage);
|
||||||
|
|
||||||
|
printf("Input the Resistance in Ohms(Ω): ");
|
||||||
|
scanf("%d", &resistance);
|
||||||
|
|
||||||
|
// Perform Ohms Law Clalculation I = V / R
|
||||||
|
current = voltage / resistance;
|
||||||
|
|
||||||
|
// Output Current from calculation
|
||||||
|
printf("Based off the Voltage(V) of %.1lfV and Resistance(Ω) of %dΩ\n", voltage, resistance);
|
||||||
|
printf("The Current(A) is: %.3lfA\n", current);
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
Loading…
Reference in New Issue
Block a user