Главная » Учебные материалы » Информатика » Лабораторные работы » ВолГУ » Несколько классов/семестров » Номер 8 » Вариант 5 » Модуль - Для квадратного уравнения напишите модуль, реализующий нахождения его корней.
Для студентов ВолГУ по предмету ИнформатикаМодуль - Для квадратного уравнения напишите модуль, реализующий нахождения его корней.Модуль - Для квадратного уравнения напишите модуль, реализующий нахождения его корней.
2024-02-08СтудИзба

Модуль - Для квадратного уравнения напишите модуль, реализующий нахождения его корней.

Описание

Лабораторная работа №8. Вариант 5. ЛР Модуль
Цель работы: Научится создавать и реализовывать модули в программах.
/ задача из РК программа в Pascal Lazarus.
В архиве также файл с объяснениями работы программы. Тэги: Программа на Lazarus, PascalObject, Pascal, Delphi, Turbo Delphi, Pascal ABC / Анимация, ЛР, РК, ДЗ, 2023

Условия для программы, под которые она выполнена:
  1. Для квадратного уравнения напишите модуль, реализующий нахождения его корней.


Программа в сделанном виде:








Показать/скрыть дополнительное описание

Лабораторная работа №8. Вариант 5. ЛР Модуль Цель работы: Научится создавать и реализовывать модули в программах. / задача из РК программа в Pascal Lazarus. В архиве также файл с объяснениями работы программы. Тэги: Программа на Lazarus, PascalObject, Pascal, Delphi, Turbo Delphi, Pascal ABC / Анимация, ЛР, РК, ДЗ, 2023 Условия для программы, под которые она выполнена: Для квадратного уравнения напишите модуль, реализующий нахождения его корней. Программа в сделанном виде:          Лабораторная работа № 8 Модуль. Цель работы: Научится создавать и реализовывать модули в программах. Теоритическая часть: Модуль это такая программная единица, которая может и, чаще всего, компилируется отдельно и независимо от главной программы.

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

Текст модуля на языке программирования называется исходным модулем. После компиляции создается так называемый объектный модуль. Объектный модуль это такой модуль, который уже переведен на внутренний машинный язык. На этапе компоновки (сборки) необходимые модули включаются в программу (компонуются) для обеспечения правильных вызовов функций и процедур. Например, главная программа вызывает некую функцию из модуля А, в модуле В происходит вызов процедуры из модуля С и т.д. Такой процесс называется разрешением связей. В итоге собирается исполняемая программа. Структура модуля Структура модуля имеет вид: unit <Имя модуля>; interface// раздел интерфейса <раздел открытых описаний> implementation // раздел реализации <раздел закрытых описаний> initialization// раздел инициализации finalization // раздел завершения end.

Модуль начинается со служебного слова unit, за которым следует имя модуля. В случае если данный модуль использует другие модули, после слова interface необходимо поместить служебное слово uses и список используемых модулей. Интерфейсный раздел модуля начинается со служебного слова interface. В этом разделе можно определять константы, типы данных, переменные, процедуры и функции, которые доступны для всех программ и модулей, использующих данный модуль. Глобальные переменные, помещенные в интерфейсной секции, могут быть использованы в основной программе. Раздел реализации модуля начинается служебным словом implementation. В секции реализации могут находиться свои описания, невидимые для программ и модулей, использующих данный модуль.

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

При использовании нескольких модулей, их секции инициализации вызываются в порядке, указанном в операторе uses. Секция инициализации является необязательной и может вообще отсутствовать. Раздел finalization также является необязательным. В нем выполняются различные действия перед закрытием программы, например закрытие файлов баз данных, освобождение динамически распределенной памяти и т.д. С целью уменьшения размера основной программы, улучшения читабельности готовые подпрограммы рекомендуется оформлять в виде модуля. Имя библиотечного модуля должно совпадать с именем файла, под которым хранится текст модуля на диске. Исходный текст библиотечного модуля имеет расширение *.pas (<имя модуля>.pas).

Пример 1: Создать модуль, который реализует перевод градусный меры угла в радианы. Для того чтобы создать модуль, необходимо в меню Файл выбрать пункт Создать модуль. В окне редактора исходного кода появится заготовка кода для модуля, где и необходимо ввести текст модуля. Листинг модуля: unit my_modul; {$mode objfpc}{$H+} interface function gradus_radian(gradus , minuta , secunda : double):real; implementation function gradus_radian(gradus , minuta , secunda : double):real; begin gradus_radian:=gradus*pi/180+minuta*pi/180/60+secunda*pi /180/60/60; end; end. Сохраните модуль обязательно с тем же именем, что указан в заголовке модуля, т.е. my_module.pas в какой-нибудь папке.

Откомпилируйте модуль нажав клавиши Ctrl+F9 или меню Запуск - > Собрать. Для каждого модуля создаются два файла: двоичный файл описания модуля с расширением (.ppu) и объектный с расширением (.o). Таким образом, в вашей папке создадутся два файла my_module.ppu и my_module.o Создадим GUI приложение для реализации модуля. Листинг программы: unit Unit1; {$mode objfpc}{$H+} interface uses Classes,SysUtils,FileUtil,Forms,Controls, Graphics, Dialogs, StdCtrls, Buttons, my_modul; type { TForm1 } TForm1 = class(TForm) BitBtn1: TBitBtn; BitBtn2: TBitBtn; Edit1: TEdit; Edit2: TEdit; Edit3: TEdit; Edit4: TEdit; Label1: TLabel; Label2: TLabel; Label3: TLabel; Label4: TLabel; var procedure BitBtn1Click(Sender: TObject); private { private declarations } public { public declarations } end; Form1: TForm1; implementation {$R *.lfm} { TForm1 } procedure TForm1.BitBtn1Click(Sender: TObject); var grad, min, sec: double; begin grad:=strtofloat(Edit1.text); min:=strtofloat(Edit2.Text); sec:=strtofloat(Edit3.Text); Edit4.text:=floattostr(gradus_radian(grad,min,sec)); end; end.

Рис.1 Задания для самостоятельной работы: 1.Вычислите выражение z(x)=(sign(x)+sign(y)) sign(x+y). При решении задачи учесть свойства функции sign: −1, 𝑥 < 0 𝑠𝑖𝑔𝑛(𝑥) = � 0, 𝑥 = 0 1, 𝑥 > 0 2.Даны вещественные числа s, t. Получите: H(s,t)+(max(H2(s-t,s*t),H4(s-t,s+t))+H(1,1), где 𝐻(𝑎, 𝑏) =𝑎 1+𝑏 𝑏 1+𝑎2 − (𝑎 − 𝑏)3 3.Создайте модуль, вычисляющий sh(x), и для заданного значения переменной x вычислите следующее выражение: sh(x)+tg(x+1)-tg2(2+sh(x-1)) 4.Напишите модуль, реализующий сложение двух дробей, результатом которой является несократимая правильная дробь. Используйте функцию для нахождения наибольшего общего делителя. 5.Для квадратного уравнения напишите модуль, реализующий нахождения его корней.

6.Напишите программу, используя функции в виде отдельного модуля: Вводитсяпоследовательностьцелыхчисел,0–конец последовательности.Определить,содержитлипоследовательность хотя бы одно число, сумма цифр в котором равна их количеству. Создать модуль, который возвращает сумму и количество цифр в числе. 7.Вывести на экран значения функции f(x)=x-2ex и ее первой производной f\'(x), в диапазоне от -5 до 5, с шагом 0.5. Для вычисления значений f(x) и f\'(x) создать функции реализованной в виде модуля. 8.Вводится последовательность из N целых элементов. Для всех положительных элементов последовательности вычислить значение факториала и вывести его на экран.

Вычисление факториала оформить в виде модуля. 9.Вывестинаэкранзначениефункции𝑓(𝑥) = �(5𝑥3)sin(𝑥2)и 𝑥 𝑔(𝑥) = � 𝑒4, если 𝑥 > 0; 5√𝑥2, если 𝑥 < 0. в диапазоне от a до b, с шагом h. Для вычисления значений f(x) и g(x) создать функции в виде модуля. 10.Даны натуральные числа n, a1, … , an. Определить, используя ранее созданные соответствующие модули, количество членов ak последовательности a1, … , an: а) являющихся нечетными числами; б) кратных 3 и не кратных 5; 11.Даны натуральные числа n, a1, … , an. Определить, используя ранее созданные соответствующие модули, количество членов ak последовательности a1, … , an: а) являющихся квадратами четных чисел; б) удовлетворяющих условию a < ak−1+ak+1 2 12.Даны натуральные числа n, a1, … , an.

Определить, используя ранее созданные соответствующие модули, количество членов ak последовательности a1, … , an: а) удовлетворяющих условию 2k < ak < k!; б) имеющих четные порядковые номера и являющихся нечетными числами. 13.Даны натуральные числа n, q1, … , qn. Найти, используя ранее созданные соответствующие модули, те члены qi последовательности q1, … , qn, которые а) являются удвоенными нечетными числами; б) при делении на 7 дают остаток 1, 2 или 5; 14.Даны целые числа a1, … , a50. Получить, используя ранее созданные соответствующие модули, сумму тех чисел данной последовательности, которые а) кратны 5; б) удовлетворяют условию |ai| < i2 15.Даны натуральное число n, целые числа a1, … , an.

Найти, используя ранее созданные соответствующие модули, количество и сумму тех членов данной последовательности, которые делятся на 5 и не делятся на 7. 16.Даны натуральные числа n, p, целые числа a1, … , an. Получить, используя ранее созданный соответствующий модуль, произведение членов последовательности a1, … , an, кратных p. 17.Даны целые числа p, q, a1, … , a67 ( p > q ≥ 0 ). В последовательности a1, … , a67 заменить, используя ранее созданный соответствующий модуль, нулями члены, модуль которых при делении на p дает в остатке q. 18.Даны натуральное число n, действительные числа a1, … , an. Вычислит, используя ранее созданный модуль, обратную величину произведения тех членов ai последовательности a1, … , an, для которых выполнено i+1 < ai < i!.

Контрольные вопросы 1.Что такое модуль....

Файлы условия, демо

Лабораторная работа No 8 Модуль. вар5.pdf

Характеристики лабораторной работы

Учебное заведение
Номер задания
Вариант
Просмотров
2
Покупок
0
Размер
4,98 Mb

Список файлов

    Картинка-подпись
    Ваше экономие времени является моей ГЛАВНОЙ задачей! Если я Вам хоть чуть-чуть помог, пожалуйста, сделайте и мне приятное, оставьте 5 ЗВЁЗД и позитивный комментарий. Большое спасибо!

    Комментарии

    Поделитесь ссылкой:
    Цена: 249 руб.
    Расширенная гарантия +3 недели гарантии, +10% цены
    Рейтинг-
    0
    0
    0
    0
    0
    Поделитесь ссылкой:
    Сопутствующие материалы
    Свежие статьи
    Популярно сейчас
    Как Вы думаете, сколько людей до Вас делали точно такое же задание? 99% студентов выполняют точно такие же задания, как и их предшественники год назад. Найдите нужный учебный материал на СтудИзбе!
    Ответы на популярные вопросы
    Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
    Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
    Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
    Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
    Отзывы студентов
    Ставлю 10/10
    Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
    Лучшая платформа для успешной сдачи сессии
    Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
    Студизба ван лав ❤
    Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
    Отличный сайт
    Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
    Маленький отзыв о большом помощнике!
    Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
    Студ. Изба как крупнейший сборник работ для студентов
    Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
    Спасательный островок
    Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
    Всё и так отлично
    Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
    Отзыв о системе "Студизба"
    Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
    Отличный помощник
    Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
    Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
    Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
    Спасибо за шикарный сайт
    Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
    Популярные преподаватели
    Добавляйте материалы
    и зарабатывайте!
    Продажи идут автоматически
    5160
    Авторов
    на СтудИзбе
    439
    Средний доход
    с одного платного файла
    Обучение Подробнее