I етап. Аналіз умови задачі, визначення вхідних даних і кінцевих результатів
Вхідні дані: сторони a, b, c .
Кінцеві результати: бiчнa площа, oб`єм, периметр, дiагональ .
II етап. Побудова інформаційної моделі
Очевидно, інформаційною моделлю розв’язування цієї задачі є математична модель, яка складається з формул, за якими знайдемо площу, oб`єм, периметр та дiагональ паралелепіпеда.
Ці формули
d2= a2 + b2+c2 s =2*(a*b+c*a+c*b) p=4*(a+b+c) v= a*b*c
Крім того, одержані дані бажано округлити до сотих.
III етап. Вибір програмних засобів для розв’язування задачі виглядатимуть так:
Прикладним програмним засобом, який можна використати для розв’язування задачі, може бути, наприклад, програма-калькулятор або табличний процесор. Або можна скласти спеціальну програму для розв’язування саме цієї задачі, використовуючи одну з мов програмування.
IV етап. Складання алгоритму розв'язування задачі.
V етап. Отримання комп'ютерної моделі.
D2 - A2*B2*C2
E2 - 4*(A2+B2+C2)
F2 - 2*(A2*B2+C2*A2+C2*B2)
G2 - SQRT(A2*A2 + B2*B2+ C2*C2)
program par;
Uses CRT;
var a, b, c, s,p,d,v: real;
begin
writeln('Маємо паралелепiпед.' );
writeln('Вiдомi довжини сторiн. ' );
writeln('Знайти бiчну площу,oб`єм, периметр та дiагональ паралелепiпеда. ' );
TextColor (06);
write('Введiть через пробiл сторони паралелепiпеда, потiм натиснiть Enter - ' );
readln(a, b,c);
d:= sqrt(sqr(a) + sqr(b)+ sqr(c));
s :=2*(a*b+c*a+c*b);
p:=4*(a+b+c);
v:= a*b*c;
TextColor(03);
writeln('Довжина дiагоналi - ', d:3:3);
writeln('Об`єм паралелепiпеда - ', v:3:3);
writeln('Бiчна площа паралелепiпеда - ', s:3:3);
writeln('Периметр паралелепiпеда - ', p:3:3);
readln;
end.
PRINT "Њ ©Ґ¬® Ї а «Ґ«ҐЇiЇҐ¤. ‚i¤®¬i ¤®ў¦ЁЁ бв®аi."
'Маємо паралелепiпед.Вiдомi довжини сторiн.
PRINT "‡ ©вЁ Ї«®йг, ®Ў©Ґ¬, ЇҐаЁ¬Ґва в ¤i Ј® «м Ї а «Ґ«ҐЇiЇҐ¤ ."
'Знайти бiчну площу,oб`єм, периметр та дiагональ паралелепiпеда.
INPUT "‚ўҐ¤iвм ¤®ў¦Ёг бв®а®Ё a, в вЁбiвм Enter - ", a
'Сторона a
INPUT "‚ўҐ¤iвм ¤®ў¦Ёг бв®а®Ё b, в вЁбiвм Enter - ", b
'Сторона b
INPUT "‚ўҐ¤iвм ¤®ў¦Ёг бв®а®Ё б, в вЁбiвм Enter - ", c
'Сторона c
s = 2 * (a * b + c * a + c * b)
p = 4 * (a + b + c)
d = SQR(a * a + b * b + c * c)
v = a * b * c
PRINT "Џ«®й Ї а «Ґ«ҐЇiЇҐ¤ - "; s
'Площа паралелепiпеда
PRINT "„i Ј® «м Ї а «Ґ«ҐЇiЇҐ¤ - "; d
'Довжина дiагоналi
PRINT "ЏҐаЁ¬Ґва Ї а «Ґ«ҐЇiЇҐ¤ - "; p
'Периметр паралелепiпеда
PRINT "ЋЎ©Ґ¬ Ї а «Ґ«ҐЇiЇҐ¤ - "; v
'Об`єм паралелепiпеда
INPUT z
TextWindow.WriteLine("Маємо паралелепiпед.Вiдомi довжини сторiн.")
TextWindow.WriteLine("Знайти бiчну площу,oб`єм, периметр та дiагональ паралелепiпеда.")
TextWindow.Write("Сторона a = ")
a=TextWindow.ReadNumber()
TextWindow.Write("Сторона b = ")
b=TextWindow.ReadNumber()
TextWindow.Write("Сторона c = ")
c=TextWindow.ReadNumber()
d = Math.Round(Math.SquareRoot(a*a + b*b+ c*c)*100)/100
s = Math.Round(2*(a*b+c*a+c*b)*100)/100
p = Math.Round(4*(a+b+c)*100)/100
v = Math.Round(a*b*c*100)/100
TextWindow.Write("Довжина дiагоналi = ")
TextWindow.WriteLine(d)
TextWindow.Write("Об`єм паралелепiпеда = ")
TextWindow.WriteLine(v)
TextWindow.Write("Бiчна площа паралелепiпеда = ")
TextWindow.WriteLine(s)
TextWindow.Write("Периметр паралелепiпеда = ")
TextWindow.WriteLine(p)
#include <stdio.h>
#include <math.h>
int main(void)
{
float a,p,d,S,v;
printf ("Њ ©Ґ¬® ЄгЎ. ‚i¤®¬i ¤®ў¦ЁЁ бв®аi.\n");
printf ("‡ ©вЁ Ї«®йг, ®Ў©Ґ¬, ЇҐаЁ¬Ґва в ¤i Ј® «м ЄгЎ .\n \n");
printf ( "‚ўҐ¤iвм ¤®ў¦Ёг бв®а®Ё a, в вЁбiвм Enter - ");
scanf("%f", &a);
d = sqrt(3) * a ;
p = 12 * a ;
S = 6 * a * a;
v= a*a*a;
printf ("\n„i Ј® «м ЄгЎ - %f", d);
printf ("\nЏҐаЁ¬Ґва ЄгЎ - %f", p);
printf ("\nЏ«®й ЄгЎ - %f", S);
printf ("\nЋЎ©Ґ¬ ЄгЎ - %f", v);
scanf("\n");
return 0;
}
<title>Паралелепіпед</title>
<form name="par" >
Маємо паралелепiпед.Вiдомi довжини сторiн.<br>Знайти бiчну площу,oб`єм, периметр та дiагональ паралелепiпеда.
<br>
<br>
Сторона a = <input type="textfield" name="a" value="">
<br>
<br>
Сторона b = <input type="textfield" name="b" value="">
<br>
<br>
Сторона c = <input type="textfield" name="c" value="">
<br>
<br>
<input type="button" value="Sb" onClick="document.par.Sb.value=2*(eval(document.par.a.value)*eval(document.par.b.value)+eval(document.par.a.value)*eval(document.par.c.value)+eval(document.par.c.value)*eval(document.par.b.value))">
Бiчна площа паралелепiпеда = <input type="textfield" name="Sb" value="">
<br>
<br>
<input type="button" value="P" onClick="document.par.P.value=4*(eval(document.par.a.value)+eval(document.par.b.value)+eval(document.par.c.value))">
Периметр паралелепiпеда = <input type="textfield" name="P" value="">
<br>
<br>
<input type="button" value="D" onClick="document.par.D.value=Math.sqrt(eval(document.par.a.value)*eval(document.par.a.value)+eval(document.par.b.value)*eval(document.par.b.value)+eval(document.par.c.value)*eval(document.par.c.value))">
Довжина дiагоналi паралелепiпеда = <input type="textfield" name="D" value="">
<br>
<br>
<input type="button" value="V" onClick="document.par.V.value=eval(document.par.a.value)*eval(document.par.c.value)*eval(document.par.b.value)">
Об`єм паралелепiпеда = <input type="textfield" name="V" value="">
<br>
<br>
<input type="reset" value="Reset">
</form>
<title>Паралелепіпед</title>
<body><div align="center">
<b>Маємо паралелепiпед.Вiдомi довжини сторiн.<br>Знайти бiчну площу,oб`єм, периметр та дiагональ паралелепiпеда.</b>
<br>
<br>
<form name="par" action="javascript:par()" id="1419313176">
Сторона a = <input name="a" type="text" value=" " size="4"></b>
Сторона b = <input name="b" type="text" value=" " size="4"></b>
Сторона c = <input name="c" type="text" value=" " size="4"></b>
<br>
<br>
<input type="submit" value="Порахувати">
<input type="reset" value="Reset">
</form>
Відповідь: <br> <span id="par">Введіть данні і нажміть "Порахувати"</span>
</div>
<script language="javascript">
function par() {
var a = document.par.a.value;
var b = document.par.b.value;
var c = document.par.c.value;
var sol = document.getElementById("par");
var d = Math.sqrt(a*a + b*b+ c*c);
var s =2*(a*b+c*a+c*b);
var p =4*(eval(document.par.a.value)+eval(document.par.b.value)+eval(document.par.c.value));
var v = a*b*c;
string = "Об`єм паралелепiпеда = "+v+"<br>"+"Бiчна площа паралелепiпеда = "+s+"<br>"+"Периметр паралелепiпеда = "+p+"<br>"+"Довжина дiагоналi паралелепiпеда = "+d;
sol.innerHTML = string;
}
</script>
using System;
class Program
{
static void Main(string[] args)
{
Console.WriteLine("Маємо паралелепiпед.Вiдомi довжини сторiн.");
Console.WriteLine("Знайти бiчну площу,oб`єм, периметр та дiагональ паралелепiпеда.");
Console.Write("Сторона a = ");
Double a = Convert.ToDouble(Console.ReadLine());
Console.Write("Сторона b = ");
Double b = Convert.ToDouble(Console.ReadLine());
Console.Write("Сторона c = ");
Double c = Convert.ToDouble(Console.ReadLine());
Double d = Math.Round(Math.Sqrt(a*a + b*b+ c*c)*100)/100;
Double s = 2*(a*b+c*a+c*b);
Double p = 4*(a+b+c);
Double v = a*b*c;
Console.WriteLine (" ");
Console.WriteLine ("Довжина дiагоналi = "+d);
Console.WriteLine ("Бiчна площа паралелепiпеда = "+s);
Console.WriteLine ("Об`єм паралелепiпеда = "+v);
Console.WriteLine ("Периметер паралелепiпеда = "+p);
Console.ReadKey();
}
}
Class Program
Shared Sub Main()
Console.WriteLine("Маємо паралелепiпед.Вiдомi довжини сторiн.")
Console.WriteLine("Знайти бiчну площу,oб`єм, периметр та дiагональ паралелепiпеда.")
Console.Write("Сторона a = ")
Dim a As Double = Convert.ToDouble(Console.ReadLine())
Console.Write("Сторона b = ")
Dim b As Double = Convert.ToDouble(Console.ReadLine())
Console.Write("Сторона c = ")
Dim c As Double = Convert.ToDouble(Console.ReadLine())
Dim d As Double = Math.Round(Math.sqrt(a*a + b*b+ c*c)*100)/100
Dim s As Double = 2*(a*b+c*a+c*b)
Dim p As Double = 4*(a+b+c)
Dim v As Double = a*b*c
Console.WriteLine (" ")
Console.WriteLine ("Довжина дiагоналi = {0}",d)
Console.WriteLine ("Бiчна площа паралелепiпеда = {0}",s)
Console.WriteLine ("Об`єм паралелепiпеда = {0}",v)
Console.WriteLine ("Периметер паралелепiпеда = {0}",p)
Console.ReadKey()
End Sub
End Class
#include <conio.h>
#include <iostream>
#include <cmath>
int main(void)
{
double a,b,c,p,s,v,d;
setlocale(LC_ALL, "");
std::cout << "Маємо паралелепiпед.Вiдомi довжини сторiн.\n";
std::cout << "Знайти бiчну площу,oб`єм, периметр та дiагональ паралелепiпеда.\n";
std::cout << "Сторона a = ";
std::cin >> a;
std::cout << "Сторона b = ";
std::cin >> b;
std::cout << "Сторона c = ";
std::cin >> c;
p = 4*(a+b+c);
d = sqrt(a*a + b*b+ c*c);
s = 2*(a*b+c*a+c*b);
v = a*b*c;
std::cout
<< "\nДовжина дiагоналi = " << d
<< "\nБiчна площа паралелепiпеда = " << s
<< "\nОб`єм паралелепiпеда = " << v
<< "\nПериметер паралелепiпеда = " << p
<< std::endl;
getch();
return 0;
}
print ('Маємо паралелепiпед.Вiдомi довжини сторiн.')
print ('Знайти бiчну площу,oб`єм, периметр та дiагональ паралелепiпеда.')
a=float(input('Сторона a = '))
b=float(input('Сторона b = '))
c=float(input('Сторона c = '))
print ('')
d =(a*a + b*b+ c*c)**(1/2)
s = 2*(a*b+c*a+c*b)
p = 4*(a+b+c)
v = a*b*c
print ('Довжина дiагоналi =',d)
print ('Бiчна площа паралелепiпеда =',s)
print ('Об`єм паралелепiпеда =',v)
print ('Периметер паралелепiпеда =',p)
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 = 6
Left = 960
TabIndex = 16
Top = 2520
Width = 2295
End
Begin VB.TextBox Text1
Height = 300
Index = 5
Left = 960
TabIndex = 14
Top = 4440
Width = 2295
End
Begin VB.TextBox Text1
Height = 300
Index = 4
Left = 960
TabIndex = 7
Top = 3960
Width = 2295
End
Begin VB.TextBox Text1
Height = 300
Index = 3
Left = 960
TabIndex = 6
Top = 3480
Width = 2295
End
Begin VB.TextBox Text1
Height = 300
Index = 2
Left = 960
TabIndex = 5
Top = 3000
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 = 6120
Width = 3135
End
Begin VB.CommandButton Command2
Caption = "Очистка"
Height = 375
Left = 360
TabIndex = 1
Top = 5520
Width = 3135
End
Begin VB.CommandButton Command1
Caption = "СТАРТ"
Height = 375
Left = 360
TabIndex = 0
Top = 4920
Width = 3135
End
Begin VB.Label Label1
Caption = "c ="
Height = 255
Index = 6
Left = 360
TabIndex = 17
Top = 2520
Width = 855
End
Begin VB.Label Label1
Caption = "d ="
Height = 255
Index = 5
Left = 360
TabIndex = 15
Top = 4440
Width = 735
End
Begin VB.Label Label2
Caption = "Маємо паралелепіпед. Відомі сторони фігури. Знайти бічну площу, об'єм,діагональ та периметер паралелепіпеда."
Height = 735
Left = 240
TabIndex = 13
Top = 360
Width = 3615
End
Begin VB.Label Label1
Caption = "V ="
Height = 255
Index = 4
Left = 360
TabIndex = 12
Top = 3960
Width = 735
End
Begin VB.Label Label1
Caption = "p ="
Height = 255
Index = 3
Left = 360
TabIndex = 11
Top = 3480
Width = 735
End
Begin VB.Label Label1
Caption = "S ="
Height = 255
Index = 2
Left = 360
TabIndex = 10
Top = 3000
Width = 855
End
Begin VB.Label Label1
Caption = "b ="
Height = 255
Index = 1
Left = 360
TabIndex = 9
Top = 2040
Width = 855
End
Begin VB.Label Label1
Caption = "a ="
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()
a = Text1(0).Text
b = Text1(1).Text
c = Text1(6).Text
s = 2 * (a * b + c * a + c * b)
p = 4 * (a + b + c)
d = Round(Sqr(a * a + b * b + c * c) * 100) / 100
v = a * b * c
Text1(2).Text = s
Text1(3).Text = p
Text1(4).Text = v
Text1(5).Text = d
End Sub
Private Sub Command2_Click()
Text1(0).Text = ""
Text1(1).Text = ""
Text1(2).Text = ""
Text1(3).Text = ""
Text1(4).Text = ""
Text1(5).Text = ""
Text1(6).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:='';
TextBox6.Text:='';
TextBox3.Text:='';
end;
procedure Form1.button1_Click(sender: Object; e: EventArgs);
var a, s,v,d,p: real;
begin
a:=StrToFloat(TextBox1.Text);
d:=round(a*sqrt(3)*100)/100;
p:= round(a * 12*100)/100;
s:= round(sqr(a) * 6*100)/100;
v:= round(a*a*a*100)/100;
TextBox2.Text:=FloatToStr(d);
TextBox3.Text:=FloatToStr(p);
TextBox4.Text:=FloatToStr(s);
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 = ""
End Sub
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
Dim a As Double = Convert.ToDouble(TextBox1.Text)
Dim s As Double = 6 * a * a
Dim p As Double = 12 * a
Dim d As Double = Math.Round(Math.Sqrt(3) * a * 100) / 100
Dim v As Double = a * a * a
TextBox3.Text = Convert.ToString(s)
TextBox4.Text = Convert.ToString(p)
TextBox5.Text = Convert.ToString(v)
TextBox2.Text = Convert.ToString(d)
End Sub
End Class
Розв’язування задачі в C#
private void button2_Click(object sender, EventArgs e)
{
textBox1.Text = "";
textBox2.Text = "";
textBox3.Text = "";
textBox4.Text = "";
textBox5.Text = "";
}
private void button3_Click(object sender, EventArgs e)
{
System.Environment.Exit(0);
}
private void button1_Click(object sender, EventArgs e)
{
double a = Convert.ToDouble(textBox1.Text);
double s = 6 * a * a;
double p = 12 * a;
double d = Math.Round(Math.Sqrt(3) * a * 100) / 100;
double v = a * a * a;
textBox4.Text = Convert.ToString(s);
textBox3.Text = Convert.ToString(p);
textBox5.Text = Convert.ToString(v);
textBox2.Text = Convert.ToString(d);
}
from tkinter import *
def click ():
a = float (entry1.get())
b = float (entry2.get())
c = float (entry3.get())
d =(a*a + b*b+ c*c)**(1/2)
s = 2*(a*b+c*a+c*b)
p = 4*(a+b+c)
v = a*b*c
entry4.insert(0, d)
entry5.insert(0, s)
entry6.insert(0, p)
entry7.insert(0, v)
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)
entry7.insert(0, END)
root=Tk()
root.title('Паралелепiпед')
root.geometry('410x450')
label = Label (text = 'Маємо паралелепiпед.Вiдомi довжини сторiн.\n Знайти бiчну площу,oб`єм, периметр та дiагональ паралелепiпеда.')
label.pack(pady = 10)
labe2 = Label (text = 'Сторона a')
labe2.pack(pady = 1)
entry1 = Entry ()
entry1.pack (pady = 1)
labe3 = Label (text = 'Сторона b ')
labe3.pack(pady = 1)
entry2 = Entry ()
entry2.pack (pady = 1)
labe4 = Label (text = 'Сторона c ')
labe4.pack(pady = 1)
entry3 = Entry ()
entry3.pack (pady = 1)
button = Button (text='Старт', command=click)
button.pack (pady = 10)
button = Button (text='Очистка', command=click1)
button.pack (pady = 1)
labe5 = Label (text = 'Довжина дiагоналi')
labe5.pack(pady = 1)
entry4 = Entry ()
entry4.pack (pady = 1)
labe6 = Label (text = 'Бiчна площа паралелепiпеда ')
labe6.pack(pady = 1)
entry5 = Entry ()
entry5.pack (pady = 1)
labe7 = Label (text = 'Периметер паралелепiпеда')
labe7.pack(pady = 1)
entry6 = Entry ()
entry6.pack (pady = 1)
labe8 = Label (text = 'Об`єм паралелепiпеда ')
labe8.pack(pady = 1)
entry7 = Entry ()
entry7.pack (pady = 1)
VI етап. Дослідження отриманих результатів на реальність і на відповідність умові
Після одержання підсумкової програми маємо проаналізувати її реальність.
Якщо таке дослідження виявляє помилки, потрібно шукати їхні причини, виправляти їх і знову проходити етапи, наступні за тим, на якому виявилися помилки