
- •Тема 1: Понятие алгоритма, составление простейшего алгоритма.
- •Тема 2: Составление линейных, разветвленных и циклических блок-схем
- •Тема 3: Сложные циклические блок-схемы (вложенные циклы, разветвления в теле цикла, накопления, двумерные массивы)
- •Ветвление в теле цикла
- •Базовые типы данных
- •Форматированный ввод и вывод
- •Выводы по результатам работы.
Тема 3: Сложные циклические блок-схемы (вложенные циклы, разветвления в теле цикла, накопления, двумерные массивы)
Теоретическая часть
Вложенные циклы
Возможны случаи, когда внутри тела цикла необходимо повторять некоторую последовательность операторов, т. е. организовать внутренний цикл. Такая структура получила название цикла в цикле или вложенных циклов. Глубина вложения циклов (то есть количество вложенных друг в друга циклов) может быть различной.
При использовании такой структуры для экономии машинного времени необходимо выносить из внутреннего цикла во внешний все операторы, которые не зависят от параметра внутреннего цикла.
Пример вложенных циклов
Вычислить сумму элементов заданной матрицы А(5,3).
Циклы "накопления" конечной суммы (или произведения)
Часто в ММ встречаются макрооперации многоместного суммирования или многоместного произведения однотипных слагаемых (множителей), сконструированных на элементах заданного числового массива:
где ∑ - операция многоместной суммы;
П - операция многоместного произведения; i -счетчик операндов (слагаемых или множителей), меняется всякий раз на 1;
i = 1 - номер первого операнда; п - его последний номер. Так можно изобразить сумму (или произведение) однотипных операндов, построенных по какому-либо правилу на элементах заданного числового массива конечной длины.
В алгоритмах знаки микроопераций ∑ и П. не употребляются (не считаются элементарными). В развернутом виде формулу записывать крайне не желательно из-за громоздкости, а заменять часть операндов по формуле многоточием в алгоритме недопустимо. Поэтому для алгоритмизации вычислений подобного типа существует прием циклического "накопления" результата последовательным добавлением к предыдущей частичной сумме нового слагаемого или последовательным домножением предыдущего частичного произведения на новый множитель.
Циклов получается ровно столько, сколько операндов, а операндов ровно столько, сколько элементов в заданном массиве. Таким образом, цикл должен быть организован по счетчику циклов. Для выполнения операции накопления вводится дополнительная переменная "накопления", которая предварительно (перед телом цикла) обнуляется при накоплении суммы или получает значение 1 при накоплении произведения. В основе тела цикла лежит операции "накопления". Пусть S - переменная накопления, тогда операция "накопления":
для суммы для произведения
S=S+<i-e слогаемое> S=S*<i-й множитель>
Ветвление в теле цикла
К составлению алгоритма для начинающих исполнителей: тело цикла (ТЦ) может быть представлено "черным ящиком", вокруг которого строится цикл (или циклы, если у ТЦ несколько параметров) по правилам построения типовых структур циклов (см. 1-ю часть, разд. 6). Затем отдельно строится разветвленное ТЦ в соответствии с рекомендациями для построения таких структур. Наконец, обе алгоритмические схемы совмещаются, образуя единую сложную композицию (см. ниже пример) с его алгоритмической реализацией.
Пример 1. Вычислить значения заданной функции Y(ai) на последовательности неравноотстоящих узлов аi:
Исходные данные: n - длина
массива а; массив a=(a1,a2,....,an).
п
ри
ai<0
при ai<0
поэтапное построение алгоритма представлено на рис.
Задача 5. Вложенные циклы
Постановка задачи.
Рассчитать значение функции Y в каждой точке координатной плоскости (х, а), x0 - координата начальной точки для расчета, ∆х - величина изменения координаты, xk - координата конечной точки, n - количество расчетных точек на оси, а0 - координата начальной точки для расчета, ∆а - величина изменения координаты, аk - координата конечной точки, х = (1,2,3,4,0) - массив координат точек. Значения x0, ∆х, xk, n, а0, ∆а, аk и значения элементов массивов, приведенные в задании вводятся с клавиатуры и могут меняться на усмотрение пользователя. В результате работы программы на экране должна быть таблица значений функции Y(a,x).
Блок схема алгоритма.
Программа (листинг программы).
Окно программы с результатами работы программы.
Задача 6. Алгоритмы накопления
Постановка задачи.
Реализовать расчет значения функции, заданной формулой в таблице. Исходные данные вводить с клавиатуры.
Блок схема алгоритма.
Программа (листинг программы).
Окно программы с результатами работы программы.
Тема 4: Знакомство со средой разработки MS Visual Studio С++, Составление и запуск программ по типовым алгоритмам.
Теоретическая часть
В данной лабораторной работе вы познакомитесь со средой разработки MS Visual Studio C++.
Все лабораторные работы должны быть написаны на языке программирования С++ и в среде MS Visual Studio.
На рисунке представлена главная форма MS Visual Studio.
Главное окно разделено на 3 основные части:
1) Редактор кода (текстовый редактор для написания программы)
2) Файлы проекта (отображает древовидную структуру файлов проекта и позволяет выбирать файлы для редактирования)
3) Вывод сообщений компилятора (При сборке проекта в это окно выводятся сообщения компилятора)
Создание нового проекта
1) Выберите место расположения файлов нового проекта.
2) Запустите приложение Microsoft® Visual Studio .NET 2003.
3) Выберите пункт меню File/New/Project...
4) В окне диалога выберите закладку тип проекта Visual C++ Projects/Win32 Console Application.
5) В поле Location укажите путь для расположения файлов нового проекта.
6) В поле Name введите название нового проекта.
7
)
В случае использования рабочего
пространства выберите переключатель
Add to Solution (Добавить к текущему рабочему
пространству), в противном случае будет
создано новое рабочее пространство.
8) Нажмите кнопку OK.
Далее запускается мастер приложений, производящий начальную конфигурацию проекта
Нажмите кнопку Next > для начала работы с мастером.
В появившемся окне поставьте переключатель типа приложения на Console Application, а также в секции Additional options активируйте опцию Empty project.
Теперь нажмите кнопку Finish для окончания создания проекта.
Проект создан и в окне отображения файлов проекта появился созданный вами проект.
Д
ля
того чтобы приступить к созданию
консольного приложения необходимо еще
создать файл под исходный текст программы.
Для этого на папке Source
File щелкните правой кнопкой
и в появившемся меню выберите Add
и далее New item.
В появившемся мастере выберите C++ File (.cpp) и в поле Name введите необходимое имя файла. Далее нажмите кнопку Add.
Теперь в окне редактора программного кода появилась закладка с именем файла и возможность редактирования.
Для компилирования и запуска вашей программы необходимо нажать кнопку Start (зеленый треугольник, выделен на рисунке).
Краткая структура языка программирования С++
Пример простейшей программы:
#include <stdio.h> |
#include – это оператор подключения заголовочных файлов, позволяет расширять стандартный функционал языка С++ |
#include <conio.h> |
|
void main(void){ |
Все программы на языке С++ должны иметь функцию main, с этой функции начинается выполнение любой программы. Оператор void перед именем функции задает тип возвращаемого значения, в данном случае пустой тип. Второй оператор void означает какие параметры принимает функция при вызове, в данном случае функция не принимает и не возвращает никаких значений. |
printf(“Hello world \n”); |
Оператор печати текста в стандартный поток выводаопределен в заголовочном файле stdio.h |
getch();
} |
Данный оператор считывает 1 любой символ из стандартного потока ввода, в данном случае предназначен для задержки завершения программы. Данная функция определена в заголовочном файле conio.h |