Skip to content
This repository was archived by the owner on Jan 16, 2024. It is now read-only.

par1ah/lab2

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

9 Commits
 
 
 
 

Repository files navigation

МИНИСТЕРСТВО НАУКИ И ВЫСШЕГО ОБРАЗОВАНИЯ РОССИЙСКОЙ ФЕДЕРАЦИИ

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

"КРЫМСКИЙ ФЕДЕРАЛЬНЫЙ УНИВЕРСИТЕТ им. В. И. ВЕРНАДСКОГО"

ФИЗИКО-ТЕХНИЧЕСКИЙ ИНСТИТУТ

Кафедра компьютерной инженерии и моделирования

Отчёт по лабораторной работе № 2
по дисциплине "Программирование"


​Cтудента 1 курса группы ПИ-б-о-192(1)
Гусько Елизавета Викторовна
направления подготовки 09.03.04 "Программная инженерия"

Научный руководитель
старший преподаватель кафедры
компьютерной инженерии и моделирования
(оценка) Чабанов В.В.



Симферополь, 2019


Лабораторная работа №2

Табулирование кусочно-заданной функции

Цель:

  1. Овладеть практическими навыками разработки и программирования вычислительного процесса циклической структуры;
  2. Сформировать навыков программирования алгоритмов разветвляющейся структуры;
  3. Изучить операторы ветвления. Особенности использования полной и сокращенной формы оператора if и тернарного оператора.

Постановка задачи

Напишите на языке С++ программу которая для функции f(x) на интервале x ∈ [Xнач; Xкон]:

  • Выводит в консоль значения функции f(x) с шагом dx;
  • Определяет максимальное и минимальное значение функции.

Значения параметров a, b, начала и конца интервала Xнач, Xкон и шага dx вводятся пользователем.

Для соответствующей функции выполните следующие действия:

  1. Протабулируйте функцию и запишите получившиеся реультаты в отчёт в виде таблицы. При этом a = 0.7, b = 1.2, начала и конца интервала Xнач = 0.5, Xкон = 1.5 и шага dx = 0.05;
  2. Определите минимальное и максимальное значение функции на указанном интервале.
  • постройте график функции;
  • добавьте на график точки, которые у вас получились в процессе табуляции;
  • добавьте на график точки минимума и максимума с метками значений;

Дана функция

При ручном вводе данных код данной функции будет выглядеть так:

    #include <iostream>
    #include <math.h>
    #include <stdio.h>
    using namespace std;
    int main() {
	double x1, x2, dx, a, b, z;
	cout << "enter the data: xmin = ";
	    cin >> x1;
    cout << "\nxmax = ";
        cin >> x2;
    cout << "\ndx = ";
        cin >> dx;
	cout << "\na = ";
	    cin >> a;
	cout << "\nb = ";
	    cin >> b;
    for (double x1 = x1; x1 <= x2; x1+=dx){

	    if (x1 < a && abs(x1-a) < 1e-9) { z = exp(x1) / (3 + sin(x1)); }

	    else if (a < x1 && x1 < b) { z = log(x1) + pow(x1, 2); }

	    else if (x1 >= b) { z = 1 + sin(-x1); }

    cout << "\nx = " << x1;
	cout << "\nz = " << z; } }


Так как нам задали параметры в тз наш код будет иметь два вида:

    #include <iostream>
    #include <math.h>
    #include <stdio.h>
    using namespace std;
    int main()
    {
	    double x, a, b, z;
	    a = 0.7;
	    b = 1.2;
	    for (double x = 0.5; x <= 1.5; x+=0.05)
	    {
	            x = round(x * 100) / 100; 
		    if (x <= a )
		    {
			    z = exp(x) / (3 + sin(x)); 
		    }
		    else if (x > a && x < b) 
		    { 
			    z = log(x) + pow(x, 2);
		    }
		    else if (x >= b)
		    {
			    z = 1 + sin(-x);
		    }
		    cout << "\nx = " << x;
		    cout << "\nz = " << z;
	    }
    }
    int main()
    {
	    double x, a, b, z;
	    a = 0.7;
	    b = 1.2;
	    double eps = 1e-9;
	    for (double x = 0.5; x <= 1.5 + eps; x+=0.05)
	    {
		    if (x <= a || abs(a-x) < eps)
		    {
			    z = exp(x) / (3 + sin(x)); 
		    }
		    else if (x > a && x < b) 
		    { 
			    z = log(x) + pow(x, 2);
		    }
		    else if (x >= b)
		    {
			    z = 1 + sin(-x);
		    }
		    cout << "\nx = " << x;
		    cout << "\nz = " << z;
	    }
    }
x 0.5 0.55 0.6 0.65 0.7 0.75 0.8 0.85 0.9 0.95 1 1.05 1.1 1.15 1.2 1.25 1.3 1.35 1.4 1.45 1.5
z 0,473849 0,492026 0,511165 0,531329 0,552588 0,274818 0,416856 0,559981 0,704639 0,851207 1 1,15129 1,30531 1,46226 0,0679609 0,0510154 0,0364418 0,0242766 0,0145503 0,00728701 0,00250501

График к данному коду выглядит примерным образом:

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

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published