Занятие 1. Одномерные массивы
Текст лекции: (после разрыва страницы) Массив – это пронумерованный набор однотипных элементов. Массивы бывают статическими и динамическими. У статического массива количество элементов известно заранее и не может быть изменено. У динамического массива количество элементов заранее неизвестно и определяется в процессе выполнения программы. Также массивы различаются по размерности: одномерные, двумерные, трехмерные и т.д. Примером одномерного массива может послужить вектор а{1, 4, 3.5}. Примером двумерно массива может послужить матрица. Примером трехмерного массива может послужить набор высот местности. Массивы различают по типу элементов. Бывают целочисленные, вещественные (состоящие из дробных чисел), символьные массивы. Примеры массивов: 1. вектор а{1, -4, 3.5} – одномерный вещественный массив из трех элементов; 2. матрица – двумерный целочисленный массив из шести элементов; 3. {‘x’, ‘3’, ‘%’} – одномерный символьный массив; 4. {‘x’, -3.34, ‘%’} – не является массивом, т.к. часть элементов символы, часть элементов числа. Мы будем рассматривать только статические одномерные и двумерные численные массивы.
Занятие 1. Одномерные массивы Индекс – это номер элемента в массиве. У одномерного массива один индекс, обычно он обозначается i. Чтобы использовать одномерный массив в программе, необходимо: 1. объявить массив в функции main(): тип_данных имя_массива[количество элементов]; double a[3]; //статический массив а из трех дробных чисел int b[7]; //статический массив b из семи целых чисел 2. проинициализировать массив, т.е. задать каждому элементу конкретное числовое значение; 3. провести вычисления, исследования. Примечание. Индексация в массиве начинается с 0, т.е. индекс у самого первого элемента в массиве i=0. Индексация в массиве а(7)={-10; 0,2; 3; -4,7; 0,5; -8, 11} указана на рис. 1.
Рис. 1 Индексация одномерного массива Способы инициализации одномерного массива представлены в таблице 1. Обратим внимание на то, что число n известно заранее и в программе фигурировать не будет. Таблица 1 Способы инициализации одномерного массива a[n]
Примечание. Более подробно работа с файлами будет рассмотрена позже.
Вывод одномерного массива на экран представлен в таблице 2. Таблица 2 Вывод одномерного массива на экран
Принципы нахождения таких величин, как сумма, произведение, минимальное, максимальное значение, представлены в таблице 3. Таблица 3 Принципы исследования одномерного массива
Пример 1. Даны четыре одномерных массива: а(8)={1,2,3,4,5,6,7,8}, b(8) вводится с клавиатуры, с(8) вычисляется по формуле сi=2i, d(8) вычисляется по формуле di=ai+bi+ci . Построить таблицу значений массивов. Решение. Сначала необходимо проинициализировать массивы согласно условию задачи. Массив а задан числами (первый способ инициализации), поэтому он будет проинициализирован при объявлении. В цикле по переменной i (0≤i<8) введем b с клавиатуры (второй способ инициализации), массивы c и d рассчитаем по формулам (четвертый способ инициализации). Далее организуем еще один цикл по переменной i (0≤i<8), в котором выведем все проинициализированные массивы на экран. Вывод таблицы на экран нельзя делать в первом цикле, т.к. в каждой итерации будет идти запрос очередного элемента b, тогда таблица со значениями массивов будет смешана с запросом элемента b. Блок-схема представлена на рис. 2.
Рис. 2 Блок-схема для примера 1 Код программы (Visual Studio) с оператором for: // proga27.cpp: определяет точку входа для консольного приложения. // #include "stdafx.h" #include <iostream> #include <iomanip> using namespace std; int main() { double a[8]={1,2,3,4,5,6,7,8}; double b[8], c[8], d[8]; int i; for(i=0; i<8; i=i+1){ cout<<"b["<<i<<"]="; cin>>b[i]; c[i]=2.0*i; d[i]=a[i]+b[i]+c[i]; } cout<<setw(2)<<"i"<<setw(5)<<"a"<<setw(5)<<"b"<<setw(5)<<"c"<<setw(5)<<"d"<<endl; for(i=0; i<8; i=i+1){ cout<<setw(2)<<i<<setw(5)<<a[i]<<setw(5)<<b[i]<<setw(5)<<c[i]<< setw(5)<<d[i]<<endl; } return 0; } Результат выполнения программы:
Пример 2. Массив а(10) задан формулой аi=3i-5. Вычислить сумму положительных элементов массива и поменять местами первый и последний элементы. Решение. Обозначим за S сумму положительных элементов массива. При расчете S требуется дополнительное условие: «ai>0». Первый элемент массива имеет индекс 0, последний элемент имеет индекс 9, поэтому будем менять местами а0 и а9. Из-за перемены мест элементов массив изменится, поэтому выведем его еще раз. Блок-схема представлена на рис. 3.
Рис. 3 Блок-схема для примера 2 программы (Visual Studio) с оператором for: // proga28.cpp: определяет точку входа для консольного приложения. // #include "stdafx.h" #include <iostream> #include <iomanip> using namespace std; int main(){ double S, tmp, a[10]; int i; S=0; for(i=0; i<10; i=i+1){ a[i]=3.0*i-5.0; cout<<setw(3)<<a[i]; if(a[i]>0){ S=S+a[i]; } } cout<<endl; cout<<"S="<<S<<endl; tmp=a[0]; a[0]=a[9]; a[9]=tmp; for(i=0; i<10; i=i+1){ cout<<setw(3)<<a[i]; } cout<<endl; return 0;} Результат выполнения программы: Ручной счет: при i=0 a(0)=3i-5=3·0-5=-5; при i=1 a(1)=3i-5=3·1-5=-2; при i=2 a(2)=3i-5=3·2-5=1; при i=3 a(3)=3i-5=3·3-5=4; при i=4 a(4)=3i-5=3·4-5=7; при i=5 a(5)=3i-5=3·5-5=10; при i=6 a(6)=3i-5=3·6-5=13; при i=7 a(7)=3i-5=3·7-5=16; при i=8 a(8)=3i-5=3·8-5=19; при i=9 a(9)=3i-5=3·9-5=22; сумма положительных элементов S=1+4+7+10+13+16+19+22=92.·
Популярное: Почему человек чувствует себя несчастным?: Для начала определим, что такое несчастье. Несчастьем мы будем считать психологическое состояние... Почему двоичная система счисления так распространена?: Каждая цифра должна быть как-то представлена на физическом носителе... Организация как механизм и форма жизни коллектива: Организация не сможет достичь поставленных целей без соответствующей внутренней... ©2015-2024 megaobuchalka.ru Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. (486)
|
Почему 1285321 студент выбрали МегаОбучалку... Система поиска информации Мобильная версия сайта Удобная навигация Нет шокирующей рекламы |