I етап. Аналіз умови задачі, визначення вхідних даних і кінцевих результатів
Вхідні дані: катети a i b.
Кінцеві результати: площа трикутника.
II етап. Побудова інформаційної моделі
Очевидно, інформаційною моделлю розв’язування цієї задачі є математична модель, яка складається з формул, за якими знайдемо площу, периметр та гіпотенузу трикутника .
Ці формули
p=a+b+c S=(a*b)/2 c2=a2+b2
Крім того, одержані дані бажано округлити до сотих.
III етап. Вибір програмних засобів для розв’язування задачі виглядатимуть так:
Прикладним програмним засобом, який можна використати для розв’язування задачі, може бути, наприклад, програма-калькулятор або табличний процесор. Або можна скласти спеціальну програму для розв’язування саме цієї задачі, використовуючи одну з мов програмування.
IV етап. Складання алгоритму розв'язування задачі.
V етап. Отримання комп'ютерної моделі.
C2=SQRT(A2*A2+B2*B2)
D2=A2*B2/2
E2 =A2+B2+C2
program trikut;
Uses CRT;
var a, b, c, s,p: real;
begin
writeln('Маємо прямокутний трикутник.' );
writeln('Вiдомi довжини катетiв. ' );
writeln('Знайти площу, периметр та гiпотенузу трикутника. ' );
TextColor (06);
write('Введiть через пробiл довжини катетiв, потiм натиснiть Enter - ' );
readln(a, b);
c:= sqrt(sqr(a) + sqr(b));
s := a * b / 2;
p:=a+b+c;
TextColor(03);
writeln('Довжина гiпотенузи - ', c:3:3);
writeln('Площа трикутника - ', s:3:3);
writeln('Периметр трикутника - ', p:3:3);
readln;
end.
PRINT "ЏаאַЄгвЁ© ваЁЄгвЁЄ"
'Прямокутний трикутник
INPUT "Љ вҐв = ", a 'Катет а
INPUT "Љ вҐв b = ", b 'Катет b
c = SQR(a * a + b * b)
p = a + b + c
s = a * b / 2
PRINT "ѓiЇ®вҐг§ б = "; c 'Гіпотенуза с=
PRINT "ЏҐаЁ¬Ґва а = "; p 'Периметр p=
PRINT "Џ«®й S = "; s 'Площа S =
INPUT z
TextWindow.WriteLine("Прямокутний трикутник")
TextWindow.Write("Катет а = ")
a=TextWindow.ReadNumber()
TextWindow.Write("Катет b = ")
b=TextWindow.ReadNumber()
c = Math.Round(Math.SquareRoot(a * a + b * b)*100)/100
p = Math.Round(( a + b + c)*100)/100
s = Math.Round(a * b / 2*100)/100
TextWindow.Write("Гiпотенуза с = ")
TextWindow.WriteLine(c)
TextWindow.Write("Периметр p =")
TextWindow.WriteLine(p)
TextWindow.Write("Площа S = ")
TextWindow.WriteLine(s)
<title>Прямокутний трикутник</title>
<body><div align="center">
<b>Маємо прямокутний трикутник.<br> Відомі довжини катетів.<br> Знайти площу, периметр та гіпотенузу трикутника.</b>
<br>
<br>
<form name="pr_tr" action="javascript:pr_tr()" id="1419313176">
Катет a= <input name="a" type="text" value=" " size="4"></b>
Катет b= <input name="b" type="text" value=" " size="4"></b>
<br>
<br>
<input type="submit" value="Порахувати">
<input type="reset" value="Reset">
</form>
Вдповідь:
<br>
<br>
<span id="pr_tr">Введіть данні і нажміть "Порахувати"</span>
<script language="javascript">
function pr_tr()
{
var a = document.pr_tr.a.value;
var b = document.pr_tr.b.value;
var sol = document.getElementById("pr_tr");
var c = Math.sqrt(a*a+b*b);
var p = eval(document.pr_tr.a.value)+eval(document.pr_tr.b.value)+c;
var s = a*b/2;
string ="Гiпотенуза с="+c+"<br>"+"Периметр p="+p+"<br>"+"Площа S="+s;
sol.innerHTML = string;
}
</script>
<script language="javascript">
</script>
<title>Прямокутний трикутник</title>
<form name="prtr" >
Маємо прямокутний трикутник. Відомі довжини катетів. Знайти площу, периметр та гіпотенузу трикутника.
<br>
<br>
Катет а = <input type="textfield" name="a" value="">
Катет b = <input type="textfield" name="b" value="">
<input type="reset" value="Reset">
<br>
<br>
<input type="button" value="c" onClick="document.prtr.c.value=Math.sqrt(eval(document.prtr.a.value)*eval(document.prtr.a.value)+eval(document.prtr.b.value)*eval(document.prtr.b.value))">
Гiпотенуза с = <input type="textfield" name="c" value="">
<br>
<br>
<input type="button" value="p" onClick="document.prtr.p.value=eval(document.prtr.a.value)+eval(document.prtr.b.value)+eval(document.prtr.c.value)">
Периметр p = <input type="textfield" name="p" value="">
<br>
<br>
<input type="button" value="S" onClick="document.prtr.S.value=eval(document.prtr.a.value)*eval(document.prtr.b.value)/2">
Площа S = <input type="textfield" name="S" value="">
</form>
#include <stdio.h>
#include <math.h>
int main(void)
{
float a,b,c,p,S;
printf ("ЏаאַЄгвЁ© ваЁЄгвЁЄ\n \n");
printf ( "‘в®а® = ");
scanf("%f", &a);
printf ( "‘в®а® b = ");
scanf("%f", &b);
c = sqrt(a * a + b * b);
p = a + b + c;
S = a * b / 2;
printf ("\nѓiЇ®вҐг§ б = %f", c);
printf ("\nЏҐаЁ¬Ґва а = %f", p);
printf ("\nЏ«®й S = %f", S);
scanf("\n");
return 0;
}
using System;
class Program
{
static void Main(string[] args)
{
Console.WriteLine("Прямокутний трикутник");
Console.Write("Катет a = ");
Double a = Convert.ToDouble(Console.ReadLine());
Console.Write("Катет b = ");
Double b = Convert.ToDouble(Console.ReadLine());
Double c = Math.Round(Math.Sqrt(a*a + b*b)*100)/100;
Double s = a * b/ 2;
Double p = a+b+c;
Console.WriteLine (" ");
Console.WriteLine ("Гiпотенуза с = "+c);
Console.WriteLine ("Площа S = "+s);
Console.WriteLine ("Периметр p = "+p);
Console.ReadKey();
}
}
Class Program
Shared Sub Main()
Console.WriteLine("Прямокутний трикутник")
Console.Write("Катет a = ")
Dim a As Double = Convert.ToDouble(Console.ReadLine())
Console.Write("Катет b = ")
Dim b As Double = Convert.ToDouble(Console.ReadLine())
Dim c As Double = Math.Round(Math.sqrt(a*a + b*b)*100)/100
Dim s As Double = a * b/ 2
Dim p As Double = a+b+c
Console.WriteLine (" ")
Console.WriteLine ("Гiпотенуза с = {0}",c)
Console.WriteLine ("Площа S = {0}",s)
Console.WriteLine ("Периметр p = {0}",p)
Console.ReadKey()
End Sub
End Class
#include <conio.h>
#include <iostream>
#include <cmath>
int main(void)
{
double a,b,p,s,c;
setlocale(LC_ALL, "");
std::cout << "Прямокутний трикутник\n";
std::cout << "Катет a = ";
std::cin >> a;
std::cout << "Катет b = ";
std::cin >> b;
c = sqrt(a*a +b*b);
p = a+b+c;
s = a*b/2;
std::cout
<< "\nГiпотенуза с = " << c
<< "\nПлоща S = " << s
<< "\nПериметр p = " << p
<< std::endl;
getch();
return 0;
}
print ('Прямокутний трикутник')
a=float(input('Катет a = '))
b=float(input('Катет b = '))
print ('')
c =(a*a + b*b)**(1/2)
s = a * b/2
p = a+b+c
print ('Гiпотенуза с =',c)
print ('Площа S =',s)
print ('Периметр p =',p)
input()
Розв’язування задачі в Visual BASIK 6
VERSION 5.00
Begin VB.Form Form1
BorderStyle = 3 'Fixed Dialog
Caption = "Прямокутний трикутник"
ClientHeight = 2370
ClientLeft = 45
ClientTop = 390
ClientWidth = 6060
LinkTopic = "Form1"
MaxButton = 0 'False
MinButton = 0 'False
ScaleHeight = 2370
ScaleWidth = 6060
ShowInTaskbar = 0 'False
StartUpPosition = 1 'CenterOwner
Begin VB.TextBox Text1
Height = 285
Index = 4
Left = 2640
TabIndex = 13
Top = 1200
Width = 855
End
Begin VB.TextBox Text1
Height = 285
Index = 3
Left = 2640
TabIndex = 12
Top = 840
Width = 855
End
Begin VB.TextBox Text1
Height = 285
Index = 2
Left = 2640
TabIndex = 11
Top = 480
Width = 855
End
Begin VB.TextBox Text1
Height = 285
Index = 1
Left = 960
TabIndex = 10
Top = 840
Width = 855
End
Begin VB.TextBox Text1
Height = 285
Index = 0
Left = 960
TabIndex = 9
Top = 480
Width = 855
End
Begin VB.CommandButton Command3
Caption = "Вихід"
Height = 375
Left = 1920
TabIndex = 2
Top = 1800
Width = 1335
End
Begin VB.CommandButton Command2
Caption = "СТАРТ"
Height = 375
Left = 240
TabIndex = 1
Top = 1200
Width = 1455
End
Begin VB.CommandButton Command1
Caption = "Очистка"
Height = 375
Left = 240
TabIndex = 0
Top = 1800
Width = 1455
End
Begin VB.Label Label1
Caption = "c ="
Height = 255
Index = 5
Left = 2040
TabIndex = 8
Top = 480
Width = 375
End
Begin VB.Label Label1
Caption = "S ="
Height = 255
Index = 4
Left = 2040
TabIndex = 7
Top = 1200
Width = 375
End
Begin VB.Label Label1
Caption = "p ="
Height = 255
Index = 3
Left = 2040
TabIndex = 6
Top = 840
Width = 375
End
Begin VB.Label Label1
Caption = "Знайти площу, периметр, та гіпотенузу трикутника за його катетами."
Height = 375
Index = 2
Left = 240
TabIndex = 5
Top = 120
Width = 5535
End
Begin VB.Label Label1
Caption = "b ="
Height = 255
Index = 1
Left = 360
TabIndex = 4
Top = 840
Width = 375
End
Begin VB.Label Label1
Caption = "a ="
Height = 255
Index = 0
Left = 360
TabIndex = 3
Top = 480
Width = 375
End
Begin VB.Image Image1
Height = 1695
Left = 3720
Picture = "Form1.frx":0000
Stretch = -1 'True
Top = 480
Width = 2160
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()
Text1(0).Text = ""
Text1(1).Text = ""
Text1(2).Text = ""
Text1(3).Text = ""
Text1(4).Text = ""
End Sub
Private Sub Command2_Click()
a = Text1(0).Text
b = Text1(1).Text
c = Round(Sqr(a * a + b * b) * 100) / 100
p = Round((a / 1 + b / 1 + c / 1) * 100) / 100
s = a * b / 2
Text1(2).Text = c
Text1(3).Text = p
Text1(4).Text = s
End Sub
Private Sub Command3_Click()
End
End Sub
Розв’язування задачі в Pascal ABC.NET
procedure Form1.button2_Click(sender: Object; e: EventArgs);
begin
TextBox1.Text:='';
TextBox2.Text:='';
TextBox3.Text:='';
TextBox4.Text:='';
TextBox5.Text:='';
end;
procedure Form1.button3_Click(sender: Object; e: EventArgs);
begin
Close;
end;
procedure Form1.button1_Click(sender: Object; e: EventArgs);
var a,b,c,p,s:real;
begin
a:=StrToFloat(TextBox1.Text);
b:=StrToFloat(TextBox2.Text);
c:=round(sqrt(a*a+b*b));
p:=round(a+b+c);
s:=round(a*b/2);
TextBox3.Text:=FloatToStr(c);
TextBox4.Text:=FloatToStr(p);
TextBox5.Text:=FloatToStr(s);
end;
Розв’язування задачі в VB.NET
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 b As Double = Convert.ToDouble(TextBox2.Text)
Dim c As Double = Math.Round(Math.Sqrt(a * a + b * b) * 100) / 100
Dim p As Double = a + b + c
Dim s As Double = a * b / 2
TextBox3.Text = Convert.ToString(c)
TextBox5.Text = Convert.ToString(p)
TextBox4.Text = Convert.ToString(s)
End Sub
End Class
Розв’язування задачі в C#
private void button3_Click(object sender, EventArgs e)
{
System.Environment.Exit(0);
}
private void button2_Click(object sender, EventArgs e)
{
textBox1.Text = "";
textBox2.Text = "";
textBox3.Text = "";
textBox4.Text = "";
textBox5.Text = "";
}
private void button1_Click(object sender, EventArgs e)
{
double a = Convert.ToDouble(textBox1.Text);
double b = Convert.ToDouble(textBox2.Text);
double c = Math.Round(Math.Sqrt(a * a + b * b) * 100) / 100;
double p = a + b + c;
double s = a * b / 2;
textBox3.Text = Convert.ToString(c);
textBox5.Text = Convert.ToString(p);
textBox4.Text = Convert.ToString(s);
}
from tkinter import *
def click ():
a = float (entry1.get())
b = float (entry2.get())
c =(a*a + b*b)**(1/2)
s = a * b/2
p = a+b+c
entry3.insert(0, c)
entry4.insert(0, s)
entry5.insert(0, p)
def click1 ():
entry1.delete(0, END)
entry2.delete(0, END)
entry3.delete(0, END)
entry4.delete(0, END)
entry5.delete(0, END)
root=Tk()
root.title('Прямокутний трикутник')
root.geometry('310x350')
label = Label (text = 'Прямокутний трикутник')
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)
button = Button (text='Старт', command=click)
button.pack (pady = 10)
button = Button (text='Очистка', command=click1)
button.pack (pady = 1)
labe4 = Label (text = 'Гiпотенуза c ')
labe4.pack(pady = 1)
entry3 = Entry ()
entry3.pack (pady = 1)
labe5 = Label (text = 'Площа S ')
labe5.pack(pady = 1)
entry4 = Entry ()
entry4.pack (pady = 1)
labe6 = Label (text = 'Периметр p ')
labe6.pack(pady = 1)
entry5 = Entry ()
entry5.pack (pady = 1)
VI етап. Дослідження отриманих результатів на реальність і на відповідність умові
Після одержання підсумкової програми маємо проаналізувати її реальність.
Якщо таке дослідження виявляє помилки, потрібно шукати їхні причини, виправляти їх і знову проходити етапи, наступні за тим, на якому виявилися помилки