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

Обработка последовательности чисел

      Оператор цикла с предусловием

Решение нулевого варианта

Задача. Дано 100 вещественных чисел, вводимых с клавиатуры. Найти разность между максимальным и минимальным из них.

Поиск максимального и минимального значения из многих введенных данных осуществим следующим образом. Воспользуемся переменными max и min того же типа, что и вводимые данные. Первое введенное число является и максимальным и минимальным одновременно. Поэтому присвоим переменным max и min одинаковое значение, равное первому введенному числу. Далее многократно будем выполнять ввод очередного числа, сравнение его с max и min. Для этого используем оператор цикла. Чтобы пересчитать количество введенных чисел воспользуемся переменной j целого типа. Начальное значение переменной j выберем равным 1. В теле цикла значение переменной j будем увеличивать на 1, а условием продолжение цикла выберем неравенство j<100.

Блок — схема:

                                                        Рис.15

Текст программы:

#include "stdafx.h"

#include <iostream>

#include <clocale>

int _tmain(int argc, _TCHAR* argv[])

{ setlocale (LC_ALL,"Russian");

float x,min,max;

int j;

cout<<"Введите числа"<<'\n';

cin >> x;

min=x;

max=x;

j=1;

while (j<100)

  {cin >> x;

  if (x<min) min=x;

  if (x>max) max=x;

  j++;}

cout <<"Разность равна "<< max-min << '\n';

system("pause");

return 0;}

Оператор цикла с постусловием

Решение нулевого варианта

Задача. Дано 100 вещественных чисел, вводимых с клавиатуры. Найти разность между максимальным и минимальным из них.

Модифицируем текст предыдущей программы, учитывая особенности цикла с постусловием.

Блок — схема:

Рис.16

Текст программы:

#include "stdafx.h"

#include <iostream>

#include <clocale>

using namespace std;

int _tmain(int argc, _TCHAR* argv[])

{ setlocale (LC_ALL,"Russian");

float x,min,max;

int j;

cout<<"Введите числа"<<'\n';

cin >> x;

min=x; max=x;

j=1;

do

{cin >> x;

if (x<min) min=x;

if (x>max) max=x;

j++;}

while (j<100);

cout <<"Разность равна "<< max-min << '\n';

system("pause");

return 0;

Оператор цикла с параметром

Решение нулевого варианта

Задача. Дано 100 вещественных чисел, вводимых с клавиатуры. Найти разность между максимальным и минимальным из них.

Модифицируем текст предыдущей программы, учитывая особенности цикла с параметром.

Блок — схема программы:

Рис.17

Текст программы:

#include "stdafx.h"

#include <iostream>

#include <clocale>

using namespace std;

int _tmain(int argc, _TCHAR* argv[])

{setlocale (LC_ALL,"Russian");

       float x,min,max;

int j;

       cout<<"Введите числа"<<'\n';

cin >> x;

min=x; max=x;

j=1;

for (j=2; j<=100; j++)

{cin >> x;

if (x<min) min=x;

if (x>max) max=x;};

cout <<"Разность равна "<< max-min << '\n';

system("pause");

return 0;}

Задания для самостоятельного выполнения:

  1. Дано 100 натуральных чисел, вводимых с клавиатуры. Определить количество нулевых чисел в наборе. Если нулевых элементов нет, то вывести сообщение соответствующее сообщение.
  2. Дано 50 целых чисел, вводимых с клавиатуры. Определить количество чисел, кратных 5.
  3. Дано 100 вещественных чисел, вводимых с клавиатуры. Подсчитать количество отрицательных чисел в наборе.
  4. Дано 50 натуральных чисел, вводимых с клавиатуры и целое число k. Подсчитать количество чисел в наборе, кратных k.
  5. Дано 70 целых чисел, вводимых с клавиатуры. Вывести минимальное число в наборе.
  6. Дано 100 целых чисел, вводимых с клавиатуры. Проверить, встречается ли в наборе число 7.
  7. Дано 100 действительных чисел, вводимых с клавиатуры. Найти сумму всех неотрицательных чисел в наборе.
  8. Дано 100 действительных чисел, вводимых с клавиатуры. Найти произведение всех четных чисел в наборе.
  9. Дано 100 действительных чисел, вводимых с клавиатуры. Вывести максимальное число в наборе.
  10. Дано 100 действительных чисел, вводимых с клавиатуры. Определить количество двухзначных чисел в наборе.
  11. Дано 100 действительных чисел, вводимых с клавиатуры. Найти сумму двухзначных чисел в наборе.
  12. Дано 100 действительных чисел, вводимых с клавиатуры. Определить количество трехзначных чисел в наборе.
  13. Дано 50 натуральных чисел, вводимых с клавиатуры и целое число k. Подсчитать количество чисел в наборе, превосходящих k.
  14. Дано 100 ненулевых чисел, вводимых с клавиатуры. Вычислить среднее арифметическое данного набора чисел.
  15. Дано 50 натуральных чисел, вводимых с клавиатуры и целое число k. Подсчитать количество отрицательных и положительных чисел в наборе.

Вернуться к теории