Функционально – структурная схема программного продукта
Титульная форма
Постановка задачи: Представить сведения о разработчике и о программном продукте. Рекомендуемый вид формы (см. рис 1)
Рисунок 1Рекомендуемый вид формы
Таблица свойств установленных при проектировании формы
Объект | Свойство | Значение |
Form1 | Color | clWhite |
Caption | ‘Разработка информационных систем’ | |
Bordericons | [] | |
Font.size | ||
Font.name | Monotype Corsiva | |
Image1 | Stretch | True |
Picture | \...\001.ipg | |
Label1 | Caption | Приложение разработал студенто второго курса группы ИС2-1 в рамках прохождения учебной практики Иванов Иван Иванович |
Wordwrap | True | |
Button1 | Caption | ‘Вперед’ |
Button2 | Caption | ‘Выход’ |
Программный код
Объект | Событийно – управляемая процедура |
Button1 | uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, jpeg, ExtCtrls, Menus, StdCtrls,unit2; procedure TForm1.Button1Click(Sender: TObject); begin form1.Hide;{скрыть form1} form2.Show;{отобразить form2} end; |
Button2 | procedure TForm1.Button2Click(Sender: TObject); begin close end; |
Главная форма
Рекомендуемый вид формы (см. рис 2)
Рисунок 2 Рекомендуемый вид формы
Таблица свойств установленных при проектировании формы
Объект | Свойство | Значение |
Form2 | Caption | ‘Главное меню |
Bordericons | [biSystemMenu] | |
Font.size | ||
Image1 | Stretch | True |
Picture | \...\002.ipg | |
MainMenu | Caption |
Программный код
Объект | Событийно – управляемая процедура |
uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, Menus, jpeg, ExtCtrls,unit3,unit4,unit5,unit6,unit7,unit8; | |
N11 | procedure TForm2.N11Click(Sender: TObject); begin form2.Hide; form3.Show; end; |
N21 | procedure TForm2.N21Click(Sender: TObject); begin form2.Hide; form4.Show; end; |
N31 | procedure TForm2.N31Click(Sender: TObject); begin form2.Hide; form5.Show; end; |
N51 | procedure TForm2.N51Click(Sender: TObject); begin form2.Hide; form6.show; end; |
N41 | procedure TForm2.N41Click(Sender: TObject); begin form2.Hide; form7.show; end; |
N61 | procedure TForm2.N61Click(Sender: TObject); begin form2.Hide; form8.show; end; |
Линейный алгоритм
Постановка задачи: Даны катеты прямоугольного треугольника. Найти его периметр. Рекомендуемый вид формы (см. рис 3)
Рисунок 3 Рекомендуемый вид формы
Таблица свойств установленных при проектировании формы
Объект | Свойство | Значение |
Form3 | Caption | ‘Линейный алгоритм’ |
Bordericons | [] | |
Font.size | ||
Font.name | Times New Roman | |
Image1 | Stretch | True |
Picture | \...\002.ipg | |
Label1 | Caption | ‘Даны катеты прямоугольного треугольника. Найти его периметр.’ |
Wordwrap | True | |
Label2 | Caption | ‘Введите длины катетов в соответствующие поля’ |
Label3 | Caption | ‘a=’ |
Label4 | Caption | ‘b=’ |
Edit1 | Text | ‘’ |
Edit2 | Text | ‘’ |
Button1 | Caption | ‘Вычислить’ |
Button2 | Caption | ‘Главное меню’ |
Enabled | false |
Программный код
Объект | Событийно – управляемая процедура |
Edit1 | procedure TForm3.Edit1KeyPress(Sender: TObject; var Key: Char); begin if not (key in['0'..'9', #13,#8]) then begin ShowMessage(Необходимо вводить только натуральные числа для корректной работы программы'); key:=#0; end; end; |
Edit2 | procedure TForm3.Edit2KeyPress(Sender: TObject; var Key: Char); begin if not (key in['0'..'9', #13,#8]) then begin ShowMessage(Необходимо вводить только натуральные числа для корректной работы программы'); key:=#0; end; end; |
Button1 | procedure TForm3.Button1Click(Sender: TObject); var a,b:integer; p:real; begin If (edit1.Text='') or (edit2.Text='') then ShowMessage(Вы ввели недостаточное количество исходных данных,'+#13+' проверь те ввод данных и нажмите кнопку "Вычислить" ') Else begin a:=StrToInt(Edit1.Text); b:=StrToInt(Edit2.Text); p:= Sqr(a)+sqr(b)+sqrt(sqr(a)+sqr(b)); Showmessage('Ответ'+#13+floatTostrf(p,fffixed,4,2)); button2.Enabled:=true; edit1.Text:=''; edit2.Text:=''; end; end; |
Button2 | procedure TForm3.Button2Click(Sender: TObject); begin form3.hide; form2.show; end; |
Целочисленная арифметика
Постановка задачи: Дано четырехзначное число. Найти число, полученное при прочтении его цифр справа налево. Рекомендуемый вид формы (см. рис 4)
Рисунок 4 Рекомендуемый вид формы
Таблица свойств установленных при проектировании формы
Объект | Свойство | Значение |
Form4 | Caption | ‘Работа с числами’ |
Bordericons | [] | |
Font.size | ||
Font.name | Times New Roman | |
Image1 | Stretch | True |
Picture | \...\002.ipg | |
Label1 | Caption | ‘Дано четырехзначное число. Найти число, полученное при прочтении его цифр справа налево’ |
Wordwrap | True | |
Label2 | Caption | ‘Введите четырехзначное положительное число’ |
Edit1 | Text | ‘’ |
Button1 | Caption | ‘Вычислить’ |
Button2 | Caption | ‘Главное меню’ |
Enabled | false |
Программный код
Объект | Событийно – управляемая процедура |
Form4 | procedure TForm4.FormActivate(Sender: TObject); begin ShowMessage('Дано четырехзначное число.'+#13+' Найти число, полученное при прочтении его цифр справа налево '); end; |
Edit1 | procedure TForm4.Edit1KeyPress(Sender: TObject; var Key: Char); begin if not (key in['0'..'9', #13,#8]) then begin ShowMessage(Необходимо вводить только натуральные числа для корректной работы программы'); key:=#0; end; end; |
Button1 | procedure TForm4.Button1Click(Sender: TObject); var t,c,d,e:byte; a,b:integer; begin if length(Edit1.Text)<>4 then BEGIN Showmessage(‘Вы ввели не четырехзначное число.'+#13+Попробуйте еще раз'); EDIT1.Text:= ' '; edit1.SetFocus; end else begin a:=strtoint(Edit1.Text); t:=a div 1000; c:=a div 100 mod 10; d:=a div 10 mod 10; e:= a mod 10; b:=e*1000+d*100+c*10+t; label4.Caption:='Ответ'+ #13+'полученное число равно '+ intToStr(b); end; button2.Enabled:=true; end; |
Button2 | procedure TForm4.Button2Click(Sender: TObject); begin form4.Hide; form2.show; end; |
Разветвляющийся алгоритм
Постановка задачи: Даны три числа, вывести те из них, которые являются четными. Рекомендуемый вид формы (см. рис 5)
Рисунок 5 Рекомендуемый вид формы
Таблица свойств установленных при проектировании формы
Объект | Свойство | Значение |
Form5 | Caption | ‘Разветвляющийся алгоритм’ |
Bordericons | [] | |
Font.size | ||
Font.name | Times New Roman | |
Image1 | Stretch | True |
Picture | \...\002.ipg | |
Label1 | Caption | ‘Даны три числа, вывести те из них, которые являются четными.’ |
Wordwrap | True | |
Label2 | Caption | ‘Введите три числа и нажмите кнопку “Вычислить” ‘ |
Edit1 | Text | ‘’ |
Edit2 | Text | ‘’ |
Edit3 | Text | ‘’ |
Button1 | Caption | ‘Вычислить’ |
Button2 | Caption | ‘Главное меню’ |
Enabled | false |
Программный код
Объект | Событийно – управляемая процедура |
Edit1 | procedure TForm5.Edit1KeyPress(Sender: TObject; var Key: Char); begin if not (key in['0'..'9', #13,#8]) then begin ShowMessage(Необходимо вводить только натуральные числа для корректной работы программы'); key:=#0; end; end; |
Edit2 | procedure TForm5.Edit2KeyPress(Sender: TObject; var Key: Char); begin if not (key in['0'..'9', #13,#8]) then begin ShowMessage(Необходимо вводить только натуральные числа для корректной работы программы'); key:=#0; end; end; |
Edit3 | procedure TForm5.Edit3KeyPress(Sender: TObject; var Key: Char); begin if not (key in['0'..'9', #13,#8]) then begin ShowMessage(Необходимо вводить только натуральные числа для корректной работы программы'); key:=#0; end; end; |
Button1 | procedure TForm5.Button1Click(Sender: TObject); begin label6.Caption:='Четные числа: '; if StrToInt(edit1.Text) mod 2=0 then label6.Caption:=label6.Caption+ edit1.Text+' '; if StrToInt(edit2.Text) mod 2=0 then label6.Caption:=label6.Caption+ edit2.Text+' '; if StrToInt(edit3.Text) mod 2=0 then label6.Caption:=label6.Caption+ edit3.Text+' '; button2.Enabled:=true; end; |
Button2 | procedure TForm5.Button2Click(Sender: TObject); begin form5.Hide; form2.show; end; |
Циклический алгоритм
Постановка задачи: найти сумму положительных нечетных чисел, меньших 50. Рекомендуемый вид формы (см. рис 6)
Рисунок 6 Рекомендуемый вид формы
Таблица свойств установленных при проектировании формы
Объект | Свойство | Значение |
Form7 | Caption | ‘Циклический алгоритм’ |
Bordericons | [] | |
Font.size | ||
Font.name | times new roman | |
Image1 | Stretch | true |
Picture | \...\002.ipg | |
Label1 | Caption | ‘Найти сумму положительных нечетных чисел, меньших 50.’ |
Button1 | Caption | ‘Вычислить’ |
Button2 | Caption | ‘Главное меню’ |
Enabled | false |
Программный код
Объект | Событийно – управляемая процедура |
Button1 | procedure TForm7.Button1Click(Sender: TObject); var i:byte; s:integer; begin s:=0; i:=1; while i<51 do begin s:=s+i; i:=i+2; end; ShowMessage(Сумма положительных нечетных чисел меньших 50 равна '+ IntToStr(s)); button2.Enabled:=true; end; |
Button2 | procedure TForm7.Button2Click(Sender: TObject); begin form7.hide; form2.show; end; |
Одномерный массив
Постановка задачи: Каждое число Фибоначчи вычисляется как f1=0, f2=1, а начиная с третьего по формуле fn=fn-1+fn-2. Составить программу, которая вычисляет n чисел Фибоначчи. Рекомендуемый вид формы (см. рис)
Рисунок 7 Рекомендуемый вид формы
Таблица свойств установленных при проектировании формы
Объект | Свойство | Значение |
Form6 | Caption | ‘Одномерный массив’ |
Bordericons | [] | |
Font.size | ||
Font.name | times new roman | |
Image1 | Stretch | true |
Picture | \...\002.ipg | |
Label1 | Caption | ‘Каждое число Фибоначчи вычисляется как f1=0, f2=1, а начиная с третьего по формуле fn=fn-1+fn-2. составить программу, которая вычисляет n чисел Фибоначчи.’ |
Label2 | Caption | ‘Введите количество чисел’ |
Edit1 | Text | ‘’ |
Label3 | Caption | ‘Последовательность фибоначчи’ |
Label4 | Caption | ‘’ |
Button1 | Caption | ‘Вычислить’ |
Button2 | Caption | ‘Главное меню’ |
Enabled | false |
Программный код
Объект | Событийно – управляемая процедура |
Edit1 | procedure TForm6.Edit1KeyPress(Sender: TObject; var Key: Char); begin if not (key in['0'..'9', #13,#8]) then begin ShowMessage(Необходимо вводить только натуральное число для корректной работы программы'); key:=#0; end; end; |
Button1 | procedure TForm6.Button1Click(Sender: TObject); var n:integer; i:byte; f:array of integer; begin label4.Caption:=' '; if strtoint(edit1.Text)=0 then begin showMessage('Введите размерность последовательности); edit1.Text; edit1.SetFocus; end else begin n:=strtoint(edit1.Text); setlength(f,n); f[0]:=0; f[1]:=1; label4.Caption:=intTostr(f[0])+' '+intTostr(f[1])+' '; for i:=2 to n-1 do begin f[i]:=f[i-1]+f[i-2]; label4.Caption:=label4.Caption+intTostr(f[i])+' '; end; end; Button2.Enabled:=true; end; |
Button2 | procedure TForm6.Button2Click(Sender: TObject); begin form6.Hide; form2.show; end; |
Двумерный массив
Постановка задачи: Дан массив целых чисел. Определить сумму элементов массива больших 30. Рекомендуемый вид формы (см. рис 8)
Рисунок 8 Рекомендуемый вид формы
Таблица свойств установленных при проектировании формы
Объект | Свойство | Значение |
Form8 | Caption | ‘Двумерный массив’ |
Bordericons | [] | |
Font.size | ||
Font.name | times new roman | |
Image1 | Stretch | true |
Picture | \...\002.ipg | |
Label1 | Caption | ‘Дан массив целых чисел. определить сумму элементов массива больших 30.’ |
Label2 | Caption | ‘’ |
Button1 | Caption | ‘Ввести размерность’ |
Enabled | false | |
Button2 | Caption | ‘Заполнить и вывести элементы массива’ |
WordWrap | true | |
Enabled | false | |
Button4 | Caption | ‘Обработать элементы массива’ |
Enabled | False | |
WordWrap | True | |
Button5 | Caption | ‘Главное меню’ |
StringGrid1 | Name | St1 |
FixedRows | ||
FixedCols | ||
RowCount | ||
ColCount |
Программный код
Объект | Событийно – управляемая процедура |
var Form8: TForm8; a:array of array of integer; i, j, n, m:byte; s:integer; | |
Button1 | procedure TForm8.Button1Click(Sender: TObject); begin n:=strtoint(Inputbox('Ввод','Введите количество строк','3')); m:=strtoint(Inputbox('Ввод','Введите количество столбцов','3')); st1.ColCount:=m; st1.RowCount:=n; button2.Enabled:=true; button1.Enabled:=false; setlength(a,n,m); end; |
Button2 | procedure TForm8.Button2Click(Sender: TObject); begin st1.Visible:=true; for i:=0 to n-1 do for j:=0 to m-1 do begin a[i,j]:=StrToInt(Inputbox('Ввод','Введите очередной элемент','6')); st1.Cells[j,i]:=inttostr(a[i,j]); end; button2.Enabled:=false; button4.Enabled:=true; end; |
Button4 | procedure TForm8.Button4Click(Sender: TObject); begin Button2.Enabled:=false; s:=0; for i:=0 to n-1 do for j:=0 to m-1 do if a[i,j]>30 then s:=s+ a[i,j]; label2.Visible:=true; label2.Caption:='Сумма элементов массива, больших 30 равна ' + IntToStr(s); end; |
Button5 | procedure TForm8.Button5Click(Sender: TObject); begin form8.Hide; form2.show; end; |
Литература
1. Златопольский, Д.М. Сборник задач по программированию.-2-е изд., перераб. и доп. – СПб.: БХВ-Петербург, 2007.
2. Информатика: Учеб. Пособие для 10-11 кл. общеобразоват. Учреждений/ Л. З. Щауцукова. – М.: Просвещение, 2000.
3. Сборник задач по курсу информатики / под редакцией Л.И. Белоусовой. – М.: Издательство «Экзамен», 2007.
4. Рудаков, А. В. Технология разработки программных продуктов : учебник для студ. сред. проф. Образования / А. В. Рудаков.-М.: Издательский центр «Академия», 2012.
5. Разработка структурной и функциональной схем. Метод пошаговой детализации [Электронный ресурс]/(http://yourmetod.ru) Проверено 04.04.2013