- •Основные понятия программирования
- •Понятие алгоритма. Алгоритмизация
- •Свойства алгоритма
- •Запись алгоритма на естественном языке
- •Изображение алгоритма в виде схемы
- •Понятие о языках программирования
- •Понятие о структурном подходе к разработке алгоритмов
- •4 Идти к 8
- •6 Идти к 8
- •8 Останов
- •Первая программа на Си
- •Процесс создания программы
- •Комментарии
- •Директива #include
- •Макросы
- •Переменные и типы данных
- •Правила именования идентификаторов
- •Типы данных
- •Int двухбайтовое целое число
- •Оператор printf: вывод на экран
- •Последовательности для вывода специальных символов
- •Спецификация вывода
- •X тип int в шестнадцатеричном виде
- •Оператор scanf: ввод с клавиатуры
- •Логическая организация программы на Си
- •Функция main
- •Глобальные и локальные переменные
- •Операторы и операции
- •Арифметические операции
- •Битовые операции
- •Операции отношения
- •Логические операции
- •Операции присваивания
- •Другие операции
- •Математические функции
- •Управляющие структуры
- •Операторы ветвления
- •Операторы цикла
- •Массивы
- •Функции
- •Интегрированная среда разработки turbo c
- •Общие сведения и принципы работы
- •Стандартные органы управления
- •Главное меню
- •Запуск иср и выход
- •Работа с окнами и файлами
- •Система помощи
- •Редактор
- •Компиляция и выполнение программ
- •Технология создания с-программы
- •Лабораторные работы
- •Лабораторная работа №1
- •Создание нового файла
- •Ввод и редактирование исходного текста
- •Сохранение
- •Выполнение программы
- •Исправление ошибок
- •Просмотр результатов выполнения
- •Закрытие файла
- •Открытие и выполнение ранее сохраненного файла
- •Вызов справки
- •Лабораторная работа №2
- •Лабораторная работа №3
- •Лабораторная работа №4
- •Лабораторная работа №5
- •Лабораторная работа №6
- •Лабораторная работа №7
- •Лабораторная работа №8
- •Список вопросов
- •Литература
- •Приложение Пример оформления отчета по лабораторной работе
- •Блок-схема алгоритма
- •Текст программы
- •Результат выполнения программы
- •Теория и технология программирования
-
Лабораторная работа №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 |
|