Опубликован: 14.12.2010 | Доступ: свободный | Студентов: 3137 / 738 | Оценка: 4.53 / 4.12 | Длительность: 26:28:00
Лекция 6:

Числовые массивы в языке программирования С

< Лекция 5 || Лекция 6: 1234 || Лекция 7 >

Задание 1

  1. Границы формирования случайных чисел и размерность массива задайте без препроцессорных директив.
  2. Произведите сортировку массива случайных чисел по убыванию.
  3. Введите границы интервала формирования случайных чисел по правилу: Left = X, Right = 3*X, где Х – номер компьютера, за которым выполняется лабораторная работа. Произвести сортировку по убыванию.
  4. Найдите и изучите сортировку методом прямого обмена (сортировка методом пузырька). Напишите программу формирования одномерного массива случайными числами и их сортировки методом пузырька.

Пример 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.

Определение максимального элемента массива

Рис. 5.2. Определение максимального элемента массива

Задание 2

  1. В программе предусмотрите вывод на консоль значений массива в виде строки.
  2. Определите индекс максимального элемента.
  3. Определите минимальный элемент массива и его индекс.
  4. Напишите программу перемещения максимального и минимального элементов на края массива. Например, максимальный элемент поместить в конец массива, а минимальный – в начало массива. Выведите на консоль исходный массив данных и преобразованный массив в виде двух строк, следующих друг за другом.
  5. Напишите программу ввода целых чисел массива с клавиатуры и определения максимального и минимального элементов в нем. Количество вводимых чисел задается по соотношению 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.

Пример циклической перестановки элементов числового массива

Рис. 5.3. Пример циклической перестановки элементов числового массива

Задание 3

  1. Выведите на дисплей (для проверки) два элемента массива В, номера которых превышают размерность массива D.
  2. Программным путем подсчитайте сумму элементов массива и выведите ее на консоль.
  3. Дополните программу формированием массива, в котором элементы расположены в обратном порядке, чем в исходном массиве.
  4. Сформируйте массив кодов строчных букв латинского алфавита. Выведите на дисплей сами буквы и их коды, которые являются элементами массива.
< Лекция 5 || Лекция 6: 1234 || Лекция 7 >
Мухаммадюсуф Курбонов
Мухаммадюсуф Курбонов