Лекции.Орг


Поиск:




Категории:

Астрономия
Биология
География
Другие языки
Интернет
Информатика
История
Культура
Литература
Логика
Математика
Медицина
Механика
Охрана труда
Педагогика
Политика
Право
Психология
Религия
Риторика
Социология
Спорт
Строительство
Технология
Транспорт
Физика
Философия
Финансы
Химия
Экология
Экономика
Электроника

 

 

 

 


Цикл do while, вывод в стиле С




 

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

y(х) =

если х изменяется от xn = 2.0 до xk = 5.0 с шагом h=0.5:

 

#include <stdio.h>    

#include <conio.h>

#include <math.h>

 

int main()

{   double xn = 2.0, xk = 5.0, x, y, h = 0.5;

const double X _ end = xk + h/2; //чтобы не делать проверку в цикле
                                 // на точное равенство с xk    

//////////////////////////////////////////////////////////////////////

printf("\ndo -while:\n");

printf ("%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c\n",

218,196,196,196,196,194,196,196,196,196,196,196,196,196,196,191);

printf ("%c x %c y %c\n",179,179,179);

x = xn;

Do

{

if (x <= 3.5) y=cos(x);

else y=sin(x);

  printf("%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c\n",

195,196,196,196,196,197,196,196,196,196,196,196,196,196,196,180);

  printf("%c%4.2lf%c%9.5lf%c\n", 179, x, 179, y, 179);

x += h;

} while (x < X_end);

printf("%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c\n",

192,196,196,196,196,193,196,196,196,196,196,196,196,196,196,217);

_getch();

return 0;

}

----------------------------------------------------------------------------------------- 

Цикл for,  вывод в стиле С

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

y(х) =

если х изменяется от xn = 2.0 до xk = 5.0 с шагом h=0.5.

!!! Обратить внимание на 2 способа организации цикла в программе.

 

#include <stdio.h>    

#include <conio.h>

#include <math.h>

 

int main()

{

double xn = 2.0, xk = 5.0, x, y, h = 0.5;

const double X_end = xn+h/2;

//////////////////////////////////////////////////////////////////////

printf("\nfor_1:\n");

printf ("%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c\n",

218,196,196,196,196,194,196,196,196,196,196,196,196,196,196,191);

printf ("%c x %c y %c\n",179, 179, 179);

for (x = xn; x < X_end; x += h)

{

if (x<=3.5)   

           y=cos(x);

else y=sin(x);

printf("%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c\n",

195,196,196,196,196,197,196,196,196,196,196,196,196,196,196,180);

printf("%c%4.2lf%c%9.5lf%c\n",179, x, 179, y, 179);

  }

printf("%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c\n",

192,196,196,196,196,193,196,196,196,196,196,196,196,196,196,217);

//////////////////////////////////////////////////////////////////////

printf("\nfor_2:\n");

const int k = int((xk-xn)/h)+1; //или floor ((xk-xn)/h)+1;

                             // k – счетчик количества выполнений цикла     

x=xn; 

printf ("%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c\n",

218,196,196,196,196,194,196,196,196,196,196,196,196,196,196,191);

printf ("%c x %c y %c\n",179, 179, 179);

for (int i = 1; i <= k; x += h, i++)

{

  if (x <= 3.5)    

           y = cos(x);

else y = sin(x);

printf("%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c\n",

195,196,196,196,196,197,196,196,196,196,196,196,196,196,196,180);

printf("%c%4.2lf%c%9.5lf%c\n",179, x, 179, y, 179);

}

printf("%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c\n",

192,196,196,196,196,193,196,196,196,196,196,196,196,196,196,217);

_getch();

return 0;

}

Результаты работы программы:

for_1:

 

┌────┬─────────┐

│ x │ y │

├────┼─────────┤

│2.00│ -0.41615│

├────┼─────────┤

│2.50│ -0.80114│

├────┼─────────┤

│3.00│ -0.98999│

├────┼─────────┤

│3.50│ -0.93646│

├────┼─────────┤

│4.00│ -0.75680│

├────┼─────────┤

│4.50│ -0.97753│

├────┼─────────┤

│5.00│ -0.95892│

└────┴─────────┘

for_2:

┌────┬─────────┐

│ x │ y │

├────┼─────────┤

│2.00│ -0.41615│

├────┼─────────┤

│2.50│ -0.80114│

├────┼─────────┤

│3.00│ -0.98999│

├────┼─────────┤

│3.50│ -0.93646│

├────┼─────────┤

│4.00│ -0.75680│

├────┼─────────┤

│4.50│ -0.97753│

├────┼─────────┤

│5.00│ -0.95892│

└────┴─────────┘

 

----------------------------------------------------------------------------------------- 

Вычисление значения  многочлена (задание 3.3)

Вычисление значения многочлена в точке

Вычисление значения многочлена в точке – это пример цикла с параметром (известна степень многочлена). Рассматриваемый алгоритм вычисления в точке значения многочлена предполагает суммирование слагаемых справа налево. Возведение в степень коэффициента и переменной в каждом отдельном слагаемом реализуется (без использования функции pow()) умножением значения предыдущего слагаемого на некоторый найденный множитель.

     
 

 


В примере, очевидно, что переменная домножается на себя, а коэффициент – на 2. Степень многочлена выступает как предельное значение параметра цикла.

 

#include <math.h>

#include <iostream>

Using namespace std;

 

const int n = 5; //степень многочлена

int main ()

{

double x;          // точка, в которой надо вычислить значение многочлена

cout << "x= ";

cin >> x;      

double xpow = 1.0; //переменная для вычисления значения х в текущей степени, сначала х0=1  

int koef = 1;       //переменная для вычисления текущего значения коэффициента, сначала 20=1

double result = 1.0; //переменная для значения многочлена (суммы слагаемых), сначала =1

for (int i = 1; i <= n; i++)

 { xpow *= x;

    koef *= 2;        // или сдвигом koef <<= 1!!!

   result += koef * xpow;                        

 }

 cout << result << endl;

 system("pause"); 

return 0;

}





Поделиться с друзьями:


Дата добавления: 2018-10-15; Мы поможем в написании ваших работ!; просмотров: 209 | Нарушение авторских прав


Поиск на сайте:

Лучшие изречения:

Лаской почти всегда добьешься больше, чем грубой силой. © Неизвестно
==> читать все изречения...

2612 - | 2498 -


© 2015-2025 lektsii.org - Контакты - Последнее добавление

Ген: 0.009 с.