I етап. Аналіз умови задачі, визначення вхідних даних і кінцевих результатів
Вхідні дані: радіус основи, довжинa поверхнi конуса.
Кінцеві результати: висота, об`єм, бічна площа, загальна площа.
II етап. Побудова інформаційної моделі
Очевидно, інформаційною моделлю розв’язування цієї задачі є математична модель, яка складається з формул, за якими знайдемо бiчну площу, oб`єм, загальну площу та висоту конуса.
Ці формули
h2 = l2 – r2
sb = pi*r*l
sp = pi*r*l+pi*r2
v = 1/3*pi*r2*h
Крім того, одержані дані бажано округлити до сотих.
III етап. Вибір програмних засобів для розв’язування задачі виглядатимуть так:
Прикладним програмним засобом, який можна використати для розв’язування задачі, може бути, наприклад, програма-калькулятор або табличний процесор. Або можна скласти спеціальну програму для розв’язування саме цієї задачі, використовуючи одну з мов програмування.
IV етап. Складання алгоритму розв'язування задачі.
V етап. Отримання комп'ютерної моделі.
Висота - SQRT(B2*B2 - A2*A2)
Об`єм - 1/3*PI()*A2*A2*C2
Бічна площа - PI()*A2*B2
Загальна площа - PI()*A2*B2+PI()*A2*A2
program kon;
Uses CRT;
var h,sb,sp,r,l,v: real;
begin
writeln('Маємо конус.' );
writeln('Вiдомi радiус основи та довжинa поверхнi конуса. ' );
writeln('Знайти бiчну площу,oб`єм, загальну площу та висоту конуса. ' );
TextColor (06);
write('Введiть через пробiл радiус основи та довжину поверхнi конуса , потiм натиснiть Enter - ' );
readln(r,l);
h:= sqrt(sqr(l) - sqr(r));
sb :=pi*r*l;
sp :=pi*r*l+pi*r*r;
v:= 1/3*pi*r*r*h;
TextColor(03);
writeln('Висотa конуса - ', h:3:3);
writeln('Об`єм конуса - ', v:3:3);
writeln('Бiчна площа конуса - ', sb:3:3);
writeln('Загальна площа конуса - ', sp:3:3);
readln;
end.
PRINT "Њ ©Ґ¬® Є®гб. ‚i¤®¬i а ¤iгб ®б®ўЁ в Ўiз бв®а® ."
'Маємо конус. Вiдомиі радiус основи та бічна сторона.
PRINT "‡ ©вЁ ®Ў©Ґ¬, ўЁб®вг, Ўiзг в Ї®ўг Ї«®йг Є®гб ."
'Знайти обєм, висоту, бічну та повну площу конуса.
INPUT "‚ўҐ¤iвм а ¤iгб ®б®ўЁ, в вЁбiвм Enter - ", r
'Введiть радiус основи , потiм натиснiть Enter
INPUT "‚ўҐ¤iвм ¤®ў¦Ёг Ўiз®х бв®а®Ё, в вЁбiвм Enter - ", l
'Введiть довжину бічної сторони , потiм натиснiть Enter
h = SQR(l * l - r * r)
sb = 3.14 * r * l
sp = 3.14 * r * l + 3.14 * r * r
v = 1 / 3 * 3.14 * r * r * h
PRINT "Ѓiз Ї«®й Є®гб - "; sb
'Бічна площа конуса
PRINT "Џ®ў Ї«®й Є®гб - "; sp
'Повна площа конуса
PRINT "‚Ёб®в Є®гб - "; h
'Висота конуса
PRINT "ЋЎ©Ґ¬ Є®гб - "; v
'Обєм конуса
INPUT z
TextWindow.WriteLine("Маємо конус.Вiдомi радiус основи та довжинa поверхнi конуса.")
TextWindow.WriteLine("Знайти бiчну площу,oб`єм, загальну площу та висоту конуса.")
TextWindow.Write("Радiус основи = ")
r=TextWindow.ReadNumber()
TextWindow.Write("Довжина поверхнi = ")
l=TextWindow.ReadNumber()
h=Math.Round((Math.SquareRoot(l*l - r*r)*100))/100
sb =Math.Round(3.14*r*l*100)/100
sp =Math.Round((3.14*r*l+3.14*r*r)*100)/100
v = Math.Round(1/3*3.14*r*r*h*100)/100
TextWindow.Write("Висотa конуса = ")
TextWindow.WriteLine(h)
TextWindow.Write("Об`єм конуса = ")
TextWindow.WriteLine(v)
TextWindow.Write("Бiчна площа конуса = ")
TextWindow.WriteLine(sb)
TextWindow.Write("Загальна площа конуса = ")
TextWindow.WriteLine(sp)
#include <stdio.h>
#include <math.h>
int main(void)
{
float l,r,sp,sb,h,v;
printf ("Њ ©Ґ¬® Є®гб. ‚i¤®¬i а ¤iгб ®б®ўЁ в Ўiз бв®а® .\n");
printf ("‡ ©вЁ ®Ў©Ґ¬, ўЁб®вг, Ўiзг в Ї®ўг Ї«®йг Є®гб .\n \n");
printf ( "‚ўҐ¤iвм а ¤iгб ®б®ўЁ, в вЁбiвм Enter - ");
scanf("%f", &r);
printf ( "‚ўҐ¤iвм ¤®ў¦Ёг Ўiз®х бв®а®Ё, в вЁбiвм Enter - ");
scanf("%f", &l);
h = sqrt(l*l-r*r) ;
sp = 3.14 * r * l + 3.14 * r * r;
sb = 3.14 * r * l;
v= 0.33 * 3.14 * r * r * h;
printf ("\n‚Ёб®в Є®гб - %f", h);
printf ("\nЏ®ў Ї«®й Є®гб - %f", sp);
printf ("\nЃiз Ї«®й Є®гб - %f", sb);
printf ("\nЋЎ©Ґ¬ Є®гб - %f", v);
scanf("\n");
return 0;
}
<title>Конус</title>
<form name="kon" >
Маємо конус.Вiдомi радiус основи та довжинa поверхнi конуса.<br>Знайти бiчну площу,oб`єм, загальну площу та висоту конуса.
<br>
<br>
Радіус основи конуса = <input type="textfield" name="r" value="">
<br>
<br>
Довжина поверхнi конуса = <input type="textfield" name="l" value="">
<br>
<br>
<input type="button" value="Sb" onClick="document.kon.Sb.value=eval(document.kon.r.value)*eval(document.kon.l.value)*3.14">
Бiчна площа конуса = <input type="textfield" name="Sb" value="">
<br>
<br>
<input type="button" value="Sp" onClick="document.kon.Sp.value=eval(document.kon.r.value)*eval(document.kon.l.value)*3.14+eval(document.kon.r.value)*eval(document.kon.r.value)*3.14">
Загальна площа конуса = <input type="textfield" name="Sp" value="">
<br>
<br>
<input type="button" value="H" onClick="document.kon.H.value=Math.sqrt(eval(document.kon.l.value)*eval(document.kon.l.value)-eval(document.kon.r.value)*eval(document.kon.r.value))">
Висотa конуса = <input type="textfield" name="H" value="">
<br>
<br>
<input type="button" value="V" onClick="document.kon.V.value=Math.sqrt(eval(document.kon.l.value)*eval(document.kon.l.value)-eval(document.kon.r.value)*eval(document.kon.r.value))*1/3*eval(document.kon.r.value)*eval(document.kon.r.value)*3.14">
Об`єм конуса = <input type="textfield" name="V" value="">
<br>
<br>
<input type="reset" value="Reset">
</form>
<title>Конус</title>
<body><div align="center">
<b>Маємо конус.Вiдомi радiус основи та довжинa поверхнi конуса.<br>Знайти бiчну площу,oб`єм, загальну площу та висоту конуса.</b>
<br>
<br>
<form name="kon" action="javascript:kon()" id="1419313176">
Радіус основи конуса = <input name="r" type="text" value=" " size="4"></b>
Довжина поверхнi конуса = <input name="l" type="text" value=" " size="4"></b>
<br>
<br>
<input type="submit" value="Порахувати">
<input type="reset" value="Reset">
</form>
Відповідь: <br> <span id="kon">Введіть данні і нажміть "Порахувати"</span>
</div>
<script language="javascript">
function kon() {
var r = document.kon.r.value;
var l = document.kon.l.value;
var sol = document.getElementById("kon");
var h = Math.sqrt(l*l-r*r);
var sb =3.14*r*l;
var sp =3.14*r*l+3.14*r*r;
var v = 1/3*3.14*r*r*h;
string = "Об`єм конуса = "+v+"<br>"+"Бiчна площа конуса = "+sb+"<br>"+"Загальна площа конуса = "+sp+"<br>"+"Висотa конуса = "+h;
sol.innerHTML = string;
}
</script>
using System;
class Program
{
static void Main(string[] args)
{
Console.WriteLine("Маємо конус.Вiдомi радiус основи та довжинa поверхнi конуса.");
Console.WriteLine("Знайти бiчну площу,oб`єм, загальну площу та висоту конуса.");
Console.Write("Радiус основи = ");
Double r = Convert.ToDouble(Console.ReadLine());
Console.Write("Довжина поверхнi = ");
Double l = Convert.ToDouble(Console.ReadLine());
Double h = Math.Round(Math.Sqrt(l*l - r*r)*100)/100;
Double sb = 3.14*r*l;
Double sp = 3.14*r*l+3.14*r*r;
Double v = 0.33*3.14*r*r*h;
Console.WriteLine(" ");
Console.WriteLine("Висотa конуса = "+h);
Console.WriteLine("Об`єм конуса = "+v);
Console.WriteLine("Бiчна площа конуса = "+sb);
Console.WriteLine("Загальна площа конуса = "+sp);
Console.ReadKey();
}
}
Class Program
Shared Sub Main()
Console.WriteLine("Маємо конус.Вiдомi радiус основи та довжинa поверхнi конуса.")
Console.WriteLine("Знайти бiчну площу,oб`єм, загальну площу та висоту конуса.")
Console.Write("Радiус основи = ")
Dim r As Double = Convert.ToDouble(Console.ReadLine())
Console.Write("Довжина поверхнi = ")
Dim l As Double = Convert.ToDouble(Console.ReadLine())
Dim h As Double = Math.Round(Math.sqrt(l*l - r*r)*100)/100
Dim sb As Double = 3.14*r*l
Dim sp As Double = 3.14*r*l+3.14*r*r
Dim v As Double = Math.Round(1/3*3.14*r*r*h*100)/100
Console.WriteLine(" ")
Console.WriteLine("Висотa конуса = {0}",h)
Console.WriteLine("Об`єм конуса = {0}",v)
Console.WriteLine("Бiчна площа конуса = {0}",sb)
Console.WriteLine("Загальна площа конуса = {0}",sp)
Console.ReadKey()
End Sub
End Class
#include <conio.h>
#include <iostream>
#include <cmath>
int main(void)
{
double r,l,sp,sb,v,h;
setlocale(LC_ALL, "");
std::cout << "Маємо конус.Вiдомi радiус основи та довжинa поверхнi конуса.\n";
std::cout << "Знайти бiчну площу,oб`єм, загальну площу та висоту конуса.\n";
std::cout << "Радiус основи = ";
std::cin >> r;
std::cout << "Довжина поверхнi = ";
std::cin >> l;
h = sqrt(l*l - r*r);
sp = 3.14*r*l + 2*3.14*r*r;
sb = 3.14*r*l;
v = 0.33*3.14*r*r*h;
std::cout
<< "\nВисотa конуса = " << h
<< "\nБiчна площа конуса = " << sb
<< "\nОб`єм конуса = " << v
<< "\nЗагальна площа конуса = " << sp
<< std::endl;
getch();
return 0;
}
print ('Маємо конус.Вiдомi радiус основи та довжинa поверхнi конуса.')
print ('Знайти бiчну площу,oб`єм, загальну площу та висоту конуса.')
r=float(input('Радiус основи = '))
l=float(input('Довжина поверхнi = '))
print ('')
h = (l*l - r*r)**(1/2)
sb = 3.14*r*l
sp = 3.14*r*l+3.14*r*r
v = 1/3*3.14*r*r*h
print ('Висотa конуса =',h)
print ('Бiчна площа конуса =',sb)
print ('Об`єм конуса =',v)
print ('Загальна площа конуса =',sp)
input()
Розв’язування задачі в Visual BASIK 6
VERSION 5.00
Begin VB.Form Form1
BorderStyle = 1 'Fixed Single
Caption = "Конус"
ClientHeight = 6660
ClientLeft = 45
ClientTop = 390
ClientWidth = 3960
LinkTopic = "Form1"
MaxButton = 0 'False
MinButton = 0 'False
ScaleHeight = 6660
ScaleWidth = 3960
StartUpPosition = 2 'CenterScreen
Begin VB.TextBox Text1
Height = 300
Index = 5
Left = 960
TabIndex = 14
Top = 3960
Width = 2295
End
Begin VB.TextBox Text1
Height = 300
Index = 4
Left = 960
TabIndex = 7
Top = 3480
Width = 2295
End
Begin VB.TextBox Text1
Height = 300
Index = 3
Left = 960
TabIndex = 6
Top = 3000
Width = 2295
End
Begin VB.TextBox Text1
Height = 300
Index = 2
Left = 960
TabIndex = 5
Top = 2520
Width = 2295
End
Begin VB.TextBox Text1
Height = 300
Index = 1
Left = 960
TabIndex = 4
Top = 2040
Width = 2295
End
Begin VB.TextBox Text1
Height = 300
Index = 0
Left = 960
TabIndex = 3
Top = 1560
Width = 2295
End
Begin VB.CommandButton Command3
Caption = "ВИХІД"
Height = 375
Left = 360
TabIndex = 2
Top = 5640
Width = 3135
End
Begin VB.CommandButton Command2
Caption = "Очистка"
Height = 375
Left = 360
TabIndex = 1
Top = 5040
Width = 3135
End
Begin VB.CommandButton Command1
Caption = "СТАРТ"
Height = 375
Left = 360
TabIndex = 0
Top = 4440
Width = 3135
End
Begin VB.Label Label1
Caption = "H ="
Height = 255
Index = 5
Left = 360
TabIndex = 15
Top = 3960
Width = 735
End
Begin VB.Label Label2
Caption = "Маємо конус. Відомий радіус основи та довжина поверхні конуса. Знайти бічну, загальну площу, об'єм та висоту конуса."
Height = 735
Left = 240
TabIndex = 13
Top = 360
Width = 3495
End
Begin VB.Label Label1
Caption = "V ="
Height = 255
Index = 4
Left = 360
TabIndex = 12
Top = 3480
Width = 735
End
Begin VB.Label Label1
Caption = "S(п) ="
Height = 255
Index = 3
Left = 360
TabIndex = 11
Top = 3000
Width = 735
End
Begin VB.Label Label1
Caption = "S(б) ="
Height = 255
Index = 2
Left = 360
TabIndex = 10
Top = 2520
Width = 855
End
Begin VB.Label Label1
Caption = "L ="
Height = 255
Index = 1
Left = 360
TabIndex = 9
Top = 2040
Width = 855
End
Begin VB.Label Label1
Caption = "R ="
Height = 255
Index = 0
Left = 360
TabIndex = 8
Top = 1560
Width = 735
End
End
Attribute VB_Name = "Form1"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = False
Attribute VB_PredeclaredId = True
Attribute VB_Exposed = False
Private Sub Command1_Click()
r = Text1(0).Text
l = Text1(1).Text
h = Round(Sqr(l * l - r * r) * 100) / 100
sb = 3.14 * r * l
sp = 3.14 * r * l + 3.14 * r * r
v = Round(1 / 3 * 3.14 * r * r * h * 100) / 100
Text1(2).Text = sb
Text1(3).Text = sp
Text1(4).Text = v
Text1(5).Text = h
End Sub
Private Sub Command2_Click()
Text1(0).Text = ""
Text1(1).Text = ""
Text1(2).Text = ""
Text1(3).Text = ""
Text1(4).Text = ""
Text1(5).Text = ""
End Sub
Private Sub Command3_Click()
End
End Sub
Розв’язування задачі в Pascal ABC.NET
Розв’язування задачі в VB.NET
procedure Form1.button3_Click(sender: Object; e: EventArgs);
begin
Close;
end;
procedure Form1.button2_Click(sender: Object; e: EventArgs);
begin
TextBox1.Text:='';
TextBox2.Text:='';
TextBox4.Text:='';
TextBox5.Text:='';
TextBox6.Text:='';
TextBox3.Text:='';
end;
procedure Form1.button1_Click(sender: Object; e: EventArgs);
var h,sb,sp,r,l,v: real;
begin
r:=StrToFloat(TextBox1.Text);
l:=StrToFloat(TextBox2.Text);
h :=round(sqrt(sqr(l) - sqr(r))*100)/100;
sb:= round(pi*r*l*100)/100;
sp:= round((pi*r*l+pi*r*r)*100)/100;
v:= round(1/3*pi*r*r*h*100)/100;
TextBox3.Text:=FloatToStr(h);
TextBox4.Text:=FloatToStr(sb);
TextBox5.Text:=FloatToStr(sp);
TextBox6.Text:=FloatToStr(v);
end;
Public Class Form1
Private Sub Button3_Click(sender As Object, e As EventArgs) Handles Button3.Click
End
End Sub
Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
TextBox1.Text = ""
TextBox2.Text = ""
TextBox3.Text = ""
TextBox4.Text = ""
TextBox5.Text = ""
TextBox6.Text = ""
End Sub
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
Dim r As Double = Convert.ToDouble(TextBox1.Text)
Dim l As Double = Convert.ToDouble(TextBox2.Text)
Dim h As Double = Math.Round(Math.Sqrt(l * l - r * r) * 100) / 100
Dim sb As Double = 3.14 * r * l
Dim sp As Double = 3.14 * r * l + 3.14 * r * r
Dim v As Double = Math.Round(1 / 3 * 3.14 * r * r * h * 100) / 100
TextBox3.Text = Convert.ToString(sb)
TextBox4.Text = Convert.ToString(sp)
TextBox5.Text = Convert.ToString(v)
TextBox6.Text = Convert.ToString(h)
End Sub
End Class
Розв’язування задачі в C#
private void button2_Click(object sender, EventArgs e)
{
textBox1.Text = "";
textBox2.Text = "";
textBox3.Text = "";
textBox4.Text = "";
textBox7.Text = "";
textBox6.Text = "";
}
private void button3_Click(object sender, EventArgs e)
{
System.Environment.Exit(0);
}
private void button1_Click(object sender, EventArgs e)
{
double r = Convert.ToDouble(textBox1.Text);
double l = Convert.ToDouble(textBox2.Text);
double h = Math.Round(Math.Sqrt(l * l - r * r) * 100) / 100;
double sb = 3.14 * r * l;
double sp = 3.14 * r * l + 3.14 * r * r;
double v = Math.Round(0.33 * 3.14 * r * r * h * 100) / 100;
textBox3.Text = Convert.ToString(sb);
textBox6.Text = Convert.ToString(sp);
textBox7.Text = Convert.ToString(v);
textBox4.Text = Convert.ToString(h);
}
from tkinter import *
def click ():
r = float (entry1.get())
l = float (entry2.get())
h = (l*l - r*r)**(1/2)
sb = 3.14*r*l
sp = 3.14*r*l+3.14*r*r
v = 1/3*3.14*r*r*h
entry3.insert(0, h)
entry4.insert(0, sb)
entry5.insert(0, v)
entry6.insert(0, sp)
def click1 ():
entry1.delete(0, END)
entry2.delete(0, END)
entry3.delete(0, END)
entry4.delete(0, END)
entry5.delete(0, END)
entry6.insert(0, END)
root=Tk()
root.title('Kонус')
root.geometry('410x400')
label = Label (text = 'Маємо конус.Вiдомi радiус основи та довжинa поверхнi конуса.\n Знайти бiчну площу,oб`єм, загальну площу та висоту конуса.')
label.pack(pady = 10)
labe2 = Label (text = 'Радiус основи')
labe2.pack(pady = 1)
entry1 = Entry ()
entry1.pack (pady = 1)
labe3 = Label (text = 'Довжина поверхнi ')
labe3.pack(pady = 1)
entry2 = Entry ()
entry2.pack (pady = 1)
button = Button (text='Старт', command=click)
button.pack (pady = 10)
button = Button (text='Очистка', command=click1)
button.pack (pady = 1)
labe4 = Label (text = 'Висотa конуса ')
labe4.pack(pady = 1)
entry3 = Entry ()
entry3.pack (pady = 1)
labe5 = Label (text = 'Бiчна площа конуса ')
labe5.pack(pady = 1)
entry4 = Entry ()
entry4.pack (pady = 1)
labe6 = Label (text = 'Об`єм конуса ')
labe6.pack(pady = 1)
entry5 = Entry ()
entry5.pack (pady = 1)
labe7 = Label (text = 'Загальна площа конуса ')
labe7.pack(pady = 1)
entry6 = Entry ()
entry6.pack (pady = 1)
VI етап. Дослідження отриманих результатів на реальність і на відповідність умові
Після одержання підсумкової програми маємо проаналізувати її реальність.
Якщо таке дослідження виявляє помилки, потрібно шукати їхні причини, виправляти їх і знову проходити етапи, наступні за тим, на якому виявилися помилки