You may only use selectors and constructors (introduced above) for this question. You may also use the distance function defined above. Remember, the point of data abstraction, as we've said, is that we do not need to know how an abstract data type is implemented, but rather just how we can interact with and use the data type. def closer_city (lat, lon, cityl, city2): """ Returns the name of either cityl or city2, whichever is closest to coordinate (lat, lon). HHH >>> berkeley = make_city('Berkeley', 37.87, 112.26) >>> stanford = make_city('Staniprd', 34.05, 118.25) >>> closer_city (38.33, 121.44, berkeley, stanford) 'Stanford' >>> bucharest = make_city('Bucharest', 44.43, 26.10) >>> vienna = make_city( 'Vienna', 48.20, 16.37) >>> closer_city (41.29, 174.78, bucharest, vienna) 'Bucharest' "*** YOUR CODE HERE *****" return
You may only use selectors and constructors (introduced above) for this question. You may also use the distance function defined above. Remember, the point of data abstraction, as we've said, is that we do not need to know how an abstract data type is implemented, but rather just how we can interact with and use the data type. def closer_city (lat, lon, cityl, city2): """ Returns the name of either cityl or city2, whichever is closest to coordinate (lat, lon). HHH >>> berkeley = make_city('Berkeley', 37.87, 112.26) >>> stanford = make_city('Staniprd', 34.05, 118.25) >>> closer_city (38.33, 121.44, berkeley, stanford) 'Stanford' >>> bucharest = make_city('Bucharest', 44.43, 26.10) >>> vienna = make_city( 'Vienna', 48.20, 16.37) >>> closer_city (41.29, 174.78, bucharest, vienna) 'Bucharest' "*** YOUR CODE HERE *****" return
Database System Concepts
7th Edition
ISBN:9780078022159
Author:Abraham Silberschatz Professor, Henry F. Korth, S. Sudarshan
Publisher:Abraham Silberschatz Professor, Henry F. Korth, S. Sudarshan
Chapter1: Introduction
Section: Chapter Questions
Problem 1PE
Related questions
Question

Transcribed Image Text:---for example,
Data abstraction is a powerful concept in computer science that allows programmers to treat code as objects
car objects, chair objects, people objects, etc. That way, programmers don't have to worry about how code is implemented
they just have to know what it does.
Data abstraction mimics how we think about the world. For example, when you want to drive a car, you don't need to know
how the engine was built or what kind of material the tires are made of. You just have to know how to turn the wheel and press
the gas pedal.
An abstract data type consists of two types of functions:
• Constructors: functions that build the abstract data type.
• Selectors: functions that retrieve information from the data type.
For example, say we have an abstract data type called city. This city object will hold the city's name, and its latitude
and longitude. To create a city object, you'd use a constructor like
city=make_city (name, lat, lon)
To extract the information of a city object, you would use the selectors like
get_name (city)
get_lat (city)
get_lon(city)
For example, here is how we would use the make_city constructor to create a city object to represent Berkeley and the
selectors to access its information.
>>> berkeley = make_city('Berkeley', 122, 37)
>>>get_name (berkeley)
'Berkeley'
>>>get_lat (berkeley)
>>>get_lon (berkeley)
122
37
Notice that we don't need to know how these functions were implemented. We are assuming that someone else has defined
them for us.
===
It's okay if the end user doesn't know how functions were implemented. However, the functions still have to be defined by
someone. We'll look into defining the constructors and selectors later in this discussion.
Ques
Ques
Quest
Politician
Questi
Submit

Transcribed Image Text:Implement closer_city, a function that takes a latitude, longitude, and two cities, and returns the name of the city that is
relatively closer to the provided latitude and longitude.
You may only use selectors and constructors (introduced above) for this question. You may also use the distance function
defined above. Remember, the point of data abstraction, as we've said, is that we do not need to know how an abstract data
type is implemented, but rather just how we can interact with and use the data type.
def closer_city (lat, lon, cityl, city2):
""" Returns the name of either cityl or city2, whichever is closest
to coordinate (lat, lon).
||||||
>>> berkeley = make_city('Berkeley', 37.87, 112.26)
>>> stanford = make_city('Staníprd', 34.05, 118.25)
>>> closer_city (38.33, 121.44, berkeley, stanford)
'Stanford'
>>> bucharest = make_city('Bucharest', 44.43, 26.10)
>>> vienna = make_city('Vienna', 48.20, 16.37)
>>> closer_city (41.29, 174.78, bucharest, vienna)
'Bucharest'
"*** YOUR CODE HERE ***"
return <REPLACE THIS>
Expert Solution

Step 1
Data Abstraction is an OOP concept that hides the background details. It shows only those pieces of information to the user which are most relevant for that specific process.
Abstraction can be implemented in the program through interface and classes.
Step by step
Solved in 2 steps

Knowledge Booster
Learn more about
Need a deep-dive on the concept behind this application? Look no further. Learn more about this topic, computer-science and related others by exploring similar questions and additional content below.Recommended textbooks for you

Database System Concepts
Computer Science
ISBN:
9780078022159
Author:
Abraham Silberschatz Professor, Henry F. Korth, S. Sudarshan
Publisher:
McGraw-Hill Education

Starting Out with Python (4th Edition)
Computer Science
ISBN:
9780134444321
Author:
Tony Gaddis
Publisher:
PEARSON

Digital Fundamentals (11th Edition)
Computer Science
ISBN:
9780132737968
Author:
Thomas L. Floyd
Publisher:
PEARSON

Database System Concepts
Computer Science
ISBN:
9780078022159
Author:
Abraham Silberschatz Professor, Henry F. Korth, S. Sudarshan
Publisher:
McGraw-Hill Education

Starting Out with Python (4th Edition)
Computer Science
ISBN:
9780134444321
Author:
Tony Gaddis
Publisher:
PEARSON

Digital Fundamentals (11th Edition)
Computer Science
ISBN:
9780132737968
Author:
Thomas L. Floyd
Publisher:
PEARSON

C How to Program (8th Edition)
Computer Science
ISBN:
9780133976892
Author:
Paul J. Deitel, Harvey Deitel
Publisher:
PEARSON

Database Systems: Design, Implementation, & Manag…
Computer Science
ISBN:
9781337627900
Author:
Carlos Coronel, Steven Morris
Publisher:
Cengage Learning

Programmable Logic Controllers
Computer Science
ISBN:
9780073373843
Author:
Frank D. Petruzella
Publisher:
McGraw-Hill Education