- •Лабораторный практикум по информатике
- •Часть 2
- •Содержание
- •Введение
- •Методические рекомендации по подготовке к лабораторным работам
- •Варианты задания
- •Технология выполнения работы
- •Разработка приложения
- •Создание интерфейса приложения
- •Определение функциональности приложения.
- •Конструирование формы
- •Множественный выбор
- •Конструирование формы
- •Варианты заданий
- •Технология выполнения работы
- •Варианты заданий
- •Технология выполнения работы
- •Варианты заданий
- •Варианты заданий
- •Технология выполнения работы
- •Содержание отчета
- •Вопросы для защиты работы
- •Варианты заданий
- •Технология выполнения работы
- •Варианты заданий
- •Технология выполнения работы
- •Перечень обеспечивающих средств
- •Общие теоретические сведения
- •Составление линейных алгоритмов
- •Варианты заданий
- •Технология выполнения работы
- •Содержание отчета
- •Вопросы для защиты работы
- •Цель работы
- •Задачи лабораторной работы
- •Перечень обеспечивающих средств
- •Общие теоретические сведения
- •Варианты заданий
- •Технология выполнения работы
- •Содержание отчета
- •Вопросы для защиты работы
- •Цель работы
- •Задачи лабораторной работы
- •Перечень обеспечивающих средств
- •Общие теоретические сведения
- •Варианты заданий
- •Технология выполнения работы
- •Содержание отчета
- •Вопросы для защиты работы
- •Цель работы
- •Задачи лабораторной работы
- •Перечень обеспечивающих средств
- •Общие теоретические сведения
- •Варианты заданий
- •Технология выполнения работы
- •Содержание отчета
- •Вопросы для защиты работы
- •Цель работы
- •Технология выполнения работы
- •Изучение управляющего элемента CheckBox
- •Изучение управляющего элемента RadioGroup
- •Технология выполнения работы
- •Изучение управляющего элемента ComboBox
- •Технология выполнения работы
- •Вопросы для защиты работы
- •Цель работы
- •Задачи лабораторной работы
- •Перечень обеспечивающих средств
- •Общие теоретические сведения
- •Изучение управляющего элемента StringGrid
- •Технология выполнения работы
- •Вопросы для защиты работы
- •Метод сортировки выбором
- •Метод сортировки включением
- •Пример использования генератора случайных чисел
- •Пример заполнения массива и вывода его в ListBox1
- •Измерение времени выполнения алгоритма
- •Технология выполнения работы
- •Вопросы для защиты работы
- •Поиск элемента массива на основе линейного просмотра
- •Метод двоичного поиска
- •Технология выполнения работы
- •Вопросы для защиты работы
- •Варианты задания
- •Технология выполнения работы
- •Задание
- •Варианты заданий
- •Технология выполнения работы
- •Перечень обеспечивающих средств
- •Общие теоретические сведения
- •Варианты задания
- •Технология выполнения работы
- •Обращение к программе-функции Mathcad
- •Задание
- •Варианты задания
- •Технология выполнения работы
- •Содержание отчета
- •Вопросы для защиты работы
- •Библиографический список
Технология выполнения работы
Разработать алгоритм для написания программы в виде блок-схемы.
Написать программу.
Протестировать ее с разными исходными данными.
Содержание отчета
Цель работы, условие задачи
Алгоритм в виде блок-схемы.
Исходный текст программы.
Вводимые данные и результаты.
Фрагменты экрана с диалоговыми окнами Excel.
Результат работы программы должен иметь наглядный вид.
Вопросы для защиты работы
Как описываются массивы переменных?
Сколько операций цикла DO Вы знаете?
Как выглядит оператор цикла FOR?
Указать вид оператора DO, который выполняется, пока условие дает истину.
Указать вид оператора DO, который выполняется, пока условие дает ложь.
Можно ли прервать выполнение оператора FOR принудительно?
Лабораторная работа № 8 Программирование в среде разработки Borland C++. Линейные алгоритмы
Время выполнения – 2 часа.
Цель работы
Научиться работать в интегрированной среде программирования (ИСП) и приобрести навыки составления линейных алгоритмов.
Задачи лабораторной работы
После выполнения работы студент должен уметь:
вводить и редактировать текст (манипуляция с символами, строками, блоками как в пределах одного окна, так и между ними);
получать справку от ИСП;
компилировать и запускать на выполнение программу;
искать и исправлять синтаксические и семантические ошибки;
выполнять трассировку (пошаговую отладку) программы;
инициировать и изменять значения переменных;
написать текст программы по схеме алгоритма, и, наоборот, по тексту программы составить схему её алгоритма;
написать текст программы на языке программирования C++;
применять в структуре программы типы данных, арифметические операции, математические функции, функции ввода и вывода, оператор присваивания – и правила их использования;
проводить тестирование программы, используя известные ему приложения (например, ExcelилиMathCAD).
Перечень обеспечивающих средств
Для обеспечения выполнения работы необходимо иметь компьютер со следующим математическим обеспечением: операционная система семейства Windowsи язык программированияС++.
Общие теоретические сведения
Интегрированная среда программирования Borland С++
Окно интегрированной среды программирования (ИСП) BorlandC++ (BC) состоит из 4-х основных частей: главного меню, окна редактирования, окна сообщений и строки состояния, в каждую из которых можно войти с помощью «мыши» (рис. 1).
Главное меню
Окно редактиро-вания
Окно сообщений
Строка состояния |
Рисунок 1 – Интерфейс интегрированной среды программирования BorlandC++
«Главное меню» доступно клавишей F10или путем нажатия комбинаций клавишALTи первой буквы соответствующего элемента меню.
Таблица 1 – Меню File, команды работы с файлами
New |
открыть новое окно редактирования |
Open... F3 |
открыть существующий файл с диска |
Save F2 |
сохранить программу под старым именем |
Save as... |
сохранить программу под новым именем |
Save all |
сохранить все файлы из всех окон |
Change dir... |
сменить каталог |
|
печать программы |
Print setup... |
установка параметров печати |
Dos shell |
временный выход в MS DOS |
Exit Alt+X |
выход из ИПС |
Таблица 2 – Меню Edit, команды редактирования
Undo Alt+BksSp |
отменить последнее действие |
Redo |
повторить последнее действие |
Cut Shift+Del |
вырезать выделенный фрагмент |
Copy Ctrl+Ins |
копировать выделенный фрагмент в буфер обмена |
Paste Shift+Ins |
вставить содержимое буфера обмена |
Clear Ctrl+Del |
удалить выделенный фрагмент |
Show clipboard |
показать окно буфера обмена |
Search |
команды поиска |
Find... |
найти фрагмент, указанный в окне |
Replace... |
найти фрагмент и заменить его на указанный в окне |
Search again |
повторить поиск |
Go to line number |
перейти к указанному номеру строки |
Show last compiler error |
показать последнюю ошибку компиляции |
Find error... |
найти ошибку |
Find procedure... |
найти процедуру, заданную в окне |
Previous browser |
покачать информацию предыдущего окна |
Objects |
показать в окне «дерево» объектных файлов |
Units |
показать в окне «дерево» модулей |
Global |
показать все глобальные переменные |
Symbol... |
задать идентификатор для выдачи номеров строк с ним |
Таблица 3 – Меню Run, команды запуска расчета
Run Ctrl+F9 |
запуск программы на исполнение |
Step over F8 |
пошаговое выполнение процедур |
Trace into F7 |
пошаговое выполнение операторов |
Go to cursor F4 |
выполнение фрагмента до курсора |
Program reset Ctrl+F2 |
завершение сеанса отладки |
Parameters... |
настройка параметров |
Таблица 4 – Меню Compile, компиляция программы
Compile Alt+F9 |
компиляция файла |
Make F9 |
перекомпиляция только измененных модулей |
Build |
перекомпиляция всех модулей |
Target... Real |
выбор режима-приложения |
Primary file... |
указание главного файла для команд Make и Build |
Clear primary |
отмена указания главного файла |
Information... |
информация о скомпилированном файле |
Таблица 5 – Меню Debug, команды отладки
Breakpoints |
управление точками прерывания |
Call stack Ctrl+F3 |
показ имен процедур до работающей процедуры |
Register |
информация о регистрах процессора |
Watch |
информация о значениях переменных и выражений |
Output |
отображение результатов без графики |
User screen Alt+F5 |
просмотр результатов программы |
Evaluate modify...Ctrl+F4 |
просмотр и изменение значений переменных |
Add watch... Ctrl+F7 |
просмотр конкретных значений переменных |
Add breakpoint... |
установка условных и безусловных точек прерывания |
Таблица 6 – Меню Tools, команды работы с сообщениями ИПС и утилитами отладки
Messages |
переход в окно сообщений |
Go to next Alt +F8 |
переход к следующему элементу окна |
Go to previous Alt+F7 |
переход к предыдущему элементу окна |
Grip Shift+F2 |
вызов программы Grip |
Turbo Assembler Shift+F3 |
вызов программы Assembler |
Turbo Debugger Shift+F4 |
вызов программы Debugger |
Turbo Profiler Shift+F5 |
вызов программы Profiler |
Таблица 7 – Меню Options, команды установки параметров интегрированной среды
Compiler |
параметры, определяющие работу компилятора |
Memory Sizes |
размеры стека, размер памяти |
Linker |
параметры компоновщика |
Directories |
задает каталоги, для помещения и извлекания файлов |
Browser |
опции, связанные с просмотром |
Tools |
местоположение программных компонентов меню |
Environment |
параметры работы с мышью, редактором и т. п. |
Open |
открывает файл конфигурации |
Save |
сохраняет файл конфигурации |
Save as… |
сохраняет файл конфигурации с запросом имени |
Таблица 8 – Меню Window, команды управления окнами
Tile |
показать все открытые окна редактирования |
Cascade |
показать в каскадном виде все открытые окна редактирования |
Close all |
закрыть все открытые окна |
Refresh display |
восстановление изображения ИПС после сбоев |
Save Move Ctrl+F5 |
изменение размеров окна |
Zoom F5 |
раскрытие окна до полного размера экрана |
Next F6 |
переход в следующее окно |
Previous Shift+F6 |
переход в предыдущее окно |
Close Alt+F3 |
закрытие окна |
List Alt+0 |
перечисление всех окон с момента работы ИПС |
Таблица 9 – Меню Help, вызов справочной информации
Contents |
вывод оглавления справки |
Index Shift+Fl |
вывод алфавитного перечня терминов |
Topic search Ctrl+Fl |
вывод справки о термине, указанным курсором |
Previous topic Alt+Fl |
переход к предыдущей справке |
Using help |
вывод инструкции по работе со справочной информацией |
Filet... |
добавление и удаление информационных файлов |
Compiler directives |
вывод списка всех директив компилятора |
Procedures and functions |
вывод алфавитного перечня процедур и функций |
Reserved words |
вывод зарезервированных слов |
Standards units |
вывод стандартных модулей |
Error messages |
вывод о сообщениях ошибок |
About ... |
служебная информация |
Для входа в «Окно редактирования» нажать комбинацию клавиш <Alt> и <цифра>, где <цифра> - номер окна. С окнами можно:
создавать новое – <Alt>+<F>+<N> (илиFile/New),
закрывать текущее – <Alt>+<F3>.
Таблица 10 – «Горячие» клавиши
< Insert> |
переключение режима вставки/замены символов |
<Delete> |
удаление символа, находящегося над курсором |
<Backspace> |
удаление символа, находящегося слева от курсора |
<End> |
перемещение курсора в конец текущей строки |
<Home> |
перемещение курсора и начало текущей строки |
<Enter> |
для перехода на новую строку и разрезания текущей строки на две |
<Page Up> |
«прочитывание» текста на один экран вперед |
<Page Down> |
«прочитывание» текста на один экран назад |
<Сарs Lock> |
переключение режима прописные/строчные буквы |
<Shift> |
временное переключение режима прописные/строчные буквы |
<Ctrl> + <y> |
позволяет удалить текущую строку |
<Ctrl> + <k> + <c> (или <Ctrl> + <Insert>) |
копирование |
<Ctrl> + <k> + <v> (или <Shift> + <Insert>) |
перемещение |
<Ctrl> + <k> + <y> (или <Ctrl>+<Delete>) |
удаление |
<Ctrl> + <k> + <h> |
отмена выделения блока |
<F2> (или <Alt> + <F2>) |
сохранение в файле на диске |
<F3> (для существующего) |
считывание из файла на диске |
<Tab> |
перемещение указателя в открывшемся окне |
<Alt>+<F9> |
проверка программы на ошибки (компиляция) |
<Ctrl>+<F1> |
справка по ошибке |
<Ctrl> + <F9> |
создание файла с расширением «.ехе» |
<Alt> + <F5> |
просмотр результатов отчетов |
Для обнаружения алгоритмических ошибок можно воспользоваться следующими операциями, условно состоящими из нескольких шагов:
установить индикацию (или просмотреть значения переменных) в процессе выполнения программы – <Ctrl>+<F7>. В открывшемся окне ввести имя переменной;
провести трассировку (т. е. построчно выполнить) – нажимать на <F7> (или <F8> – для исключения функций);
изменить(если требуется)значенияпеременной в процессе трассировки программы – <Ctrl>+<F4>. Набрать в окне “Expression”имя интересующей переменной, после чего в окне “Result”высветится ее значение. Если в окне “New Value”ввести новое значение, то дальнейшие вычисления будут выполняться уже с ним.
Во всех операциях указатель можно передвигать с помощью клавиши <Tab>.
Для входа в «Окно сообщений» можно воспользоваться командой главного меню Tools/Messages. Переход к следующему элементу сообщения <Alt> + <F8>. Переход к предыдущему элементу сообщения <Alt> + <F7>.
«Строка состояния» содержит пояснения о назначении пунктов выпадающего меню (см. выше).
С учетом представленной ИСП, может быть рекомендован следующий план работы при создании и отладки новой программы.
Открыть новое окно редактирования для ввода новой программы (File/New).
Набрать текст новой программы.
Записать текст программы на диск (File/Save или <F2>).
Запустить программу на выполнение (Run/Run или <CTRL>+<F9>).
Посмотреть результаты выполнения программы (<ALT>+<F5>).
Сохранить отлаженную программу на диске (<F2>).
Основы языка С++
Приступая к составлению программ, следует помнить следующее:
программа должна оформляться в соответствии со структурой языка программирования С++ (табл. 11);
программа должна иметь начало и конец, обозначенные операторным блоком { … };
каждая переменная программы должна быть объявлена в начале программы с указанием её типа. Переменная может быть инициализирована некоторым значением. В имени переменной могут использоваться цифры и буквы латинского алфавита. Базовые типы данных даны в табл. 12;
все арифметические выражения состоят из операндов, которые должны расписываться в одну строчку. Если в формуле имеется дробь, то числитель и знаменатель указывается в круглых скобках. Основные операции, применяемые в выражениях, представлены табл. 13.
Операция % выполняется только с целыми числами, и результатом вычисления является целое число.
В языке С++ операции инкремента (++) и декремента (––) могут появляться перед или после своего операнда. Когда операция является префиксом своего операнда, то операнд инкрементируется или декрементируется и его новое значение является результатом вычисления выражения. Когда операция является постфиксом своего операнда, то непосредственным результатом выражения является значение операнда перед его инкрементированием или декрементированием. После этого результат используется в контексте, а операнд инкрементируется или декрементируется;
вычисления в выражениях выполняются в соответствии с приоритетом операций, распределенных по категориям (табл. 14);
каждый оператор должен заканчиваться символом « ; » - признаком окончания действия;
для ввода и вывода информации используются специальные функции (табл. 15). После вывода информации курсор устанавливается в этой же строке. Если есть необходимость переслать курсор на начало следующей строки, то используются в С++ – специальные управляющие символы «\n» и «endl»;
в составе транслятора среды программирования имеются стандартные функции, применяемые при вычислениях. Основные, наиболее часто используемые функции представлены табл. 16. Необходимо обращать внимание на подключаемые библиотечные модули, содержащие стандартные функции.
Таблица 11 – Структура программы
Назначение |
Структура |
Директивы препроцессора
Раздел объявлений и соглашений
Раздел описания процедур и функций
Основная программа |
# include < Имя библиотеки> # define Имя Макрос
label Номер метки; const Имя константы = Значение константы; Имя типа переменной Список имен переменных;
function Имя функции (входные и выходные данные) { Тело функции }
main ( ) { Тело программы } |
Таблица 12 – Типы данных и диапазон представления чисел
|
Диапазон |
Тип |
целые числа |
0…255 |
uns char |
-128…127 |
char | |
-32768…32767 |
int, short | |
0…65535 |
uns short | |
-2147483648…2147483647 |
long | |
0…4294967295 |
uns long | |
вещественные числа |
3,4Е-38…3,4Е38 |
float |
1,7Е-308…1,7Е308 |
double | |
3,4Е-4932…1,1Е4932 |
long double |
Таблица 13 – Операции
|
Назначение |
Операция |
аддитивные |
арифметические |
+, – |
мультипликативные |
*, / | |
остаток от деления |
% | |
отношений |
равно |
== |
не равно |
!= | |
больше |
> | |
меньше |
< | |
больше или равно |
>= | |
меньше или равно |
<= | |
логические |
и |
&& |
или |
|| | |
отрицание |
! | |
присваивания |
простое присваивание |
= |
сложение с присваиванием |
+= | |
вычитание с присваиванием |
–= | |
умножение с присваиванием |
*= | |
деление с присваиванием |
/= | |
остаток от деления с присваиванием |
%= | |
унарный инкремент |
++ | |
унарный декремент |
– – |
Таблица 14 – Приоритет выполнения операций
Операция |
Приоритет |
Категория |
!, ++, – – |
Первый |
Унарные |
*, /, %, && |
Второй |
Мультипликативные |
+, –, || |
Третий |
Аддитивные |
==,!=, <, >, <=, >= |
Четвертый |
Отношения |
=, *=, /=, %=, +=, –= |
Низший |
Простое и составное |
Таблица 15 – Функции и процедуры ввода и вывода
|
Спецификаторы форматов и управляющие символы |
Функции |
Ввод |
Библиотека: stdio.h %d, %i– целые %f – вещественные %с– символьные %s– строковые |
scanf (“специф“, & идентификатор); например, scanf (“%d%f”, &a, &b); scanf (“%c”, &ch); scanf (“%s”, st); |
Библиотека: iostream.h
|
cin>>идентификатор; например, cin>>a; cin>>b>>ch; cin>>st; | |
Вывод |
Библиотека: stdio.h %d, %i– целые %f – вещественные %с– символьные %s– строковые \n– перевод строки |
printf (“текст специф“, идентиф); например, printf (“Значение а= %d\n”, a); printf (“а= %d\n и b= %f\n ”, a, b); printf (“\n символ= %c \n ”, ch); printf (“ строка: %s \n ”, st); |
Библиотека: iostream.h \n и endl – перевод строки |
cout<<текст<<идентификатор; например, cout<<”Значение a=”<<a<<”\n”; cout<<” a=”<<a<<” b=”<<b<<endl; cout<<”символ: ”<<ch<<endl; cout<<”строка: ”<<st<<endl; |
Таблица 16 – Часто используемые стандартные функции
Назначение |
Функция |
абсолютное значение по модулю |
abs (int x), fabs (double x), labs (longint x) |
тригонометрические функции (в радианах) |
double cos (double x) double sin (double x) double atan (double x) double tan (double x) |
экспонента числа – expx |
double exp (double x) |
вычисляет остаток от числа |
double fmod (double x, double y) |
вычисляет целую часть от числа |
struct div ( int x; int y) |
натуральный логарифм числа |
double log (double x) |
десятичный логарифм |
double log10 (double x) |
квадрат числа |
double sqr (double x) |
квадратный корень числа |
double sqrt (double x) |
вычисляет число xв степениy |
double pow (double x, double y) |
возвращает случайное число в диапазоне 0…x; |
int rand () |
округляет число до целого |
double floor (double x) |