методичка. метода по ООП для практики. Лабораторная работа 1. Линейный вычислительный процесс 2 Общие теоретические сведения 2 Создание оконного приложения 6
Скачать 1.1 Mb.
|
1.3. Создание консольного приложенияПрограмма, написанная на языке С/С++, состоит из одной или нескольких функций, одна из которых обязательно имеет идентификатор (имя) main – основная, главная. Ее назначение – управление всей работой программы (проекта). Наиболее ощутимые отличия консольного и оконного приложений среды программирования C++ Builder – организация ввода-вывода данных. Стандартные функции вывода информацииДля вывода информации в консольном приложении чаще всего используются следующие функции: puts(S) – вывод строки символов S с переходом на начало новой строки и вывод данных с форматированием; рrintf (управляющая строка, список объектов вывода); управляющая строка – заключенная в кавычки строка, содержащая спецификации преобразования объектов вывода, управляющие символы (признак «\») и любой набор символов, использующийся в качестве поясняющего текста – указывает компилятору вид выводимой информации; список объектов вывода – печатаемые объекты (константы, переменные или выражения, вычисляемые перед выводом). Данные, указанные в списке выводятся в соответствии со спецификациями управляющей строки. Спецификации преобразования имеют вид % <флаг> <размер поля . точность> спецификация флаг: – (минус) выравнивание влево (по умолчанию выполняется выравнивание вправо); + (плюс) выводится знак положительного числа; размер поля – задает ширину поля вывода (количество символов), при недостаточном значении выполняется автоматическое расширение; точность – задает количество цифр в дробной части числа; спецификация – формат преобразования выводимого объекта. Приведем основные форматы печати: %d – десятичные целые (int); %c – один символ (char); %s – строка символов (string); %f – данные типа float; %ld – длинное целое; %lf – данные типа double; %x – шестнадцатеричные данные; %o – восьмеричные данные. При необходимости вывода управляющих символов ( % \ и т.п.) их нужно указать 2 раза, например: printf("Только %d%% предприятий не работало. \n",5); получим: Только 5% предприятий не работало. Управляющие символы: \n – переход на новую строку; \t – горизонтальная; \v – вертикальная табуляция; \b – возврат назад на один символ; \r – возврат в начало строки; \a – звуковой сигнал; \f – прогон бумаги до начала новой страницы; \? – знак вопроса. Стандартные функции ввода информацииФункция gets (S) обеспечивает ввод строки символов S до нажатия клавиши Enter, т.е. позволяет ввести строку, содержащую пробелы. Для форматированного ввода информации любого вида предназначена функция scanf (управляющая строка, список адресов объектов ввода); в управляющей строке которой указываются только спецификации преобразований, а в списке объектов ввода – адреса вводимых скалярных переменных, для чего перед ID переменной указывается операция &, обозначающая «взять адрес». Для ввода значений строковых (составных) переменных символ & не указывается. При использовании формата %s строка вводится до первого пробела. Пример ввода данных int а, doubleb, и charstr[20]: scanf ( "%d %lf %s", &a, &b, str); Вводить данные можно как в одной строке через пробел, так и в разных строках. 1.4. Пример выполнения заданияCоставить программу вычисления арифметического выражения для заданных значений x, y, z : . 1.4.1. Пример создания оконного приложенияВ оконном режиме панель диалога программы создать в виде, представленном на рис. 1.2. Рис. 1.2 Для создания проекта необходимо выполнить следующие действия. 1. Запускаем С++ Builder. Создаем в разрешенной для Пользователя папке (d:\work\ или c:\work\) папку с номером группы (\610101\), открыв ее, сохраняем предлагаемые файлы Unit1.cpp и Project1.cpp (рекомендуем без изменения). 2. Оформляем окно формы, заменив заголовок Form1 на нужный текст. Помещаем на форму необходимые компоненты Label1, Label2, Label3, Label4 (вставляя в Caption соответствующие тексты), Edit1, Edit2, Edit3, Memo1 c полосами прокрутки (см. п. 1.3), Button1 (заменив в Caption текст). Используя свойство Font, выбираем стили выводимых текстов. 3. Оформляем листинг программы (Unit1.cpp). Двойным щелчком кнопкой мыши по свободному месту формы создаем функцию FormCreate и заполняем ее (см. пример). Переходим на форму (F12), щелкаем дважды по кнопке «ВЫПОЛНИТЬ» и заполняем созданную функцию Button1Click (см. пример). 4. Перед запуском программы на обработку, сохраняем все. 5. Запускаем проект на выполнение, исправляем ошибки. Текст программы может иметь следующий вид (наклонным мелким шрифтом выделен текст, редактировать который не рекомендуется): //--------------------------------------------------------------------------- #include #pragma hdrstop #include "Unit1.h" #include "math.h" //--------------------------------------------------------------------------- #pragma package(smart_init) #pragma resource "*.dfm" TForm1 *Form1; //--------------------------------------------------------------------------- __fastcall TForm1::TForm1(TComponent* Owner) : TForm(Owner) { } //--------------------------------------------------------------------------- void __fastcall TForm1::FormCreate(TObject *Sender) { Edit1->Text = "3,4"; Edit2->Text = "7,4e-2"; Edit3->Text = "1,943e2"; Memo1->Clear(); Memo1->Lines->Add("Лабораторная работа № 1"); } //--------------------------------------------------------------------------- void __fastcall TForm1::Button1Click(TObject *Sender) { double x, y, z, a, b ,c, rez; x = StrToFloat(Edit1->Text); y = StrToFloat(Edit2->Text); z = StrToFloat(Edit3->Text); a = pow(tan(x+y),2); b = exp(y-z); c = sqrt(cos(x*x)+sin(z*z)); rez = a-b*c; Memo1->Lines->Add("При х = "+FloatToStrF(x,ffFixed,7,3) + "; y = "+FloatToStrF(y,ffFixed,7,3)+"; z = "+FloatToStrF(z,ffFixed,7,3)); Memo1->Lines->Add("Результат = "+FloatToStr(rez)); } Внимание! В строковых константах разделитель целой и дробной частей – запятая: Edit1->Text = "3,4"; в отличие от числовых констант в тексте программы. В результате должно получиться рабочее окно (рис. 1.3). Если щелкнуть мышью по кнопке «ВЫПОЛНИТЬ», в окне Memo1 появится соответствующий текст (результат). Далее в окошках Edit* можно изменять исходные значения и, нажимая кнопку «ВЫПОЛНИТЬ», получать новые результаты. Рис. 1.3 1.4.2. Создание консольного приложенияЧтобы создать проект в консольном приложении, выполняем следующую последовательность действий: File CloseAll File New Other Console Wizard Ok. Закрываем все окошки, кроме 5 (см. рис 1.1), которое в консольном приложении будет иметь вид Текст программы может иметь следующий вид: //--------------------------------------------------------------------------- #include #include #include #include #pragma hdrstop //--------------------------------------------------------------------------- #pragma argsused int main(int argc, char* argv[]) { double x, y, z, a, b ,c, rez; puts("\n\tx,y,z = "); scanf("%lf%lf%lf", &x, &y, &z); a = pow(tan(x+y),2); b = exp(y-z); c = sqrt(cos(x*x)+sin(z*z)); rez = a-b*c; printf("\n x = %7.3lf\n y = %7.3lf\n z = %7.3lf\nRezult = %lf\n", x, y, z, rez); puts("Press any key ... "); getch(); return 0; } Для исходных данных x = 3,4; y = 7,410-2; z = 1,943102, результат выполнения программы выглядит следующим образом: |