СДЕЛАЙТЕ СВОИ УРОКИ ЕЩЁ ЭФФЕКТИВНЕЕ, А ЖИЗНЬ СВОБОДНЕЕ

Благодаря готовым учебным материалам для работы в классе и дистанционно

Скидки до 50 % на комплекты
только до 22.06.2025

Готовые ключевые этапы урока всегда будут у вас под рукой

Организационный момент

Проверка знаний

Объяснение материала

Закрепление изученного

Итоги урока

«Программирование линейных алгоритмов» в среде C++

Категория: Информатика

Нажмите, чтобы узнать подробности

Методическая разработка открытого занятия по дисциплине ОП.15 «Объектно-ориентированное программирование»

Просмотр содержимого документа
««Программирование линейных алгоритмов» в среде C++»

32


МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ

ДОНЕЦКОЙ НАРОДНОЙ РЕСПУБЛИКИ


ГОСУДАРСТВЕННОЕ ПРОФЕССИОНАЛЬНОЕ

ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ

«ДОНЕЦКИЙ ПРОМЫШЛЕННО-ЭКОНОМИЧЕСКИЙ КОЛЛЕДЖ»












МЕТОДИЧЕСКАЯ РАЗРАБОТКА

открытого занятия



ПРОГРАММИРОВАНИЕ ЛИНЕЙНЫХ АЛГОРИТМОВ

в среде C++




















2019

Методическая разработка открытого занятия по дисциплине ОП.15 «Объектно-ориентированное программирование» на тему «Программирование линейных алгоритмов» в среде C++. - Донецк: ГПОУ «ДОНПЭК», 2019. - 26 с.

Специальность 09.02.03 «Программирование в компьютерных системах»





Составитель: Волков Владимир Александрович - преподаватель квалификационной категории «специалист первой категории» Государственного профессионального образовательного учреждения «Донецкий промышленно-экономический колледж»



Цель методической разработки - показать результативность инновационных подходов к формированию практической компетентности студентов.

В работе представлен обширный теоретический материал, направленный на формирование навыков работы с языком программирования С++, что достигается посредством изучения методов и средств обучения, формами и конструкциями примеров.

Слуховое восприятие материала усиливается средствами практического выполнения работы.





Для преподавателей компьютерных дисциплин профессиональных образовательных учреждений.



Рецензенты:

Бурьянова В.А. - преподаватель компьютерных дисциплин ГПОУ «Донецкий промышленно-экономический колледж», квалификационной категории «специалист высшей категории».




Рассмотрена и одобрена на заседании

цикловой комиссии специальных технологических

и технических дисциплин

Протокол №__ от «__»______ 2019 г.

Председатель ЦК _______ Н.С. Подгорная



СОДЕРЖАНИЕ

стр.

Пояснительная записка.

4

План занятия.

5

Структура занятия.

6

Ход занятия.

7

Организационный момент.

7

Ознакомление студентов с темой и целью занятия.

7

Мотивация обучения.

7

Актуализация опорных знаний.

8

Комментарий ответов студентов.

9

Технология программирования

ЖИЗНЕННЫЙ ЦИКЛ И ЭТАПЫ РАЗРАБОТКИ ПРОГРАММНОГО ПРОДУКТА

Арифметические и алгебраические функции

Структура программ C++ Builder

1 Построение блок – схемы задания

2 Настройка формы

3 Настройка компонент

4 Обработка событий в среде C++ Builder FormCreate

5 Введения кода программы

6 Варианты заданий

10


10

13

15

15

16

17

19

20

23

Подведение итогов занятия.


Домашнее задание.


Литература

24



ПОЯСНИТЕЛЬНАЯ ЗАПИСКА


Социальные и экономические изменения в жизни общества вызывают потребность в новом качестве образования. Процесс информатизации является одной из основных характеристик современного периода развития цивилизованного общества. Информатизация общества - это важнейший социальный процесс, в котором в качестве основного ресурса на первый план выдвигаются информация, а также средства и методы работы с ней. В развитых странах мира наметился переход от общества индустриального к постиндустриальному, или информационному. Такой переход обусловлен появлением принципиально нового инструмента - компьютера. Сегодня система "человек-компьютер" превратилась в проблему, которая касается всех членов общества, а не только специалистов.

Становится очевидным то, что те качества и навыки, которыми должен обладать выпускник, завершающий образование на одном из уровней среднего профессионального образования, призваны отразить конкретные требования отраслей, перспектив их развития, профилей. При этом, ключевым аспектом образования является качество подготовки специалиста.

Даная дисциплина относится к профессиональному модулю части профессионального цикла и является обязательной дисциплиной в структуре общей образовательной программы по специальности и направлена на формирование профессионального и личностного роста. 

Поэтому подготовка высококвалифицированных и компетентных специалистов среднего звена невозможна без обучения принципам и азам устной вербальной коммуникации.

Дисциплина ОП.15 «Объектно-ориентированное программирование» позволяет решать многие из этих проблем.

Данная методическая разработка в первую очередь рассчитана на преподавателей информационных дисциплин.

Цель методической разработки - показать результативность инновационных подходов к выполнению практической работы студентов. Здесь детально расписаны все структурные моменты занятия, указано какие используются методические приемы и средства визуализации.

Теоретический материал сопровождается практическими примерами.

Упражнения на закрепление знаний довольно разнообразны и учитывают особенности студенческой аудитории.

Практическая ценность методической разработки определяется в первую очередь ее содержанием.







ПЛАН ЗАНЯТИЯ


Группа: П-31/9 Дата 28.02.2019 г.


Специальность: 09.02.03 «Программирование в компьютерных системах»


Тема занятия: Программирование линейных алгоритмов

Цели занятия:

методическая: показать результативность инновационных подходов к формированию риторической компетентности студентов.

учебная:

- формировать у учащихся представления о языке программирования С++;

- научить студентов различать структуры алгоритмов;

- познакомить студентов со средствами построения интерфейса приложения;

- усовершенствовать коммуникативные умения и навыки;

- научить убедительно и грамотно выражать свои мысли.

воспитательная:

- воспитывать культуру общения и умение слушать;

- прививать навыки соблюдения профессиональной этики;

- навыки индивидуальной и коллективной деятельности;

- развивать познавательный интерес к профессии.

Вид занятия: практическая работа.

Тип занятия: обобщения и систематизации знаний, в освоении нового материала.

Формы и методы изложения темы: репродуктивная беседа; проблемно-диалоговый, наглядно-иллюстративный методы, выполнение практического задания, тестирование.

Междисциплинарные связи:

обеспечиваемые: Основы программирование, Теория алгоритмов;

обеспечивающие: Визуальное программирование.

Методическое обеспечение: рабочая программа по дисциплине, методическая разработка занятия, опорный конспект, сборник упражнений, карточки, компьютерные тесты, мультимедийные презентации.

Литература:

  1. А.А.Ремнев, С.В.Федотова Курс Delphi для начинающих. Полигон нестандартных задач. – М.: САЛОН-ПРЕСС, 2007. – 360 c.: ил..

  2. Windows via C/C++. Программирование на языке Visual C++. Назарр К., Рихтер Дж

  3. Пышкин Е.В. Основные концепции и механизмы объектно-ориентированного программирования. – СПб.: БХВ-Петербург, 2005. – 640 с.: ил.

  4. Митчелл К. Керман. Программирование и отладка в Delphi. Учебный курс.: Пер. с англ. - М.: Издательский дом «Вильямс», 2002, 672 с.: ил.

  5. Гофман В.Э., Хомоненко А.Д. Работа с базами данных в Delphi. – 2-е изд. – СПб.: БХВ-Петербург, 2002. – 624 с.: ил.

СТРУКТУРА ЗАНЯТИЯ


1 Организационный момент.


2 Ознакомление студентов с темой и целью занятия.


3 Мотивация обучения.


4 Актуализация опорных знаний.


5 Комментарий ответов студентов.


6 Технология программирования

7 ЖИЗНЕННЫЙ ЦИКЛ И ЭТАПЫ РАЗРАБОТКИ ПРОГРАММНОГО ПРОДУКТА

7.1 Арифметические и алгебраические функции

8 Структура программ C++ Builder

8.1 Построение блок – схемы задания

8.2 Настройка формы

8.3 Настройка компонент

8.4 Обработка событий в среде C++ Builder FormCreate

8.5 Введения кода программы

8.6 Варианты заданий


9 Подведение итогов занятия.


10. Домашнее задание.


Время - 80 мин







ХОД ЗАНЯТИЯ


1. Организационный момент (На доске написана тема и план занятия).

Приветствие преподавателя. Проверка присутствующих на занятии студентов по списку. Объявление формы проведения занятия.


2. Ознакомление студентов с темой и целью занятия

Преподаватель: сегодня мы с вами продолжим изучение дисциплины ОП.15 «Объектно-ориентированное программирование» и ознакомимся с практической работой на тему: «Программирование линейных алгоритмов» в среде C++.

Перед нами стоят следующие цели:

- ознакомиться с средствами построения программных элементов;

- изучить основные приемы построения интерфейса приложения;

- усовершенствовать коммуникативные умения и навыки;

- научиться убедительно и грамотно выражать свои мысли.

3. Мотивация обучения

Программирование – это настоящее и будущее всех информационных технологий.

Программирование - область информатики, изучающая методы и свойства разработки программ с помощью программно-аппаратных средств.

Работа с языками программирования - одно из самых популярных направлений использования ПК. Причем занимаются этой работой не только. Во всех отраслях науки, техники, медицины, в коммерческой и управленческой деятельности используются построенные с помощью компьютера схемы, графики, диаграммы, предназначенные для наглядного отображения разнообразной информации. Конструкторы, разрабатывая новые модели автомобилей, самолетов, железнодорожного транспорта используют трехмерные графические объекты, чтобы представить окончательный вид изделия. Архитекторы создают на экране монитора объемное изображение здания, и это позволяет им увидеть, как оно впишется в ландшафт.

На любом предприятии время от времени возникает необходимость в обработке информации, в сложных расчетах или вычислениях. Программирование стала популярной во многом благодаря развитию вычислительной техники.

4. Актуализация опорных знаний (фронтальный опрос)


1.  На предыдущих занятиях мы изучали Визуальные компоненты и ООП.

Библиотека VCL. Давайте вспомним основные понятия.

Предлагается выполнить индивидуально задание по карточкам.

  • для записи заглавных букв и знаков над цифрами (Shift);

  • для перехода на новую строку (Enter);

  • удаление символа слева от курсора (Backspace);

  • удаление символа справа от курсора (Delete);

  • печать только заглавных букв (CapsLock);

  • перевод курсора в конец строки (End);

  • выход из текущего режима (Esc).

Предлагается кроссворд

На разгадывание кроссворда 3 минуты. (Вопросы кроссворда)

 1.      Некоторое количество рядом стоящих символов, которые можно рассматривать как единое целое. Им может быть отдельное слово, строка, абзац, страница. (Фрагмент)

2.      Упорядочивание информации в определенном порядке: по алфавиту, по номерам или в хронологической последовательности. (Сортировка)

3.      Второй этап подготовки документа на компьютере, в ходе которого исправляются обнаруженные ошибки и вносятся изменения. (Редактирование)

4.      Этап подготовки документа, на котором ему придается тот вид, который документ будет иметь на бумаге. (Форматирование)

5.      Минимальная единица текстовой информации: цифра, буква, знак препинания и т.д. (Символ)

6.      Любое словесное высказывание, напечатанное, написанное или существующее в устной форме. (Текст)

7.      Относительно законченная в смысловом отношении часть текста, выделенная отступом. (Абзац) 


ТЕМА «Программирование линейных алгоритмов»

Цель проактической работы: изучить технологии программирования, основы языка и научиться составлять каркас простейшей программы в среде C++. Написать и отладить программу линейного алгоритма.

1 Технология программирования

ЭВМ служит для обработки информации. Любые процессы, связанные с обработкой информации на ЭВМ, априори связаны с программой. Программа – это один из основных инструментов пользователя компьютером. Образ программы, чаще всего, хранится в памяти машины (например, на диске) как исполняемый модуль (один или несколько файлов). Из образа на диске с помощью специального программного загрузчика может быть построена исполняемая программа уже в оперативной памяти машины. В настоящем курсе нас интересует программа ‑ язык C++ Builder, который позволит, используя присущие ему языковые правила, операторы, функции, свойства, методы, и другие конструкции создавать пользовательские алгоритмические программы.

Алгоритмом называется точное предписание, определяющее последовательность действий исполнителя, направленных на решение поставленной задачи. Алгоритм должен обладать рядом свойств.

Свойства алгоритма:

Однозначность алгоритма, под которой понимается единственность толкования исполнителем правил и порядка выполнения действий. Для этого алгоритм должен быть записан командами из системы команд исполнителя.

Конечность алгоритма – обязательность завершения каждого из действий и всего алгоритма в целом.

Результативность алгоритма, предполагающая, что его выполнение завершится получением определённых результатов.

Массовость, т.е. возможность применения алгоритма к целому классу задач, отвечающих общей постановке задачи. Для того, чтобы алгоритм обладал свойством массовости, следует составлять его с использованием обозначения переменных величин и избегая конкретных константных значений.

Правильность алгоритма, под которой понимается способность алгоритма выдавать правильные результаты решения поставленной задачи.

2 ЖИЗНЕННЫЙ ЦИКЛ И ЭТАПЫ РАЗРАБОТКИ ПРОГРАММНОГО ПРОДУКТА

Жизненный цикл программного продукта (ПП) — это период времени, начинающийся с момента принятия решения о необходимости создания ПП и заканчивающийся в момент его полного изъятия из эксплуатации.

Структуру жизненного цикла ПП, состав процессов, действия и задачи, которые должны быть выполнены во время создания ПП, определяет и регламентирует международный стандарт ISO/IEC 12207:1995 «Information Technology — SoftwareLife Cycle Processes» (ISO — International Organizationfor Standardization — Международная организация по стандартизации; IEC — International Electrotechnical Commission — Международная комиссия по электротехнике; название стандарта «Информационные технологии — Процессы жизненного цикла программ»).

Под процессом понимают совокупность взаимосвязанных действий, преобразующих входные данные в выходные. Каждый процесс характеризуется определенными задачами и методами их решения, а также исходными данными, полученными от других процессов, и результатами.

Каждый процесс разделен на набор действий, каждое действие — на набор задач. Запуск и выполнение процесса, действия или задачи осуществляются другими процессами.

В соответствии со стандартом ISO/IEC 12207 все процессы жизненного цикла ПП разделены на три базовые группы:

  • основные процессы (включают в себя набор определенных действий и связанных с ними задач, которые должны быть выполнены в течение жизненного цикла ПП);

  • вспомогательные (поддерживающие) процессы (создание надежного, полностью удовлетворяющего требованиям заказчика ПП в установленные договором сроки. К вспомогательным относятся процессы документирования, управления конфигурацией, обеспечения качества, верификации, аттестации, совместной оценки, аудита, разрешения проблем);

  • организационные процессы (организация процесса разработки надежного, полностью удовлетворяющего требованиям заказчика ПП в установленные договором сроки и управление этим процессом. К организационным относятся процессы управления, создания инфраструктуры, усовершенствования, обучения).

Редько, какая либо большая программа работает сразу правильно. Обычно большие программы могут содержать ошибки, которые находят во время эксплуатации. Их нужно разработчикам программы ликвидировать, если получают рекламацию на ошибку. Жизненный цикл ПП включает и процесс разработки, который состоит из следующих этапов:

Первый этап – постановка задачи. На этом этапе требуется хорошо изучить предметную область задачи, и осуществить сбор информации. Нужно чётко определить цель задачи, дать словесное описание содержания задачи и продумать общий подход к её решению, и сделать эскизный проект.

Второй этап – математическое или информационное моделирование. Цель этого этапа – создать такую математическую модель решаемой задачи, которая может быть реализована на компьютере. Часто математическая постановка задачи сводится к простому перечислению формул и логических условий, однако возможно, что для полученной модели известны несколько методов решения, и тогда следует выбрать лучший из них.

Третий этап – алгоритмизация задачи. На основе математического описания необходимо разработать алгоритм решения.

В роли исполнителей могут выступать люди, роботы, компьютеры. Способ записи алгоритма зависит от выбора исполнителя. Наглядно алгоритм представляется в виде блок–схемы, схемы из UML-диаграмм и (или) других конструкций графы и т.д..

Четвёртый этап – программирование. Программой называют план действий, подлежащих выполнению исполнителем, в качестве которого может выступать компьютер. От алгоритма программа отличается тем, что записывается на языке понятном для исполнителя. Если исполнителем является компьютер, то программа записывается на одном из языков программирования. В компьютере в конечном итоге при выполнении данные и команды представляются в виде последовательности нулей и единиц. Поэтому, когда говорят о «понятности» языка программирования для компьютера подразумевают наличие специальной программы, способной перевести инструкции языка программирования в последовательность двоичных компьютерных команд. Язык программирования выполняет функции посредника между человеком и ЭВМ и поэтому с одной стороны должен быть удобен для записи алгоритмов в понятной для человека форме, а с другой стороны легко преобразовываться в машинные коды.

Программа и исходные данные вводятся в ЭВМ с клавиатуры с помощью редактора текстов или загружаются в редактор с внешнего носителя, результаты работы программы выводятся на экран дисплея или записываются на носитель информации.

Пятый этап – трансляция программы. Трансляция означает перевод команд языка программирования в компьютерные двоичные коды. На этом этапе происходит проверка программы на ее соответствие правилам (синтаксису) языка программирования и при отсутствии синтаксических ошибок создается исполняемый файл программы. Исполняемый файл содержит инструкции в двоичном коде. Если транслятор обнаруживает в программе несоответствия синтаксису, то исполняемый файл создать не удастся. Программист должен устранить несоответствия (исправить синтаксические ошибки). После этого необходимо проверить программу на наличие логических ошибок. Для этого нужно подобрать систему тестов (набор исходных данных с заранее известным результатом) и сравнить выдаваемые программой результаты с контрольными тестовыми данными. Подробнее об этом в следующем разделе.

Шестой этап – тестирование и отладка программы. На этом этапе происходит исполнение программы на ЭВМ, поиск и исправление логических ошибок, то есть ошибок приводящих к неправильной работе программы. При этом программисту приходится выполнять анализ работы программы. Для сложных программ этот этап, как правило, требует гораздо больше времени и сил, чем написание первоначального текста программы.

Отладка программы – сложный и нестандартный процесс. Исходный план отладки заключается в том, чтобы проверить программу на контрольных примерах. Под контрольными примерами подразумеваются различные комбинации исходных данных. Контрольные примеры выбираются так, чтобы при работе были задействованы все ветви алгоритма. Дело в том, что некоторые ошибки в программе могут проявиться только при попытке выполнения конкретных действий. Детализация плана зависит от того, как поведёт себя программа на этих примерах: на одном она может зациклиться, на другом дать явно неверный ответ и т.д. Сложные программы отлаживают отдельными фрагментами, или специальными инструментариями, которые предназначены для выполнения отладки программы, обычно обозначают их отдельным пунктом или подпунктом в меню «Debug» рассмотрение этого пункта далеко выходит за пределы одной темы.

Седьмой этап – исполнение отлаженной программы и анализ результатов. На этом этапе программист запускает программу и задаёт исходные данные, требуемые по условию задачи. Полученные результаты анализирует постановщик задачи, на основании анализа принимаются решения, вырабатываются рекомендации, делаются выводы.

Возможно, что по итогам анализа результатов потребуется возврат ко второму этапу для повторного выполнения всех этапов с учётом приобретённого опыта. Таким образом, в процессе создания программы некоторые этапы повторяют до тех пор, пока не будет получен алгоритм и программа, удовлетворяющие указанным выше свойствам.

2.1 Арифметические и алгебраические функции

В языке С++ имеется большое количество математических функций, приведем часть наиболее часто используемые. Для их использования в тексте программы необходимо подключить заголовочный файл например:

#include math.h

Талица 2.5.

Некоторые наиболее часто используемые математические функции С++

Функция

Описание

Синтаксис

Файл

abs

Абсолютное значение целого х

intabs(intx)

stdlib.h

cabs

Модуль комплексного числа z

double cabs(struct complex z)

struct complex {double x, y;};

math.h

cabsl

Модуль комплексного числа z

long double cabsl(struct _complexl z)

struct complex {long double x, y;};

math.h

Ceil

Округление вверх , наименьшее целое не меньше х

doubleceil(double x);

math.h

Ceil

Округление вверх , наименьшее целое не меньше Х

int Ceil(Extended X);

Math.hpp

Ceil

Округление вверх , наименьшее целое не меньше х

long double ceill(long double x);

math.h

Div

Целочисленное деление numer/denom

typedefstruct {

intquot;// ÷частное

intrem;// - остаток

} div_t;

div_t div(intnumer, intdenom)

math.h

Exp

Экспонента

double exp(double x);

math.h

expl

Экспонента

long double expl(long double x);

math.h

fabs

Абсолютное значение

double fabs(double x);

math.h

fabsl

Абсолютное значение

long double fabsl(long double x);

math.h

floor

Округление вверх, наименьшее целое не меньше х

doublefloor(double x);

math.h

Floor

Округление вверх , наименьшее целое не меньше Х

intFloor(Extended X);

Math.hpp

floorl

Округление вверх , наименьшее целое не меньше х

long double floorl(long double x);

math.h

fmod

Остаток от деления x/y

double fmod(double x, double y)

math.h

fmodl

Остаток от деления x/y

long double fmodl(long double x, long double y)

math.h

frexp

Разделяет х на мантиссу (возвращает) и степень exponent

double frexp(double x, int *exponent);

math.h

Frexp

Разделяет X на мантиссу Mantissa(возвращает) и степень Exponent

void Frexp(Extended X, Extended &Mantissa, int&Exponent);

Math.hpp

frexp

Разделяет х на мантиссу (возвращает) и степень exponent

long double frexpl(long double x, int *exponent)

math.h

IntPower

Возводит Baseв целую степень Exponent

Extended IntPower(Extended Base, int Exponent);

Math.hpp

Labs

Абсолютное значение

long labs(long int x);

stdlib.h

ldiv_t

Целочисленноеделениеnumer/denom; quot – результат
rem–остаток

typedefstruct {

long intquot;// целое

long int rem;// остаток

} ldiv_t

ldiv_tldiv(long intnumer, long intdenom);


math.hstdlib.h

Log

Натуральный логарифм

double log(double x);

math.h

LnXP1

Натуральный логарифм (Х+1)

Extended LnXP1(Extended X);

Math.hpp

Log2

Логарифм по основанию 2

Extended Log2(Extended X)

Math.hpp

log10

Десятичный логарифм

double log10(double x)

math.h

Log10

Десятичный логарифм

Extended Log10(Extended X)

Math.hpp

log10l

Десятичный логарифм

long double log10l(long double x)

math.h

Logl

Натуральный логарифм

long double logl(long double x)

math.h

LogN

Логарифм Х по основанию Base

Extended LogN(Extended Base, Extended X)

Math.hpp

_lrotl

Циклический сдвиг влево valнаcountбитов

unsigned long _lrotl(unsigned long val, int count)

stdlib.h

_rotr

Циклический сдвиг вправо valнаcountбитов

unsigned long _lrotr(unsigned long val, int count)

stdlib.h

Max

Макрос возвращает максимальное значение из a иbлюбых типов

max(a, b);

stdlib.h

Min

Макрос возвращает минимальное значение из a иbлюбых типов

min(a, b)

stdlib.h

modf

Разделяет х на целую часть ipartи возвращает дробную часть.

double modf(double x, double *ipart)

math.h

modfl

Разделяет х на целую часть ipartи возвращает дробную часть.

long double modfl(long double x, long double *ipart)

math.h

Poly

Полином от х степени degreeкоэффициентами coeffs

double poly(double x, int n, double c[ ]);

math.h

Poly

Полиномот X степени Coefficients_Sizeкоэффициентами Coefficients

Extended Poly(Extended X, const double * Coefficients, constintCoefficients_Size);

Math.hpp

polyl

Полином от от х степени degreeкоэффициентами coeffs

long double polyl(long double x, int degree, long double coeffs[]);

math.h

Pow

xy


math.h

Power

Возводит Baseв степень Exponent

Extended Power(Extended Base, Extended Exponent);

Math.hpp

powl

xy

long double powl(long double x, long double y);

math.h

_lrotl

Циклический сдвиг влево valueнаcountбитов

unsigned short _rotl(unsigned short value, int count);

stdlib.h

_rotr

Циклический сдвиг вправо valueнаcountбитов

unsigned short _rotr(unsigned short value, int count);

stdlib.h

Sqrt

Корень квадратный

doublesqrt(double x);

math.h

Sqrtl

Корень квадратный

long double sqrtl(long double x);

math.h

acos

Функция арккосинуса. Значение аргумента должно находиться в диапазоне от -1 до +1.

double acos(double x);

math.h, cmath

Функция

Описание

Синтаксис

Файл

Asin

Функция арксинуса. Значение аргумента должно находиться в диапазоне от -1 до +1.

double asin(double x);

math.h, cmath

atan

Функцияарктангенса.

double atan(double x);

math.h, cmath

atan2

Функция арктангенса от значения y/x.

doubleatan2(doubley,
doublex);

math.h, cmath

Cos

Функциякосинуса. Аргумент задается в радианах.

double cos(double x);

math.h, cmath

frexp

Разбивает число с плавающей точкой value на нормализованную мантиссу и целую часть как степень числа 2. Целочисленная степень записывается в область памяти, на которую указывает exp, а мантисса используется как значение, которое возвращает функция.

double frexp(double value, int *exp);

math.h, cmath

hypot

Вычисляет гипотенузу z прямоугольного треугольника по значениям катетов x, y:

double hypot(double x, double y);

math.h, cmath

pow10

Возвращаетзначение 10p

double pow10(int p);

math.h, cmath

Sin

Функция синуса. Угол задается в радианах.

double sin(double x);

math.h

Sinh

Возвращает значение гиперболического синуса для x.

doublesinh(doublex);

math.h

Tan

Функция тангенса. Угол задается в радианах.

double tan(double x);

math.h

3 Структура программ C++ Builder


Задание 1. Нарисовать блок-схему и составить программу вычисления x и y математического выражения

для вводимых значений a, b.

Панель диалога программы организовать в виде, представленном на рис. 2.1.

3.1 Построение блок – схемы задания

Рис. 2.2. Блок ‑ схема задания

Составим блок – схему для нашего задания

Основные элементы для построения блок-схемы, а в государственных стандартах под названием СХЕМЫ АЛГОРИТМОВ, ПРОГРАММ ДАННЫХ И СИСТЕМ ГОСТ 19.701-90 (ИСО 5807-85).



3.2 Настройка формы

Сначала начнем создавать эскизный проект (визуальный интерфейс пользователя).

В предыдущем примере «Здравствуй мир!», мы задали размеры с помощью мыши, «захватывая» одну из кромок формы или выделенную строку заголовка, и отрегулировали нужные размеры формы и ее положение на экране. Однако чаще всего при выполнении программ иногда нужно бывают определение параметров свойств, либо вручную, либо внутри программы. В нашем примере попытаемся задать свойства окна через ObjectInspector вручную.

Рис. 2.3. Свойства формы.


Некоторые особо значимые свойства мы описали при изучении темы 1. Расширим тот перечень свойств.



Таблица 2.6.

Рекомендуемые параметры для формы в задании

Свойства

Параметры и значения

Caption

Программирование линейных алгоритмов

Width

551

Height

317

Left

196

Top

108

BorderIcon.biMinimize

False

BorderIcon.biMaximize

False


Некоторые свойства формы NameИмя формы. Используется для обращения к компонентам формы, для управления формой и т.д.

CaptionТекст заголовка.

Width – Ширина формы.

Height – Высота формы

Top– Расстояниеот верхней границы формы до верхней границы экрана.

Left – Расстояние от левой границы формы до левой границы экрана.

Color – Цвет фона. По умолчанию принимает значение операционной системы, или можно задать нужный цвет.

Font– Шрифт. Шрифт может наследовать компоненты расположенные на форме, имеется возможность его запрещения.

Введем теперь некоторые параметры, приведенные в таблице 2.6.

Рис. 2.4. Вид формы с параметрами из таблицы 2.7. после старта программы



3.3 Настройка компонент

Аналогично можно задавать значения и изменять параметры для свойства для любых компонентов используемых в проекте. Далее мы будем добавлять компоненты Button1, Button2, Label1, Label2, Edit1, Edit1 иMemo1. И расстановим их как указанно в задании.

С компонентой Labelмы знакомы при изучении темы 1

Компонента Edit (Standard) ввод/вывод текстовой информации

Если необходимо ввести из формы в программу или вывести на форму информацию, которая вмещается в одну строку, используют окно однострочного редактора текста, представляемого компонентой Edit, для чего в меню компонент выбирается пиктограмма Edit и щелчком кнопкой мыши устанавливается в нужном месте формы. Размер окошка и его положение на форме можнорегулировать и в ручном режиме, используя манипулятор мышь.

При этом в заголовочный файл Unit1.h автоматически вставляется переменная Edit* (1,2,…) класса TEdit. В поле Text (Edit1–Text) такой переменной будет содержаться строка символов (тип AnsiString) и отображаться в соответствующем окне Edit*.

Щелкнув мышью на Edit1 в инспекторе объектов на свойстве textудалите запись Edit1, и аналогичноEdit2

Для работы с компонентой Edit в C++ Builder существуют стандартные функции, которые позволяют тип AnsiString преобразовать в числовые типы.

Приведем их в таблице

Таблица 2.7.

Некоторые функции компоненты Edit

Наименование

Тип

Действия

StrToFloat(St)

float

преобразует строку St в вещественное число

StrToInt(St)

int

преобразует строку St в целое число

FloatToStr(W)

AnsiString

преобразует вещественное число W в строку символов

FormatFloat(формат, W)

AnsiString

преобразует вещественное число W в строку

IntToStr(W)

AnsiString

преобразует целое число W в строку символов

FloatToStrF(W, формат, n1, n2)

AnsiString

вещественное число W в строку символов под управлением формата:

ffFixed

фиксированное положение разделителя целой и дробной частей, n1 – общее количество цифр числа, n2 – количество цифр в дробной части, причем число округляется с учетом первой отбрасываемой цифры

fFfExponent

n1 задает общее количество цифр мантиссы, n2 – количество цифр порядка XX (число округляется)

ffGeneral

– универсальный формат, использующий наиболее удобную для чтения форму представления вещественного числа; соответствует формату ffFixed, если количество цифр в целой части n1, а само число больше 0,00001, в противном случае соответствует формату ffExponent.

Например, если значения вводимых из Edit1 и Edit2 переменны x и у имеют целый и действительный типы, соответственно, то следует записать:

х = StrToInt(Edit1–Text);

y = StrToFloat(Edit2–Text);

Внимание! При записи числовых значений в окошках Edit* не должно быть пробелов, а разделителем целой и дробной частей обычно является «запятая»!

Как и для работы с компонентой Label, смотрите тему 1, и для компоненты Editможно в инспекторе объектов с помощью свойства Font устанавливать стиль, отражаемого в строке Edit* текста.

Компонента Memo(Standard) многострочный ввод/вывод текстовой информации

Для вывода результатов работы программы обычно используется окно многострочного редактора текста, представленое компонентой Memo, для чего выбирается пиктограмма Memo, помещается на форму, регулируется ее размер и местоположение. После установки с помощью инспектора свойства ScrollBarsSSBoth в окне появятся вертикальная и горизонтальная полосы прокрутки.

При установки данной компонеты в Unit1.h прописывается переменная Memo1 типа ТMemo. Информация, выводимая построчно в окне Memo1, находится в массиве строк Memo1–Lines, каждая из которых имеет тип String.

Для очистки окна используется метод Memo1–Clear( ).

Для добавления новой строки используется метод Memo1–LinesAdd( ).

Если нужно вывести числовое значение, то его надо преобразовать к типу AnsiString (см. прил. 4) и добавить в массив Memo1–Lines, например, вывести

int u = 100;

doublew = –256.38666;

в результате записей

Memo1–Lines–Add (“ Значениеx = ”+IntToStr(u));

Memo1–Lines–Add (“ Значениеy = ”+FloatToStrF(w,ffFixed,8,2));

появятся строки

Значение u = 100

Значение w = –256.39

При этом под все число отводится восемь позиций, из которых две позиции занимает его дробная часть.

Если выводимая информация превышает размер окна Memo1, то для просмотра используются полосы прокрутки.

Компонента Button (Standard) функция обработчик нажатия кнопки

Выбрав в меню Standard пиктограмму Button, помещаем на форму компоненту Button1 (2,3,…). С помощью инспектора объектов изменяем заголовок (Caption) на текст, «Вычислить» на 1 кнопке и «Выход» на второй, и регулируем положение и размер кнопки. Двойным щелчком кнопкой мыши по компоненте Button 1 в текст программы вставляем заготовку ее функции-обработчикаButton1Click (…) { }. Между фигурными скобками набираем соответствующий код.Аналогично и Button2Click (…) { }


3.4 Обработка событий в среде C++ Builder FormCreate

При запуске программы возникает событие «создание формы» (OnCreate). Оформим функцию-обработчик этого события, которая обычно используется для инициализации начальных установок, таких, как, например, занести начальные значения исходных данных в соответствующие окна Edit*, очистить окно Memo.

Для этого делаем двойной щелчок кнопкой мыши на любом свободном месте формы, после чего в листинг программы (Unit1.cpp) автоматически вносится заготовка для создания функции:

ее заголовок … FormCreate (…) и фигурные скобки.

Между символами { }, которые обозначают начало и конец функции, соответственно, вставляем нужный текст программы.


3.5 Введения кода программы



Рис. 2.5. Интерфейс для решения задач по линейным алгоритмам.


Как, видим из окна ObjectTreeView Рис.1., наш интерфейс состоит из следующих компонентов: Button1, Button2, Label1, Label2, Edit1, Edit1 иMemo1. Соответственно это информация отображается в файле заголовка.

//---------------------------------------------------------------------------

#ifndef Unit1H

#define Unit1H

//---------------------------------------------------------------------------

#include

#include

#include

#include

//---------------------------------------------------------------------------

class TForm1 : public TForm

{

__published: // IDE-managed Components

TLabel *Label1; //метка для вывода a=

TEdit *Edit1; /откуда берем /значение переменной a

TLabel *Label2; //метка для вывода b=

TEdit *Edit2; //откуда берем значение переменной b

TMemo *Memo1; //

TButton *Button1; //

TButton *Button2; //

private: // Userdeclarations

/* Здесь можно объявить функции, переменные, к которымполучаем доступ только в данном модуле, поэтому их называют закрытыми переменнымии функциями*/

public: // Userdeclarations

/* Здесь можно объявить функции, переменные, к которым получаем доступ, как в данном модуле, так и в других модулях, если осуществляем ссылку на объект,поэтому их называют открытыми переменнымии функциями*/

__fastcallTForm1(TComponent* Owner);

void __fastcall TForm1::FormCreate(TObject *Sender);

void __fastcall TForm1::Button1Click(TObject *Sender);

void __fastcall TForm1::Button2Click(TObject *Sender):

};

//---------------------------------------------------------------------------

externPACKAGETForm1 *Form1;

/*Объявления функций, типов, переменных, которые не включаются в данный класс*/

//---------------------------------------------------------------------------

#endif

Файл проекта имеет следующую структуру:

// Директивы препроцессора

#includevcl.h

#pragma hdrstop

#include "Linpr.h"

//---------------------------------------------------------------------------

#pragma package(smart_init)

#pragmaresource "*.dfm" // Подключениефайловформифайловресурсов

TForm1 *Form1;

//---------------------------------------------------------------------------

// Вызовконструктораформы

__fastcall TForm1::TForm1(TComponent* Owner)

: TForm(Owner)

{

}

void __fastcall TForm1::FormCreate(TObject *Sender)

{

Memo1-Clear();

Memo1-Lines-Add("Лабораторнаяработа № 2");

}

//---------------------------------------------------------------------------

void __fastcall TForm1::Button1Click(TObject *Sender)

{

double x, y, a, b;

x = StrToFloat(Edit1-Text);

y = StrToFloat(Edit2-Text);

a = sqrt(x+y)/cos(y)*(1+exp(x+y));

b = x*pow(a,2)+y*a;

Memo1-Lines-Add(" При X = "+Edit1-Text);

Memo1-Lines-Add(" при Y = "+Edit2-Text);

Memo1-Lines-Add(" Результат A = "+FloatToStr(a));

Memo1-Lines-Add(" Результат B = "+FloatToStr(b));

}

//---------------------------------------------------------------------------

void __fastcall TForm1::Button2Click(TObject *Sender)

{

Form1-Close();

}


Контрольное задание

Для вводимых с клавиатуры действительных чисел a, и b используя математические выражения для своего варианта в таблице вычислить x и y.

Результаты записать в компонент Memo1.

Примечание: для ввода a, b подбирать учитывая конфликтные ситуация в математических функциях, т.е. исследовав область определения и область допустимых значений функций.


Преподаватель _____________ В.А. Волков



3.6. Варианты заданий

Задания

Задания

1

= ; .

2

; .

3

; .

4

; .

5

; .

6

; .

7

; .

8

; .

9

; .

10

; .

13

; .

14

;

15

16

17

;

18

19

; .

20

; .

21

;

22

;

23

24

.

25

;

26

; .

27

; .

28

; .

29

; .

30

.


ЛИТЕРАТУРА

Основные источники:
  1. А.А.Ремнев, С.В.Федотова Курс Delphi для начинающих. Полигон нестандартных задач. – М.: САЛОН-ПРЕСС, 2007. – 360 c.: ил..

  2. Windows via C/C++. Программирование на языке Visual C++. Назарр К., Рихтер Дж

  3. Пышкин Е.В. Основные концепции и механизмы объектно-ориентированного программирования. – СПб.: БХВ-Петербург, 2005. – 640 с.: ил.

  4. Митчелл К. Керман. Программирование и отладка в Delphi. Учебный курс.: Пер. с англ. - М.: Издательский дом «Вильямс», 2002, 672 с.: ил.

  5. Гофман В.Э., Хомоненко А.Д. Работа с базами данных в Delphi. – 2-е изд. – СПб.: БХВ-Петербург, 2002. – 624 с.: ил.


Дополнительные источники:

  1. Волков В.А. Программирование на Delphi. Практическое руководство, Донецк: ДДЕТТ, 2008.

  2. Волков В.А. Методические указания к выполнению лабораторных работ, Донецк: ДОНПЭК, 2016.


Электронные ресурсы:

  1. Програмування – http://vuzer.info/load/programirovanie/

  2. Windows via C/C++. Программирование на языке Visual C++. Назарр К., Рихтер Дж. - http://vuzer.info/load/programirovanie/









Скачать

Рекомендуем курсы ПК и ППК для учителей

Вебинар для учителей

Свидетельство об участии БЕСПЛАТНО!