- •Список рассматриваемых вопросов Лекция 1 Основные этапы решения задач с использованием математического моделирования.
- •Вопрос 1
- •Основные этапы решения задач с использованием математического моделирования.
- •Вопрос 2 Методический пример решения задачи с использованием математического моделирования. Программирование линейных алгоритмов.
- •Вопрос 3 Анализ текста данной программы
- •Вопрос 4 Некоторые стандартные функции (модуль System программной среды Borland Pascal)
- •Вопрос 5 Операции над данными в языке Паскаль
- •Вопрос 6 Приоритет арифметических операций
- •Лекция 2
- •Вопрос 1 Программирование схемы алгоритма (п. 3.4 вопрос 2 лекции 1)на языке Delphi (консольный режим)
- •Вопрос 2 Создание консольного приложения в среде Delphi версия 7
- •Вопрос 3 Особенности подготовки к разработке консольного приложения Delphi в среде Borland Developer Studio 2005 или 2006 (версия 10)
- •Вопрос 4
- •Вопрос 5 Анализ текста данной программы
- •Лекция 3
- •Вопрос 1
- •Вопрос 2
- •Вопрос 3
- •Вопрос 4
- •Вопрос 4
- •Вопрос 5 Пример использования подпрограмм при программировании в среде Паскаль
- •Составление схемы алгоритма
- •Запись алгоритма на языке программирования Borland Pascal.
- •Вопрос 5 Анализ данного программного обеспечения, включающего использование подпрограммы.
- •Лекция 4 составление и реализация разветвляющихся алгоритмов
- •Вопрос 1
- •Базовые логические структуры
- •Вопрос 2 Операторы языка программирования Delphi (Паскаль)
- •Вопрос 3
- •Вопрос 4
- •Вопрос 5.
- •2 Конструкция “если - то”
- •Вопрос 6
- •3 Конструкция “если - иначе”
- •Вопрос 7 Пример конструкции “если” с использованием составного оператора
- •Вопрос 7 Текст программы на языке Delphi (консольный режим)
- •Вопрос 8 Варианты записи условий (логических выражений)
- •Вопрос 9 Пример решения задачи с использованием конструкции “если”, вложенной в другую конструкцию “если”, отладочной печати и стандартного модуля “Printer”
- •Вопрос 10 Использование отладчика при отладке указанной программы
- •Вопрос 11 Конструкция типа ”выбор” (”вариант”)
- •Реализация конструкции Выбор на языке програмирования.
- •Комментарий к фрагменту программы реализующему конструкцию Выбор:
- •Вопрос 12
- •Лекция 5 составление и реализация циклических алгоритмов
- •Вопрос 1
- •Вопрос 2
- •Вопрос 3 Конструкция повторение с постусловием (repeat …until) («до»)
- •Запись конструкции в виде схемы с использованием блока решение.
- •Описание работы конструкции «до» .
- •Запись конструкции на языке Паскаль и Delphi:
- •Пример решения предыдущей задачи с использованием конструкции повторение с постусловием (repeat…until)
- •Программа решения задачи с использованием конструкции repeat … until.
- •Вопрос 4 Запись конструкции повторение в виде схемы с использованием блока модификация
- •Вопрос 5 Конструкция повторение с параметром (for) («Для»)
- •Особенности конструкции «Для»
- •Запись конструкции «Для» в виде схем
- •2.4 Использование блока «модификация» при шаге -1
- •Запись конструкции «Для» на языке Паскаль (Delphi)
- •Замечания по применению конструкции for
- •Пример решения задачи с использованием конструкции
- •Лекция 6 Разработка и программирование итерационных алгоритмов
- •Задача 1 на использование итерационных алгоритмов
- •Условие задачи
- •Вычислить
- •Анализ особенностей задачи
- •Метод решения задачи
- •Условие задачи
- •Анализ особенностей решения задачи
- •Метод решения задачи
- •Алгоритм решения задачи без использования индексированных переменных
Вопрос 2
Особенности подготовки к разработке консольного приложения Си++ в среде Borland Developer Studio 2005/6 (версия 10)
Для запуска на выполнение интегрированной среды Си++ версии 10 (2006 г.) дается команда Пуск►Программы►Borland Developer Studio 2006► и повторно Borland Developer Studio 2006 или, что лучше, Си++ Builder.
Для создания исходного файла программы с помощью интегрированной среды дается команда File►Close All File►New►Otherи в окне New Items, в подокне Items Categories выбирается папка Си++ Builder Projects, а в ней - значок Console Application.
При создании нового проекта в окне New Console Application убрать опции: Use VCL, Use CLX, Multi Treaded (Многопоточный), оставив опции: С++, Console Application. При создании проекта, на основе существующего, следует установить опцию Specify project source, нажать на кнопку ... и указать папку, содержащую существующий проект.
До момента сохранения, проект и его файлы получают имена по умолчанию. Например, имя Проекта - Ргоject1. Файла с проектируемой программой - Unit1.cpp (расширение: Си++). Главного файла проекта - Project1.bdsproj (расширение: Borland Developer Studio Project). Имя проектируемого файла (Unit1.cpp) и сокращенное (без расширения и пути к файлу) имя главного файла проекта (Project1) размещаются на закладках заголовка окна редактора. Необходимо выбрать закладку Unit1.cpp. В окне редактора исходного кода проектируемой программы будет автоматически набрана заготовка стандартной части текста будущей программы, в который программистом вносятся изменения.
Затем программа запускается в интегрированной среде с помощью команды Run/Run. При попытке запуска автоматически начинает выполняться команда Save Unit1 As. При этом предлагается сохранить проектируемый файл под именем по умолчанию (Unit1.cpp) в автоматически выбранной папке. Программист может выбрать для хранения проектируемого файла другую папку, например, в соответствие со строкой 1 программы, рассматриваемой в вопросе 4 настоящей лекции, j:\vtp\с\lec2_1\, а также дать другое имя этому файлу, например, - lec2_1.cpp. Затем выполняется команда Save Project As, при исполнении которой предлагается сохранение главного файла проекта под именем по умолчанию (Project1.bdsproj), с чем рекомендуется согласиться.
Вопрос 3
Программирование схемы алгоритма (п. 3.4 вопрос 2 лекции 1))на языке Си++ (консольный режим)
//Иванов Иван Иванович АТС-151 j:\vtp\С++\lec2_2\Unit1.cpp 20.01.09
#include <iostream.h> //в файле iostream.h дано описание cout, cin, endl
void main()
{char ch;
float u,i,r;
cout<<"u(Volt)="; cin>>u;
cout<<"i(Amper)="; cin>>i;
r=u/i;
cout<<"Input data:"<<" u(Volt)="<<u<<" i(Amper)="<<i<<endl;
cout<<"Output data:"<<" r(Om)="<<r<<endl;
cout<<"Press any key and then Press Enter to stop the program.";
cin>>ch;
}
Вопрос 4
Форматированный вывод в языке Си++
//Иванов Ив. Ив.АТС-151 j:\vtp\С++\lec2 Форматир. вывод\Unit1.cpp 20.01.09
#include <iostream.h> //в файле iostream.h дано опис. cout, cin, endl, fixed 1 #include <iomanip.h> //описание: setw, setprecision, fixed 2
void main() // 3
{ char ch; // 4
float r; // 5
cout<<"r(Om)="; cin>>r;//реком-ся. для теста 10.98765432 и 12345678 // 6
//вывод по умолч.: не более 6знач. цифр, мин. шир. поля вывода 0 позиций
cout<<"Output data 1: r(Om)="<<r<<endl; // 7
cout.precision(5);//задается вывод не более 5знач. цифр // 8
cout<<"Output data 2: r(Om)="<<r<<endl; / // 9
//мин. поле вывода - 7символов, вывод не более 2знач. цифр, недостающие //пробелы слева
cout<<"Output data 3: r(Om)="<<setw(7)<<setprecision(2)<<r<<endl; //10
//мин. поле вывода 7сим., две знач. цифры после дес. точки, недостающие //пробелы слева
cout<<"Output data 4: r(Om)="<<setw(7)<<fixed<<r<< endl; ; // 11
//поле вывода 0сим., две знач цифры после дес. точки, нет пробелов слева
cout<<"Output data 5: r(Om)="<<r<<endl; //формат уже без пробелов // 12
//восстановление вывода по умолчанию
cout.precision(6); // 13
cout.unsetf(ios::fixed);//отмена вывода с заданным кол. символов // 14
//после дес.точки
cout<<"Output data 6(1): r(Om)="<<r<<endl; //формат уже без пробел. //15
cout<<"Press any key and then Press Enter to stop the program.";
cin>>ch;
}
Результаты работы программы (для наглядности пробелы заменены зведочками):
r(Om)=10.987654321
Output data 1: r(Om)=10.9877
Output data 2: r(Om)=10.988
Output data 3: r(Om)=*****11
Output data 4: r(Om)=**10.99
Output data 5: r(Om)=10.99
Output data 6(1): r(Om)=10.9877
r(Om)=1234567890
Output data 1: r(Om)=1.23457e+09
Output data 2: r(Om)=1.2346e+09
Output data 3: r(Om)=1.2e+09
Output data 4: r(Om)=1234567890.00
Output data 5: r(Om)=1234567890.00
Output data 6(1): r(Om)=1.23457e+09
В строке 2 программы для возможности работы с манипуляторами setw и setprecision в тест программы включается файл iomanip.h, в котором они описываются. Манипуляторами называются функции, имена которых можно включать в конструкции вывода и ввода на базе объектов cin и cout, для целей изменения формы или способа вывода данных.
В начале работы программы используются параметры вывода по умолчанию. Выводится максимально 6 значащих цифр (точность (precision) вывода равна 6) , минимальная ширина поля вывода составляет 0 позиций. Эти параметры были использованы в строке 7.
В строке 8 задается точность вывода равная пяти. Для этого вызывается метод precision объекта cout. Функция получает в качестве фактического параметра значение 5. Метод precision описан в том же файле (iostream.h), как и сам объект cout. Эта точность будет использоваться при выводе до тех пор пока не встретится оператор, который ее изменит.
В строке 10 устанавливается уже с помощью манипулятора setprecision точность вывода равная двум. Минимальная ширина поля вывода увеличивается до 7 позиций. Поэтому, если значение занимает количество позиций менее семи (первый случай), то остальные позиции заполняются слева пробелами. Имеется особенность в работе манипулятора setw по сравнению с setprecision, которая заключается в том, что его действие не будет распространяться на следующий оператор.
Поэтому для сохранения поля вывода (7сим) в строке 11 повторно вызван манипулятор setw с тем же самым фактическим параметром. Вызов манипулятора fixed будет обеспечивать дальнейший вывод значений в виде с фиксированной точкой с количеством символов после десятичной точки равной заданной точности вывода. Отметим, что она была установлена в строке 9 с помощью манипулятора setprecision равной двум, что после вызова манипулятора fixed будет обеспечивать вывод после десятиной точки двух цифр (слева в незаполненных позициях размещаются пробелы).
В строке 12 манипулятор setw(7) не вызывается, поэтому ширина поля вывода опять становится равной по умолчанию, т.е. нулю. В результате заполнения незанятых позиций пробелами уже не будет. Сохранение формата вывода с фиксированной точкой с заданным количеством цифр после запятой сохраняется, несмотря на то, что манипулятор fixed не вызывается.
В строках 13 и 14 осуществляется восстановление параметров вывода по умолчанию. В строке 14 вызывается метод unsetf объекта cout. В качестве фактического параметра этого метода указывается флаг fixed класса ios, который описан в файле iostream.h . Таким образом в 15 строке вывод осуществляется с параметрами по умолчанию, так же как это осуществлялось в строке 7.