Опубликован: 14.12.2010 | Доступ: свободный | Студентов: 3137 / 738 | Оценка: 4.53 / 4.12 | Длительность: 26:28:00
Тема: Программирование
Специальности: Программист, Архитектор программного обеспечения
Теги:
Лекция 6:
Числовые массивы в языке программирования С
Задание 1
- Границы формирования случайных чисел и размерность массива задайте без препроцессорных директив.
- Произведите сортировку массива случайных чисел по убыванию.
- Введите границы интервала формирования случайных чисел по правилу: Left = X, Right = 3*X, где Х – номер компьютера, за которым выполняется лабораторная работа. Произвести сортировку по убыванию.
- Найдите и изучите сортировку методом прямого обмена (сортировка методом пузырька). Напишите программу формирования одномерного массива случайными числами и их сортировки методом пузырька.
Пример 2. Напишите программу поиска максимального элемента в заданном одномерном массиве. Элементы массива являются целыми числами. Программный код решения примера:
#include <stdio.h> #include <conio.h> int main (void){ int i, size, max; int A[ ] = {3, 5, 2, 8, 12, 0, -7, -3, -21}; size = sizeof(A)/sizeof(A[0]); printf("\n\t The dimention of the array A is equal to: %d\n", size); max = A[0]; // Предполагаемый максимум for (i = 0; i < size; ++i) if (A[i] > max) max = A[i]; printf("\n\t Maximum array element: %d\n", max); printf("\n\n Press any key: "); _getch(); return 0; }
В программе использована инициализация безразмерного массива и определения его размерности с помощью функции sizeof().
Результат выполнения программы показан на рис. 5.2.
Задание 2
- В программе предусмотрите вывод на консоль значений массива в виде строки.
- Определите индекс максимального элемента.
- Определите минимальный элемент массива и его индекс.
- Напишите программу перемещения максимального и минимального элементов на края массива. Например, максимальный элемент поместить в конец массива, а минимальный – в начало массива. Выведите на консоль исходный массив данных и преобразованный массив в виде двух строк, следующих друг за другом.
- Напишите программу ввода целых чисел массива с клавиатуры и определения максимального и минимального элементов в нем. Количество вводимых чисел задается по соотношению 5*Х, где Х – номер компьютера, за которым выполняется лабораторная работа.
Пример 3. Напишите программу циклической перестановки чисел заданного массива так, чтобы i -e число стало ( i +1)-м, а последнее число – первым. Выведите на дисплей исходный массив и преобразованный.
Программный код решения примера:
#include <stdio.h> #include <conio.h> #define N 55 int main (void) { int i, j, k; double D[ ] = {1.23, 2.34, 3.45, 4.56, 5.67, 6.78}; double B[N]; // Заведомо больший размер, чем у массива D // Обнуление массива и выделение памяти для него for (i = 0; i < N; ++i) B[i] = 0.0; k = sizeof(D)/sizeof(D[0]); B[0] = D[k-1]; for (i = 0; i < (k - 1); ++i) B[i+1] = D[i]; printf("\n\t The original array:\n"); for (i = 0; i < k; ++i) printf("%8.2f", D[i]); printf("\n\n\t The reconfigured array:\n"); for (j = 0; j < k; ++j) printf("%8.2f", B[j]); printf("\n\n Press any key: "); _getch(); return 0; }
Результат выполнения программы показан на рис. 5.3.
Задание 3
- Выведите на дисплей (для проверки) два элемента массива В, номера которых превышают размерность массива D.
- Программным путем подсчитайте сумму элементов массива и выведите ее на консоль.
- Дополните программу формированием массива, в котором элементы расположены в обратном порядке, чем в исходном массиве.
- Сформируйте массив кодов строчных букв латинского алфавита. Выведите на дисплей сами буквы и их коды, которые являются элементами массива.