Архитектура Аудит Военная наука Иностранные языки Медицина Металлургия Метрология
Образование Политология Производство Психология Стандартизация Технологии


К выполнению практических (лабораторных) работ



К выполнению практических (лабораторных) работ

по дисциплине___Системное программирование_______________

(индекс, название дисциплины)

 

для студентов ____III____ курса

 

специальности_09.02.03 Программирование в компьютерных системах___

(шифр, название специальности)

 

 

Донецк

Порядок выполнения практической(лабораторной) работы

Для выполнения всех лабораторных работ предлагается единый порядок, предусматривающий следующие шаги.

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

2. Сконструировать структуру программы.

3. Составить текст программы и утвердить его у преподавателя.

4. Пункты 1 - 3 должны быть выполнены предварительно, до проведения данной лабораторной работы. Утверждение преподавателем текстов программ является допуском к лабораторной работе.

5. Набрать текст программы.

6. Выполнить компиляцию программы.

7. Провести анализ и исправление обнаруженных синтаксических ошибок в тексте программы и повторить пункты 3.6 и 3.7. При устранении всех синтаксических ошибок перейти к выполнению пункта 3.8.

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

9. Ввиду того, что индивидуальные задания для многих работ формулируются одинаково, различия в результатах выполнения вариантов во многом будут определяться конфигурацией рабочего места, на котором работа выполняется. Поэтому интерпретация полученных результатов является обязательным условием завершения работы.

 

 Содержание отчета

Отчет оформляется по каждой лабораторной работе и состоит из следующих разделов.

1. Тема лабораторной работы.

2. Цель работы.

3. Индивидуальное задание.

4. Описание структур данных и алгоритмов

5. Результаты работы программы.

6. Интерпретация результатов.

 

 

Лабораторная работа № 7

Тема: Получение первичных навыков работы с Borland C ++ Builder.

Цель работы: Ознакомление с интерфейсом программы Borland C ++ Builder, создание нового проекта, форм и модулей данных.

Литература:

1. Конспект лекций на тему: Общая структура программы Borland C++ Builder.

 

Цель работы: Начальное освоение визуальной среды программирования C++ Builder 6. Приобретение навыков в настройке рабочей среды C++ Builder 6, создании форм, создании, отладке и запуске простейших программ.

Ход работы

1. Запустите C++ Builder 6. В результате на экране компьютера автоматически создается новая экранная форма (Form1) в новом проекте (Project1). Открытие нового проекта осуществляется выбором пункта меню File подпункта New Application. Появится окно формы, через которое осуществляется пользовательский интерфейс при выполнении программы. Точки, расположенные на форме служат для упорядочивания размещенных на ней элементов. Их можно убрать с помощью пункта меню Tools подпункт Environment Options соответствующее окно настроек и сняв флажки Display Grid на вкладке Designer.

 

2. Установите в окне инспектора объектов ( Object Inspector ) основные свойства ( Properties ) самой формы.

Captoin – Лабораторная работа №1 (заголовок окна формы);

Height – 370 (высота окна );

Width – 540 (ширины окна);

Name – Form1 (имя формы).

Остальные оставить по умолчанию.

 

3. На полученной форме разместить три панели (компонент Panel), определяющий рабочие области формы: область управления (Z), область сообщений и результатов (Y), область ввода данных (X).

Выберем панель (компонент Panel на вкладке Standart ) и установим на любое свободное место формы (эту процедуру выполняем для каждой панели). В окне инспектора объектов ( Object Inspector ) установить основные свойства (Properties):

- для первой панели «область управления».

Align – alRight (положение панели относительно границ формы, прижимает к правому краю);

BevelOuter – bvNone (внешняя рамка, нет объемности);

Caption – пусто;

Name – Panel_Z;

Width – 150.

-для второй панели «область сообщений и результатов»

Align – alBottom (прижимает к нижнему краю формы);

BevelOuter – bvRaised (Выпуклая внешняя рамка);

Caption – Область сообщений и результатов;

Font – размер 16 (размер шрифта заголовка);

Name – Panel_Y;

Height – 100.

-для третьей панели «область ввода данных»

Align – alClient (заполняет все оставшееся пространство);

BevelInner – bvLowered (Вдавленная внутренняя рамка);

Caption – пусто;

Name – Panel_Х.

 

4. В области управления (Panel_Z) расположить две кнопки управления процессом решения: Выполнить и Закрыть.

Кнопка «Выполнить» служит для сообщения программе о том, что в области ввода подготовлены данные и их необходимо обработать.

Для создания кнопки «Выполнить» нужно выбрать компонент BitBtn – кнопка с изображением вкладки Additional. Поместить эту кнопку на панель «область управления» (Panel_Z ).

Установить следующие свойства:

Caption – Выполнить;

Font.Size – 12 (размер шрифта);

Height – 40;

Kind – bkOk (определяет разновидность кнопки);

Name – bbRun;

Width – 140.

Кнопка «Закрыть» служит для завершения работы программы.

Для создания кнопки «Закрыть» выбрать новую кнопку BitBtn (кнопка с изображением вкладки Additional) и поместить ее на панель «область управления» (Panel_Z ). ). Установить следующие свойства:

Caption – Закрыть;

Font – 12 (размер шрифта);

Height – 40;

Kind – bkСlose (определяет разновидность кнопки);

Name – bbClose;

Width – 140.

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

 

5. Сохранить форму в файл Project.сpp и проект в файл Unit.cpp (используем на панели инструментов кнопку или подпункт Save a ll пункта меню File ).

 

6. Создать программу, выводящую на панель «область сообщений и результатов» (Panel_Y) текст «Доброе утро страна» и выходящую из режима ввода по кнопке «Закрыть»

Для ввода текста программы в форме дважды щелкнуть по кнопке «Выполнить». В открывшемся окне между операторными скобками ввести

 

void __ fastcall TForm1:: bbRunClick(TObject *Sender)

{

 

}

ввести текст PanelY-> Caption=" Доброе утро страна";

Предварительно перед этим очистить значение caption в свойствах панели Panel_Y.   

 

Для ввода текста программы в форме дважды щелкнуть по кнопке «Закрыть». В открывшемся окне между операторами

void __ fastcall TForm1:: bbCloseClick(TObject *Sender)

{

       

}

ввести текст exit;

 

7. По завершении ввода текста программы осуществить запуск на выполнение (клавиша F9 или команда Run пункта меню Run). В результате выполнения имеем:

       

 

Вопросы для самостоятельной работы

1. Какие окна присутствуют по умолчании на экране в момент начала работы над новым проектом в C++ Builder 6 и каковы их функции?

2. Что такое компонента, объект, форма?

3. В чем разница между свойствами Caption и Name?

4. Что означают значок «+» перед названием свойства в окне инспектора объектов и кнопка с многоточием в строке свойства?

5. Какие файлы создает C++ Builder 6 при работе с проектом? Каково их назначение? Где они сохраняются?

6. Какой алгоритмический язык используется для программирования в C++ Builder 6?

Предоставить в отчете:

1. Ответы на вопросы.

2. Форму.

3. Значения устанавливаемых свойств компонентов в виде таблицы:

Компонента

Свойство Значение Комментарий
     

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

Контрольные вопросы:

1. Для чего предназначен Менеджер проекта?

2. Для чего предназначена Палитра компонентов?

3. Для чего предназначен Редактор форм?

4. Для чего предназначен Инспектор объектов?

5. Для чего предназначен Редактор кода?

Лабораторная работа № 8

Тема: Компоненты Borland C ++ Builder и их свойства.

Цель работы: Ознакомление с интерфейсом программы Borland C ++ Builder, создание нового проекта, форм и модулей данных, размещение компонентов Borland C ++ Builder и изменение их свойств.

 

Литература:

1. Конспект лекций на тему: Общая структура программы Borland C++ Builder.

2. Конспект лекций на тему: Основные компоненты палитры компонентов Borland C++ Builder и их свойства.

Краткие теоретические сведения:

Borland C++ Builder представляет собой интерпретированную систему быстрой разработки приложений.

Интегрированная среда разработки Borland C++ Builder содержит инструменты быстрой разработки программных приложений и объединяет менеджер проекта, палитру компонентов, редактор форм, инспектор объектов, а также совмещенный редактор кода и отладчик.

В состав визуальной библиотеки Borland C++ Builder по мимо компонентов входит большое количество типов данных, глобальных переменных и функций. Основные компоненты библиотеки представлены на инструментальной панели палитры компонентов.

Порядок выполнения работы:

1. Создать проект под названием < ФИО студента> _< Номер варианта>;

2. В проекте создать две формы: 1 – Главная форма (MainForm), 2 – Подчиненная форма (SlaveForm);

3. Разместить на Главной форме кнопку и посредствам команды «Form2→ Show(); » в соответствующей функции обеспечить вызов подчиненной формы;

4. Разместить на главной и подчиненной формах компоненты из панели компонентов и установить соответствующие свойства компонентов, в соответствии с заданием;

5. Разместить на форме 2 произвольных компонента и сделать их не видимыми во время выполнения программы;

6. Компоненты назвать и заполнить данными;

7. Сохранить проект в вашу рабочую папку.

 

Таблица 2 – Варианты заданий

№ варианта Компоненты для размещения на главной форме Свойства компонента Компоненты для размещения на подчиненной форме Свойства компонента
1 TComboBox Enable=False CSpinEdit Enable=False
2 TLabel Height=14 TComboBox Name=data
3 TMemo Top=20 TListBox Height=14
4 TLabel Top=20 TCheckBox Top=20
5 TCheckBox Height=14 TListBox Enable=False
6 TComboBox Top=20 TLabel Caption=Данные
7 CSpinEdit Установить границы 0-250 TComboBox Enable=False
8 TCheckBox Установить шрифт 14 TMemo Top=20
9 TLabel Установить шрифт 14 TMemo Lines (заполнить данными)
10 TMemo Enable=False TListBox Top=20
11 TComboBox Enable=False CSpinEdit Enable=False
12 TLabel Height=14 TComboBox Name=data
13 TMemo Top=20 TListBox Height=14
14 TLabel Top=20 TCheckBox Top=20
15 TCheckBox Height=14 TListBox Enable=False
16 TComboBox Top=20 TLabel Caption=Данные
17 CSpinEdit Установить границы 0-250 TComboBox Enable=False
18 TCheckBox Установить шрифт 14 TMemo Top=20
19 TLabel Установить шрифт 14 TMemo Lines (заполнить данными)
20 TMemo Enable=False TListBox Top=20
21 TMemo Top=20 TListBox Height=14
22 TLabel Top=20 TCheckBox Top=20
23 TCheckBox Height=14 TListBox Enable=False
24 TComboBox Top=20 TLabel Caption=Данные
25 CSpinEdit Установить границы 0-250 TComboBox Enable=False

Контрольные вопросы:

1. В чем разница между визуальными и не визуальными компонентами?

2. Какие характеристики имеет каждый компонент?

3.Для чего предназначены Свойства компонента?

4. Для чего предназначены События компонента?

5. Как разбиты компоненты на палитре компонентов?

Содержание отчета:

1. Отчеты по лабораторным работам должны включать:

· Титульный лист с указанием номера работы, названия дисциплины, темы, группы, ФИО студента, номера варианта;

· Условие задания;

· Листинги программы (если необходимо);

2. При сдаче отчета обязательна загрузка проекта в Borland C++ Builder и демонстрация работы проекта.

 

 

Лабораторная работа № 9

Лабораторная работа № 10

Функции приведения типов

 StrToInt(строка) — преобразование строки в целое число 

StrToFloat(строка) — преобразование строки в число с плавающей точкой

IntToStr(целое число) — преобразование целого10-го числа в строковый тип

FloatToStr(число) — преобразование значения с плавающей точкой в

строковое представление

IntToHex(целое число) — преобразование целого 10-го числа в 16-е

 

Задание.

 

Вычислить X и Y. Исходные данные: A = 35; B = -9; C = -4.

Вывести X и Y.

 

Решение поставленной задачи.

 

Этап 1: Составление алгоритма.

Этап 2. Создание формы с элементами управления.

     
 

 


 

 

         
 

 


-Все использованные компоненты расположены на странице Standart Политры компонентов.

 

Label1, Label2, Label3, Label4, Label5 – метки – компоненты, предназначенные для отображения текстовой информации. Эти элементы используются для подписи ввода и вывода переменных. Основное свойство для этого компонента - Caption.

Edit1, Edit2, Edit3, Edit4, Edit5 – строка ввода - компонент предназначенный для ввода символьной строки. Компонент Edit использовать для ввода исходных данных и вывода результатов задания. Для улучшения внешнего вида задать свойство Text - очистить.

Button1, Batton2 – кнопки – компоненты, предназначенные для формирования события при нажатии на нее. Основное свойство для этого компонента - Caption.

 

Этап 3. Написание обработок событий

 

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

 

Для кнопки «Выход» необходимо:

1. Произвести двойной щелчок по кнопке, появится окно Кода формы и в нем будет уже написано:

void __fastcall TForm1:: Button2Click(TObject *Sender)

{

 

}

2. Написать код процедуры выхода, что происходит командой Сlose(), т.е. код программы имеет вид:

void __fastcall TForm1:: Button2Click(TObject *Sender)

{

Сlose();

}

Для кнопки «Выполнить» необходимо:

1. Произвести двойной щелчок по кнопке, появится окно Кода формы и в нем будет уже написано:

void __fastcall TForm1:: Button1Click(TObject *Sender)

{

 

}

 

2. Написать код процедуры согласно составленной блок-схеме, т.е. код программы примет вид:

void __fastcall TForm1:: Button1Click(TObject *Sender)

{

float a, b, c;

float x, y;

a=35; b=-9; c=-4;

x=a*(b+c)*abs(a*b*c-pow(abs(b), 3));

y=(a+b*x)/abs(b*x)+(pow(c, 3)-50);

TextX-> Text=FormatFloat(" 0, 000", x);

TextY-> Text=FormatFloat(" 0, 000", y);

}

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

 

 

#include < vcl.h>

#pragma hdrstop

 

#include " Unit1.h"

//----------------------------------------------------------------------

#pragma package(smart_init)

#pragma resource " *.dfm"

#include < math.h> //подключение библиотеки математических функций

TForm1 *Form1;

 

Этап 4. Запуск программы, получение и проверка результатов

 

1.Для запуска программы необходимо нажать кнопку Run.

2. В появившейся форме нажать кнопку Вычислить, при этом значения X и Y будут введены в соответствующие текстовые поля TextX и TextY.

 

 

 



Таблица 4 –

Варианты заданий

№ варианта Запрограммировать формулу
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25

Контрольные вопросы:

1. Какая общая структура объявления переменной?

2. Какие характеристики имеет каждый компонент?

3. Какие команды позволяют производить преобразование типов?

4. Какие типы данных используются в данной работе и почему?

 

Содержание отчета:

1. Отчеты по лабораторным работам должны включать:

· Титульный лист с указанием номера работы, названия дисциплины, темы, группы, ФИО студента, номера варианта;

· Условие задания;

· Листинги программы (если необходимо);

2. При сдаче отчета обязательна загрузка проекта в Borland C++ Builder и демонстрация работы проекта.

Лабораторная работа № 11

Тема: Условные операторы.

Таблица 5 – Варианты заданий

№ п/п Функція № п/п Функція
1 16                      
2          17                
3   18             
4 19            
5        20                               
6 21
7     22              
8 23
9 24
10 25
11 26
12 27
13 28
14 29
15 30

 

Контрольные вопросы:

1. Какая общая структура объявления условного оператора if?

2. Какая общая структура объявления условного оператора switch?

3. В чем разница между switch и if?

4. В каких случаях используются сокращенные условные операторы?

 

Содержание отчета:

1. Отчеты по лабораторным работам должны включать:

· Титульный лист с указанием номера работы, названия дисциплины, темы, группы, ФИО студента, номера варианта;

· Условие задания;

· Листинги программы (если необходимо);

2. При сдаче отчета обязательна загрузка проекта в Borland C++ Builder и демонстрация работы проекта.

 

Лабораторная работа № 1 2

Тема: Операторы цикла.

Цель работы: Ознакомление с операторами цикла в Borland C ++ Builder.

 

Литература:

1. Конспект лекций на тему: Основные компоненты палитры компонентов Borland C++ Builder и их свойства.

2. Конспект лекций на тему: Операторы цикла.

3. Глушаков С.В., Коваль А.Б. Язык программирования C - Учебный курс – 2001, с. 43-52.

4. Павловська Т.О. Программирование на языке высокого уровня - Учебник для вузов, СПб.: Пітер, 2003, с. 44-49.

 

Краткие теоретические сведения:

Borland C++ Builder представляет собой интерпретированную систему быстрой разработки приложений.

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

Формат операторов цикла:

1. for (< начальное значение>; < условие окончания цикла> ; < изменение переменной> ) тело цикла;

2. < начальные условия>

while (< условие окончания цикла> )

< тело цикла>

< изменение переменной>

};

3. do

{

< тело цикла>

< изменение переменной>

} while (< условие окончания цикла> );

ложным.

 

10

Простейший пример для вычисления конечной суммы s = å i

 

i =1

проиллюстрирует использование оператора for:

 

int s = 0;

 

for (int i = 1; i < = 10; i++) s += i;

 

Возможно наличие пустого оператора (отсутствие оператора) в теле цикла. Так, сумму из предыдущего примера можно вычислить иначе:

 

for (int s = 0, i = 1; i < = 10; s += i++);

 

Порядок выполнения работы:

1. Создать проект под названием < ФИО студента> _< Номер варианта>;

2. В проекте создать две формы: 1 – Главная форма (MainForm), 2 – Подчиненная форма (SlaveForm);

3. Разместить на Главной форме кнопку и посредствам команды «Form2→ Show(); » в соответствующей функции обеспечить вызов подчиненной формы;

4. Разместить на подчиненной форме компоненты:

 Edit 2 Label-для вводимых значений,

 компоненты Edit и Label-для ввода констант

 Button(для запуска и очистки проекта),

 Memo для вводимых значений массивов из панели компонентов и установить соответствующие свойства компонентов;

С помощью компонента Memo можно вводить массивы, как в процессе выполнения программы, так и при конструировании формы проекта через окно свойств Lines (для перехода к новой строке при вводе значений следует нажать клавишу < Enter > ).

Пример фрагмента программы ввода значений элементов одномерного массива А (в каждой строке по одному числу):

for(i=0; i< =9; i++) A[i]=StrToFloat(Memo1-> Lines-> Strings[i]);

 

5. Компоненты назвать и заполнить данными;

6. Разработать программу для решения задачи в соответствии с индивидуальным заданием. В соответствии с таблицей объявить необходимые переменные. Суммы и произведения выводить отдельно.

7. Сохранить проект в вашу рабочую папку.

 

ПРИМЕР ВЫПОЛНЕНИЯ ЗАДАНИЕ.

Вычислить , где A=5, K=15, H=0, 2.

Решение поставленной задачи.

Этап 1: Составление алгоритма.

Этап 2. Создание формы с элементами управления

 

 

В этом примере, используются уже известные компоненты: Label, Edit, Button(вкладка Standart ):

 

3. Написание обработок событий

 

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

 

Для кнопки «Выход» необходимо:

1. Произвести двойной щелчок по кнопке, появится окно Кода формы и в нем будет уже написано:

void __fastcall TForm1:: Button3Click(TObject *Sender)

{

 

}

2. Написать код процедуры выхода, что происходит командой Сlose(), т.е. код программы имеет вид:

void __fastcall TForm1:: Button3Click(TObject *Sender)

{

Сlose();

}

 

Для кнопки «Очистка» необходимо:

1. Произвести двойной щелчок по кнопке, появится окно Кода формы и в нем будет уже написано:

void __fastcall TForm1:: Button1Click(TObject *Sender)

{

 

}

2. Написать код процедуры очистки, т.е. код программы имеет вид:

 

void __fastcall TForm1:: Button1Click(TObject *Sender)

{

Edit1-> Text=" ";

}

 

Для кнопки «Выполнить» необходимо:

1. Произвести двойной щелчок по кнопке, появится окно Кода формы и в нем будет уже написано:

 

void __fastcall TForm1:: Button2Click(TObject *Sender)

{

 

}

 

2. Написать код процедуры согласно составленной блок-схеме, т.е. код программы примет вид:

 

void __fastcall TForm1:: Button2Click(TObject *Sender)

{

int i;

float a, k, S, H, Y;

a=5;

k=15;

H=0.2;

// начальные условия

S=0; i=1;

while (i< =k)

{

S=S+(a+H*H)*i/(i+1);

i=i++;

}

 Y=H/8*S;

 Edit1-> Text=FloatToStr(Y);

}

 

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

 

#include < vcl.h>

#pragma hdrstop

 

#include " Unit1.h"

//---------------------------------------------------------------------------

#pragma package(smart_init)

#pragma resource " *.dfm"

#include < math.h> // подключение библиотеки математических функций

TForm1 *Form1;

 

Этап 4. Запуск программы, получение и проверка результатов

 

1.Для запуска программы необходимо нажать кнопку Run (F9).

2. В появившейся форме нажать Вычислить, при этом значение Y будет выведено в соответствующие текстовое поля Edit1.

 

 

Варианты заданий

Вариант№ 1

 

 

 задать самостоятельно.

Вариант № 2

Вычислить значение выражения:  задать самостоятельно.

 

Вариант № 3

Вычислить значение выражения:  задать самостоятельно.  

 

Вариант № 4

Вычислить значение выражения:  задать самостоятельно.

 

Вариант № 5

Вычислить значение выражения:  задать самостоятельно.

 

Вариант № 6

Вычислить значение выражения:  задать самостоятельно.

Вариант № 7

Вычислить значение выражения:  задать самостоятельно.

Вариант № 8

Вычислить значение выражения:   задать самостоятельно.

Вариант № 9 Вычислить значение выражения:   

 задать самостоятельно.

Вариант № 10

Вычислить значение выражения:   

 задать самостоятельно.

Вариант № 11

Вычислить значение выражения:   

 задать самостоятельно.

Вариант №12

Вычислить значение выражения:   

 задать самостоятельно.

Вариант № 13

Вычислить значение выражения:   

 задать самостоятельно.

Вариант № 14

Вычислить значение выражения:   

 задать самостоятельно.

Вариант № 15

Вычислить значение выражения:   

 задать самостоятельно.

Вариант № 16

Вычислить значение выражения:   

 задать самостоятельно.

Вариант № 17

Вычислить значение выражения:   

 задать самостоятельно.

Вариант № 18

Вычислить значение выражения:   

 задать самостоятельно.

Вариант № 19

Вычислить значение выражения:

 задать самостоятельно.

Вариант № 20

Вычислить значение выражения:   

 задать самостоятельно.

Вариант № 21

Вычислить значение выражения:   

 задать самостоятельно.

Вариант № 22

Вычислить значение выражения:   

 задать самостоятельно.

Вариант № 23

Вычислить значение выражения:   

 задать самостоятельно.

Вариант № 24

Вычислить значение выражения:   

 задать самостоятельно.

 

Вариант № 25

Вычислить значение выражения:   

 задать самостоятельно.

Контрольные вопросы:

1. Из каких четырех основных блоков состоит любой оператор цикла?

2. Какая общая структура объявления оператора цикла For?

3. Какая общая структура объявления оператора цикла While?

4. Какая общая структура объявления оператора цикла Do-while?

 

Содержание отчета:

1. Отчеты по лабораторным работам должны включать:

· Титульный лист с указанием номера работы, названия дисциплины, темы, группы, ФИО студента, номера варианта;

· Условие задания;

· Листинги программы (если необходимо);

2. При сдаче отчета обязательна загрузка проекта в Borland C++ Builder и демонстрация работы проекта.

 

Лабораторная работа № 1 3

Тема: Массивы.

Цель работы: Ознакомление с массивами в Borland C ++ Builder.

 

Литература:

1. Глушаков С.В., Коваль А.Б. Язык программирования C - Учебный курс – 2001, с. 114-122.

2. Павловська Т.О. Программирование на языке высокого уровня - Учебник для вузов, СПб.: Пітер, 2003, с. 58-65.

Краткие теоретические сведения:

Borland C++ Builder представляет собой интерпретированную систему быстрой разработки приложений.

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

Для объявления массивов (одномерных или многомерных) используется такая структура:

< тип переменных> < имя массива переменных> [размер] ([размер] … [размер]);

 

Порядок выполнения работы:

1. Создать проект под названием < ФИО студента> _< Номер варианта>;

2. В проекте создать две формы: 1 – Главная форма (MainForm), 2 – Подчиненная форма (SlaveForm);

3. Разместить на Главной форме кнопку и посредствам команды «Form2→ Show(); » в соответствующей функции обеспечить вызов подчиненной формы;

4. разместить объекты, задать им необходимые свойства:

- объект Label1, свойство Caption → одномерный массив

- объект StringGrid1 (страница Addition)

 свойства ColCount → 10 (количество столбцов)

              RowСount → 1 (количество строк);

- объект Button1 для запуска проекта, свойство Caption → вычислить

- объект Label2, свойство Caption → свойство по вашему заданию

- объект Label3 для вывода результата

6. Компоненты назвать и заполнить данными;

7. Разработать программу для объявления массива на 10 элементов и для решения задачи в соответствии с индивидуальным заданием. В соответствии с таблицей объявить необходимые переменные.

8. Сохранить проект в вашу рабочую папку.

**Выводить значения массивов можно в файл или на форму, используя разнообразные компоненты С++ Builder. При этом выводить значения элементов массивов можно только поэлементно, для чего следует организовывать циклы с изменением значений индексов. Организация вывода массивов в файл будет рассмотрена в лекциях четвертого модуля. Здесь рассмотрим организацию вывода одномерных массивов на форму с помощью компонентов Edit, Label, Memo, ListBox и функции ShowMessage.

В последующих примерах будут использованы следующие переменные: float A[10];

int i; AnsiString st;

1 Вывод в Edit

В компонент Edit можно выводить одномерные массивы, отделяя элементы пробелами (" " ) или другим символом. Количество элементов массива, которые можно увидеть, ограничено длиной компонента Edit на форме.

Пример фрагмента программы вывода массива А:

st = " " ;                   // очистка строки st

for(i=0; i< =9; i++) // начало цикла по индексам массива

{ st += FormatFloat(" 0.00", A[i])+" "; } // накапливание в строке значений массива

Edit1-> Text=st; // вывод в компонент Edit1 сформированной строки

2 Вывод в Label

В компонент Label можно выводить массивы, отделяя элементы пробелами (" " ) или символами перехода к новой строке (" \13" ). Вывод одномерного массива в строку организовывают по тем же правилам, что и в компонент Edit, только в программе вместо

Edit1.Text следует указать Label1-> Caption ( например Label1-> Caption=st; ). Для вывода одномерного массива в столбец следует свойство WordWrap компонента Label установить

True вместо False.

3 Вывод в окно сообщений

Вывод в окно сообщений с помощью функции ShowMessage организовывают так же, как и для Edit или Label, только вместо оператора присвоения следует записать оператор вызова процедуры. Например, вместо оператора

Edit1-> Text = st;

надо записать

ShowMessage(st);

4 Вывод в Memo

В многострочный компонент Memo можно выводить массивы с любым количеством элементов, поскольку возможно использование полос прокрутки (указав свойству ScrollBars значение ssBoth или ssVertical ). Основное свойство Lines содержит все строки компонента.

Пример фрагмента программы вывода массива А (в столбец):

Memo1-> Clear();       // очистка компонента

for(i = 0; i < = 9; i++) // начало цикла по индексам массива

Memo1-> Lines-> Add(FormatFloat(" 0.00", A[i])); // вывод одного элемента массива

5 Вывод в ListBox

Вывод массивов с помощью компонента ListBox организовывают так же, как и с компонентом Memo, только вместо Memo следует указать компонент ListBox. Основное свойство Items содержит все строки списка. Например, вместо оператора

Memo1-> Lines-> Add(FormatFloat(" 0.00", A[i]));

следует записать

ListBox1-> Items-> Add(FormatFloat(" 0.00", A[i]));

Ввод элементов одномерного массива

 

Вводить значения массивов можно используя такие компоненты С++ Builder, как Memo, ListBox, Edit. Как и при выводе массивов, при вводе следует организовывать циклы изменения значений индекса.

1 Ввод из окна Memo

С помощью компонента Memo можно вводить массивы, как в процессе выполнения программы, так и при конструировании формы проекта через окно свойств Lines (для перехода к новой строке при вводе значений следует нажать клавишу < Enter > ).

Пример фрагмента программы ввода значений элементов одномерного массива А (в каждой строке по одному числу):

for(i=0; i< =9; i++) A[i]=StrToFloat(Memo1-> Lines-> Strings[i]);

2 Ввод из ListBox

С помощью компонента ListBox можно вводить массивы так же, как и в компонент Memo, только вместо свойства Lines надо использовать свойство Items.

3 Ввод из Edit

Ввод элементов одномерного массива с помощью компонента Edit (в одну строку через пробел) требует создания специальной функции для ввода строки и преобразования ее в массив величин другого типа. Такая функция будет рассмотрена при изучении работы со строками.

 

Таблица 6– Варианты заданий

Заполнить одномерный массив целыми случайными числами из

диапазона [-20; 20] размерностью 10

№ варианта

Определить

1 Минимальный элемент и его порядковый номер  
2 Максимальный элемент и его порядковый номер  
3 Среднее арифметическое значение  
4 Сумму положительных чисел  
5 Сумму отрицательных чисел  
6 Количество элементов равных нулю  
7 Количество элементов большее нуля  
8 Количество элементов меньшее нуля  
9 Сумму квадратов элементов массива  
10 Разницу максимального и минимального элементов  
11 Сумму минимального и максимального элементов  
12 Сумму элементов больше 5  
13 Количество элементов больше 2  
14 Среднее арифметическое значение всех элементов меньше 1  
15 Сумму элементов кратных 2  
16 Сумму простых чисел  
17 Среднее арифметическое значение всех элементов больше 3  
18 Среднее арифметическое значение элементов кратных 5  
19 Разницу между суммой положительных и отрицательных элементов  
20 Произведение всех простых чисел  
21 Произведение всех отрицательных чисел  
22 Количество элементов кратных 3  
23 Элементы в порядке возрастания и их порядковые номера  
24 Элементы в порядке убывания и их порядковые номера  
25 Произведение всех четных элементов  

Контрольные вопросы:

1. Какая общая структура объявления массива?

2. Какая максимальная размерность массива?

3. Как обратится к значению массива?

4. Как хранятся многомерные массивы в памяти?

 

Содержание отчета:

1. Отчеты по лабораторным работам должны включать:

· Титульный лист с указанием номера работы, названия дисциплины, темы, группы, ФИО студента, номера варианта;

· Условие задания;

· Листинги программы (если необходимо);

2. При сдаче отчета обязательна загрузка проекта в Borland C++ Builder и демонстрация работы проекта.

 

Лабораторная работа № 1 4

Тема: Функции.

Цель работы: Ознакомление с функциями в Borland C ++ Builder.

 

Литература:

1. Глушаков С.В., Коваль А.Б. Язык программирования C - Учебный курс – 2001, с. 52-82.

2. Павловська Т.О. Программирование на языке высокого уровня - Учебник для вузов, СПб.: Пітер, 2003, с. 73-83.

 

Краткие теоретические сведения:

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

 

Тип_данных имя_функции ( формальные параметры )

{

/* Описание локальных переменных */

тип_данных локальная_переменная_1;

...........

тип_данных локальная_переменная_n;

 

/* Тело функции */

...........

}

 

Тип_данных функции задает тип возвращаемого значения и может задавать любой тип. Если Тип_данных не задан, то предполагается, что функция возвращает значение типа int. Если функция не возвращает значения (т. е. возвращает void), то она служит для того, чтобы изменять свои параметры (вызывать побочный эффект) или глобальные для функции переменные.

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

 

Порядок выполнения работы:

1. Создать проект под названием < ФИО студента> _< Номер варианта>;

2. В проекте создать две формы: 1 – Главная форма (MainForm), 2 – Подчиненная форма (SlaveForm);

3. Разместить на Главной форме кнопку и посредствам команды «Form2→ Show(); » в соответствующей функции обеспечить вызов подчиненной формы;

4. Разместить на главной и подчиненный формах необходимые компоненты из панели компонентов и установить соответствующие свойства компонентов;

5. Компоненты назвать и заполнить данными;

6. Разработать программу, в которой необходимо:

    А) Объявить три одномерных массива А, В, С произвольной длины;

    Б) Создать функцию, которая в соответствии с индивидуальным заданием определит необходимые значения;

В) Результаты работы программы вывести на форму.

7. Сохранить проект в вашу рабочую папку.

 

Таблица 7 – Варианты заданий

№ варианта

Определить

Значение в соответствии с формулой для всех трех массивов

Минимальный элемент Максимальный элемент Сумму всех элементов Произведение всех элементов
1 А, В, С, В, С, А, С, А, В,
2 А, В, А, С, В, С, А, В, С,
3 А, С, А, В, А, В, С, В, С,
4 В, С, А, В, С, А, С, А, В,
5 А, В, С, А, В, В, С, А, С,
6 А, В, А, В, С, А, С, В, С,
7 А, С, В, С, А, В, А, В, С,
8 В, С, А, В, А, В, С, А, С,
9 А, В, С, А, В, А, С, В, С,
10 А, В, А, В, С, В, С, А, С,
11 А, В, С, В, С, А, С, А, В,
12 А, В, А, С, В, С, А, В, С,
13 А, С, А, В, А, В, С, В, С,
14 В, С, А, В, С, А, С, А, В,
15 А, В, С, А, В, В, С, А, С,
16 А, В, А, В, С, А, С, В, С,
17 А, С, В, С, А, В, А, В, С,
18 В, С, А, В, А, В, С, А, С,
19 А, В, С, А, В, А, С, В, С,
20 А, В, А, В, С, В, С, А, С,
21 А, В, А, С, В, С, А, В, С,
22 А, С, А, В, А, В, С, В, С,
23 В, С, А, В, С, А, С, А, В,
24 А, В, С, А, В, В, С, А, С,
25 А, В, А, В, С, А, С, В, С,

Контрольные вопросы:

1. Какая общая структура объявления функции?

2. Для чего используются функции?

3. Как вызвать функцию в основной программе?

4. Какой тип позволяет не получать результат из функции?

 

Содержание отчета:

1. Отчеты по лабораторным работам должны включать:

· Титульный лист с указанием номера работы, названия дисциплины, темы, группы, ФИО студента, номера варианта;

· Условие задания;

· Листинги программы (если необходимо);

2. При сдаче отчета обязательна загрузка проекта в Borland C++ Builder и демонстрация работы проекта.

 

Содержание отчета:

1. Отчеты по лабораторным работам должны включать:

· Титульный лист с указанием номера работы, названия дисциплины, темы, группы, ФИО студента, номера варианта;

· Условие задания;

· Листинги программы (если необходимо);

2. При сдаче отчета обязательна загрузка проекта в Borland C++ Builder и демонстрация работы проекта.

 

 

Лабораторная работа №1 5

Таблица 9 – Варианты заданий

Номер варианта Уравнение Нач. значен  Кон. значен Шаг Диапаз. индекса
  1.   3, 7   12, 6   4   -
  2.     -   -   -   i=1…4
  3.   14   86   20   -
  4.   -   -   -   i=1…6
  5.   12, 3   20, 5   3, 8     -
  6.   -   -   -   j=1…2
  7.   0, 1   0, 6   0, 1   -
  8.       -   -   -   i=1…6
  9.   7, 8   8, 9   0, 05   -
  10.   -   -     -   j=2…7    
  11.     0, 3   1, 1   0, 05   -  
  12.     -   -   -   k=0…5  
  13.   12   24   3, 5   -  
  14.   -     -   -   j=5…9
  15.   -7, 5   0, 75   0, 5   -
  16.   -   -     -   i=3…9
  17.   3   15   1, 5     -
  18.           j=4…8
  19.         12   17   1, 5   -
  20.   -     -   -   i=3…7  
  21.   -10   12   4   -
  22.   -   -   -   i=3…8
  23.   13   29   5   -
  24.   -   -   -   j=0…2
  25.   2   10   1   -

Контрольные вопросы:

1. Для чего используется компонент Chart?

2. Какой командой выводятся точки в компонент Chart?

3. Какая команда очищает компонент Chart?

Содержание отчета:

1. Отчеты по лабораторным работам должны включать:

· Титульный лист с указанием номера работы, названия дисциплины, темы, группы, ФИО студента, номера варианта;

· Условие задания;

· Листинги программы (если необходимо);

2. При сдаче отчета обязательна загрузка проекта в Borland C++ Builder и демонстрация работы проекта.

 

Лабораторная работа №1 6

Таблица 10 – Варианты заданий

№ варианта

Создать сообщения

Для первой кнопки Для второй кнопки
1 MB_ABORTRETRYIGNORE MB_ICONEXCLAMATION
2 MB_OK MB_ICONINFORMATION
3 MB_OKCANCEL MB_ICONQUESTION
4 MB_RETRYCANCEL MB_ICONSTOR
5 MB_YESNO MB_ICONEXCLAMATION,
6 MB_ABORTRETRYIGNORE MB_ICONINFORMATION
7 MB_OK MB_ICONQUESTION
8 MB_OKCANCEL MB_ICONSTOR
9 MB_RETRYCANCEL MB_ICONEXCLAMATION
10 MB_YESNO MB_ICONINFORMATION
11 MB_ABORTRETRYIGNORE MB_ICONEXCLAMATION
12 MB_OK MB_ICONINFORMATION
13 MB_OKCANCEL MB_ICONQUESTION
14 MB_RETRYCANCEL MB_ICONSTOR
15 MB_YESNO MB_ICONEXCLAMATION,
16 MB_ABORTRETRYIGNORE MB_ICONINFORMATION
17 MB_OK MB_ICONQUESTION
18 MB_OKCANCEL MB_ICONSTOR
19 MB_RETRYCANCEL MB_ICONEXCLAMATION
20 MB_YESNO MB_ICONINFORMATION
21 MB_OK MB_ICONINFORMATION
22 MB_OKCANCEL MB_ICONQUESTION
23 MB_RETRYCANCEL MB_ICONSTOR
24 MB_YESNO MB_ICONEXCLAMATION,
25 MB_ABORTRETRYIGNORE MB_ICONINFORMATION
26 MB_OK MB_ICONQUESTION

Контрольные вопросы:

1. Для чего используется системные сообщения?

2. Какой командой можно изменять действия программы, используя системные сообщения?

3. Как системные сообщения могут действовать на программу?

 

Содержание отчета:

1. Отчеты по лабораторным работам должны включать:

· Титульный лист с указанием номера работы, названия дисциплины, темы, группы, ФИО студента, номера варианта;

· Условие задания;

· Листинги программы (если необходимо);

2. При сдаче отчета обязательна загрузка проекта в Borland C++ Builder и демонстрация работы проекта.

 

Лабораторная работа №1 7

Таблица 11 – Варианты заданий

№ варианта

Создать сообщения

Для первой кнопки Для второй кнопки
1 Открыть подчиненную форму Установить начальные условия для всех компонентов на форме
2 Закрыть подчиненную форму Очистить все компоненты на форме
3 Сохранить значения из компонента Edit в компонент Edit Установить значение 100 для компонента CSpinEdit
4 Сохранить значения из компонента Edit в компонент Memo Удалить значение из компонента Edit
5 Обменять значения между компонентами Edit Закрыть подчиненную и главную формы
6 Закрыть подчиненную и главную формы Обменять значения между компонентами Edit
7 Удалить значение из компонентов Edit Сохранить значения из компонента Edit в компонент Memo
8 Установить значение 100 для компонента CSpinEdit Сохранить значения из компонента Edit в компонент Edit
9 Очистить все компоненты на форме Закрыть подчиненную форму
10 Установить начальные условия для всех компонентов на форме Открыть подчиненную форму
11 Открыть подчиненную форму Установить начальные условия для всех компонентов на форме
12 Закрыть подчиненную форму Очистить все компоненты на форме
13 Сохранить значения из компонента Edit в компонент Edit Установить значение 100 для компонента CSpinEdit
14 Сохранить значения из компонента Edit в компонент Memo Удалить значение из компонента Edit
15 Обменять значения между компонентами Edit Закрыть подчиненную и главную формы
16 Закрыть подчиненную и главную формы Обменять значения между компонентами Edit
17 Удалить значение из компонентов Edit Сохранить значения из компонента Edit в компонент Memo
18 Установить значение 100 для компонента CSpinEdit Сохранить значения из компонента Edit в компонент Edit
19 Очистить все компоненты на форме Закрыть подчиненную форму
20 Установить начальные условия для всех компонентов на форме Открыть подчиненную форму
21 Сохранить значения из компонента Edit в компонент Edit Установить значение 100 для компонента CSpinEdit
22 Сохранить значения из компонента Edit в компонент Memo Удалить значение из компонента Edit
23 Обменять значения между компонентами Edit Закрыть подчиненную и главную формы
24 Закрыть подчиненную и главную формы Обменять значения между компонентами Edit
25 Удалить значение из компонентов Edit Сохранить значения из компонента Edit в компонент Memo

Контрольные вопросы:

1. Для чего используется системные сообщения?

2. Какой командой можно изменять действия программы, используя системные сообщения?

3. Как системные сообщения могут действовать на программу?

 

Содержание отчета:

1. Отчеты по лабораторным работам должны включать:

· Титульный лист с указанием номера работы, названия дисциплины, темы, группы, ФИО студента, номера варианта;

· Условие задания;

· Листинги программы (если необходимо);

2. При сдаче отчета обязательна загрузка проекта в Borland C++ Builder и демонстрация работы проекта.

 

 

Лабораторная работа №1 8

Таблица 12 – Варианты заданий

№ варианта

Создать сообщения

Для первой кнопки функция MessageBeep

Для второй кнопки функция Beep

Частота Продолжительность звука
1 MB_ICONASTERISK 100 100
2 MB_ICONEXCLAMATION 200 200
3 MB_ICONHAND 300 300
4 0 400 400
5 MB_OK 500 500
6 MB_ICONASTERISK 100 500
7 MB_ICONEXCLAMATION 200 400
8 MB_ICONHAND 300 300
9 0 400 200
10 MB_OK 500 100
11 MB_ICONASTERISK 200 100
12 MB_ICONEXCLAMATION 200 300
13 MB_ICONHAND 400 300
14 0 400 300
15 MB_OK 500 400
16 MB_ICONASTERISK 100 500
17 MB_ICONEXCLAMATION 200 200
18 MB_ICONHAND 100 300
19 0 200 100
20 MB_OK 500 400
21 MB_ICONEXCLAMATION 100 300
22 MB_ICONHAND 100 400
23 0 300 200
24 MB_OK 500 200
25 MB_ICONASTERISK 300 500

Контрольные вопросы:

1. Что задает параметр для функции MessageBeep?

2. Что задают параметры для функции Beep?

3. В каких единицах измерения задается частота?

4. В каких единицах измерения задается продолжительность звука?

 

Содержание отчета:

1. Отчеты по лабораторным работам должны включать:

· Титульный лист с указанием номера работы, названия дисциплины, темы, группы, ФИО студента, номера варианта;

· Условие задания;

· Листинги программы (если необходимо);

2. При сдаче отчета обязательна загрузка проекта в Borland C++ Builder и демонстрация работы проекта.


Контрольные вопросы:

1. Что задает параметр для функции MessageBeep?

2. Что задают параметры для функции Beep?

3. В каких единицах измерения задается частота?

4. В каких единицах измерения задается продолжительность звука?

Содержание отчета:

1. Отчеты по лабораторным работам должны включать:

· Титульный лист с указанием номера работы, названия дисциплины, темы, группы, ФИО студента, номера варианта;

· Условие задания;

· Листинги программы (если необходимо);

2. При сдаче отчета обязательна загрузка проекта в Borland C++ Builder и демонстрация работы проекта.

 


к выполнению практических (лабораторных) работ

по дисциплине___Системное программирование_______________

(индекс, название дисциплины)

 

для студентов ____III____ курса

 

специальности_09.02.03 Программирование в компьютерных системах___

(шифр, название специальности)

 

 

Донецк


Поделиться:



Последнее изменение этой страницы: 2019-05-04; Просмотров: 195; Нарушение авторского права страницы


lektsia.com 2007 - 2024 год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! (0.708 с.)
Главная | Случайная страница | Обратная связь