bsc

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

commit 61a8fa7e466ea06fe8a5d47a71453a0aa4f0901e
parent b98e031f4b20872648491804a9c3871c8971472f
Author: AMIT DUTTA <amitdutta4255@gmail.com>
Date:   Wed, 15 Oct 2025 17:28:04 +0530

Delete challange directory
Diffstat:
Dchallange/sudipto1.c | 153-------------------------------------------------------------------------------
Dchallange/sudiptoown01.c | 54------------------------------------------------------
2 files changed, 0 insertions(+), 207 deletions(-)

diff --git a/challange/sudipto1.c b/challange/sudipto1.c @@ -1,152 +0,0 @@ -/* A smart home security controller monitors the state of several sensors to decide what action to take. - * Each second, the system reads data from sensors that can either be active or inactive. Based on the current - * state of all sensors, the controller must perform exactly one action, such as activating a warning, checking - * a specific zone, or declaring an intrusion. Write a C program that reads the sensor states as input and - * prints the corresponding system action. - -- Conditions: - * 1. You must determine exactly one action for every possible combination of sensor states. - * 2. You are not allowed to use any conditional statements (if, else if, else, or the ternary operator?). - * 3. You are not allowed to use logical operators. - * 4. You must use a single switch statement to control the program's behaviour. - * 5. Loops may only be used for reading input, not for making decisions. - * 6. The program should handle all possible combinations of the sensors' active/inactive states and print the appropriate response each time. - -- Example (for understanding): - * If all sensors are inactive, the system should remain idle. - * If some sensors are active, the system should issue warnings or alerts based on the situation. - * If all sensors are active, the system should declare a confirmed intrusion. - */ - -/* - * This program monitors the state of four sensors (Door, Window, Motion, Glass Break) - * and determines the appropriate action without using any conditional (if, else) - * or logical (&&, ||) operators. - * - * It works by combining the state of all sensors into a single integer value - * using bitmasking. Each bit in the integer represents the state of one sensor - * (1 for active, 0 for inactive). This combined state is then used in a single - * switch statement to select the correct action for every possible combination. - * - * Then, enter the state of the four sensors separated by spaces, - * for example: 1 0 1 0 - */ - -/* Author - Amit Dutta, Date - 12th October, 2025 */ - -#include <stdio.h> -int main() -{ - - // variables to hold the state of a sensor (0 or 1) - int doorSensorState, windowSensorState, motionSensorState, glassbreakSensorState; - - // variable to check the combined state of all four sensor - int combinedState = 0; - - // a invalid flag to check the input are valid or not - unsigned int invalidFlag; - - // printing the way to usage the program - printf("------ Home Security Controller ------\n"); - printf("Enter sensor states (1 for active, 0 for inactive).\n"); - printf("Format: [Door] [Window] [Motion] [Glass Break]\n"); - printf("Example: 0 1 1 0\n"); - printf("Enter states (or press Ctrl+D for MacOS or Linux / Ctrl+Z for Windows to exit): "); - - // doing the main calculation - // chacking the combined state and taking a decision - while (scanf("%d %d %d %d", &doorSensorState, &windowSensorState, &motionSensorState, &glassbreakSensorState) == 4) - { - // validating input - // The expression (variable & ~1) results in 0 only if 'variable' is 0 or 1. - // For any other positive number, it's non-zero. - // We combine all checks with a bitwise OR. If any sensor state is invalid, - // the flag will become non-zero. - invalidFlag = (doorSensorState & ~1) | (windowSensorState & ~1) | (motionSensorState & ~1) | (glassbreakSensorState & ~1); - - // Combine the four sensor states into a single integer using bitwise operations. - // This creates a unique number from 0 to 15 for each possible combination. - // Bit 0: Door Sensor - // Bit 1: Window Sensor - // Bit 2: Motion Sensor - // Bit 3: Glass Break Sensor - combinedState = (glassbreakSensorState << 3) | (motionSensorState << 2) | (windowSensorState << 1) | doorSensorState; - - // If the invalid_input_flag is non-zero, we add 16 to the state. - // This pushes it outside the 0-15 range and forces the 'default' case in the switch. - // We achieve this by multiplying the flag (which is > 0) by 16. - combinedState += invalidFlag * 16; - - // printing the given state - printf("\n\nState : [Door : %d, Window : %d, Motion : %d, Glass Break : %d]\nState Id : %d", - doorSensorState, windowSensorState, motionSensorState, glassbreakSensorState, combinedState); - printf("\nSystem Action : "); - - // taking decision based on combined state - // A single switch statement controls the program's behavior. - // It handles all 2^4 = 16 possible combinations of sensor states, - // ensuring exactly one action is taken for every scenario. - switch (combinedState) - { - case 0: // Binary: 0000 - printf("System Idle. All sensors inactive.\n"); - break; - case 1: // Binary: 0001 - printf("Check front door camera.\n"); - break; - case 2: // Binary: 0010 - printf("Check window sensors.\n"); - break; - case 3: // Binary: 0011 - printf("Warning: Perimeter breach suspected. Check doors and windows.\n"); - break; - case 4: // Binary: 0100 - printf("Check interior cameras for movement.\n"); - break; - case 5: // Binary: 0101 - printf("Warning: Potential entry and movement detected. Check front door and interior. Ask for patrol.\n"); - break; - case 6: // Binary: 0110 - printf("Warning: Potential entry and movement detected. Check windows and interior. Ask for patrol.\n"); - break; - case 7: // Binary: 0111 - printf("Alert: High probability of unauthorized entry. Ask for patrol.\n"); - break; - case 8: // Binary: 1000 - printf("Alert: Glass break detected. High-priority event. Ask for patrol.\n"); - break; - case 9: // Binary: 1001 - printf("Severe Alert: Forced entry likely (door + glass). Activate Alarm and Contact authorities.\n"); - break; - case 10: // Binary: 1010 - printf("Severe Alert: Forced entry likely (window + glass). Activate Alarm and Contact authorities.\n"); - break; - case 11: // Binary: 1011 - printf("Intrusion Alert: Multiple perimeter breaches. Activate Alarm and Contact authorities.\n"); - break; - case 12: // Binary: 1100 - printf("Intrusion Alert: Confirmed interior presence after breach. Activate Alarm and Contact authorities.\n"); - break; - case 13: // Binary: 1101 - printf("INTRUSION CONFIRMED! Activate maximum response protocol. Activate Alarm and Contact authorities.\n"); - break; - case 14: // Binary: 1110 - printf("INTRUSION CONFIRMED! Activate maximum response protocol. Activate Alarm and Contact authorities.\n"); - break; - case 15: // Binary: 1111 - printf("CATASTROPHIC EVENT! ALL SENSORS TRIGGERED. ACTIVATE ALARM AND CONTACT COPS.\n"); - break; - default: - // This case should not be reached with valid 0/1 input but is included for completeness. - printf("Error: Invalid sensor state detected.\n"); - break; - } - - // discarding extra characters (if any) left - while (getchar() != '\n') - ; - - // asking for next set of input - printf("\nEnter next set of states: "); - } - printf("\nSecurity system shutting down.\n"); -}- \ No newline at end of file diff --git a/challange/sudiptoown01.c b/challange/sudiptoown01.c @@ -1,53 +0,0 @@ -/* - * A smart home security controller monitors the state of several sensors to decide what action to take. - * Each second, the system reads data from sensors that are either an active or inactive. Based on the current - * state of all sensors, the controller must perform exactly one action, such as activating a warning, checking - * a specific zone, or declaring an intrusion. Write a C program that reads the sensor status as input and - * prints the corresponding system action. - * Hints: - * 1. The most determinative action wins for every possible combination of sensor states. - * 2. You are not allowed to use any conditional statements (if, else if, else, or the ternary operator?). - * 3. You are not allowed to use logical operators. - * 4. You must use a single switch statement to control the program's behavior. - * 5. The program should handle all possible combinations of the sensors' active/inactive states and print the appropriate response each time. - * 6. All sensors are inactive, the system should remain idle. - * 7. If some sensors are active, the system should issue warnings or alerts based on the situation. - * 8. If all sensors are active, the system should declare a confirmed intrusion. - * Solution: - * We can solve this problem simply by assigning each case its own distinct integer. - * There are 2 possibilities for a sensor and therefore there are 2^4 = 16 cases. - * Using arrays we can assign each case its own index value and print it as per the encoded binary integer. - */ -#include <stdio.h> - -int casekey(int door, int window, int motion, int glass) { - int key = (door << 3) | (window << 2) | (motion << 1) | glass; - return key; -} - -int main() { - int door, window, motion, glass, key; - char choice; - - static const char *action[16] = { - "IDLE", "CHECK WINDOW", "WARN MOTION", "WARN MOTION WINDOW", - "CHECK DOOR", "WARN DOOR WINDOW", "INTRUSION SUSPECTED", "INTRUSION CONFIRMED", - "GLASS ONLY", "DOOR GLASS", "MOTION GLASS", "MOTION WINDOW GLASS", - "DOOR WINDOW", "DOOR WINDOW GLASS", "DOOR MOTION GLASS", "ALL SENSORS" - }; - - do { - printf("Sensors: Door, Window, Motion, Glass\n"); - printf("Enter the state of each sensor in binary (0 or 1): "); - scanf("%d %d %d %d", &door, &window, &motion, &glass); - - key = casekey(door, window, motion, glass); - printf("Action: %s\n", action[key]); - - printf("Want to continue? (y/n): "); - scanf(" %c", &choice); - printf("\n"); - } while (choice == 'y' || choice == 'Y'); - - return 0; -}- \ No newline at end of file
© notamitgamer • Site Built: 2026-07-21 13:58:23 UTC • git-mirror commit: 1037f62 [view raw info]
Originally created with stagit • modified by notamitgamer
Forked from github.com/notamitgamer/git-mirror