- •Самарский государственный технический университет
- •Утверждено на заседании кафедры электротехники, информатики и компьютерных технологий 30.01.03
- •Имя_массива [индекс]
- •Тип имя_массива [размер_1] [размер_2]
- •Манипуляторы
- •Порядок выполнения работы
- •Задание на выполнение лабораторной работы
- •Варианты заданий
- •Примеры составления программ Листинг программы для варианта №11
- •Результат выполнения программы
- •Листинг программы для варианта №12
- •Результат выполнения программы
- •Библиографический список
- •Приложение Математические функции
- •Типы данных
МИНИСТЕРСТВО ОБРАЗОВАНИЯ РОССИЙСКОЙ ФЕДЕРАЦИИ
Самарский государственный технический университет
Филиал в г. Сызрани
Кафедра электротехники, информатики и компьютерных технологий
СОСТАВЛЕНИЕ И ОТЛАДКА ПРОГРАММ
С МАССИВАМИ
Методические указания к лабораторной работе № 4
по дисциплине "Программирование и основы алгоритмизации"
Составитель: Будин В.И.
Утверждено на заседании кафедры электротехники, информатики и компьютерных технологий 30.01.03
СЫЗРАНЬ 2003
Лабораторная работа №4
СОСТАВЛЕНИЕ И ОТЛАДКА ПРОГРАММ С
МАССИВАМИ
Цель работы - приобретение навыков по составлению программ, использующих массивы, и их отладке в интегрированной среде Borland C++5.02.
Общие сведения о массивах
Массив представляет собой конечный упорядоченный набор однотипных объектов, имеющих общее имя. Элементы массива занимают один непрерывный участок памяти компьютера и располагаются последовательно друг за другом.
Описание массива имеет следующий формат:
Тип имя_массива [n];
где n – размерность (количество элементов) массива является в общем случае константным выражением.
Такие одномерные массивы часто называют векторами.
Примеры:
int days [12]; //массив days из 12 целых чисел
double mass [50]; //массив mass из 50 вещественных чисел
Для доступа к элементу массива используется имя массива и его индекс в диапазоне от 0 до n-1, заключенный в квадратные скобки:
Имя_массива [индекс]
Примеры:
mass [0] = 37.5; . . . mass [49] = 36.6;
Массивы можно инициализировать списком значений или выражений, отделенных запятой в фигурных скобках.
Например:
int days [12] = {27,15,11,5,28,9,14,31,21,15,19,27};
Если список значений короче длины массива, то инициализации подвергаются первые элементы массива, а остальным присваивается нулевое значение.
Например:
int a[5] = {3,12,4}; //a[0]=3, a[1]=12, a[2]=4, a[3]=0, a[4]=0
Массивы могут инициализироваться без указания индекса. В этом случае размерность определяется числом элементов в фигурных скобках.
Например:
int numbers [ ] = {1,2,3,4}; //размерность равна четырем
В практических задачах часто используются двумерные массивы, т.е. массивы с двумя индексами. Они описываются следующим образом:
Тип имя_массива [размер_1] [размер_2]
С помощью таких массивов обычно отображаются матрицы.
Примеры:
const int k=5, r=3;
long m[k][k]; //матрица целых чисел размерности 5х5
float d[k][r]; //матрица целых чисел размерности 5х3
Инициализация двумерного массива осуществляется двумя способами:
представлением массива из массивов, с заключением каждого массива-строки в свои фигурные скобки (в этом случае размерности можно не указывать);
заданием общего списка элементов в том порядке, в котором они располагаются в памяти.
Например:
int matr [ ][ ] = {{3,-4},{25,0},{-1,4}};
int matr [3][2] = {3,-4,25,0,-1,4};
Как и в одномерных массивах при инициализации двухмерных массивов можно присваивать значения не всем элементам.
Пример. Формирование треугольной матрицы.
int x [5][4] = {{11},{25,4},{-3,18,14},{2,17,9,15}};
что эквивалентно отображению матрицы:
При работе с массивами широко используются операторы цикла, особенно, for. Примером может служить задача сортировки массива с помощью "пузырькового" метода.
#include <iostream.h>
#include <math.h>
void main()
{
const int m=5; //Размерность массива чисел
double z[m]; //Тип чисел массива z
for(int i=0;i<m;i++)
{ cout<<"z["<<i<<"]=";cin>>z[i];} //Ввод элементов массива
for(int i=0;i<m-1;i++) //Начало алгоритма сортировки
{ double a;
for(int j=i+1;j<m;j++)
if (z[j]<z[i]) //'<'- сортировка по возрастанию
{a=z[i];z[i]=z[j];z[j]=a;}
} //Конец алгоритма сортировки
cout<<"z["<<m<<"]={";
for(int i=0;i<m;i++)
cout<<z[i]<<" ";cout<<"}";
}
Манипуляторы и форматирование ввода-вывода
В программах часто требуется осуществлять ввод и вывод данных в определенном формате. Для этого обычно используются так называемые манипуляторы, основные из которых приведены в табл.1. Некоторые из них имеют аргумент (тип). Для использования последних к программе требуется подключить заголовочный файл <iomanip.h>.
С помощью манипуляторов легко управлять представлением выводимой информации. В частности манипулятор setw (int n) удобен при формировании таблиц в циклах.
Например: . . . . . . . . . .
cout<<setprecision (2); //две цифры после запятой
for (int i=0; i<10; i++)
cout<<setw (6) <<a[i]<<endl; //ширина поля – 6 цифр
. . . . . . . . . .