- •5В070300 «Информационные системы»
- •Введение
- •Содержание отчета
- •Лабораторная работа № 1
- •1 Порядок выполнения лабораторной работы:
- •Постановка задачи
- •Методические указания
- •2 . Пример
- •1 Содержание работы
- •1 Порядок выполнения лабораторной работы:
- •Задание
- •2. Пример
- •Лабораторная работа № 2
- •Лабораторная работа№ 3
- •1 Порядок выполнения лабораторной работы:
- •Задание
- •Часть вторая: Оператор выбора
- •1 Порядок выполнения лабораторной работы:
- •Задание
- •Группа а Таблица 7
- •Группа в
- •2. Примеры
- •Лабораторная работа№ 4
- •1 Порядок выполнения лабораторной работы:
- •Задание
- •2 Примеры
- •For (выражение1; выражение2;выражение3) {операторы; }
- •Лабораторная работа№ 5
- •1 Порядок выполнения лабораторной работы:
- •Задание
- •2. Примеры
- •3. Сортировка элементов массива
- •Сортировка выбором
- •3.2. Сортировка вставкой
- •3.3. Сортировка методом прямого выбора
- •3.4. Сортировка методом обмена
- •4. Указатели и одномерные массивы
- •Лаборатоная работа № 6
- •1 Порядок выполнения лабораторной работы:
- •2. Методические указания
- •3. Указатели и двумерные массивы
- •Лабораторная работа № 7
- •1 Порядок выполнения лабораторной работы:
- •Задание на строки
- •2.Краткие теоретические сведения
- •Лаборатоная работа № 8
- •1 Порядок выполнения лабораторной работы:
- •2. Теоретические сведения
- •Год рождения – 1978
- •Лабораторная работа № 9
- •1 Порядок выполнения лабораторной работы:
- •2. Примеры
- •Лабораторная работа № 10
- •1 Порядок выполнения лабораторной работы:
- •1.3. Задание для выполнения
- •2. Примеры
- •Лабораторная работа № 11
- •1 Порядок выполнения лабораторной работы:
- •1.3. Задание для выполнения
- •Лабораторная работа № 12
- •1 Порядок выполнения лабораторной работы:
- •2. Краткие теоретические сведения Объектно-ориентированный подход
- •Сущности и Объекты
- •Система типов
- •Инкапсуляция
- •Пример класса
- •Создание объектов. Конструкторы и деструктор
- •Наследование
- •Перегрузка функций
- •Полиморфизм
- •Функции-друзья
- •Абстрактные классы
- •Дополнительные возможности
- •Индивидуальные задания
- •2.1. Пример решения задания
- •Int windForce; // Сила ветра в баллах
- •Int startHeight; // Начальная высота
- •Int fuel; // Запас топлива
- •Результат выполнения программы:
- •Разновидности списков
- •Контрольные вопросы
- •Задание
- •Литература
- •Лабораторная работа № 9 Тема: Множества в Паскале.
- •Общие сведения
- •Лабораторная работа № 8 Тема: Применение записей в составлении программ.
- •Теоретические сведения
- •Задание
- •Контрольные вопросы.
- •Литература.
- •Список использованной литературы
Лабораторная работа№ 4
Тема: Программирование циклических структур в среде Си++Builder.
Цель работы: Знакомство с операторами цикла, при создании программ использовать компоненты вкладки Standard среды Си++Builder.
Время выполнения: 2 часа.
1 Порядок выполнения лабораторной работы:
Знакомство с теоретическим материалом, соответствующим теме лабораторной работы
Ответить на следующие вопросы:
1.Перечислить операторы цикла и указать особенности применения каждого.
2.Как применяются операторы перехода (break, continue, goto)?
3.Назначение препроцессора, назвать основные директивы препроцессора и указать правила их использования.
4. Каково значение переменной f:
А) i=1; f=2; while (i<6) i=i+1; f=f*i;
b) i=1; f=2; while (i<6) { i=i+1; f=f*i }
5. Какое значение получит S после выполнения следующих операторов:
А) s=0; i=1; do s=s+i; i=i-1 while (i<=1);
b) s=1; n=1; for (i=2; i<= n; i++) s=s+i;
6. Сколько раз выполнится цикл и какие значения примут переменные:
a) k=0; for (i=1; i<= k+3; i++) k=k+1;
b) k=0; for (i=1; i<= k+3; i++); k=k+1;
7. Какое значение получит S после выполнения следующих операторов
s=0; i=0; while (i<5) i=i+1; s=s+1/i;
8. Какое значение получит S после выполнения следующих операторов
s=0; i=1; while (i>1) {s=s+1/i; i=i-1;}
9. Укажите какое значение получит переменные s и i после выполнения следующих операторов: int i,s; s=0; і=0; whіle( і<5) і=і+1; s=s+1/і;
a) і=5, s=0
b) і=5, s=1
c) і=5, s=0.2
d) і=6, s=1/6
e) i=1, s=0
10. Написать фрагмент программы для определения суммы элементов побочной диагонали.
Задание
Задание группы А: вычислить значение функции по формулам приведенным в лабораторной № 3. Составить блок-схему задачи, написать и отладить программу, учитывая шаг и диапазон изменений значений переменных. Здесь а) – оператор цикла с предусловием; b) – оператор цикла с постусловием
Задание группы В должны быть выполнены задания а) и b).
Таблица 8
№ вар. |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
Вид оператора цикла |
a |
b |
a |
b |
a |
b |
b |
a |
a |
b |
№ вар. |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
Вид оператора цикла |
a |
b |
a |
b |
a |
b |
b |
a |
a |
b |
2 Примеры
П
ример
2.1.
Учитывая изменения значений х
в диапазоне [0,7], определить значение
функции s
при a=2.6, b=-0.39, dx=0.6.
Решение задачи:
Первый способ:1. Алгоритм решения задачи представить в виде блок-схемы (рис.13).
1-ый блок: начало;
2-ой блок: ввод исходных данных, здесь: xn-начальное и xk-конечное значение переменной, по условию задачи это в диапазоне [0,7]; dx – шаг изменения значения x;
3-ий блок: x присваивается начальное значение, т.е. xn =x, а он равен 0 (см. 2-блок);
4,5 и 6-ые блоки - для действительных значений x согласно условиям задачи опремеляется значение функции s;
7-ой блок: вывод вычисленного значения функции s;
8-ой блок: по условию задачи функция s должна быть для вычислена для каждого значения x, увеличивающегося на dx на каждом шаге итерации, поэтому значение переменной x увеливиается на шаг dx;
9-тый блок: пока значение x меньше конечного значения xk вычисление функции циклически повторяется: если текущее значение x меньше xk – (не достиг конца диапазона) операторы тела цикла повторяются, если превысит значение xk , то цикл завершится.
10-тый блок: конец задачи.
2. Установить на форме необходимые компоненты (рисунок-12), назначить свойства. Как видно из рисунка необходимы пять компонентов Label, пять Edit, одно Memo, три Button. Результаты задачи удобно выводить в поля компоненты Memo, т.к. значение функции s вычисляется и выводится для каждого x в диапазоне [0;7]. В поля компонентов Edit вводятся исходные данные.
3. На рисунке 13 приведена блок-схема, характеризующая цикл с постуловием или do …while .
4
.
Вычисления осуществляем с помощью
события OnClick
командной кнопки Button1,
вначале объявляем входные и выходные
данные: переменные a,b,dx и s вещественного типа. С целью использования для ввода данных поля компненты Edit необходимо использовать функции преобразования типов.
5. Переменной x присваивается начальное значение: x=xn;
6. Цикл – оператор цикла с постусловием do…while (условие):
do if (x<2.8) {i=1; s=(a+b)/(exp(x)+cos(x));} else
if (x>=2.8 && x<=6)
Рисунок
12. Исходная форма
else {i=3; s=exp(x)+sin(x); }
… while (x<=xk);
Для вывода каждого вычисленного значения х используем компоненту Memo1:
Memo1->Lines->Add("при x="+ FloatToStrF(x,ffFixed,4,2)+" : "+
"s= "+ FloatToStrF(s,ffFixed,6,4));
7. Как сказано выше, текущее значение переменной х меняется с шагом dx, т.е. x=x+dx;
Проверяем вычисленное значение x на окончание цикла: while (x<=xk);
8. Как описано в алгоритме, если условие не выполнено, то цикл завершается.
9. Необходимо описать события OnClick командной кнопки Button2. В проекте эта кнопка используется для обновления данных. Перед обновлением данных поля компоненты Edit необходимо с помощью метода Clear очистить это поле:
...
Edit1->Clear();
Следующая функция дает возможность с помощью события OnClick командной
кнопки Button3 закрыть форму.
void __fastcall TForm1::Button3Click (Sender: TObject);
{
Form1->Close();
}
1
0.
На рис.14 приведены результаты вычисления
функции s
для
x
в диапазоне
[0;7].
Второй способ: В соответствии с постановкой задачи рассмотрим другой оператор цикла: Оператор цикла с предусловием whіle (условие) { операторы тела цикла } (цикл-пока).
Этот оператор используется, когда заранее неизвестно сколько раз должны повторяться операторы тела цикла. Формат записи оператора
whіle (<логическое выражение А>) {<тело цикла>; }
Выполнение оператора начинается с вычисления логического выражения А, т.е. x<=xk . Если логическое выражение А истина, то выполняются операторы тела цикла, если значение ложь, то управление передается следующему за циклом оператору. Примеры применения цикла с предусловием можно увидеть из следующего отрывка программы: пока выполняется условие x<=xk (да) операторы тела цикла выполняются, если условие на выполнено (нет), то осуществляется выход из цикла (рис.15).
Отрывок текста программы:
dx=StrToFloat(Edit5->Text);
x=xn; // x присваивается начальное значение
while (x<=xk) { // проверка условия окончания цикла (логическое выражение)
if (x<2.8) { i=1; s=(a+b)/(exp(x)+cos(x)); }
if (x>=2.8 && x<=6) { i=2; s=(a+b)/(x+1); }
if (x>=6){ i=3; s=exp(x)+sin(x); }
Memo1->Lines->Add(“при x=”+FloatToStr(x)+” : “+ “s= “+ FloatToStr(s));
x=x+dx; //увеличение текущего значения x на шаг dx
}
Ц
иклические
операции выполняются с помощью инструкций
for,
while, do…while.
Третий вид оператора цикла –цикл
с
параметром
:
