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

A-B-C of Networking: Part-3 (Topology [Ring, Tree, Mesh])

Blog banner

Modern Operating system

Blog banner

Android Application Components and Activity Lifecycle

Blog banner

MY FIRST BLOG?

Blog banner

I/O buffer and its techniques

Blog banner

Fitness regime by Deepesh

Blog banner

How to invest in Indian Stock Market ? ~ Tutorial 1

Blog banner

Modern OS

Blog banner

What is OS Fingerprinting?

Blog banner

Assignment 2

Blog banner

Are Social Media Paid Campaigns Worth It?

Blog banner

Fault Tolerance

Blog banner

You'll get to know about Pankaj Negi

Blog banner

Memory Management

Blog banner

Cycling

Blog banner

Modern Operating System

Blog banner

Multiple-Processor Scheduling in Operating System

Blog banner

ZOHO

Blog banner

GIS Mapping

Blog banner

Solving Problems with AI: The Power of Search Algorithms

Blog banner

semaphores

Blog banner

Veg Mix Pickle

Blog banner

Direct memory access (DMA)

Blog banner

Fashion design

Blog banner

Policies for Service Transition

Blog banner

10 Unsolved Mysteries all over the world

Blog banner

Understanding Univariate, Bivariate, and Multivariate Analysis in Data Science

Blog banner

Virtual memory

Blog banner

Europe Through My Lens

Blog banner

Instagram Features in 2023 That Will Leave You Stunned!

Blog banner

Trends that began during the pandemic

Blog banner

WINDOWS I/ O

Blog banner

Apple

Blog banner

Big Data Architecture

Blog banner

Security issues

Blog banner

NETWORK SECURITY RISKS

Blog banner

Cloud Security: Trends and Innovations

Blog banner

Computer Security

Blog banner

What is Packet Filtering?

Blog banner

Banaras

Blog banner

Deadlock and starvation

Blog banner

Survey of Which Movies Types people are Prefer to Watch in India.

Blog banner