Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ТТП (методичка).doc
Скачиваний:
5
Добавлен:
10.11.2018
Размер:
2.24 Mб
Скачать
    1. Лабораторная работа №7

Цель данной работы — научиться работать с массивами в языке Си.

Порядок выполнения работы:

  • изучить способы работы с массивами в языке Си (глава 14);

  • разработать блок-схему алгоритма;

  • составить текст программы на языке Cи;

  • проверить правильность выполнения разработанной программы;

  • составить отчет.

Пример. Написать программу сортировки по убыванию массива из 14 целых чисел в диапазоне от 0 до 999.

Текст программы представлен в листинге 21.

Так как в программе несколько раз приходится использовать размер массива, то для удобства последующего изменения программы введена константа SIZE: #define SIZE 14.

По заданию массив состоит из целых чисел, поэтому при объявлении массива используется тип int: int arr[SIZE].

Для сортировки используется последовательная перестановка местами двух соседних элементов массива, если это необходимо. Перестановка осуществляется в три действия при помощи вспомогательной переменной temp того же типа, что и элементы массива, т. е. int.

Чтобы не выйти за допустимые пределы изменения индекса массива, цикл по переменной j сделан от 0 до SIZE–2.

Листинг 21 — Лабораторная работа №7

/* lab7.c – лабораторная работа №7. */

#include <stdio.h>

#include <conio.h>

#include <stdlib.h>

#define SIZE 14 /* размер массива */

void main()

{

int arr[SIZE]; /* объявление массива целых чисел */

int i, j; /* для индекса массива */

int tmp; /* для перестановки элементов массива */

clrscr();

/* заполнение массива случайными числами от 0 до 999 */

randomize();

for (i = 0; i < SIZE; i++)

arr[i] = random(1000);

/* вывод исходного массива */

printf(“Исходный массив:\n”);

for (i = 0; i < SIZE; i++)

printf(“%5d”, arr[i]);

/* сортировка */

for (i = 0; i < SIZE; i++) {

for (j = 0; j < SIZE - 1; j++) {

// если j-й элемент меньше (j+1)-го

if (arr[j] < arr[j+1]) {

// перестановка местами

// j-го и (j+1)-го элементов массива

tmp = arr[j];

arr[j] = arr[j+1];

arr[j+1] = tmp;

}

}

}

/* вывод результатов */

printf(“\n\nОтсортированный массив:\n”);

for (i = 0; i < SIZE; i++)

printf(“%5d”, arr[i]);

}

На рисунке 55 представлены результаты выполнения программы lab7.c.

Рисунок 55 — Результат выполнения lab7.c

Задание. Реализовать алгоритм обработки массива из N вещественных чисел указанного диапазона (см. таблицу 12).

Таблица 12 — Варианты заданий к лабораторной работе №7

вар.

Задание

Пояснение

Количество элементов N

Диапазон

1

Вычислить среднее арифметическое элементов массива A

16

2

Вычислить среднее геометрическое элементов массива B

6

3

Найти значение и индекс минимального элемента массива C

15

4

Найти значение и индекс максимального элемента массива D

12

5

Переставить элементы массива E в обратном порядке

10

6

Присвоить каждому элементу массива F значение квадратного корня

13

7

Переставить соседние элементы массива G местами

8

8

Присвоить каждому элементу массива H значение суммы двух соседних элементов

7

9

Присвоить каждому элементу массива P значение произведения двух соседних элементов

9

10

Присвоить каждому элементу массива Q значение разницы двух соседних элементов

11