wisemonkeys logo
FeedNotificationProfileManage Forms
FeedNotificationSearchSign in
wisemonkeys logo

Blogs

Product Discount Calculator

profile
Vaishnavi Nayak
Sep 07, 2025
0 Likes
0 Discussions
0 Reads

The program performs the following key functions:

Takes user input for three product prices, each greater than 0.

Validates that the entered prices are numbers and greater than zero.

Calculates the total bill amount by summing the three product prices.

Applies a discount of 10% on the total amount.

Calculates the final payable amount after discount.


Displays the results:

Price of each product

Total amount before discount

Discount applied

Final payable amount (formatted to 2 decimal places)


Program:


;; Product Discount Calculator


(defun calculate-discount (average total)

"Return discount rate and final amount after discount."

(let ((discount-rate

(cond ((>= average 1000) 0.20)

((>= average 500) 0.10)

((>= average 100) 0.05)

(t 0.0))))

(values discount-rate (* total (- 1 discount-rate)))))


(defun get-valid-price (prompt)

"Ask user for a valid product price (number > 0)."

(format t "~%~A (Enter price > 0): " prompt)

(let ((price (read)))

(if (and (numberp price) (> price 0))

price

(progn

(format t "Invalid price! Please enter a number greater than 0.~%")

(get-valid-price prompt)))))


(defun main ()

(format t "~%Welcome to Product Discount Calculator~%")


;; Get three product prices

(let* ((p1 (get-valid-price "Enter price of Product 1"))

(p2 (get-valid-price "Enter price of Product 2"))

(p3 (get-valid-price "Enter price of Product 3"))

(total (+ p1 p2 p3))

(average (/ total 3.0)))


;; Properly bind discount-rate and final-amount

(multiple-value-bind (discount-rate final-amount)

(calculate-discount average total)


;; Display results

(format t "~%Results:~%")

(format t "Product 1 Price: ~,2F~%" p1)

(format t "Product 2 Price: ~,2F~%" p2)

(format t "Product 3 Price: ~,2F~%" p3)

(format t "Total Price: ~,2F~%" total)

(format t "Average Price: ~,2F~%" average)

(format t "Discount Applied: ~,2F%%~%" (* discount-rate 100))

(format t "Final Payable Amount: ~,2F~%" final-amount))))


;; Run the program

(main)


Output:


Comments ()


Sign in

Read Next

Direct Memory Access

Blog banner

Processes : Process description and control

Blog banner

Disk scheduling

Blog banner

LINUX

Blog banner

Safeguarding Your Data: The Importance of Wireless Encryption

Blog banner

Socket Programming in Java

Blog banner

I/O Buffering

Blog banner

File Allocation Methods

Blog banner

Session Hijacking Techniques

Blog banner

Cyber Forensics on IOT Devices

Blog banner

File and File System Structure

Blog banner

VIRUS

Blog banner

Importance Of Yoga.

Blog banner

Functions of operating system

Blog banner

Access management

Blog banner

The Impact of Cyber Forensics on Corporate Governance and Compliance

Blog banner

URL vs Domain

Blog banner

Data Acquisition in Cyber Forensics

Blog banner

Fault Tolerance

Blog banner

JUSTICE FOR EVERY “BEZUBAAN ANIMAL”

Blog banner

Open Source Project By Google

Blog banner

Women Empowerment

Blog banner

MEMORY MANAGEMENT

Blog banner

Defining youtubr

Blog banner

Service Strategy In ITSM

Blog banner

ProofHub

Blog banner

Deadlock

Blog banner

Memory management

Blog banner

Operating system

Blog banner

Multiprocessor and Multicore Organization

Blog banner

Kernel Memory Allocation In Linux.

Blog banner

Os Virtual Memory

Blog banner

Beatbox

Blog banner

Clarizen

Blog banner

Music

Blog banner

c

Blog banner

Security issues

Blog banner

Life of a 2020-2021 student

Blog banner

Threat management

Blog banner

Human Error: The weakest link in Cybersecurity

Blog banner

Install Ubuntu Easily

Blog banner

Health and fitness

Blog banner