- •А.И.Маликов, Б.А.Старостин
- •ПРАКТИКУМ ПО ИНФОРМАТИКЕ И ИНФОРМАЦИОННЫМ ТЕХНОЛОГИЯМ. I.
- •ОБРАБОТКА ДАННЫХ НА ПК.
- •ОГЛАВЛЕНИЕ
- •ТЕХНИЧЕСКИЕ СРЕДСТВА ОБРАБОТКИ ДАННЫХ
- •Практическая работа №1
- •Определение характеристик ПК и его основных устройств
- •1.1. Общие сведения
- •1.2. Задание
- •1.3. Метод решения
- •1.4. Порядок выполнения работы
- •1.5. Контрольные вопросы
- •ПРОГРАММНЫЕ СРЕДСТВА
- •Практическая работа №2
- •Настройка операционной системы WINDOWS XP
- •2.1. Настройка средств ввода-вывода данных
- •2.2. Настройка элементов оформления Windows XP
- •2.3. Настройка элементов управления Windows XP
- •2.4. Настройка средств автоматизации Windows XP
- •2.5. Настройка шрифтов
- •2.6. Прочие настройки Windows XP
- •2.7. Справочная система Windows XP
- •ОРГАНИЗАЦИЯ ХРАНЕНИЯ ДАННЫХ НА ПК
- •Практическая работа №3
- •Файловая структура
- •3.1. Структура хранения данных. Файловая система
- •3.2. Операции с файловой структурой
- •3.3. Проводник
- •3.4. Задание
- •3.5. Порядок выполнения работы
- •2.6. Контрольные вопросы
- •Практическая работа №4
- •Архивирование данных
- •4.1. Общие сведения об архивировании данных
- •4.2. Архивирование данных с помощью программы WinRAR
- •4.3. Задание
- •4.4. Порядок выполнения работы
- •4.5. Контрольные вопросы
- •ОБРАБОТКА ТЕКСТОВОЙ ИНФОРМАЦИИ НА ПК
- •Практическая работа №5
- •Разработка текстовых документов в процессоре Microsoft Word
- •5.1. Общие сведения о процессоре Microsoft Word
- •5.2. Приемы работы с текстами в процессоре Microsoft Word
- •5.2.1. Создание документа
- •5.2.2. Ввод текста
- •5.2.3. Форматирование текста
- •5.3. Сохранение документа
- •5.4. Приемы и средства автоматизации разработки документов
- •5.4.1. Работа со стилями
- •5.4.2. Шаблоны
- •5.5. Внедрение объектов, созданных другими приложениями
- •5.6. Задание
- •5.7. Порядок выполнения работы
- •5.8. Контрольные вопросы
- •ОБРАБОТКА ГРАФИЧЕСКОЙ ИНФОРМАЦИИ НА ПК
- •Практическая работа № 6
- •Создание иллюстраций в редакторах Paint и Microsoft Word
- •6.1. Общие сведения
- •6.2. Графический редактор Paint
- •6.2.1. Окно программы Paint
- •6.2.2. Задание размера рабочей области
- •6.2.3. Основные чертежно-графические инструменты
- •6.2.4. Трансформация изображений
- •6.2.5. Ввод текста
- •6.3. Встроенный графический редактор Microsoft Word
- •6.4. Порядок выполнения работы
- •6.5. Контрольные вопросы
- •6.6. Варианты заданий
- •РЕШЕНИЕ ВЫЧИСЛИТЕЛЬНЫХ ЗАДАЧ В C++Builder
- •Лабораторная работа №7
- •Нахождение корней квадратного уравнения
- •7.1. Общие сведения по C++
- •7.2. Знакомство со средой разработки C++ Builder
- •7.2.1. Создание первой программы
- •7.2.2. Отладка программы:
- •7.3. Условный оператор if
- •7.4. Описание операторов и функций языка С ++
- •7.5. Нахождение корней квадратного уравнения
- •7.5.1. Постановка задачи
- •7.5.2. Метод и алгоритм решения
- •7.5.3. Блок схема алгоритма
- •7.6. Реализация алгоритма на языке C++
- •7.7. Порядок выполнения работы
- •7.8. Варианты заданий
- •Лабораторная работа №8
- •Построение таблицы значений функции. Организация циклов в C++
- •8.1. Организация циклов в C++
- •8.1.1. Оператор цикла while
- •8.1.2. Оператор цикла do-while
- •8.1.3. Оператор цикла for
- •8.1.4. Оператор break
- •8.1.5. Оператор continue
- •8.2. Построение таблицы значений функции
- •8.2.1. Постановка задачи
- •8.2.2. Алгоритм
- •8.2.3. Блок схема алгоритма
- •8.2.4. Реализация алгоритма на языке C++
- •8.3. Варианты заданий
- •8.4. Порядок выполнения работы
- •8.5. Контрольные вопросы
- •Лабораторная работа №9
- •Накапливание результата. Итерационные алгоритмы вычисления приближенного значения функций
- •9.1. Накапливание результата
- •9.2. Итерационные алгоритмы
- •9.2.1. Постановка задачи
- •9.2.2. Метод решения
- •9.2.3. Алгоритм
- •9.2.4. Блок-схема алгоритма
- •9.2.5. Пример программы
- •9.3. Варианты заданий
- •9.4. Порядок выполнения работы
- •9.5. Контрольные вопросы
- •Лабораторная работа №10
- •Указатели, функции и одномерные массивы в C++. Задачи поиска и сортировки
- •10.1. Указатели
- •10.2. Функции
- •10.2.1. Параметры функции
- •10.2.2. Передача параметров по значению
- •10.2.3. Передача параметров по ссылке
- •10.4. Методика составления программ поиска и сортировки
- •10.4.1. Задача поиска
- •10.4.2. Задача сортировки и упорядочения массива
- •10.5. Варианты заданий
- •10.6. Порядок выполнения работы
- •Лабораторная работа №11
- •Обработка двумерных массивов
- •11.1. Обработка двумерных массивов
- •11.1.1. Двухмерные массивы в C++
- •11.1.2. Использование двумерных массивов в качестве параметров функций
- •11.1.3. Примеры работы с двумерными массивами
- •11.1.4. Многомерные массивы
- •11.2. Варианты заданий
- •11.3. Порядок выполнения работы
- •СПИСОК ЛИТЕРАТУРЫ
- •Приложение 1. Варианты контрольных заданий
- •Приложение 2. Требования к оформлению отчета по лабораторным работам
- •1. Объем и содержание отчета
- •2. Оформление отчета
- •Приложение 3. Титульный лист к отчету
- •Приложение 4. Блок-схемы алгоритмов к лабораторной работе № 6
- •Приложение 5. Текст программы на языке С для вычисления корней квадратного уравнения
- •Приложение 6. Текст программы на языке C для вычисления приближенного значения экспоненциальной функции
94
Доступ к отдельному элементу массива осуществляется с помощью индекса. Индекс описывает позицию элемента внутри массива. В C++ первый элемент массива всегда имеет нулевой индекс. Поскольку массив sample со-
держит 10 элементов, его индексы изменяются от 0 до 9. Чтобы получить доступ к элементу массива по индексу, достаточно указать нужный номер элемента в квадратных скобках. Так, первым элементом массива sample является sample[0], а последним – sample[9]. Например, следующая программа помещает в массив sample числа от 0 до 9.
#include <stdio.h> void main(void)
{
int sample[10]; // Эта инструкция резервирует область
//памяти для 10 элементов типа int.
//Помещаемвмассивзначения. for(int i=0; i<10; i++) sample[i]=i;
//Отображаеммассив.
for(int k=0; k<10; k++) printf(" %d", sample[k])
}
Все элементы массива занимают смежные ячейки памяти (т.е. располагаются в памяти последовательно друг за другом). Ячейка с наименьшим адресом относится к первому элементу массива, а с наибольшим – к последнему. Например, после выполнения следующего фрагмента кода
int i[7];
for(int j=0; j<7; j++) i[j] = j;
массив i будет выглядеть так
i[0] |
i[1] |
i[2] |
i[3] |
i[4] |
i[5] |
i[6] |
0 |
1 |
2 |
3 |
4 |
5 |
6 |
10.4. Методика составления программ поиска и сортировки
10.4.1. Задача поиска
Из множества данных, например, из массива чисел, требуется выбрать одно или несколько чисел, удовлетворяющих некоторому критерию для использования их в последующих вычислениях. Алгоритм решения этой задачи называется циклическим, причем в каждом проходе по циклу анализируется один из элементов множества. Поэтому рационально представить рассматриваемое множество в виде массива, чтобы можно было выбирать требуемый элемент массива указанием его индекса.
Пример. Найти наибольшее из данных n чисел. Сформируем массив x[n], в котором размещены эти числа. Введем новую переменную, например, z, которая должна получить значение, равное наибольшему из рассматриваемых чисел. Особое внимание следует уделить выбору начального значения z.
95
Необходимо предусмотреть, чтобы в процессе поиска начальное значение z по крайней мере один раз было заменено числом из массива x. В некоторых случаях заранее указать такое значение z затруднительно, поэтому в качестве начального значения принимается первый элемент массива х[0], а циклическая работа алгоритма начинается со второго элемента массива. Именно по этому принципу построен следующий фрагмент программы поиска максимального элемента массива:
int n=10, z, j, x[10];
. . .
z=x[0]; j=0; for(int i=1; i<n; i++)
if(z<x[i]) { z=x[i]; j=i; }
В результате вычислений переменная z получит значение, равное наибольшему числу в массиве x.
10.4.2. Задача сортировки и упорядочения массива
При решении этой задачи требуется сформировать новый массив, состоящий из элементов исходного массива, но расположенных в соответствии с предложенным критерием. Возможно два подхода при решении этой задачи. В первом случае исходный массив требуется сохранить для других задач, во втором случае исходный массив можно изменять, переставляя его элементы. Во втором случае программа получается более компактной, поэтому рассмотрим этот случай, тем более, что первый случай легко сводится ко второму путем предварительного переноса содержимого исходного массива в новый рабочий массив, что позволяет сохранить исходный массив.
Пример. Дан массив a[n]. Необходимо переставить этот массив таким образом, чтобы элементы массива были размещены в порядке возрастания их величины. Ход решения этой задачи следующий:
1.В исходном массиве a отыскать наименьший по величине элемент. Запомнить номер этого элемента.
2.Найденный элемент поменять местами с первым элементом масси-
ва.
3.Повторить поиск наименьшего элемента в массиве со второго до n- го элемента.
4.Новый наименьший элемент поменять местами со вторым элементом массива.
5.Этапы 3 и 4 повторить с уменьшающимся остатком массива до полного упорядочения массива.
Рассматриваемая задача решается с помощью следующего фрагмента программы:
for(int i=0; i<n-1; i++) { z=a[i];
k=i;