Решение задач по теме «Инструкции циклов. Инструкции while, do while, break и continue. Вложенные циклы»

    1. Анализ ввода данных

  • Вводится последовательность из n (1 < n < 20) положительных целых чисел (<= 1000). Определить среднее арифметическое элементов и максимальный элемент этой последовательности
  • #include <iostream>
    using namespace std;
    
    int main() {
    	int n, k, i = 0, max = -1;
    	double s = 0.0;
    	cout << "n = "; cin >> n;
    	while (n--) {
    		cout << ++i << " -> "; cin >> k;
    		if (k > max) max = k;
    		s += k;
    	}
    	cout << "max = "
    		 << max
    		 << endl
    		 << "s = "
    		 << s / i
    		 << endl;
    	return 0;
    }
    
  • Дано целое число N (> 1) и набор из N вещественных чисел. Если данный набор образует убывающую последовательность, то вывести 0; в противном случае вывести номер первого числа, нарушающего закономерность. (Набор чисел вводится с клавиатуры).
  • #include <iostream>
    using namespace std;
    
    int main() {
    	double R, R1;
    	int i = 1, n, j;
    	bool f = true;
    	cout << "n = "; cin >> n;
    	cout << i << " => "; cin >> R;
    	do {
    		++i;
    		cout << i << " => "; cin >> R1;
    		if (R < R1 && f) {
    			j = i;
    			f = false;
    		}
    		R = R1;
    	} while (i < n);
    	if (f)
    		cout << !f << endl;
    	else
    		cout << j << endl;
    	return 0;
    }
    

    2. Анализ числа

  • Вводится число N (0 < N < 4000000000). Определить есть ли цифра K в числе N.
  • #include <iostream>
    using namespace std;
    
    int main() {
    	unsigned n, m, k;
    	bool b = false;
    	cout << "n = "; cin >> n;
    	cout << "k = "; cin >> k;
    	m = n;
    	while (m) {
    		if (k == m % 10) { b = true; break; }
    		m /= 10;
    	}
    	b ? cout << "Цифра " << k << " есть в числе " << n << endl :
    		cout << "Цифры " << k << " в числе " << n << " нет" << endl;
    	return 0;
    }
    

    3. Вычисления с заданной точностью

  • Дан числовой ряд, общий член которого задан формулой:
     a_n=\frac{2n-1}{2^n} . Найти сумму ряда с точностью \varepsilon \phantom{m}(\varepsilon = 10^{-3})
  • #include <cmath>
    #include <iostream>
    using namespace std;
    
    int main() {
    	const double eps = 1e-3;
    	double s = 0.0, s1 = 0.5, p = 2.0;
    	int i = 1;
    
    	while (fabs(s - s1) > eps) {
    		s = s1;
    		++i;
    		p *= 2;
    		s1 += (2 * i - 1) / p;
    	}
    	cout << "S = " << s << endl;
    
    	return 0;
    }
    

    4. Вложенные циклы

  • Вывод числовых или символьных треугольников. Составить программу, которая выводит на экран треугольник
  • 1  
    2  2  
    3  3  3  
    4  4  4  4  
    5  5  5  5  5  
    6  6  6  6  6  6  
    7  7  7  7  7  7  7  
    8  8  8  8  8  8  8  8  
    9  9  9  9  9  9  9  9  9  
    10 10 10 10 10 10 10 10 10 10  
    #include <iomanip>
    #include <iostream>
    using namespace std;
    
    int main() {
    	int i = 0;
    	while (i < 10) {
    		i++;
    		int j = 0;
    		while (j < i) {
    			j++;
    			cout << i << setw(3);
    		}
    		cout << '\n';
    	}
    	return 0;
    }
    
  • Для каждого натурального числа от 1 до n вывести целые степени от 1 до m
  • #include <iostream>
    using namespace std;
    
    int main() {
    	int m, n, i = 0;
    	cout << "n = "; cin >> n;
    	cout << "m = "; cin >> m;
    	while (i < n) {
    		++i;
    		int p = 1;
    		int j = 0;
    		while (j < m) {
    			++j;
    			p *= i;
    			cout << left << " " << p;
    		}
    		cout << '\n';
    	}
    	return 0;
    }
    

Добавить комментарий