wisemonkeys logo
FeedNotificationProfileManage Forms
FeedNotificationSearchSign in
wisemonkeys logo

Blogs

Product Discount Calculator

profile
Vaishnavi Nayak
Sep 07, 2025
0 Likes
0 Discussions
1 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

New Horizon Europe project ‘EvoLand’ sets off to develop new prototype services.

Blog banner

File Sharing

Blog banner

Heart Fulness Meditation

Blog banner

When Is the Right Time to Enrol My Toddler Into Preschool? NEP

Blog banner

Royal enfield

Blog banner

CYBER FORENCIS: PAST, PRESENT AND FUTURE.

Blog banner

Deadlock

Blog banner

Deadlock in operating system

Blog banner

Clarizen

Blog banner

Deadlock

Blog banner

ZOHO

Blog banner

Fault Tolerance

Blog banner

WHAT IS SNAPCHAT AND HOW DOES IT WORK?

Blog banner

Memory management

Blog banner

The Evolution of the Microprocessor ~ Aditya Pai

Blog banner

Why Oak Tree Hotel Is Arcadia’s Hidden Gem?

Blog banner

Virtual memory

Blog banner

Asana

Blog banner

Assignment-3

Blog banner

Evolution of operating system

Blog banner

Operating system

Blog banner

Why Should You Schedule Tweets on Twitter?

Blog banner

What is Password Cracking ? and it's Techniques.

Blog banner

Smartsheet

Blog banner

Types of Malware in Cyber Security

Blog banner

GEOLOGY AND GEO-TECTONIC FRAME WORK OF WESTERN BASTAR CRATON

Blog banner

I/O buffer and its techniques

Blog banner

Types of Hackers.

Blog banner

Blockchain Security Technique

Blog banner

Real Time Scheduling

Blog banner

Soak knowledge and level up your intellectual potential!!!

Blog banner

38_Exploring The Honeynet Project

Blog banner

A-B-C of Networking: Part-1 (Basics)

Blog banner

social media issue

Blog banner

Virtual memory

Blog banner

Fun Christmas Activities For Toddlers & Kids

Blog banner

Blockchain uses and use cases

Blog banner

Paid Email

Blog banner

Virtual Machine

Blog banner

I/O Management and Disk Scheduling

Blog banner

Cyber Attacks -- Trends Patterns and Security Countermeasures

Blog banner

Memory Management

Blog banner