Лабораторная работа №4

Лабораторная работа №4.
Тема: Разработка и отладка программ с использованием массивов.

 

Вы не можете скачивать файлы с нашего сервера


Цель : Приобретение навыков работы с массивами.
Оснащение: IBM PC, Borland C++ 5.02

Методические рекомендации

Массив – упорядоченный набор однотипных значений – компонент массива. Тип компонент называется базовым типом массива. Массив имеет имя, посредством которого можно ссылаться на него как единое целое, так и на любую из его компонент.
Переменная с индексом – идентификатор компоненты массива. Формат записи:
имя массива [индекс]
где индекс может быть выражением целого типа.
Описание массива определяет базовый тип, имя массива и размер. Описание массива помещается в разделе объявления переменных и имеет вид:
базовый тип имя[размер];

Примеры объявления одномерного массива имеют вид:
int a[8]; – объявлен массив c именем a, состоящий из восьми элементов типа int;
int x,a[8],c,v; – массив объявляется наряду с объявлением переменных x, c, v;
int a[4]={3,8,2,6}; – непосредственное заполнение массива данными в момент объявления.
Примеры объявления многомерного массива имеют вид:
int a[3][4]; – объявлен двумерный массив c именем a размером 3 × 4, состоящий из элементов типа int;
int x,a[8][5],c,v; – массив объявляется наряду с объявлением переменных x, c, v;
int a[4][2]={{3,8},{2,6},{1,5},{8,5}}; – непосредственное заполнение массива данными в момент объявления;
int a[3][4][2]; – объявлен трехмерный массив c именем a размером 3× 4× 2, состоящий из элементов типа int.

Индексация элементов массива имеет значение 0 для первого элемента массива.
Ввод и вывод массива производится поэлементно. Обычно для этого используется цикл с параметром, где в качестве параметра применяется индексная переменная.

П р и м е р 4.1. Ввести десять чисел, отсортировать их и вывести на дисплей.
# include<stdio.h>
void main()
{ int i,j,a[10],p;
for(i=0;i<10;i++) scanf("%d",&a);
for(i=0;i<9;i++)
{ for(j=0;j<9;j++)
{ if(a[j]<=a[j+1])
{ p=a[j];
a[j]=a[j+1];
a[j+1]=p;
}
}
}
printf("%d",a);
}

П р и м е р 4.2. Заполнить двумерный массив 10× 10 значением 5.
# include<stdio.h>
void main()
{ int i,j,a[10][10];
for(i=0;i<10);i++)
for(j=0;j<10);j++) a[j]=5;
}

Задание:

1. Заданы два одномерных массива с различным количеством элементов и натуральное число. Объединить их в один массив, включив второй массив между k-м и ( k + 1)-м элементами первого, не используя дополнительный масив. Даны две последовательности a1 ≤ a2 ≤ ... ≤ an и b1 ≤ b2 ≤ ... ≤ bm .
Образовать из них новую последовательность чисел так, чтобы она тоже была неубывающей. 
П р и м е ч а н и е . Дополнительный массив не использовать.
2. Составить программу, которая заполняет квадратную матрицу порядка n натуральными числами 1, 2, 3, …, n2 , записывая их "по спирали".
3. Сортировка выбором. Дана последовательность чисел a1, a2 , ..., an. Требуется расположить элементы по убыванию. Для этого в массиве, начиная с первого, выбирается наибольший элемент и ставится на первое место, а первый – на место наибольшего. Написать алгоритм сортировки выбором.
4. Задана квадратная матрица. Переставить строку с максимальным элементом на главной диагонали со строкой с заданным номером m .
5. Сортировка обменами. Дана последовательность чисел a1, a2 , ..., an. Требуется представить числа в порядке возрастания. Для этого сравниваются два соседних числа ai и ai +1. Если ai > ai +1, то делается перестановка. Так продолжается до тех пор, пока все элементы не будут расположены в порядке возрастания. Составить алгоритм сортировки, подсчитывая при этом количество перестановок.
6. Вычислить сумму и число положительных элементов матрицы A[N, N] , находящихся над главной диагональю.
7. Сортировка вставками. Дана последовательность чисел a1, a2 , ..., an. Требуется представить числа в порядке возрастания. Делается это следующим образом. Пусть a1, a2 , ..., ai – упорядоченная последовательность, т.е. a1 ≤ a2 ≤ ... ≤ ai . Берется следующее число ai +1 и вставляется в последовательность так, чтобы новая последовательность была тоже возрастающей. Процесс производится до тех пор, пока все элементы от i +1 до n не будут перебраны.
8. Дана целая квадратная матрица п-го порядка. Определить, является ли она магическим квадратом, т.е. такой, в которой суммы элементов во всех строках и столбцах одинаковы.
9. Сортировка Шелла. Дан массив n действительных чисел. Требуется упорядочить его по возрастанию. Делается это следующим образом: сравниваются два соседних элемента ai и ai +1. Если ai ≤ ai+1 , то продвигаются на один элемент вперед. Если ai > ai+1 , то производится перестановка и сдвигаются на один элемент назад.
10. Дан целочисленный массив A[n ], среди элементов есть одинаковые. Создать массив из различных элементов A[n ]. Пустые ячейки сдвинуть в конец и заполнить нулями. 
11. Дан массив натуральных чисел. Найти сумму элементов, кратных данному K .
12. В целочисленной последовательности есть нулевые элементы. Создать массив из номеров этих элементов.
13. Дана последовательность целых чисел a1, a2 , ..., an. Выяснить, будет ли она возрастающей.
14. Дана последовательность чисел a1, a2 , ..., an. Заменить все ее члены, большие данного Z , этим числом. Подсчитать количество замен.
15. Дан массив действительных чисел размерностью N . Подсчитать, сколько в нем отрицательных, положительных и нулевых элементов.
16. Дана последовательность чисел, среди которых имеется один ноль. Вывести на печать все числа, включительно до нуля.
17. В одномерном массиве все отрицательные элементы переместить в начало массива, а остальные – в конец с сохранением порядка следования. Дополнительный массив заводить не разрешается.
18. Дана матрица A размера n ×m . Определить количество элементов массива больших заданного элемента массива.
19. Получить матрицу, в которой крайние элементы равны 1, а остальные 0.
20. Определить максимальный и минимальный элемент в матрице m× n .
21. Дана действительная квадратная матрица порядка n . Преобразовать матрицу по правилу: строку с номером n сделать столбцом с номером n .
22. Дана действительная матрица размером n×m. Требуется преобразовать матрицу: поэлементно вычесть последнюю строку из всех строк, кроме последней.
23. Упорядочить по возрастанию элементы каждой строки матрицы размером n×m .
24. Дана действительная матрица порядка 2n . Получить новую матрицу, переставляя ее блоки размера n × n крест накрест.



Обсудить на форуме

Комментарии к статье:

Уважаемый посетитель, Вы зашли на сайт как незарегистрированный пользователь
Мы рекомендуем Вам зарегистрироваться либо войти на сайт под своим именем
Информация
Посетители, находящиеся в группе Гости, не могут оставлять комментарии к данной публикации.

Регистрация

Реклама

Последние комментарии