The diagram below represents the equilibrium position of a firm in a perfectly competitive industry. Study it and answer the questions that follow.
Explanation
(a)(i) Equilibrium output is 50kg and equilibrium price is $20.00
(ii) Firm’s party = TR – TC
TR = 50kg x $20.00 = $1000.00
TC = 50kg x $12.00 = $600.00
profit = $1000.00 – $600.00 = $400.00
OR
Profit = (AR – AC) * Q
= ($20.00 – $12.00) * 5
= $8.00 x 50
= $400.00
(iii) Abnormal/economic/supernormal profit. This is because the profit is earned at a point where price (AR) is greater than AC.
(b) The average revenue function is horizontal because in perfect competition, AR which is also the price is constant/fixed.
(c) (i) When MC is less than ATC, ATC is falling.
(ii) When MC is equal to ATC, ATC is at its minimum.
(iii) When MC is greater than ATC, ATC is rising.
- «
- «
- {{ element.page_num }} {{ element.page_num }}
- »
- »
`, props: ['data'], created() { let num_pages = (this.data.total > this.data.per_page) ? Math.ceil(parseFloat(this.data.total)/parseFloat(this.data.per_page)) : 0;
for(let i = 1; i <= num_pages; i++){
this.elements.push({
page_num: i,
isActive: i === this.data.current_page,
disabled: i === this.data.current_page
})
}
},
data() {
return {
elements: [],
}
},
methods: {
onPageSelect(num){
let url = this.data.path + '?c_page=' + num;
this.navigate(url);
},
navigate(url){
window.bus.$emit('comment_nav', url);
}
},
computed: {
hasPages(){
return this.data.total > this.data.per_page;
}
}
});
if(this.is_busy) return; this.is_busy = true;
let action = (this.selection && (this.selection === type)) ? '' : type;
if(action) { if (action === 'like') this.comment.like_ratings_count++; else this.comment.dislike_ratings_count++; }
if(this.selection){ if (this.selection === 'like') this.comment.like_ratings_count--; else this.comment.dislike_ratings_count--; }
this.selection = action; let formData = new FormData(); formData.append( 'comment_id', this.comment.id); formData.append( 'rate', type); formData.append( '_token', this.token);
fetch(`${BASE_URL}api/comments/rate_post`, { method: 'post', body: formData, }) .then(res => { if(res.status !== 200) { res.json().then(response => { console.log(response); }); } else { res.json().then(response => {
}); } }) .catch(err => console.log(err)) .finally(() => { this.is_busy = false; }); }, fetchRatings(type){ if(this.is_busy) return; this.is_busy = true;
fetch(`${BASE_URL}api/comments/ratings/${this.comment.id}/${type}`, { method: 'GET' }) .then(response => response.json()) .then(data => { window.bus.$emit('ratings', {ratings: data, type}); }) .catch(err => console.log(err)) .finally(() => { this.is_busy = false}); }, } })
`, props: ['comment'], data() { return {} }, methods: {} })
`, props: ['comment', 'reply', 'rate_selection', 'token', 'current_user'], data() { return {} }, methods: {} })
`, props: ['comment', 'is_alt', 'is_opera_mini', 'current_user', 'settings', 'user_ratings', 'user_follows', 'type', 'post_id', 'token'], data() { return { images: [] } }, methods: { user_rating(comment){ comment = (comment === undefined) ? this.comment : comment; let rating = (comment && (comment.id in this.user_ratings)) ? this.user_ratings[comment.id] : ''; return rating; }, show_reply_box(){ if(!IS_LOGGED_ON){ this.comment.show_reply_box = false; window.bus.$emit('show_login', ''); return; }
this.comment.show_reply_box = !this.comment.show_reply_box;
if(this.comment.show_reply_box && !this.is_opera_mini) { setTimeout(function(){ $('textarea.emojionearea').emojioneArea(); }, 500); } }, save(submitEvent){ if(!IS_LOGGED_ON){ window.bus.$emit('show_login', ''); return; }
if(this.comment.is_saving) return;
let formElements = submitEvent.target.elements; let message = formElements.message.value;
if(!message && this.images.length < 1) { this.comment.notification.error('No comment message or image specified'); return; } this.comment.is_saving = true; let formData = new FormData(); formData.append('comment', message); formData.append('parent_id', this.comment.id); formData.append( '_token', this.token); this.images.forEach((image) => { formData.append('images[]', image); });
fetch(`${BASE_URL}api/comments/${this.type}/${this.post_id}`, { method: 'post', body: formData, }) .then(res => { if(res.status !== 200) { res.json().then(response => { this.comment.notification.error(response.join()); }); } else { res.json().then(response => { this.comment.notification.success('Comment was successfully added.'); this.$emit('save', response);
//Clear form formElements.message.value = ''; let d = submitEvent.target.querySelector('.emojionearea-editor'); if(d) d.innerHTML = ""; this.images = []; formElements.image.value = ''; }); } }) .catch(err => console.log(err)) .finally(() => { this.comment.is_saving = false; }); }, onImageSelect(event, index){ this.images[index] = event.target.files[0]; }, quote(){ if(!IS_LOGGED_ON){ window.bus.$emit('show_login', ''); return; }
window.bus.$emit('quote', this.comment); let elem = document.getElementById("comment_form"); if(elem) elem.scrollIntoView(); }, updateFollowStatus(status){ if(!IS_LOGGED_ON){ window.bus.$emit('show_login', ''); return; }
if(this.comment.is_saving) return; this.comment.is_saving = true;
let formData = new FormData(); formData.append( 'comment_id', this.comment.id); formData.append( 'status', status); formData.append( '_token', this.token);
fetch(`${BASE_URL}api/comments/follow_status`, {
method: 'post',
body: formData,
})
.then(res => {
if(res.status !== 200)
{
res.json().then(response => {
console.log(response);
});
}
else {
res.json().then(response => {
if(status === 'follow') {
if(!this.user_follows.includes(this.comment.id))
this.user_follows.push(this.comment.id);
}
else{
if(this.user_follows.includes(this.comment.id)) {
let index = this.user_follows.indexOf(this.comment.id);
this.user_follows.splice(index, 1);
}
}
});
}
})
.catch(err => console.log(err))
.finally(() => {
this.comment.is_saving = false;
});
}
},
computed: {
is_following(){
return (this.comment && this.user_follows.includes(this.comment.id));
}
}
})
`, props: ['comment', 'is_alt', 'is_opera_mini', 'current_user', 'settings', 'user_ratings', 'user_follows', 'type', 'post_id', 'token'], data() { return { images: [] } }, methods: { user_rating(comment){ comment = (comment === undefined) ? this.comment : comment; let rating = (comment && (comment.id in this.user_ratings)) ? this.user_ratings[comment.id] : ''; return rating; }, show_reply_box(){ if(!IS_LOGGED_ON){ this.comment.show_reply_box = false; window.bus.$emit('show_login', ''); return; }
this.comment.show_reply_box = !this.comment.show_reply_box;
if(this.comment.show_reply_box && !this.is_opera_mini) { setTimeout(function(){ $('textarea.emojionearea').emojioneArea(); }, 500); } }, save(submitEvent){ if(!IS_LOGGED_ON){ window.bus.$emit('show_login', ''); return; }
if(this.comment.is_saving) return;
let formElements = submitEvent.target.elements; let message = formElements.message.value;
if(!message && this.images.length < 1) { this.comment.notification.error('No comment message or image specified'); return; } this.comment.is_saving = true; let formData = new FormData(); formData.append('comment', message); formData.append('parent_id', this.comment.id); formData.append( '_token', this.token); this.images.forEach((image) => { formData.append('images[]', image); });
fetch(`${BASE_URL}api/comments/${this.type}/${this.post_id}`, { method: 'post', body: formData, }) .then(res => { if(res.status !== 200) { res.json().then(response => { this.comment.notification.error(response.join()); }); } else { res.json().then(response => { this.comment.notification.success('Comment was successfully added.'); this.$emit('save', response);
//Clear form formElements.message.value = ''; let d = submitEvent.target.querySelector('.emojionearea-editor'); if(d) d.innerHTML = ""; this.images = []; formElements.image.value = ''; }); } }) .catch(err => console.log(err)) .finally(() => { this.comment.is_saving = false; }); }, onImageSelect(event, index){ this.images[index] = event.target.files[0]; }, quote(){ if(!IS_LOGGED_ON){ window.bus.$emit('show_login', ''); return; }
window.bus.$emit('quote', this.comment); let elem = document.getElementById("comment_form"); if(elem) elem.scrollIntoView(); }, updateFollowStatus(status){ if(!IS_LOGGED_ON){ window.bus.$emit('show_login', ''); return; }
if(this.comment.is_saving) return; this.comment.is_saving = true;
let formData = new FormData(); formData.append( 'comment_id', this.comment.id); formData.append( 'status', status); formData.append( '_token', this.token);
fetch(`${BASE_URL}api/comments/follow_status`, {
method: 'post',
body: formData,
})
.then(res => {
if(res.status !== 200)
{
res.json().then(response => {
console.log(response);
});
}
else {
res.json().then(response => {
if(status === 'follow') {
if(!this.user_follows.includes(this.comment.id))
this.user_follows.push(this.comment.id);
}
else{
if(this.user_follows.includes(this.comment.id)) {
let index = this.user_follows.indexOf(this.comment.id);
this.user_follows.splice(index, 1);
}
}
});
}
})
.catch(err => console.log(err))
.finally(() => {
this.comment.is_saving = false;
});
}
},
computed: {
is_following(){
return (this.comment && this.user_follows.includes(this.comment.id));
}
}
})
`, props: ['comment', 'token', 'current_user'], data() { return { is_busy: false } }, methods: { reportComment(event){ if(!IS_LOGGED_ON){ window.bus.$emit('show_login', ''); return; }
$('#report_modal').find('.modal-body #comment_id').val(this.comment.id);
$('#report_modal').modal('show') }, blockUser(){ if(!IS_LOGGED_ON){ window.bus.$emit('show_login', ''); return; }
let myPromise = new Promise((resolve, reject) => { let content = `Are you sure you want to block ${this.comment.posted_by.display_name}? You will not be able to view comments from this user.`; window.bus.$emit('open_confirm_dialog', { resolve, content }); });
myPromise.then(() => { if (this.is_busy) return; this.is_busy = true;
let formData = new FormData(); formData.append('user_id', this.comment.user_id); formData.append('_token', this.token);
fetch(`${BASE_URL}api/comments/block_user`, { method: 'post', body: formData, }) .then(res => { if (res.status === 200) { res.json().then(response => { window.bus.$emit('fetch_comments', ''); let content = this.comment.posted_by.display_name + ' was successfully blocked.'; window.bus.$emit('feedback_dialog', { content, title: "Success" }); }); } }) .catch(err => console.log(err)) .finally(() => { this.is_busy = false; }); }); },
}
})
window.bus.$on('fetch_comments', (data) => { this.fetch(); });
window.bus.$on('comment_nav', (url) => { this.fetch(url); });
window.bus.$on('open_confirm_dialog', (data) => { this.confirm_modal_data = data; $('#user_block_confirm_dialog').modal('show'); });
window.bus.$on('feedback_dialog', (data) => { this.feedback_modal_data = data; $('#feedback_modal').modal('show'); });
window.bus.$on('show_login', (data) => { $('#member_login_modal').modal('show'); });
window.bus.$on('ratings', (data) => { this.ratings = data.ratings; let modalBox = $('#friendListModal'); if (modalBox.length) { var title = (data.type === 'like') ? 'Like' : 'Dislike'; title += (data.ratings.length > 1) ? 's' : ''; modalBox.find('.modal-title').html(data.ratings.length + ' ' + title); modalBox.modal('show'); } });
let comments = {"user_ratings":[],"user_follows":[],"comment_count":0,"current_page":1,"data":[],"first_page_url":"https:\/\/myschool.ng\/api\/comments\/classroom\/56408?c_page=1","from":null,"last_page":1,"last_page_url":"https:\/\/myschool.ng\/api\/comments\/classroom\/56408?c_page=1","next_page_url":null,"path":"https:\/\/myschool.ng\/api\/comments\/classroom\/56408","per_page":15,"prev_page_url":null,"to":null,"total":0}; this.setComments(comments);
let comments_achieved = []; this.setAComments(comments_achieved);
}, mounted() { let that = this; $('#report_modal').on('show.bs.modal', function(event) { var modal = $(this); modal.find('.modal-body select').val(''); modal.find('.modal-body textarea').val(''); that.report_form_feedback = null; }); }, methods: { fetch(url) { if (this.is_loading) return; this.is_loading = true; const achive = false; url = (url !== undefined) ? url + '&' : `${BASE_URL}api/comments/${this.type}/${this.post_id}` + '?'; url += $.param({ filter: this.selectedSort, achieved_at: achive, });
let elem = document.getElementById("commentsApp"); if (elem) elem.scrollIntoView();
fetch(url, { method: 'GET' }) .then(response => response.json()) .then(data => { const ach = false; if (this.active == 'latest' && ach) { this.setComments(data.comments); } else if (this.active == 'achieved' && ach) { this.setAComments(data.comments_achieved); setTimeout(() => { let tabElem = document.getElementById('old-tab'); tabElem.click() }, 1000)
} else { this.setComments(data.comments); } }) .catch(err => console.log(err)) .finally(() => { this.is_loading = false
}); }, onSortByChange(sort) { this.selectedSort = sort; this.fetch(); }, attachData(comment) { comment.show_reply_box = (IS_LOGGED_ON && comment.replies.length >= 5); comment.is_saving = false; comment.message = ''; if (!('images' in comment)) comment.images = []; comment.notification = this.notification_obj(); if (!('like_ratings_count' in comment)) comment.like_ratings_count = 0; if (!('dislike_ratings_count' in comment)) comment.dislike_ratings_count = 0; }, setComments(comments) { comments.data.forEach((comment) => { this.attachData(comment); }); this.comments = comments; this.user_ratings = comments.user_ratings; this.user_follows = comments.user_follows; this.comment_count = comments.comment_count;
$(document).ready(function() { setTimeout(function() { $('.lazy').lazy() }, 500);
if (!this.is_opera_mini) { setTimeout(function() { $('textarea.emojionearea').emojioneArea(); }, 500); } }); }, setAComments(comments) { comments.data.forEach((comment) => { this.attachData(comment); }); this.comments_achieved = comments; this.user_ratings = comments.user_ratings; this.user_follows = comments.user_follows; this.comment_count = comments.comment_count;
$(document).ready(function() { setTimeout(function() { $('.lazy').lazy() }, 500);
if (!this.is_opera_mini) { setTimeout(function() { $('textarea.emojionearea').emojioneArea(); }, 500); } }); }, newReplyHandler(comment, reply) { this.attachData(reply); comment.replies.push(reply); this.comment_count++; }, notification_obj() { return { type: 'error', message: '', class_name: function() { return this.type === 'success' ? 'alert-success' : 'alert-danger'; }, error: function(message) { this.type = 'error'; this.message = message; }, success: function(message) { this.type = 'success'; this.message = message; } }; }, sendReport() { if (!IS_LOGGED_ON) { window.bus.$emit('show_login', ''); return; }
this.report_form_feedback = null;
if (this.is_busy) return; this.is_busy = true;
const formElement = document.querySelector("#report_modal form"); let formData = new FormData(formElement); formData.append('_token', this.token);
fetch(`${BASE_URL}api/comments/report`, { method: 'post', body: formData, }) .then(res => { if (res.status === 200) { res.json().then(response => { this.report_form_feedback = { status: 'success' }
/*let index = this.comments.data.findIndex(x => { return x.id === parseInt(response.comment_id); }); console.log(index);*/ }); } else if (res.status === 400) { res.json().then(response => { this.report_form_feedback = { status: 'error', message: response[0] }; }); } }) .catch(err => console.log(err)) .finally(() => { this.is_busy = false;
setTimeout(() => { this.report_form_feedback = null; }, 2000) }); }, yesAction() { $('#user_block_confirm_dialog').modal('hide'); this.confirm_modal_data.resolve(); } }, watch: { comment_count: function(count) { $('.comment-count-d').html(count); } } });
Quick Questions
-
1 Answers ·
·
11 hours ago -
0 Answers ·
·
10 hours ago -
3 Answers ·
1 day ago
if (this.is_saving) return;
let comment = this.$refs['comment'].value;
if (!comment && this.images.length < 1) { this.notification.error('No comment message or image specified'); return; } this.is_saving = true; let formData = new FormData(); formData.append('comment', comment); formData.append('_token', this.token); // formData.append('rc_token', // rc_token); if (this.quote) formData.append('qtid', this.quote.id); this.images.forEach((image) => { formData.append('images[]', image); });
fetch(`${BASE_URL}api/comments/${this.type}/${this.post_id}`, { method: 'post', body: formData, }) .then(res => { if (res.status !== 200) { res.json().then(response => { console.log(response); this.notification.error(response.join()); }); } else { res.json().then(response => { this.$refs['comment'].value = ''; $('.emojionearea-editor').html(''); this.images = []; $('input[type=file]').val(''); window.bus.$emit('new_comment', response); this.notification.success('Comment was successfully added.'); }); } }) .catch(err => console.log(err)) .finally(() => { this.is_saving = false; }); }, onImageSelect(event, index) { this.images[index] = event.target.files[0]; }, notification_obj() { return { type: 'error', message: '', class_name: function() { return this.type === 'success' ? 'alert-success' : 'alert-danger'; }, error: function(message) { this.type = 'error'; this.message = message; }, success: function(message) { this.type = 'success'; this.message = message; } }; } } });
Explanation
(a)(i) Equilibrium output is 50kg and equilibrium price is $20.00
(ii) Firm's party = TR - TC
TR = 50kg x $20.00 = $1000.00
TC = 50kg x $12.00 = $600.00
profit = $1000.00 - $600.00 = $400.00
OR
Profit = (AR - AC) * Q
= ($20.00 - $12.00) * 5
= $8.00 x 50
= $400.00
(iii) Abnormal/economic/supernormal profit. This is because the profit is earned at a point where price (AR) is greater than AC.
(b) The average revenue function is horizontal because in perfect competition, AR which is also the price is constant/fixed.
(c) (i) When MC is less than ATC, ATC is falling.
(ii) When MC is equal to ATC, ATC is at its minimum.
(iii) When MC is greater than ATC, ATC is rising.
Contributions ({{ comment_count }})
Please wait…
Modal title