Технология разработки программного обеспечения

Основные понятия и определения, классификация программ, этапы создания программного продукта в рамках жизненного цикла. Особенности отладки, тестирования, сопровождения программ. Структурное программирование с использованием процедур и функций.

Рубрика Программирование, компьютеры и кибернетика
Вид учебное пособие
Язык русский
Дата добавления 15.01.2020
Размер файла 2,0 M

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

Меню Search

Если вы выберете команду Incremental Search, то вместо того чтобы показать диалоговое окно, где вводится образец для поиска, Delphi переходит в редактор. Когда вы введете первую букву, редактор перейдет к первому слову, которое начинается с этой буквы. Продолжайте набор букв и, курсор будет последовательно переходить к словам, в начале которых будут стоять введенные символы. Эта команда очень эффективна и чрезвычайно быстра. Команда Browse Symbol вызывает Object Browser - инструмент, который можно использовать для просмотра многих деталей при исследовании откомпилированной программы.

Меню View

Большинство команд меню View применяются для отображения какого-либо окна среды Delphi, например Project Manager, Breakpoints List или Components List. Эти окна не связаны друг с другом. Команда Toggle Form/Unit используется для перехода от формы, над которой вы работаете, к ее исходному коду, и обратно. Команда New edit window создает дубликат окна редактирования и его содержимого. В Delphi это единственный способ просмотреть два файла рядом друг с другом, поскольку редактор для показа нескольких загруженных файлов использует ярлыки. После дублирования окна редактирования могут содержать разные файлы. Последние две команды меню View можно использовать для удаления с экрана полоски SpeedBar и палитры Components, хотя при этом среда Delphi становится менее удобнее для пользователя. Команда Build All заставляет Delphi откомпилировать каждый исходный файл проекта, даже если после последней трансляции он не был изменен. Для проверки написанного кода без создания программы можно использовать команду Syntax Check. Команда Information дает некоторые подробности о последней выполненной трансляции. Команда Options применяется для установки опций проекта: опций компилятора и редактора связей, опций объекта приложения и т.д.

Меню Run

Меню Run можно назвать Debug (отладка), так как большинство команд в нем относится к отладке, включая саму команду Run. Программа, запускаемая внутри среды Delphi, выполняется в ее интегрированном отладчике (если не отключена соответствующая опция). Для быстрого запуска приложения используется клавиша F9. Остальные команды применяются в процессе отладки для пошагового выполнения программы, установки точек прерывания, просмотра значений переменных и объектов и т.п.

Меню Component

Команды меню Component можно использовать для написания компонентов, добавления их в библиотеку, а также для конфигурирования библиотеки или палитры компонентов.

Меню Tools

Меню Tools содержит список нескольких внешних программ и инструментальных средств. Команда Tools позволяет сконфигурировать это выпадающее меню и добавить в него новые внешние средства. Меню Tools также включает команду для настройки репозитория и команду Options, которая конфигурирует всю среду разработки Delphi.

Работа с формами

Проектирование форм - ядро визуальной разработки в среде Delphi. Каждый помещаемый в форму компонент или любое задаваемое свойство сохраняется в файле, описывающем форму (DFM-файл), а также оказывает некоторое влияние на исходный текст, связанный с формой (PAS-файл). Можно начать новый пустой проект, создав пустую форму или начать с существующей формы (используя различные доступные шаблоны), или добавить в проект новые формы. Проект (приложение) может иметь любое число форм.

При работе с формой можно обрабатывать ее свойства, свойства одного из ее компонентов или нескольких компонентов одновременно. Для того чтобы выбрать форму или компонент, можно просто щелкнуть по нему мышью или воспользоваться Object Selector (комбинированный список в Object Inspector), где всегда отображены имя и тип выбранного элемента. Для выбора нескольких компонентов можно или нажать клавишу Shift и щелкать по компонентам левой кнопкой мыши, или отбуксировать в форме рамку выбора.

SpeedMenu формы содержит ряд полезных команд. Для изменения относительного расположения компонентов одного вида можно использовать команды Bring To Front и Send To Back. Командой Revert To Inherited можно воспользоваться, чтобы в унаследованной форме установить те значения свойств выбранного компонента, которые были у них в родительской форме. При выборе сразу нескольких компонентов вы можете выровнять их или изменить их размеры.

С помощью SpeedMenu можно также открыть два диалоговых окна, в которых устанавливается порядок обхода визуальных управляющих элементов и порядок создания невизуальных управляющих элементов. Команда Add To Repository добавляет текущую форму в список форм, доступных для использования в других проектах.

Для установки положения компонента кроме применения мыши существуют еще два способа:

· установка значений для свойств Top и Left;

· использование клавиш курсора при нажатой клавише Ctrl.

Метод Ctrl+клавиша курсора особенно удобен при тонкой подстройке положения элемента. Точно также, нажимая клавиши курсора при нажатой клавише Shift, можно подстроить размер компонента.

Палитра компонентов

Для того чтобы добавить в текущую форму новый компонент, можно щелкнуть на одной из страниц палитры Components, а затем щелкнуть в форме, чтобы поместить новый элемент. Причем в форме можно или буксировать мышь с нажатой левой кнопкой, чтобы установить сразу и размер, и положение компонента, или просто щелкнуть один раз, позволяя Delphi установить размер по умолчанию.

Каждая страница палитры содержит компоненты, которые обозначены пиктограммами и именами, появляющимися в виде подсказки. Эти имена являются официальными названиями компонентов. В действительности это названия классов, описывающих компоненты без первой буквы T (например, если класс называется Tbutton, имя будет Button). Если необходимо поместить в форму несколько компонентов одного и того же вида, то при выборе компонента щелчком в палитре удерживайте нажатой клавишу Shift. Затем при каждом щелчке в форме Delphi будет вставлять новый компонент выбранного вида. Чтобы остановить эту операцию, просто щелкните по стандартному селектору (пиктограмма стрелки) слева от палитры Components.

Структура программ Delphi

Программа в Delphi состоит из файла проекта (файл с расширением .dph), одного или нескольких файлов исходного текста (с расширением .pas), файлов с описанием окон формы (с расширением .dfm).

В файле проекта находится информация о модулях, составляющих данный проект. Файл проекта автоматически создается и редактируется средой Delphi и не предназначен для редактирования.

Файл исходного текста - программный модуль (Unit), предназначенный для размещения текстов программ. В этом файле программист размещает текст программы, написанный на языке PASCAL.

В разделе объявлений описываются типы, переменные, заголовки процедур и функции, которые могут быть использованы другими модулями через операторов подключения библиотек (Uses). В разделе реализации располагаются тела процедур и функций, описанных в разделе объявлений, а также типы переменных, процедуры и функции, которые будут функционировать только в пределах данного модуля. Раздел инициализации используется редко. Модуль имеет следующую структуру:

unit Unit1;

interface

// Раздел объявлений

implementation

// Раздел реализации

begin

// Раздел инициализации

end.

При компиляции программы Delphi создает файл с расширением.dcu, содержащий результат перевода в машинные коды содержимого файлов с расширением .pas и .dfm. Компоновщик преобразует файлы с расширением .dcu в единый загружаемый файл с расширением .exe. В файлах, имеющих расширение.~df, .~dp,.~pa, хранятся резервные копии файлов с образом формы, проекта и исходного текста соответственно.

Пример написания программы линейного алгоритма

Задание: составить программу вычисления для заданных значений х, у, z арифметического выражения:

Настройка формы

Пустая форма в правом верхнем углу имеет кнопки управления, которые предназначены для свертывания формы в пиктограмму , разворачивания формы на весь экран и возвращения к исходному размеру и для закрытия формы . С помощью мыши, «захватывая» одну из кромок формы или выделенную строку заголовка, отрегулируйте нужные размеры формы и ее положение на экране (рис. 4.2).

Новая форма имеет одинаковые имя (Name) и заголовок (Caption) - FORM1. Имя формы менять не рекомендуется, так как оно содержится в тексте программы.

Изменение заголовка формы

Для изменения заголовка вызовите окно инспектора объектов (F11) и щелкните кнопкой мыши на форме. В форме инспектора объектов найдите и щелкните мышью на Properties - Caption. В выделенном окне наберите «Лраб 1».

Рис. 4.2 Внешний вид формы

Размещение строки ввода (TEdit)

Если необходимо ввести из формы в программу или вывести на форму информацию, которая вмещается в одну строку, используют окно однострочного редактора текста, представляемого компонентом TEdit. В данной программе с помощью однострочного редактора будут вводиться переменные х, у, z типа extended или integer.

Выберите в меню компонентов Standard пиктограмму , щелкните мышью в том месте формы, где вы хотите ее поставить. Вставьте три компонента TEdit в форму. Захватывая их мышью, отрегулируйте размеры окон и их положение. Обратите внимание на то, что в тексте программы появились три новых однотипных переменных Edit1, Edit2, Edit3. В каждой из этих переменных с расширением.Text будет содержаться строка символов (тип String) и отображаться в соответствующем окне Edit.

Так как численные значения переменных х, у, z имеют действительный тип для преобразования строковой записи числа, находящегося в переменной Edit.Text, в действительное, используется стандартная функция X:=StrToFloat(Edit1.Text).

Если исходные данные имеют целочисленный тип, например integer, то используется стандартная функция Х:=StrToInt(Edit1.Text).

При этом в записи числа не должно быть пробелов, а действительное число пишется с десятичной запятой.

С помощью инспектора объектов установите шрифт и размер символов, отображаемых в строке Edit (свойство Font).

Размещение надписей (TLabel)

На форме имеются четыре пояснительные надписи. Для нанесения таких надписей на форму используется компонент TLabel. Выберите в меню компонентов Standard пиктограмму , щелкните на ней мышью. После этого в нужном месте формы щелкните мышью, появится надпись Label1. Проделайте это для четырех надписей. Для каждой надписи, щелкнув на ней мышью, отрегулируйте размер и, изменив свойство Caption инспектора объектов, введите строку, например "Введите значение X:", а также выберите размер символов (свойства Font).

Обратите внимание на то, что в тексте программы автоматически появились четыре новых переменных типа .TLabel. В них хранятся пояснительные строки, которые можно изменять в процессе работы программы.

Размещение многострочного окна вывода (ТМето)

Для вывода результатов работы программы обычно используется текстовое окно, которое представлено компонентом (ТMemo). Выберите в меню компонентов пиктограмму и поместите компонент ТМеmо на форму. С помощью мыши отрегулируйте его размеры и местоположение. После установки с помощью инспектора свойства ScrollBars - SSBoth в окне появятся вертикальная и горизонтальная полосы прокрутки.

В тексте программы появится переменная Memo1 типа ТMemo. Информация, которая отображается построчно в окно типа ТMemo, находится в массиве строк Memo1.Lines. Каждая строка имеет тип String.

Для чистки окна используется метод Memo1.Сlеаr. Для того чтобы добавить новую строку в окно, используется метод Memo1.Lines.Add (переменная типа String).

Если нужно вывести число, находящееся в переменной действительного или целого типа, то его надо предварительно преобразовать к типу String и добавить в массив Memo1.Lines. Например, если переменная u:=100 целого типа, то метод Memo1.Line.Add сделает это и в окне появится строка «Значение u=100». Если переменная u:=-256,38666 действительного типа, то при использовании метода Meno1.Lines.Add('Значение u=' + FloatToStrF(u.ffFixed,8,2)) будет выведена строка «Значение u= -256.39». При этом под все число отводится восемь позиций, из которых две позиции занимает его дробная часть.

Если число строк в массиве Memo1 превышает размер окна, то для просмотра всех строк используется вертикальная полоса прокрутки. Если длина строки Memo1 превосходит количество символов в строке окна, то в окне отображается только начало строки. Для просмотра всей строки используется горизонтальная полоса прокрутки.

Написание программы обработки события нажатия кнопки(ButtonClick)

Поместите на форму кнопку, которая описывается компонентом TButton, для чего выберем в меню компонентов Standard пиктограмму . С помощью инспектора объектов измените заголовок (Caption) - Button1 на слово «Выполнить» или другое по вашему желанию. Отрегулируйте положение и размер кнопки.

После этого два раза щелкните мышью на кнопке, появится текст программы, дополненной заголовком процедуры обработчика события - нажатия кнопки (Procedure TForm1.ButtonClick(Sender: TObject);).

Наберите текст этой процедуры, приведенный в примере.

Запуск и работа с программой

Запустить программу можно, нажав Run в главном меню Run, или клавишу F9, или пиктограмму . При этом происходит трансляция и, если нет ошибок, компоновка программы и создание единого загружаемого файла с расширением.exe. На экране появляется активная форма программы.

Работа с программой происходит следующим образом. Нажмите (щелкните мышью) кнопку «Выполнить». В окне Memo1 появится результат. Измените исходные значения х, у, z в окнах Edit и снова нажмите кнопку «Выполнить» - появятся новые результаты. Завершить работу программы можно нажав в главном меню Run или кнопку {} на форме.

Текст программы:

unit tema1;

interface

uses

Windows, Messages. SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls;

type

TForm1 = class(TForm)

Label1:TLabel;

Edit1:TEdit;

Label2: TLabel;

Edit2:TEdit:

Label3: TLabel;

Edit3: TEdit;

Label4: TLabel;

Memo1:TMemo;

Buttonl: TButfon;

procedure FormCreate(Sender: TObject);

procedure Button1Click(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

Form1: TForm1;

Implementation

{$R*.DFM}

procedure TForm1.Button1Click(Sender: TObject);

var

x, y, z, a, b, c, u: extended;

begin

x:=StrToFloat(Edit1.Text); // Считывается значение X

Memo1.Lines.Add('X = '+Edit1.Text); // Вывод X в окно Memo1

y:=StrToFloat(Edit2.Text); // Считывается значение Y

Memo1.Lines.Add('Y = '+Edit2.Text); // Вывод Y в окно Memo1

z:=StrToFloat(Edit3.Text); // Ситывается значение Z

Memo1.Lines.Add('Z = '+Edit3.Text); // Вывод Z в окно Memo1

// Вычисляем арифметическое выражение

a:=Sqr(Sin(x+y)/Cos(x+y));

b:=Exp(y-z);

c:=Sqrt(Cos(Sqr(x))+Sin(Sqr(z)));

u:=a-b*c;

// Выводим результат в окно Memo1

Memo1.Lines.Add('Результат U = '+FloatToStrF(u,ffFixed,8,3));

end;

end.

Индивидуальные задания

Ниже приведены 15 вариантов задач. По указанию преподавателя выберите свое индивидуальное задание. Уточните условие задания, количество, наименование, типы исходных данных. В соответствии с этим установите количество окон Edit, тексты заголовков на форме, размеры шрифтов, а также типы переменных и функции преобразования при вводе и выводе результатов. С помощью инспектора объектов измените цвет формы, шрифт выводимых символов.

1. Найти сумму цифр заданного четырехзначного числа.

2. Определить число, полученное в обратном порядке цифр заданного трехзначного числа.

3. Вывести на экран 1 или 0 в зависимости от того, равна ли сумма двух первых цифр заданного четырехзначного числа сумме двух его последних цифр.

4. Вывести на экран 1 или 0 в зависимости от того, равен ли квадрат трехзначного числа кубу суммы цифр этого числа.

5. Вывести на экран 1 или 0 в зависимости от того, есть ли среди первых цифр дробной части заданного положительного вещественного числа определенная цифра.

6. Вывести на экран 1 или 0 в зависимости от того, есть ли среди цифр трехзначного числа одинаковые.

7. Присвоить целой переменной k третью от конца цифру в записи положительного целого числа n.

8. Присвоить целой переменной k первую цифру из дробной части положительного вещественного числа.

9. Целой переменной S присвоить сумму цифр трехзначного целого числа k.

10. Идет k-я секунда суток. Определить, сколько полных часов (h) и полных минут (m) прошло к этому моменту.

11. Определить f - угол (в градусах) между положением часовой стрелки в начале суток и ее положением в h - часов, т - минут и s - секунд (0? Н?11, 0?т, s?59).

12. Определить h - полное количество часов и m - полное количество минут, прошедших от начала суток до того момента (в первой половине дня), когда часовая стрелка повернулась на f градусов (0? f <360, f - вещественное число).

13. Пусть k - целое от 1 до 365. Присвоить целой переменной n значение 1,2,3,...,6 или 7 в зависимости от того, на какой день недели (понедельник, вторник,..., суббота или воскресенье) приходится k-й день невисокосного года, в котором 1 января - понедельник.

14. Поменять местами значения целых переменных х и у, не используя дополнительные переменные.

15. Вывести на экран 1 или 0 в зависимости от того, имеют три заданных числа одинаковую четность или нет.

Лабораторная работа 5 Использование визуальных компонент для создания качественных программ

Цель работы: научиться пользоваться простейшими компонентами организации переключений (TСheckBox, TRadioGroup).

Общие сведения

Операторы if и case языка Паскаль

Для программирования разветвляющихся алгоритмов в языке Pascal используются специальные переменные типа boolean, которые могут принимать только два значения - true и false (да, нет), а также операторы if и case. Оператор if проверяет результат логического выражения, или значение переменной типа boolean, и организует разветвление вычислений.

Например, если bl: boolean, x,y,u:integer, то фрагмент программы с оператором if может быть таким:

bl:=x>y;

if bl then u:=x-y

else u:=x-y;

Оператор выбора case организует разветвления в зависимости от значения некоторой переменной перечисляемого типа.

Например, если In: integer, то после выполнения

case in of

0: u:=x+y;

1: u:=x-y;

2: u:=x*y;

else u=0;

end;

В соответствии со значением in вычисляется u. Если in = 0, то u = x + y, если in = 1, то u = x - y, если in = 2, то u = x * y и, наконец, u = 0 при любых значениях in, отличных от 0, 1 или 2.

Кнопки-переключатели в Delphi

При создании программ в Delphi для организации разветвлений часто используются компоненты в виде кнопок-переключателей. Состояние такой кнопки (включено - выключено) визуально отражается на форме.

Компонент TCheckBox организует кнопку независимого переключателя, с помощью которой пользователь может указать свое решение типа да/нет. В программе состояние кнопки связано со значением булевской переменной, которая проверяется с помощью оператора if.

Компонент TRadioGroup организует группу кнопок-зависимых переключателей. При нажатии одной из кнопок группы все остальные кнопки отключаются. В программу передается номер включенной кнопки (0, 1, 2, …), который анализируется с помощью оператора case.

Пример программы разветвляющегося алгоритма

Задание: ввести три числа - х, у, z. Вычислить по усмотрению u = sin(x) или u = cos(x), или u = tg(х). Найти по желанию максимальное из трех чисел: max(x, у, z), или min (|x|, |у|, |z|). Создать форму и написать соответствующую программу.

Создайте форму, такую же как в первом задании, скорректировав текст надписей и положение окон TEdit.

Работа с компонентом TCheckBox

Выберите в меню компонентов Standard пиктограмму {} и поместите ее в нужное место формы. С помощью инспектора объектов измените заголовок (Caption) на «maabs». В тексте программы появится переменная CheckBox типа TCheckBox. Теперь в зависимости от того, нажата кнопка или нет, булевская переменная CheckBox.Checked будет принимать значения True или False.

Работа с компонентом TRadioGroup

Выберите в меню компонентов Standard пиктограмму и поместите ее в нужное место формы. На форме появится окаймленный линией чистый прямоугольник с заголовком RadioGroup1. Замените заголовок (Caption) на U(х). Для того чтобы разместить на компоненте кнопки, необходимо свойство Columns установить равным единице (кнопки размещаются в одном столбце). Дважды щелкните по правой части свойства Items мышью, появится строчный редактор списка заголовков кнопок. Наберите три строки с именами: в первой строке sin(x), во второй - cos(х), в третьей - tg(х), нажмите ОК. После этого на форме внутри окаймления появzтся три кнопки-переключателя с введенными надписями.

Обратите внимание на то, что в тексте программы появилась переменная RadioGroup типа TRadioGroup. Теперь при нажатии одной из кнопок группы в переменной целого типа RadioGroup1.ItemIndex будет находиться номер нажатой клавиши (отсчитывается от нуля), что используется в тексте приведенной программы.

Создание обработчиков событий FormCreate и Button1Click

Процедуры - обработчики событий FormCreate и Button1Click - создаются аналогично тому, как и в первой теме.

Запустите программу и убедитесь в том, что все ветви алгоритма выполняются правильно. Форма приведена на рис. 5.1.

Рис. 5.1 Форма программы разветляющегося алгоритма

Текст программы приведен ниже.

unit tema2;

interface

uses

Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ExtCtrls;

type

TForm1 = class(TForm)

CheckBox1: TCheckBox;

RadioGroup1: TRadioGroup;

Memo1: TMemo;

Button1:TButton;

Edit1:TEdit;

Label1: TLabel;

Label2: TLabel;

Edit2:TEdit;

Label3: TLabel:

Edi3: TEdlt;

procedure FormCreate(Sender: TObject);

procedure Button1Click(Sender: TObject);

private

{Private declarations}

public

{public declarations}

var

Form1: TForm1;

implementation

{$R.DFM}

procedure TForm1.FormCreate(Sender: TObject);

begin

Edit1.Text:='0,1';

Edit3.Ttext:='0,356';

Memo1.Clear;

Memo1.Lines.Add('Рез-ты ст.гр. 9383 Валента А.А.');

end;

procedure TForm1.Button1Click(Sender: TObject);

var x, y, z, u, ma: extended;

begin

// Ввод исходных данных и их вывод в окно Memo1

x:=StrToFloat(Edit1.Text);

Memo1.Lines.Add('x='+Edit1.Text);

y:=StrToFloat(Edlt2.Text);

Memo1.Lines.Add('y='+Edit2.Text);

z:=StrToFloat(Edtt3.Text);

Memo1.Lines.Add('z='+Edit3.Text);

// Проверка номера нажатой кнопки и выбор соответствующей ей функции

case RadioGroup.ltemlndex of

0: u:=cos(x);

1: u:=sin(x);

2: u:=sin(x)/cos(x);

end:

// Проверка состояния кнопки СheckBox1

if CheckBox1.Checked then

begin

u:=abs(u);

y:=abs(y);

z:=abs(z)

end;

// Нахождение максимального из трех чисел

if u>y then ma:=u else ma: =y;

if z>ma then ma:=z;

if CheckBox1.Checked then

Memo1.Lines.Add(' maxabs='+FloatToStrF(ma,ffFixed,8,2))

else

Memo1.Lines.Add('max='+FtoatToStrF(ma,ffGeneral,8,2));

end;

end.

Индивидуальные задания

Ниже приведены 15 вариантов задач. По указанию преподавателя выберите свое индивидуальное задание. Уточните условие задания, количество, наименование, типы исходных данных. В соответствии с этим установите количество окон Edit, тексты заголовков на форме, размеры шрифтов, а также типы переменных и функции преобразования при вводе и выводе результатов. С помощью инспектора объектов измените цвет формы, шрифт выводимых символов.

1. Известно, что из четырех чисел а1,а2,а3 и а4 одно отлично от трex других, равных между собой. Присвоить номер этого числа переменной п.

2. По номеру n (n > 0) некоторого года определить c - номер его столетия (учесть, что, к примеру, началом XX столетия был 1901, а не 1900 год!).

3. Значения переменных а, b и c поменять местами так, чтобы оказалось а ? b ? с.

4. Дано целое k от 1 до 180. Определить, какая цифра находится в k-й позиции последовательности 10111213...9899, в которой выписаны подряд все двузначные числа.

5. Дано натуральное k. Определить k-ю цифру в последовательности 110100100010000100000..., в которой выписаны подряд степени 10.

6. В старояпонском календаре был принят 60-летний цикл, состоявший из пяти 12-летних подциклов. Подциклы обозначались названиями цвета: green(зеленый), red (красный), yellow (желтый), white(белый) и black (черный). Внутри каждого подцикла годы носили названия животных: крысы, коровы, тигра, зайца, дракона, змеи, лошади, овцы, обезьяны, курицы, собаки и свиньи (1984 год - год зеленой крысы - был началом очередного цикла). Разработать программу, которая вводит номер некоторого года нашей эры и выводит его название по старояпонскому календарю.

7. Если сумма трех попарно различных действительных чисел х, у, z меньше единицы, то наименьшее из этих трех чисел заменить полусуммой двух в противном случае заменить меньшее из х и у полусуммой двул оставшихся значений,

8. Для целого числа k от 1 до 99 вывести фразу «мне k лет», учитывая при этом, что при некоторых значениях k слово «лет» надо заменить на слово «год» или «года».

9. Для натурального числа k вывести фразу «мы выпили k бутылок пива», согласовывая окончание слова «бутылка» с числом k.

10. Type курс=(С,В,Ю,3); {север, восток, юг, запад}

Приказ=(вперед, вправо, назад, влево);

Var К1, К2: курс; ПР: приказ;

Корабль сначала шел по курсу К1, а затем его курс был изменен согласно прикаказу ПР1. Определить К2 - новый курс корабля.

11. Туре месяц = (январь, февраль, март, апрель, май, июнь, июль, август, сентябрь, октябрь, ноя6рь, декабрь);

день=1...31;

Var d1,d2: день;

m1,т2: месяц;

t: boolean;

Переменной t присвоить значение 1 если дата d1, m1 предшествует (в рамках года) дате d2, m2, и значение 0 в других случаях.

12. Туре нота=(до, ре, ми, фа, соль, ля, си);

интервал=(секунда, терция, кварта, квинта, секста, септима);

var n1, n2: нота;

i: интервал;

Определить i-й интервал, образованный нотами п1 и п2 (п1<>п2): секунда - это интервал из двух соседних (по кругу) нот (например, ре и ми, си и до), терция - интервал через ноту (например, фа и ля, си и ре) и т.д.

13. Туре единица = (дециметр, километр, метр, миллиметр, сантиметр);

длина=real;

var х: длина;

Р: единица;

Значение переменной х, означающее некоторую длину в единицах р, заменить на величину этой же длины в метрах.

14. Туре сезон = (зима, весна, лето, осенъ);

Var m: месяц; {определение «месяц» см. в 26}

S: сезон;

Определить S - сезон, на который приходится месяц m.

15. Var k: 1...9;

Вывести значение переменной k римскими цифрами.

Лабораторная работа 6 Средства отладки программ в объектно-ориентированном программировании

Цель работы: изучить простейшие средства отладки программ в среде Delphi.

Общие сведения

Операторы организации циклов repeat, whyle, for языка Pascal

Под циклом понимается многократное выполнение одних и тех же операторов при различных значениях промежуточных данных. Число повторений может быть задано в явной или неявной форме.

Для организации повторений в языке Pascal предусмотрены три различных оператора цикла.

Оператор

repeat

<операторы>

until<условие>;

Организует повторение операторов, помещенных между ключевыми словами repeat и until, до тех пор, пока не выполнится <условие> = true, после чего управление передается следующему за циклом оператору.

Оператор

While <условие> do begin

<операторы>

end;

Организует повторение операторов, помещенных между begin и end, до тех пор, пока не выполнится <условие> = fаlse. Следует отметить, что если <условие> = fаlse при первом входе, то <операторы> не выполнятся ни разу, в отличие от repeat, в котором хотя бы один раз они выполнятся.

Оператор

for i:=i1 to i2 do begin

<операторы>

end;

Организует повторение операторов при нарастающем изменении переменной цикла i от начального значения i1 до конечного i2 с шагом «единица». Если i2 > i1, то <операторы> не выполнятся ни разу. Модификация оператора for i:=i2 downto i1 do begin <операторы> end организует повторения при убывающем изменении i на единицу.

Средства отладки программ в Delphi

Практически в каждой вновь написанной программе после запуска обнаруживаются ошибки.

Ошибки первого уровня (ошибки компиляции) связаны с неправильной записью операторов (орфографические, синтаксические). При обнаружении ошибки компилятор Delphi останавливается напротив первого оператора, в котором обнаружена ошибка. В нижней части экрана появляется текстовое окно, содержащее сведения обо всех ошибках, найденных в проекте. Каждая строка этого окна содержит имя файла, в котором найдена ошибка, номер строки с ошибкой и характер ошибки. Для быстрого перехода к интересующей ошибке необходимо дважды щелкнуть на строке с ее описанием. Для получения более полной информации о характере ошибки необходимо обратится к HELP нажатием клавиши F1. Следует обратить внимание на то, что одна ошибка может повлечь за собой другие, которые исчезнут при ее исправлении. Поэтому следует исправлять ошибки последовательно, сверху вниз и после исправления каждой ошибки компилировать программу снова.

Ошибки второго уровня (ошибки выполнения) связаны с ошибками выбранного алгоритма решения или с неправильной программной реализацией алгоритма. Эти ошибки проявляются в том, что результат расчета оказывается неверным либо происходит переполнение, деление на ноль и др. Поэтому перед использованием отлаженной программы ее надо протестировать, т.е. сделать просчеты при таких комбинациях исходных данных, для которых заранее известен результат. Если тестовые расчеты указывают на ошибку, то для ее поиска следует использовать встроенные средства отладки среды DELPHI.

В простейшем случае для локализации места ошибки рекомендуется поступать следующим образом. В окне редактирования текста установить курсор в строке перед подозрительным участком и нажать клавишу F4 (выполнение до курсора). Выполнение программы будет остановлено на строке, содержащей курсор. Теперь можно увидеть, чему равно значение интересующих переменных. Для этого можно поместить на нужную переменную курсор (на экране будет высвечено ее значение) либо нажать Ctrl-F7 и в появившимся диалоговом окне указать интересующую переменную (с помощью данного окна можно также изменить значение переменной во время выполнения программы). Нажимая клавишу F7 (пошаговое выполнение), можно построчно выполнять программу, контролируя изменение тех или иных переменных и правильность вычислений. Если курсор находится внутри цикла, то после нажатия F4 расчет останавливается после одного выполнения тела цикла. Для продолжения расчетов следует нажать <Run> меню Run.

Пример написания программы циклического алгоритма

Задание: написать и отладить программу, которая выводит таблицу значений функции для х изменяющихся в интервале от X1 до Х2 с шагом h.

Окно диалога представлено на рис. 6.1.

Рис. 6.1 Окно диалога программы

Текст программы приведен ниже.

unit tema3;

interface

uses

Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ExtCtrls;

type

TForm1 = class(TForm)

Memo1: TMemo;

Button1: TButton;

Label1: TLabel;

Label2: TLabel;

Label3: TLabel;

Label4: TLabel;

Edit1: TEdit;

Edit2: TEdit;

Edit3: TEdit;

Edit4: TEdit;

procedure FormCreate(Sender: TObject);

procedure Button1Click(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations}

end;

var Form1: TForm1;

implementation

{$R*.DFM}

procedure TForm1.FormCreate(Sender: TObject);

begin

Edit1.Text:='0';

Edit2.Text:='2';

Edit3.Text:='5';

Edit4.Text:='0.25';

Memo1.Clear;

Memo.Lines.Add('Результаты ст. гр. 9383 Валета А.В.');

end;

procedure TForm1.Button1Cllck(Sender: TObject);

var x1, x2, x, h, a, s: extended;

N, k, c: integer;

begin

x1:=StrToFloat(Edit1.Text);

Memo1.Lines.Add('x1='+Edit1.Text);

x2:=StrToFloat(Edit2.Text);

Memo1.Lines.Add('x2='+Edit2.Text);

N:=StrTolnt(Edit3.Text);

Memo1.lines.Add('N='+Edit3.Text);

h:=StrToFloat(Edit4.Text);

Memo1.Lines.Add(' h='+Edit4.Text);

c:=-1;

x:=x1;

repeat

a:=1;

S:=1;

for k:=1 to N do

begin

a:=c*a*x/k;

s:=s+a;

end;

Memo1.lines.Add('при x=' +FloatToStrF(x,ffFixed,6,2)+ 'сумма =' + FloatToStrF(s,tfFtxed,6,2));

x:=x+h;

until x>x2;

end;

end.

После отладки программы составьте тест (N = 2, Х1 = 0, Х2 = 1, h = 0,3), установите курсор на первый оператор (N:= ), нажмите клавишу F4. После этого нажимая клавишу F7, выполните пошаговую программу и проследите, как меняются все переменные в процессе выполнения.

Индивидуальные задания

Ниже приведены 15 вариантов задач. По указанию преподавателя выберите свое индивидуальное задание. Уточните условие задания, количество, наименование, типы исходных данных. В соответствии с этим установите количество окон Edit, тексты заголовков на форме, размеры шрифтов, а также типы переменных и функции преобразования при вводе и выводе результатов. С помощью инспектора объектов измените цвет формы, шрифт выводимых символов.

1. Подсчитать k - количество цифр в десятичной записи целого неотрицательного числа n.

2. Переменной t присвоить значение 1 или 0 в зависимости от того, является ли натуральное число k степенью 3.

3. Дано n вещественных чисел. Вычислить разность между максимальным и минимальным из них.

4. Дана непустая последовательность различных натуральных чисел, за которой следует 0. Определить порядковый номер наименьшего из них.

5. Даны целое n > 0 и последовательность из n вещественных чисел, среди которых есть хотя бы одно отрицательное число. Найти значение наибольшего среди отрицательных чисел этой последовательности.

6. Дано n вещественных чисел. Определить, образуют ли они возрастающую последовательность.

7. Дана последовательность из n целых чисел. Определить, со скольких отрицательных чисел она начинается.

8. Определить k - количество трехзначных натуральных чисел, сумма цифр которых равна n (1 ? n ? 27). Операции деления (/, div и mod) не использовать.

9. Вывести на экран в возрастающем порядке все трехзначные числа, в десятичной записи которых нет одинаковых цифр (операции деления не использовать).

10. Переменной t присвоить значение 1 или 0 в зависимости от того, можно или нет натуральное число n представить в виде трех полных квадратов.

11. Дано натуральное число n. Выяснить, входит ли цифра 3 в запись числа n.

12. Дано натуральное число n. Найти сумму его цифр

13. Дано целое n > 0, за которым следует n вещественных чисел. Определить, сколько среди них отрицательных.

14. Дано натуральное число n. Переставить местами первую и последнюю цифры числа n.

15. Дано натуральное число n. Заменить порядок следования цифр числа n на оборот.

Лабораторная работа 7 Использование стиля программирования

Цель работы: разработать программу по правилам хорошего стиля программирования. Написать программу с использованием массивов.

Общие положения

Меню - один из распространенных элементов пользовательского интерфейса, который представляет собой список пунктов, объединенных по функциональному признаку, каждый из которых обозначает команду или вложенное меню (подменю).

Главное меню располагается в верхней части формы под ее заголовком и содержит наиболее общие команды приложения. В Delphi главное меню представлено компонентом MainMenu.

Для создания и изменения меню в процессе разработки приложения в среде Delphi предназначен Конструктор меню (Menu Designer). Запуск Конструктора меню можно выполнить по команде Menu Designer. контекстного меню компонента MainMenu, а также с помощью двойного щелчка кнопкой мыши на этот компонент. При конструировании меню имеет тот же вид, что и при выполнении приложения.

Наименование пункта меню задается путем присвоения нужного значения его свойству Caption. Кроме того, в Delphi у компонента MainMenu доступны такие свойства, как Checked и Bitmap, определяющие соответственно:

· Checked = true/false - наличие/отсутствие отметки у пункта меню (для отметки выбора);

· Bitmap = рисунок, определяющий наличие картинки перед названием пункта в меню.

Для закрепления процедуры за выбором некоторого пункта меню (событие OnClick) на этапе проектирования приложения следует выбрать этот пункт с помощью клавиатуры или мыши.

Работа с массивами

Массив есть упорядоченный набор однотипных элементов, объединенных под одним именем. Каждый элемент массива обозначается именем, за которым в квадратных скобках следует один или несколько индексов, разделенных запятыми, например: a[1], bb[I], c12[I, J*2], q[1, 1, I*J-1]. В качестве индекса можно использовать любые порядковые типы за исключением LongInt.

Тип массива или сам массив определяются соответственно в разделе типов (Type) или переменных (Var) с помощью ключевого слова Array следующим образом:

Array [описание индексов] of <тип элемента массива>

Примеры описания массивов:

Const N=20; // Задание максимального значения индекса;

Type TVector=array[1..N] of real; // Описание типа одномерного массива;

Var a:TVector; // А - массив типа Tvector;

Ss:array[1..10] of integer; // Ss - массив из десяти целых чисел;

Y:array[1..5,1..10] of char; //Y - двумерный массив символьного типа.

Элементы массивов могут использоваться в выражениях так же, как и обычные переменные, например:

F:=2*a[3]+a[ss[I]+1]*3;

A[n]:=1+sqrt(abs(a[n-1]));

Компонент TStringGrid

При работе с массивами ввод и вывод информации на экран удобно организовывать в виде таблиц. Компонент TStringGrid предназначен для отображения информации в виде двухмерной таблицы, каждая ячейка которой представляет собой окно однострочного редактора (аналогично окну TEdit). Доступ к информации осуществляется с помощью свойства Cells[ACol, ARow: Integer]: string, где ACol, Arow - индекс элемента двухмерного массива. Свойства ColCount и RowCount устанавливают количество строк и столбцов в таблице, а свойства FixedCols и FixedRows задают количество строк и столбцов фиксированной зоны. Фиксированная зона выделена другим цветом, и в нее запрещен ввод информации с клавиатуры.

Пример написания программы

Задание: создать программу для определения вектора, где А - квадратная матрица размерностью NЧN, а Y, B - одномерные массивы размерностью N. Элементы вектора Y определяются по формуле. Значения N следует вводить в компонент TEdit, А и B - в компонент TStringGrid. Результат после нажатия кнопки типа TButton вывести в компонент TStringGrid.

Настройка компонента TStringGrid

Для установки компонента TStringGrid на форму необходимо на странице Additional меню компонентов щелкнуть мышью по пиктограмме . После этого щелкните мышью в нужном месте формы. Захватывая кромки компонента, отрегулируйте его размер. В инспекторе объектов значения свойств ColCount и RowCount установите 2 (две строки и два столбца), а FixedCols и FixedRows установите 1 (один столбец и одна строка с фиксированной зоной). Так как компоненты StringGrid2 и StringGrid3 имеют только один столбец, то для них ColCount = 1, RowCount = 2, FixedCols = 0 и FixedRows = 1. По умолчанию в компонент TStringGrid запрещен ввод информации с клавиатуры, поэтому необходимо свойство Options goEditing для компонентов StringGrid1 и StringGrid2 установить в положение True.

Окно диалога приведено на рис. 7.1. компоненты массива A массива B массива Y

Рис. 7.1 Окно диалога программы

Текст программы приведен ниже.

unit tem4;

interface

uses

Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,

StdCtrls, Grids;

type

TForm1 = class(TForm)

Label1: TLabel;

Edit1: TEdit;

Button1: TButton;

Button2: TButton;

StringGrid1: TStringGrid;

StringGrid2: TStringGrid;

StringGrid3: TStringGrid;

procedure FormCreate(Sender: TObject);

procedure Button1Click(Sender: TObject);

procedure Button2Click(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

const

Nmax=10; // Максимальная размерность массива

Type

Mas2 = array[1..Nmax,1..Nmax] of extended; // Объявление типа двухмерного массива размерностью Nmax

Mas1 = array[1..Nmax] of extended; // Объявление типа одномерного массива размерностью Nmax

var

Form1: TForm1;

A: Mas2; // Объявление двухмерного массива

B,Y: Mas1; // Объявление одномерных массивов

N,i,j: integer;

implementation

{$R *.DFM}

procedure TForm1.FormCreate(Sender: TObject);

begin

N:=3; // Размерность массива

Edit1.Text:=FloatToStr(N);

{Задание числа строк и столбцов в таблицах}

StringGrid1.ColCount:=N+1;

StringGrid1.RowCount:=N+1;

StringGrid2.RowCount:=N+1;

StringGrid3.RowCount:=N+1;

{Ввод в левую верхнюю ячейку таблицы названия массива}

StringGrid1.Cells[0,0]:='Массив A:';

StringGrid2.Cells[0,0]:='Массив B:';

StringGrid3.Cells[0,0]:='Массив Y:';

{Заполнение верхнего и левого столбцов поясняющими подписями}

for i:=1 to N do begin

StringGrid1.Cells[0,i]:=' i= '+IntToStr(i);

StringGrid1.Cells[i,0]:=' j= '+IntToStr(i);

end;

end;

procedure TForm1.Button1Click(Sender: TObject);

begin

N:=StrToInt(Edit1.Text);

{Задание числа строк и столбцов в таблицах}

StringGrid1.ColCount:=N+1;

StringGrid1.RowCount:=N+1;

StringGrid2.RowCount:=N+1;

StringGrid3.RowCount:=N+1;

{Заполнение верхнего и левого столбцов поясняющими подписями}

for i:=1 to N do begin

StringGrid1.Cells[0,i]:=' i= '+IntToStr(i);

StringGrid1.Cells[i,0]:=' j= '+IntToStr(i);

end;

end;

procedure TForm1.Button2Click(Sender: TObject);

var s: extended;

begin

{Заполнение массива А элементами из таблицы StringGrid1}

for i:=1 to N do

for j:=1 to N do

A[i,j]:=StrToFloat(StringGrid1.Cells[j,i]);

{Заполнение массива B элементами из таблицы StringGrid2}

for i:=1 to N do

B[i]:=StrToFloat(StringGrid2.Cells[0,i]);

{Умножение массива А на массив В}

for i:=1 to N do begin

s:=0;

for j:=1 to N do s:=s+A[i,j]*B[j];

Y[i]:=s;

{Вывод результата в таблицу StringGrid3}

StringGrid3.Cells[0,i]:=FloatToStrf(y[i],fffixed,6,2);

end;

end;

end.

Индивидуальные задания

Ниже приведены 15 вариантов задач. По указанию преподавателя выберите свое индивидуальное задание. Уточните условие задания, количество, наименование, типы исходных данных. В соответствии с этим установите количество визуальных компонентов в форме.

Во всех заданиях скалярные переменные следует вводить с помощью компонента TEdit с соответствующим пояснением в виде компонента TLabel. Скалярный результат выводить в виде компонента TLabel. Массивы представлять на форме в виде компонентов TStringGrid, в которых 0-й столбец и 0-ую строку использовать для отображения индексов массивов. Вычисления выполнять после нажатия соответствующих кнопок визуального компонента MainMenu.

1. Задана матрица размером NЧM. Получить массив В, присвоив его k-му элементу значение 0, если все элементы k-го столбца матрицы нулевые, и значение 1 в противном случае.

2. Задана матрица размером NЧM. Получить массив В, присвоив его k-му элементу значение 1, если элементы k-й строки матрицы упорядочены по убыванию, и значение 0 в противном случае.

3. Задана матрица размером NЧM. Получить массив В, присвоив его k-му значение 1, если k-я строка матрицы симметрична, и значение 0 в противном случае.

4. Задана матрица размером NЧM. Определить k - количество «особых» элементов матрицы, считая элемент «особым», если он больше суммы остальных элементов своего столбца.

5. Задана матрица размером NЧM. Определить k - количество «особых» элементов матрицы, считая элемент «особым», если в его строке слева от него находятся элементы, меньшие его, а справа - большие.

6. Задана символьная матрица размером NЧM. Определить k - количество различных элементов матрицы (т.е. повторяющиеся элементы считать один раз).

7. Дана матрица размером NЧM. Упорядочить ее строки по неубыванию их первых элементов.

8. Дана матрица размером NЧM. Упорядочить ее строки по неубыванию суммы их элементов.

9. Дана матрица размером NЧM. Упорядочить ее строки по неубыванию их наибольших элементов.

10. Определить, является ли заданная квадратная матрица n-го порядка симметричной относительно побочной диагонали.

11. Для матрицы размером NЧM вывести на экран все ее седловые точки. Элемент матрицы называется седловой точкой, если он является наименьшим в своей строке и одновременно наибольшим в своем столбце, или наоборот.

12. В матрице n-го порядка переставить строки так, чтобы на главной диагонали матрицы были расположены элементы, наибольшие по абсолютной величине.

13. В матрице n-го порядка найти максимальный среди элементов, лежащих ниже побочной диагонали, и минимальный среди элементов, лежащих выше главной диагонали.

14. В матрице размером NЧМ поменять местами строку, содержащую элемент с наибольшим значением, со строкой, содержащей элемент с наименьшим значением.

15. Из матрицы n-го порядка получить матрицу порядка n - 1 путем удаления из исходной матрицы строки и столбца, на пересечении которых расположен элемент с наибольшим по модулю значением.

Лабораторная работа 8 Методы оптимальной обработки текстовой информации

Цель работы: изучить правила работы с компонентами TListBox и TСomboBox.

Общие сведения

Короткие строки типа ShortString и String[N]

Короткие строки имеют фиксированное количество символов. Строка ShortString может содержать 255 символов. Строка String[N] может содержать N символов, но не более 255. Первый байт этих переменных содержит длину строки.

Длинная строка типа String

При работе с этим типом данных память выделяется по мере необходимости (динамически) и может занимать всю доступную программе память. Вначале компилятор выделяет для переменной 4 байта, в которых размещается номер ячейки памяти, начиная с которой будет располагаться символьная строка. На этапе выполнения программа определяет необходимую длину цепочки символов и обращается к ядру операционной системы с требованием выделить необходимую память.

...

Подобные документы

  • Требования к технологии проектирования программного обеспечения (ПО). Состав и описание стадий полного жизненного цикла ПО. Классификация моделей жизненного цикла ПО, их особенности. Методологии разработки ПО, приёмы экстремальный программирование.

    презентация [874,4 K], добавлен 19.09.2016

  • Понятие и этапы жизненного цикла программного обеспечения как некоторых событий, которые происходят с системой компьютера в процессе ее создания, внедрения и сопровождения. Модели данного процесса: каскадная, спиральная, их отличительные особенности.

    доклад [33,5 K], добавлен 06.04.2015

  • Общая характеристика основных моделей жизненного цикла: каскадная, инкрементная, спиральная. Стадия как часть процесса создания программного обеспечения, ограниченная определенными временными рамками и заканчивающаяся выпуском конкретного продукта.

    презентация [159,1 K], добавлен 27.12.2013

  • Особенности разработки программ для ЭВМ. Этапы планирования программы. Понятие и особенности алгоритмов. Средства, используемые для создания программ. Виды и классификация языков программирования. Структурное и объектно-ориентированное программирование.

    реферат [59,7 K], добавлен 19.08.2010

  • Технологии разработки программного обеспечения. Процедура постановки задачи, определения требований. Последовательность действий логической, разветвленной и циклической структуры. Терминология программирования. Этапы создания программного продукта.

    презентация [793,8 K], добавлен 15.11.2010

  • Изучение составляющих этапов разработки программ, процесса их тестирования, отладки и документирования в контексте курса обучения начинающих программистов. Теоретический анализ постановки задачи и модели программы, создания текста, семантической отладки.

    курсовая работа [29,2 K], добавлен 28.11.2010

  • Определение понятия и сущности программного обеспечения. Рассмотрение основ интерпретируемых и компилируемых программ. Особенности несвободных, открытых, свободных, системных, прикладных и инструментальных программ; основные принципы их применения.

    реферат [25,6 K], добавлен 06.11.2014

  • Проблема надежности программного обеспечения, ее показатели и факторы обеспечения. Методы контроля процесса разработки программ и документации, предупреждение ошибок. Этапы процесса отладки ПО, приемы структурного программирования и принцип модульности.

    презентация [379,5 K], добавлен 30.04.2014

  • Основные этапы разработки программного обеспечения (пакета программ), анализ требований к системе. Метод пошаговой детализации. Языки программирования низкого уровня и высокого уровня (императивные, объектно-ориентированные, функциональные, логические).

    презентация [41,4 K], добавлен 13.10.2013

  • Этапы разработки и отладки приложения "Помощь почтальону". Составление сопроводительной документации. Выбор средств и методов программирования. Анализ проектных данных. Особенности создания базы данных, СУБД. Тестирование созданного программного продукта.

    контрольная работа [2,5 M], добавлен 17.12.2014

  • Формирование опыта создания программ с использованием программного продукта Turbo Assembler. Использование меньшего количества команд и обращений в память, увеличение скорости и уменьшение размера программы. Степень сложности совместной разработки.

    реферат [15,4 K], добавлен 24.02.2010

  • Анализ требований к программному продукту. Требования к информационной и программной совместимости. Проектирование архитектуры программного продукта. Виды программ и программных документов. Общие сведения о С++. Технология разработки программного модуля.

    дипломная работа [1,2 M], добавлен 05.08.2011

  • Модульная структура программного продукта и типовые управляющие структуры алгоритмов обработки данных различных программных модулей в основе структурного программирования. Особенности пошаговой разработки программ. Основные типы базовых конструкций.

    контрольная работа [163,7 K], добавлен 04.06.2013

  • Реализация программного средства "Действия над матрицами". Разработка кода программного продукта на основе готовой спецификации на уровне модуля. Использование инструментальных средств на этапе отладки программного модуля. Выбор стратегии тестирования.

    отчет по практике [296,1 K], добавлен 19.04.2015

  • Разработка программного обеспечения для микропроцессорных систем МК51, интерфейсы в системах связи, основы асинхронной связи. Этапы решения задачи на ЭВМ, принципы тестирования программ и их отладка. Расчет затрат на разработку программного продукта.

    дипломная работа [270,6 K], добавлен 19.06.2010

  • Виды моделей жизненного цикла разработки программного продукта. Отладка и тестирование программы. Вопросы и варианты ответов на отдельных вкладках. Запись результатов тестирования в файл, вывод на экран количества правильных и неправильных ответов.

    курсовая работа [663,8 K], добавлен 23.09.2014

  • Обзор существующих моделей параллельного программирования, основные средства отладки эффективности MPI-программ, общие проблемы всех средств трассировки. Создание экспериментальной системы отладки эффективности MPI-программ, этапы работы анализатора.

    дипломная работа [767,2 K], добавлен 14.10.2010

  • Тестирование как составляющая часть процесса отладки программного обеспечения, его роль для обеспечения качества продукта. Обнаружение ошибок в программах, выявление причин их возникновения. Подходы к формулированию критериев полноты тестирования.

    курсовая работа [1,6 M], добавлен 20.12.2012

  • Решение задач прикладного программирования. Оформление разработанных алгоритмов в виде графических схем. Написание программ с использованием подпрограмм, их отладка. Блок-схемы и листинг программ. Наборы тестов для отладки разработанных программ.

    курсовая работа [575,8 K], добавлен 06.12.2013

  • Комплексное функциональное и структурное тестирование программного продукта - граф-программа решения квадратного уравнения. Постановка задачи структурного тестирования маршрутов. Заключение о типе и причине ошибки, предложение по ее исправлению.

    курсовая работа [2,8 M], добавлен 05.01.2013

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.