- •Лабораторная работа 2 Циклы
- •Организация циклов с параметром Цикл while в циклах с параметром Вычисление суммы чисел натурального ряда от 1 до 10
- •Определение наибольшей степени целого числа 100, которую можно вычислить, пользуясь типом long
- •Подсчет количества цифр в числе n
- •Вычисление значений функции на отрезке
- •Вычисление на отрезке значений функции с условием и оформление результатов
- •Цикл do-while в циклах с параметром Вычисление суммы чисел натурального ряда от 1 до 10
- •Калькулятор
- •Проверка входных данных
- •Вычисление значений функции на отрезке
- •Вычисление на отрезке значений функции с условием и оформление результатов
- •Цикл for в циклах с параметром Вычисление суммы чисел натурального ряда от 1 до 10
- •Вычисление на отрезке значений функции с условием и оформление результатов
- •Организация итерационных циклов Цикл while в итерационных циклах Вычисление числа π
- •Вложенные циклы
- •Вычисление значения многочлена на отрезке (схема Горнера)
- •Разложение функции на отрезке в ряд Тейлора
- •Организация работы с последовательностью чисел, вводимых с клавиатуры
- •Корректная организация циклов
- •Оптимизация программы
- •Алгоритм типа «развилка, вложенная в цикл с параметром»
- •Алгоритмы итерационных циклов Пример 1. Нахождение корня нелинейного уравнения методом итераций
- •Пример 2. Нахождение корня нелинейного уравнения методом половинного деления
- •Пример 3. Вычисление суммы членов бесконечного ряда.
- •Алгоритмы с вложенными циклами
- •Алгоритм вложенного цикла с развилкой
Цикл for в циклах с параметром Вычисление суммы чисел натурального ряда от 1 до 10
//вариант_1
const int N =10;
int main ()
{ int summa=0;
for(int i=1; i <=N; i++)
summa += i;
cout << summa << endl;
_getch();
return 0;
}
//вариант_2
const int N=10;
int main ()
{ int summa=0;
for(int i=1; i <=N; )
summa += i++;
cout << summa << endl;
_getch();
return 0;
}
//вариант_3
const int N=10;
int main ()
{
for(int i=1, summa = 0; i <=N; cout << summa << endl)
summa += i++;
//cout << summa << endl; error!! Undeclared “summa”
_getch();
return 0;
}
Вывод на экран кодов символов
//цифры
char s;
for (s ='0'; s <= '9'; s++)
cout << s << " " << static_cast <int> (s) << endl;
//латинские буквы char s;
for (s ='A'; s <= 'Z'; s++)
cout << s << " " << static_cast <int> (s) << endl;
for (s ='a'; s <= 'z'; s++)
cout << s << " " << static_cast <int> (s) << endl;
Приостановка выполнения программы на n секунд
const int DELAY =500000000;
int main (){
long i;
int n;
cout << "sec=?\n";
cin >> n;
for (; n; n--)
for (i=0; i<DELAY; i++) ;
cout << n << endl;
_getch();
return 0;
}
Получение натуральных делителей числа N
int main ()
{
unsigned N;
cout << "\ninput N:"; cin >> N;
for (unsigned i = 2; i <= N / 2; i++) // перебор значений делителей
if (!(N % i))cout << i << " "; //если i есть делитель числа N
cout << endl;
_getch();
return 0;
}
Проверка, является ли натуральное число N простым
int main ()
{
unsigned N;
cout << " input N:"; cin >> N;
bool b=true ;
for (unsigned i = 2; (i <= N / 2) && b; i++)
if (!(N % i)) b=false;
if (b) cout << "da" << endl;
else cout << "net" << endl;
_getch();
return 0;
}
Вычисление значений функции на отрезке
Составим программу для вычисления и вывода на печать таблицы значений функции у = а*х2 при а =17.7, х изменяется от x0 = 25.5 до xn = 35.0 с шагом h = 0.5 с помощью цикла for:
int main ()
{double a = 17.7, x0 = 25.5, xn = 35.0, x, y, h = 0.5;
const double X_end = xn+h/2 ; //35.0 +h/2, чтобы попала точка 35.0
for ( x=x0; x < X_end; x+=h)
{ y = a*x*x;
printf ("x=%7.2lf y=%10.2lf\n", x, y);
_getch();
}
return 0;
}
или
int main ()
{double a= 17.7, x0 = 25.5, xn = 35.0, x, y, h = 0.5;
const double X_beg = x0-h/2 ; //25.5-h/2, чтобы попала точка 25.5
for (x=35.0; x > X_beg; x-=h)
{ y = a*x*x;
printf ("x=%7.2lf y=%10.2lf\n", x, y);
_getch();
}
return 0;
}
или
#include <math.h>
int main ()
{ double a= 17.7, x, y, h = 0.5, x0= 25.5, xn=35.0;
const int k = int((xn-x0)/h)+1; //или floor ((xn-x0)/h)+1;
x=x0;
for (int i=1; i<=k; i++)
{y = a*x*x;
printf ("x=%7.2lf y=%10.2lf\n", x, y);
x+=h;
_getch();
}
return 0;
}