I етап. Аналіз умови задачі, визначення вхідних даних і кінцевих результатів
Вхідні дані: Час розпаду, час.
Кінцеві результати: Кiлькiсть разiв.
II етап. Побудова інформаційної моделі
Очевидно, інформаційною моделлю розв’язування цієї задачі є математична модель, яка складається з формул, за якими знайдемо кiлькiсть разів зменшення.
Ці формули
N/N0 = 2-t/T
Крім того, одержані дані бажано округлити до сотих.
III етап. Вибір програмних засобів для розв’язування задачі виглядатимуть так:
Прикладним програмним засобом, який можна використати для розв’язування задачі, може бути, наприклад, програма-калькулятор або табличний процесор. Або можна скласти спеціальну програму для розв’язування саме цієї задачі, використовуючи одну з мов програмування.
IV етап. Складання алгоритму розв'язування задачі.
V етап. Отримання комп'ютерної моделі.
program mf;
Uses CRT;
label y;
var n,t,tp:double;
begin
TextColor (02);
y: writeln (' УМОВА');
writeln ('В скiльки разiв зменшиться кiлькiсть атомiв');
writeln ('радiоактивного елемента за певний час.');
writeln ('(Час розпаду i час мусять бути однакової розмiрностi.)');
TextColor (03);
write ('Час =');
readln(t);
write ('Час розпаду =');
readln(tp);
n:=1;
while t>=tp do
begin
t:=t-tp;
n:=n/2;
end;
writeln (' ');
TextColor (04);
writeln (1/n, ' раз');
readln;
clrscr;
goto y;
end.
l: CLS
PRINT " “¬®ў "
' УМОВА
PRINT "‚ бЄi«мЄЁ а §iў §¬ҐиЁвбп Єi«мЄiбвм ⮬iў а ¤i® ЄвЁў®Ј® Ґ«Ґ¬Ґв § ЇҐўЁ© з б"
'В скiльки разiв зменшиться кiлькiсть атомiв радiоактивного елемента за певний час
PRINT "(— б а®§Ї ¤г i з б ¬гбпвм ЎгвЁ ®¤ Є®ў®х а®§¬iа®бвi.)"
'(Час розпаду i час мусять бути однакової розмiрностi.)
INPUT "— б = ", t
'Час =
INPUT "— б а®§Ї ¤г = ", tp
'Час розпаду =
n = 1
WHILE t >= tp
t = t - tp
n = n / 2
WEND
PRINT 1 / n; " а §"
' раз
INPUT z
GOTO l
TextWindow.WriteLine(" УМОВА")
TextWindow.WriteLine("В скiльки разiв зменшиться кiлькiсть атомiв радiоактивного елемента за певний час.")
TextWindow.WriteLine("(Час розпаду i час мусять бути однакової розмiрностi.)")
TextWindow.Write( "Час = ")
t=TextWindow.ReadNumber()
TextWindow.Write("Час розпаду = ")
tp=TextWindow.ReadNumber()
n = 1
WHILE t >= tp
t = t - tp
n = n / 2
EndWHILE
TextWindow.Write( 1 / n)
TextWindow.Write( " раз")
<title>Розпад</title>
<body><div align="center">
<b>УМОВА<br>В скiльки разiв зменшиться кiлькiсть атомiв радiоактивного елемента за певний час.<br>(Час розпаду i час мусять бути однакової розмiрностi, та цілими числами)</b>
<br>
<br>
<form name="roz" action="javascript:roz()" id="1419313176">
Час = <input name="t" type="text" value=" " size="4"></b>
Час розпаду = <input name="tp" type="text" value=" " size="4"></b>
<br>
<br>
<input type="submit" value="Порахувати">
<input type="reset" value="Reset">
</form>
Відповідь: <span id="roz">Введіть данні і нажміть "Порахувати"</span>
</div>
<script language="javascript">
function roz() {
var t = eval(document.roz.t.value);
var tp = eval(document.roz.tp.value);
var sol = document.getElementById("roz");
var n = 1;
while (t >= tp) {
n = n / 2;
t = t - tp;
}
string = 1 / n + " раз";
sol.innerHTML = string;
}
</script>
#include <stdio.h>
int main(void)
{
float tp,t,n;
printf (" “¬®ў \n");
printf ("‚ бЄi«мЄЁ а §iў §¬ҐиЁвбп Єi«мЄiбвм ⮬iў а ¤i® ЄвЁў®Ј® Ґ«Ґ¬Ґв § ЇҐўЁ© з б ");
printf ( "(— б а®§Ї ¤г i з б ¬гбпвм ЎгвЁ ®¤ Є®ў®х а®§¬iа®бвi.)\n\n");
printf ( "— б = ");
scanf("%f", &t);
printf ( "— б а®§Ї ¤г = ");
scanf("%f", &tp);
n = 1;
while (t >= tp) {
n = n / 2;
t = t - tp;
}
printf ("\n %f а §", 1 / n);
scanf("\n");
return 0;
}
using System;
Class Program
{
static void Main(string[] args)
{
Console.WriteLine(" УМОВА");
Console.WriteLine("В скiльки разiв зменшиться кiлькiсть атомiв радiоактивного елемента за певний час.");
Console.WriteLine("(Час розпаду i час мусять бути однакової розмiрностi.)");
Console.Write("Час = ");
double t = Convert.ToDouble(Console.ReadLine());
Console.Write("Час розпаду = ");
double tp = Convert.ToDouble(Console.ReadLine());
double n = 1;
while (t >= tp) {
n = n / 2;
t = t - tp;
}
Console.WriteLine(" ");
Console.WriteLine(1 / n + " раз");
Console.ReadKey();
}
}
Class Program
Shared Sub Main()
Console.WriteLine(" УМОВА")
Console.WriteLine("В скiльки разiв зменшиться кiлькiсть атомiв радiоактивного елемента за певний час.")
Console.WriteLine("(Час розпаду i час мусять бути однакової розмiрностi.)")
Console.Write("Час = ")
Dim t As Double = Convert.ToDouble(Console.ReadLine())
Console.Write("Час розпаду = ")
Dim tp As Double = Convert.ToDouble(Console.ReadLine())
Dim n As Double = 1
WHILE t >= tp
n = n / 2
t = t - tp
End WHILE
Console.WriteLine (" ")
Console.Write ("{0} раз",1 / n)
Console.ReadKey()
End Sub
End Class
#include <conio.h>
#include <iostream>
int main(void)
{
double n,t,tp;
setlocale(LC_ALL, "");
std::cout << " УМОВА\n";
std::cout << "В скiльки разiв зменшиться кiлькiсть атомiв радiоактивного елемента за певний час. \n";
std::cout << "(Час розпаду i час мусять бути однакової розмiрностi.)\n";
std::cout << "Час = ";
std::cin >> t;
std::cout << "Час розпаду = ";
std::cin >> tp;
std::cout << "\n";
n = 1;
while (t >= tp) {
n = n / 2;
t = t - tp;
}
std::cout << 1/n << " раз " << std::endl;
getch();
return 0;
}
print(' УМОВА')
print('В скiльки разiв зменшиться кiлькiсть атомiв радiоактивного елемента за певний час.')
print('(Час розпаду i час мусять бути однакової розмiрностi.)')
t=float(input('Час = '))
tp=float(input('Час розпаду = '))
print('')
n=1
while tp <= t:
n = n / 2
t = t - tp
print (1/n,'раз')
input()
Розв’язування задачі в Pascal ABC.NET
procedure Form1.button2_Click(sender: Object; e: EventArgs);
begin
Close;
end;
procedure Form1.button1_Click(sender: Object; e: EventArgs);
var n,t,tp:real;
begin
t:=StrToFloat(TextBox1.Text);
tp:=StrToFloat(TextBox4.Text);
n:=1;
while t>=tp do
begin
t:=t-tp;
n:=n/2;
end;
TextBox3.Text:=FloatToStr(1/n);
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 = ""
End Sub
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
Dim t As Double = Convert.ToDouble(TextBox1.Text)
Dim tp As Double = Convert.ToDouble(TextBox2.Text)
Dim n As Double = 1
While t >= tp
n = n / 2
t = t - tp
End While
TextBox3.Text = Convert.ToString(1 / n)
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 = "";
}
private void button1_Click(object sender, EventArgs e)
{
double t = Convert.ToDouble(textBox1.Text);
double tp = Convert.ToDouble(textBox2.Text);
double n = 1;
while (t >= tp)
{
n = n / 2;
t = t - tp;
}
textBox3.Text = Convert.ToString(1 / n);
}
from tkinter import *
def click ():
t = float (entry1.get())
tp = float (entry2.get())
n=1
while tp <= t:
n = n / 2
t = t - tp
entry3.insert (0,1/n)
def click1 ():
entry1.delete(0, END)
entry2.delete(0, END)
entry3.delete(0, END)
root=Tk()
root.title('Розпад')
root.geometry('500x300')
label = Label (text = 'УМОВА \n В скiльки разiв зменшиться кiлькiсть атомiв радiоактивного елемента за певний час. \n Час розпаду i час мусять бути однакової розмiрностi.)')
label.pack(pady = 10)
labe2 = Label (text = 'Час')
labe2.pack(pady = 1)
entry1 = Entry ()
entry1.pack (pady = 1)
labe3 = Label (text = 'Час розпаду')
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 = 10)
entry3 = Entry ()
entry3.pack (pady = 1)
labe4 = Label (text = 'раз')
labe4.pack(pady = 1)
VI етап. Дослідження отриманих результатів на реальність і на відповідність умові
Після одержання підсумкової програми маємо проаналізувати її реальність.
Якщо таке дослідження виявляє помилки, потрібно шукати їхні причини, виправляти їх і знову проходити етапи, наступні за тим, на якому виявилися помилки