wisemonkeys logo
FeedNotificationProfileManage Forms
FeedNotificationSearchSign in
wisemonkeys logo

Blogs

Product Discount Calculator

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

Zoho

Blog banner

IT Service as as Value Creation

Blog banner

Deadlock

Blog banner

Internet of Things

Blog banner

Top 5 Post-Wedding Skin Care Tips

Blog banner

Data Warehousing

Blog banner

Layers Of Blockchain

Blog banner

Memory Management in an Operating System

Blog banner

Tracking Emails & Email Crimes

Blog banner

Virtual Machine

Blog banner

An Overivew Of Cache Memory

Blog banner

Im Photographer

Blog banner

virtual machine

Blog banner

Travelling blog

Blog banner

Social Media Marketing Trends 2022

Blog banner

Instagram

Blog banner

Incident management in ITSM

Blog banner

Memory Management - operating system

Blog banner

Veg Mix Pickle

Blog banner

Finding Meaning, and Identity : Understanding Existential Concerns and Mental Well-being

Blog banner

Cache Memory

Blog banner

Some facts about Technology

Blog banner

Linux

Blog banner

Meshoo

Blog banner

virtual machine

Blog banner

Assignment-3

Blog banner

Why Mumbai Professionals Are Switching Back to Home-Style Tiffin Meals

Blog banner

Super Garlicky Tomato Soup with Smashed White Beans

Blog banner

MEMORY MANAGEMENT (techniques)

Blog banner

virtual machines and virtualization

Blog banner

Dancing Classes In Mumbai

Blog banner

Service design process in ITSM

Blog banner

Firewall in Computer Network

Blog banner

IOT Hacking Techniques

Blog banner

I/O Management and Disk Scheduling

Blog banner

Dal Bafla Recipe

Blog banner

Smart Homes | Zigbee Alliance

Blog banner

PYTHON

Blog banner

Beatbox

Blog banner

Network Forensics Tools and Techniques

Blog banner

Mumbai

Blog banner

The Future of Web Development in 2026: Trends Every Business Must Know

Blog banner