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