- •Южно-Российский государственный технический университет (нпи)
- •Типы данных. Арифметические и логические операции в языке Си. Разветвляющиеся программы
- •Методические указаниия
- •Варианты заданий к практической работе №2
- •Операторы циклов. Массивы
- •Методические указаниия
- •К п.1. Операторы цикла.
- •К п.3.М ассивы.
- •Int a[5][6]; // Объявляем матрицу из 5 строк и 6 столбцов
- •Задание к лабораторной работе №3
- •Оператор множественного выбора switch.
- •Методические указаниия
- •К п.1. Оператор ( функция ) выбора switch — case — default.
- •Символьные строки.
- •Методические указания
- •К п.1. Символы.
- •К.П.2. Задание к лабораторной работе №4
К п.3.М ассивы.
Массивы - это последовательная группа ячеек памяти, имеющих одинаковое имя, при этом обратится к элементу массива можно, указав в квадратных скобкахиндекс, который указывает на его относительную позицию. Число элементов массива назначается при его определении и в дальнейшем не изменяется. Массивы определяются так же, как и переменные:
int a[100];
char b[20];
float d[50];
В первой строке объявлен массив а из 100 элементов целого типа: а[0], а[1], ..., а[99] (индексация всегда начинается с нуля). Во второй строке элементы массива b имеют тип char, а в третьей - float.
Язык Си также позволяет инициализировать массив при его определении. Для этого используется следующая форма:
тип имя_массива[...] ... [...] = {список значений};
Примеры:
int a[5] = {0, 1, 2, 3, 4};
char ch[3] = {'d', 'e', '9'};
int b[2][3] = {1, 2, 3, 4, 5, 6};
В последнем случае представлен двумерный массив: b[0][0] = 1, b[0][1] = 2, b[0][2] = 3, b[1][0] = 4, b[1][1] = 5, b[1][2] = 6.
Двумерные массивы состоят из строк и столбцов, содержащих элементы одного типа, пример двумерного массива - матрица размерностью nxn. Объявление двумерного массива в программе имеет следующийформат:
тип_данных название_массива[размер_по_у][размер_по_х];
Примеры:
int A[10][10];/объявление целочисленного массива размерностью 10х10 элементов
float MyArray[5][5]; /матрица из действительных чисел, размерность матрицы 5х5
char An_Array_For_Char_Data[1000][1000]; /это двумерный массив (матрица) из
/ символов, размерность1000х1000.
Отдельный элемент матрицы – это по сути переменная того типа данных, который указан при объявлении массива.
Обратиться к элементу матрицы можно по его номеру, у элемента матрицы есть два номера – номер строки (i) и номер столбца (j).
Пример1:
A[0][0], A[5][5] – элементы матрицы с номерами (0;0) и (5;5) соответственно.
Пример 2: Присвоить элементу матрицы А с номером (1;4) значение 5.
Решение:
...
A[1][4]=5;
...
Пример 3: Если элемент матрицы MyArray с номером (5;1) равен 8, вывести на экран сообщение “Элемент равен восьми”
Решение:
...
if(MyArray[5][1]==8)
{
printf(“\n Элемент равен восьми”);
}
...
Так же, как и для одномерных массивов, при вводе и выводе значений элементов массивов необходимо перебирать весь диапазон индексов. В случае двумерного массива – два диапазона индексов.
Фрагмент кода, реализующий ввод значений элементов двумерного массива А(5х6):
...
int i,j;
Int a[5][6]; // Объявляем матрицу из 5 строк и 6 столбцов
for(i=0;i<5;i++) // i от 0 до 5, поскольку матрица содержит 5 строк
{
for(j=0;j<6;j++) // j до 6, поскольку в каждой строке 6 элементов
{
printf("Input please A[%d][%d]: ", i, j);
scanf("%d", &A[i][j]); // Ввод одного элемента матрицы...
}
}
...
Фрагмент кода, реализующий вывод значений элементов массива А(5х6) на экран:
...
for(i=0;i<5;i++)
{
for(j=0;j<6;j++)
{
printf("%5d", A[i][j]);
}
printf("\n");
}
...
Пример: Подсчитать количество элементов матрицы, значение которых больше пяти.
Решение:
...
int A[3][2];
int i,j;
printf("Massive A 3x2: \n");
for(i=0;i<3;i++)
{
for(j=0;j<2;j++)
{
printf("Input A[%d][%d]: ", i, j);
scanf("%d", &A[i][j]);
}
}
int kolichestvo=0;
for(i=0;i<3;i++)
{
for(j=0;j<2;j++)
{
if(A[i][j]>5)
{
kolichestvo++;
}
}
}
printf("Bolshe 5 bilo %d elementov \n", kolichestvo);
...