Лаб.раб. Министерство образования и науки российской федерации пензенский государственный
Скачать 0.8 Mb.
|
Лабораторнаяработа№4Тема: "Программирование циклов с параметром. Одномерные массивы" Цель работы: освоение средств языка С++ для описания циклов с параметром и закрепление навыков использования их при программировании, изучение способов описания, ввода-вывода и обработки одномерных массивов. Краткие теоретические сведения. Цикл с параметром используется в том случае если известно число шагов обработки, т.е. если известно число итераций. Итерацией цикла называется один проход цикла. Синтаксис оператора цикла имеет вид: for (действие до начала цикла; условие продолжения цикла; действия в конце каждой итерации цикла) { инструкция цикла; инструкция цикла 2; инструкция цикла N; } Существует частный случай этой записи: for (счетчик = значение; счетчик < значение; шаг цикла) { тело цикла; } Описание синтаксиса: сначала присваивается первоначальное значение счетчику; затем задается конечное значение счетчика цикла. Счетчик цикла — это переменная, в которой хранится количество проходов данного цикла. После того, как значение счетчика достигнет указанного предела, цикл завершится; задаем шаг цикла. Шаг цикла — это значение, на которое будет увеличиваться или уменьшаться счетчик цикла при каждом проходе. Одномерный массив — массив, с одним параметром, характеризующим количество элементов одномерного массива. Фактически одномерный массив — это массив, у которого может быть только одна строка, и n-е количество столбцов. Столбцы в одномерном массиве — это элементы массива. На рисунке 12 показана структура целочисленного одномерного массива a. Размер этого массива — 16 ячеек. Рисунок 12 — Одномерный массив Максимальный индекс одномерного массива a равен 15, но размер массива 16 ячеек, потому что нумерация ячеек массива всегда начинается с 0. Индекс ячейки – это целое неотрицательное число, по которому можно обращаться к каждой ячейке массива и выполнять какие-либо действия над ней (ячейкой). Синтаксис объявления одномерного массива в С++: тип данных имя одномерного массива [размерность одномерного массива]; //пример объявления одномерного массива, изображенного на рисунке 12: int a[16]; где, int — целочисленный тип данных; а — имя одномерного массива; 16 — размер одномерного массива, 16 ячеек. Всегда сразу после имени массива идут квадратные скобочки, в которых задаётся размер одномерного массива, этим массив и отличается от всех остальных переменных. Рассмотрим на примерах способы ввода-вывода одномерного массива: размер массива можно не указывать только при его инициализации, при обычном объявлении массива обязательно нужно указывать размер массива #include "stdafx.h" #include int main(int argc, char* argv[]) { cout << "obrabotka massiva" << endl; // объявление и инициализация одномерного массива int array1[16] = { 5, -12, -12, 9, 10, 0, -9, -12, -1, 23, 65, 64, 11, 43, 39, -15 }; cout << "indeks" << "\t\t" << "element massiva" << endl; // печать заголовков for (int counter = 0; counter < 16; counter++) //начало цикла { //вывод на экран индекса ячейки массива, а затем содержимого этой ячейки cout << "array1[" << counter << "]" << "\t\t" << array1[counter] << endl; } system("pause"); return 0; } Результат работы представлен на рисунке 13. Рисунок 13 программа должна последовательно считывать десять введённых чисел с клавиатуры. Все введённые числа просуммировать, результат вывести на экран. #include "stdafx.h" #include int main(int argc, char* argv[]) { int array1[10]; // объявляем целочисленный массив cout << "Enter elementi massiva: " << endl; int sum = 0; for ( int counter = 0; counter < 10; counter++ ) // цикл для считывания чисел cin >> array1[counter]; // считываем вводимые с клавиатуры числа cout << "array1 = {"; for ( int counter = 0; counter < 10; counter++ ) // цикл для вывода элементов массива cout << array1[counter] << " "; // выводим элементы массива на стандартное устройство вывода for ( int counter = 0; counter < 10; counter++ ) // цикл для суммирования чисел массива sum += array1[counter]; // суммируем элементы массива cout << "}\nsum = " << sum << endl; system("pause"); return 0; } Результат представлен на рисунке 14. Рисунок 14. Пример выполнения задания. Задание: произвести следующую обработку 15 целых чисел: подсчитать сумму чисел, входящих в диапазон [-5..5] и количество нечетных чисел. Схема программы к данному заданию с использованием одного цикла представлена на рисунке 15. нет Рисунок 15 Текст программы без использования массива: #include void main() { int x,sum=0,i,kol=0; printf("Enter numbers\n"); for (i=1;i<=15;i++) { scanf("%d",&x); if ((x>=-5)&&(x<=5)) sum+=x; if (x%2!=0) kol++; } printf("Summa v diapazone [-5,5]=%d\n", sum); printf("Kolichestvo nechetnih=%d", kol); } Схема программы с циклами для ввода и обработки массива (рисунок 16). Рисунок 16 Пример программы с использованием одномерного массива #include { int a[15],sum=0,i,kol=0; printf("Enter numbers\n"); for (i=0;i<15;i++) scanf("%d",&a[i]); for (i=0;i<15;i++) { if ((a[i]>=-5)&&(a[i]<=5)) sum+=a[i]; if (a[i]%2!=0) kol++; } printf("Summa v diapazone [-5,5]=%d\n", sum); printf("Kolichestvo nechetnih=%d", kol); } Контрольные вопросы Массивы в языке С++: понятие массива в языке С++, описание массива в программе, представление элементов массива в памяти, обращение к элементам массива. Оператор цикла for в языке С++. Форма записи. Правила выполнения. Варианты заданий Произвести следующую обработку 15 целых чисел: найти количество отрицательных чисел, количество нулевых и подсчитать сумму положительных чисел. Произвести следующую обработку 15 целых чисел: найти количество четных чисел, а нечетные числа, входящие в диапазон [1..11] возвести в квадрат. Произвести следующую обработку 15 вещественных чисел: найти количество отрицательных чисел, а числа, входящие в диапазон [0..10] возвести в квадрат. Произвести следующую обработку 10 вещественных чисел: найти количество чисел, больших или равных 1,5, и подсчитать сумму отрицательных чисел. Произвести следующую обработку 10 вещественных чисел: найти количество чисел, равных нулю, и найти сумму чисел, входящих в диапазон [- 15..15]. Произвести следующую обработку 15 целых чисел: найти количество отрицательных чисел и подсчитать разность положительных чисел. Произвести следующую обработку 15 вещественных чисел: найти среднее арифметическое положительных чисел и подсчитать количество чисел, входящих в диапазон [-15..5]. Произвести следующую обработку 10 целых чисел: найти количество отрицательных чисел и подсчитать сумму положительных чисел, делящихся без остатка на 3. Произвести следующую обработку 10 целых чисел: найти количество отрицательных чисел, а числа, входящие в диапазон [0..10], умножить на 10. Произвести следующую обработку 10 целых чисел: найти количество отрицательных чисел, а числа, входящие в диапазон [0..10], умножить на 3. Произвести следующую обработку 15 вещественных чисел: найти среднее арифметическое отрицательных чисел и подсчитать количество чисел, входящих в диапазон [0..5]. Произвести следующую обработку 15 вещественных чисел: найти среднее арифметическое нечетных чисел и подсчитать сумму чисел, входящих в диапазон [- 15..5]. Произвести следующую обработку 10 вещественных чисел: найти количество чисел, равных нулю, и найти синус чисел, входящих в диапазон [-15..15]. Произвести следующую обработку 10 целых чисел: подсчитать сумму положительных чисел и определить номера отрицательных чисел. Произвести следующую обработку 15 вещественных чисел: найти количество отрицательных чисел и номера нулевых чисел. Произвести следующую обработку 12 целых чисел: подсчитать количество чисел, делящихся без остатка на 5, и сумму чисел, входящих в диапазон [-5..5]. Произвести следующую обработку 10 вещественных чисел: подсчитать количество чисел, отличающихся от числа 3 не более чем на 0.5, и сумму отрицательных чисел. Произвести следующую обработку 15 целых чисел: подсчитать количество нулевых чисел и вычислить квадраты чисел, входящих в диапазон [-5..5]. Произвести следующую обработку 12 целых чисел: подсчитать количество нечетных чисел и сумму отрицательных чисел. Произвести следующую обработку 15 вещественных чисел: подсчитать количество чисел, отличающихся от заданного не более чем на 0.5, и сумму положительных чисел. . Произвести следующую обработку 10 вещественных чисел: найти количество отрицательных чисел, находящихся в диапазоне от -5 до 5 и подсчитать сумму положительных чисел. Произвести следующую обработку 15 целых чисел: найти количество чисел, входящих в диапазон [1..11] и каждое число возвести в квадрат. Произвести следующую обработку 15 вещественных чисел: найти количество чисел, равных 0, а числа, входящие в диапазон [-1..1] возвести в куб. Произвести следующую обработку 10 вещественных чисел: найти количество чисел, больших или равных 1,5, и подсчитать сумму отрицательных чисел, входящих в диапазон [-1..0]. Произвести следующую обработку 10 вещественных чисел: найти количество чисел, меньших 15, и найти произведение чисел, входящих в диапазон [10..15]. |