Лабораторная работа №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;}
Задания для самостоятельного выполнения:
- Дано 100 натуральных чисел, вводимых с клавиатуры. Определить количество нулевых чисел в наборе. Если нулевых элементов нет, то вывести сообщение соответствующее сообщение.
- Дано 50 целых чисел, вводимых с клавиатуры. Определить количество чисел, кратных 5.
- Дано 100 вещественных чисел, вводимых с клавиатуры. Подсчитать количество отрицательных чисел в наборе.
- Дано 50 натуральных чисел, вводимых с клавиатуры и целое число k. Подсчитать количество чисел в наборе, кратных k.
- Дано 70 целых чисел, вводимых с клавиатуры. Вывести минимальное число в наборе.
- Дано 100 целых чисел, вводимых с клавиатуры. Проверить, встречается ли в наборе число 7.
- Дано 100 действительных чисел, вводимых с клавиатуры. Найти сумму всех неотрицательных чисел в наборе.
- Дано 100 действительных чисел, вводимых с клавиатуры. Найти произведение всех четных чисел в наборе.
- Дано 100 действительных чисел, вводимых с клавиатуры. Вывести максимальное число в наборе.
- Дано 100 действительных чисел, вводимых с клавиатуры. Определить количество двухзначных чисел в наборе.
- Дано 100 действительных чисел, вводимых с клавиатуры. Найти сумму двухзначных чисел в наборе.
- Дано 100 действительных чисел, вводимых с клавиатуры. Определить количество трехзначных чисел в наборе.
- Дано 50 натуральных чисел, вводимых с клавиатуры и целое число k. Подсчитать количество чисел в наборе, превосходящих k.
- Дано 100 ненулевых чисел, вводимых с клавиатуры. Вычислить среднее арифметическое данного набора чисел.
- Дано 50 натуральных чисел, вводимых с клавиатуры и целое число k. Подсчитать количество отрицательных и положительных чисел в наборе.