- •Лабораторная работа 2 Циклы
- •Организация циклов с параметром Цикл while в циклах с параметром Вычисление суммы чисел натурального ряда от 1 до 10
- •Определение наибольшей степени целого числа 100, которую можно вычислить, пользуясь типом long
- •Подсчет количества цифр в числе n
- •Вычисление значений функции на отрезке
- •Вычисление на отрезке значений функции с условием и оформление результатов
- •Цикл do-while в циклах с параметром Вычисление суммы чисел натурального ряда от 1 до 10
- •Калькулятор
- •Проверка входных данных
- •Вычисление значений функции на отрезке
- •Вычисление на отрезке значений функции с условием и оформление результатов
- •Цикл for в циклах с параметром Вычисление суммы чисел натурального ряда от 1 до 10
- •Вычисление на отрезке значений функции с условием и оформление результатов
- •Организация итерационных циклов Цикл while в итерационных циклах Вычисление числа π
- •Вложенные циклы
- •Вычисление значения многочлена на отрезке (схема Горнера)
- •Разложение функции на отрезке в ряд Тейлора
- •Организация работы с последовательностью чисел, вводимых с клавиатуры
- •Корректная организация циклов
- •Оптимизация программы
- •Алгоритм типа «развилка, вложенная в цикл с параметром»
- •Алгоритмы итерационных циклов Пример 1. Нахождение корня нелинейного уравнения методом итераций
- •Пример 2. Нахождение корня нелинейного уравнения методом половинного деления
- •Пример 3. Вычисление суммы членов бесконечного ряда.
- •Алгоритмы с вложенными циклами
- •Алгоритм вложенного цикла с развилкой
Подсчет количества цифр в числе n
//найти количество и сумму цифр числа
int main()
{
int N=123456;
int sum=0, k=0;
while (N>0)
{sum += N%10;
N /=10;
k++;
}
cout << k << " " << sum << endl; //6 21
_getch();
return 0;
}
Вычисление значений функции на отрезке
Составим программу для вычисления и вывода на печать таблицы значений функции у = а*х2 при а =17.7, х изменяется от x0 = 5.5 до xn = 35.0 с шагом h = 0.5 с помощью цикла while.
int main ()
{double a=17.7, x0=5.5, xn=35.0, x, y, h=0.5;
const double X_end = xn+h/2 ; //35.0+h/2, чтобы попала точка 35.0
x= x0;
while (x < X_end)
{ y = a*x*x;
printf ("x=%7.2lf y=%10.2lf\n", x, y);
x+=h;
_getch(); //для задержки результатов вывода на экране
}
return 0;
}
Вычисление на отрезке значений функции с условием и оформление результатов
Составим программу для вычисления и вывода на печать таблицы значений функции с условием у(х), если х изменяется от x0 = 2.0 до xn = 5.0 с шагом h=0.5 с помощью цикла while.
int main()
{
double x0=2.0, xn=5.0, x, y, h=0.5;
const double X_end = xn+h/2 ; //5.0 +h/2, чтобы попала точка 5.0
//////////////////////////////////////////////////////////////////////
printf("\nwhile:\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=x0;
while (x < X_end)
{ 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;
}
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;
}
Результаты работы программы:
while:
┌────┬─────────┐
│ 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│
└────┴─────────┘
Вычисление на отрезке значений функции с условием и оформление результатов в виде таблицы (в стиле С++)
Составим программу для вычисления и вывода на печать таблицы значений функции с условием у(х), если х изменяется от x0=2.0 до xn=5.0 с шагом h=0.5 с помощью цикла while.
#include <iomanip>
#include <math.h>
int main()
{
double x0=2.0, xn=5.0, x, y, h=0.5;
const double X_end = xn+h/2 ; //5.0+h/2, чтобы попала точка 5.0
char c,c1,c2,c3,c4,c5,c6,c7,c8,c9,c10;
c=char(196); c1=char(218); c2=char(194); c3=char(191);
c4=char(179); c5=char(195); c6=char(197); c7=char(180);
c8=char(192); c9=char(217); c10=char(193);
cout<<c1<<c<<c<<c<<c<<c<<c2<<c<<c<<c<<c<<c<<c<<c<<c<<c<<c<<c<<c3<<'\n';
cout<<c4<<" x " << c4 << " y " << c4 << '\n';
int i=0;
x=x0+i*0.5;
while (x < X_end)
{
if (x<=3.5)
{double r=cos(x);
y=r*r;
} //end_if
else
{
y=sin(x)*log(x);
} //end_else
cout <<setiosflags(ios::fixed)<<setprecision(2); cout<<c5<<c<<c<<c<<c<<c<<c6<<c<<c<<c<<c<<c<<c<<c<<c<<c<<c<<c<<c7<<'\n';
cout<<c4<<setw(5) << x;
cout <<setiosflags(ios::fixed)<<setprecision(6) ;
cout<<c4<<setw(11) << y<<c4<<"\n";
i++; //эти два оператора можно заменить на x+=0.5;
x=x0+i*0.5;
} //end_while
cout<<c8<<c<<c<<c<<c<<c<<c10<<c<<c<<c<<c<<c<<c<<c<<c<<c<<c<<c<<c9<<'\n';
_getch();
return 0;
}
Результаты работы программы:
┌─────┬───────────┐
│ x │ y │
├─────┼───────────┤
│ 2.00│ -0.416147│
├─────┼───────────┤
│ 2.50│ -0.801144│
├─────┼───────────┤
│ 3.00│ -0.989992│
├─────┼───────────┤
│ 3.50│ -0.936457│
├─────┼───────────┤
│ 4.00│ -0.756802│
├─────┼───────────┤
│ 4.50│ -0.977530│
├─────┼───────────┤
│ 5.00│ -0.958924│
└─────┴───────────┘