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

Twisted world

Blog banner

The Power of Teamwork: Learning Collaboration Through Everyday Activities

Blog banner

Child labour

Blog banner

Sage

Blog banner

I/O Management and Disk Scheduling

Blog banner

K-means use cases

Blog banner

Danger assessment in GIS

Blog banner

Fault Tolerance

Blog banner

Decoding Confusion Matrix

Blog banner

Linux Memory Management

Blog banner

Modern OS

Blog banner

Sagar Parikrama

Blog banner

OS Assignment 1

Blog banner

Interrupts

Blog banner

The Importance of Financial Literacy for College Students

Blog banner

Classification Algorithms (Decision trees, SVM, Logistic regreession)

Blog banner

Data Visualization

Blog banner

Water Resources are about to exhaust...

Blog banner

"Geographic Information Systems (GIS) and its Applications in Urban Planning"

Blog banner

Session Hijacking Techniques

Blog banner

Data-Driven Prediction of Virtual Item Prices in Online Games

Blog banner

Electronic Funds Transfer

Blog banner

Operating Systems

Blog banner

Defining youtubr

Blog banner

INTERNET SECURITY

Blog banner

Process Creation

Blog banner

"Audit" In Data Science

Blog banner

Zero-Click Searches: How To Stay Visible In Google’s New Era

Blog banner

EdTech (Education Technology)

Blog banner

FASHION

Blog banner

Processing Crime and Incident Scenes

Blog banner

The Rich Heritage Of Patola Sarees: Gujarat’s Timeless Weaving Art

Blog banner

A True Friendship

Blog banner

Uniprocessor and Types

Blog banner

IT RISK

Blog banner

Predicting Student Performance with Data Science

Blog banner

What is Virtual Memory

Blog banner

COMFORT IS ALL ABOUT FASHION

Blog banner

Is it important to follow all the trends that come up on social media?

Blog banner

Unlocking the Secrets: Basic Operations of Computer Forensic Laboratories

Blog banner

Security issues

Blog banner

Depression

Blog banner