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

Scala - a programming tool

Blog banner

Life of an army person

Blog banner

Zoho

Blog banner

Environmental Management using GIS

Blog banner

rupee

Blog banner

Virtual memory

Blog banner

Scheduling

Blog banner

Southern Turkey Earthquake: Causes and Consequences of a Tragic Natural Disaster

Blog banner

Jira Software

Blog banner

Fitness regime by Deepesh

Blog banner

File management -disha parekh

Blog banner

Be you

Blog banner

Cache memory

Blog banner

Major achievement

Blog banner

Juveniles, Internet and Computer Crime

Blog banner

The Role of Data Provenance and Lineage in Modern Data Science

Blog banner

Social Media Marketing Trends 2022

Blog banner

IT service level agreement

Blog banner

Starting Android Activity Using Intent

Blog banner

Depression

Blog banner

JIRA SOFTWARE

Blog banner

Mariana Trench: The deepest depths

Blog banner

THE DESIRE OF MANY

Blog banner

What is the point of living if we can die at any moment of our lives ?

Blog banner

Should you be using a mouthwash? Know from the experts

Blog banner

TRIGGERS IN DATABASE

Blog banner

Spyware

Blog banner

PHISHING

Blog banner

Having passion in life

Blog banner

TOP 5 GAMING GADGETS (2024)

Blog banner

Internet: The Vast Ocean Of Knowledge.

Blog banner

semaphores

Blog banner

Top 5 Places To Stay And Visit In Berlin, Germany

Blog banner

History of ITIL

Blog banner

Threat management

Blog banner

Image Steganalysis in Digital Forensics

Blog banner

Segmentation and paging concept

Blog banner

MAILFENCE

Blog banner

Memory Management

Blog banner

Understanding Input Based Keylogger Activation Systems: Risks and Mitigation

Blog banner

Google App Engine

Blog banner

My First Trek - Sondai, Karjat - Shoaib Malik

Blog banner