Преобразование значений температуры от 0 градусов Цельсия

до 100 градусов Цельсия, с шагом 20 градусов:

Цельсий Фаренгейт Абсолютная температура

0 32.00 273.15

20 68.00 293.15

40 104.00 313.15

.........

.........

100 212.00 485.15

Упражнение 2

Разделите программу из упражнения 1 на три файла:

1) главный файл программы;

2) заголовочный файл "conversions.h" с прототипами функций

"fahrenheit_of(...)" и "absolute_value_of(...)";

Файл реализации с определением этих двух функций.

Снова проверьте свою программу для различных исходных данных.

40

Упражнение 3

(а) Создайте заголовочный файл "statistics.h" и соответствующий файл реализа-

ции "statistics.cpp" с функциями "average(...)" и "standard_deviation(...)".

Эти функции должны вычислять среднее значение и среднеквадратическое откло-

Нение для последовательности из 1, 2, 3 или 4 вещественных чисел. Среднеквадра-

тическое отклонение чисел r 1,..., r N определяется как корень из среднего значения

квадратов отклонений чисел от своего среднего:

Σ=

= −

N

i

I r m

N 1

2) (1 σ, где Σ=

=

N

i

I r

N

m

1

1

Подсказки: (1) Примените средства перегрузки функций Си++. (2) Функции

Можно вызывать изнутри друг друга. (3) Максимально используйте возможности

Текстового редактора по копированию фрагментов исходного текста.

(б) Напишите тестовую программу для проверки функций из файла "statistics.h",

Которая в цикле запрашивает исходные данные до тех пор, пока пользователь не

Сообщит о завершении работы (некоторым специально оговоренным числом). Ва-

Ша тестовая программа должна выдавать на экран сообщения, подобные приве-

денным ниже:

Эта программа предназначена для тестирования функций из

заголовочного файла "statistics.h".

Сколько чисел будет в тестовой последовательности – 1, 2, 3

Или 4? (для завершения работы введите 0): 3

Введите первое число: 5

Введите второе число: 7

Введите третье число: 9

Среднее значение: 7. Среднеквадратическое отклонение: 1.63299.

Сколько чисел будет в тестовой последовательности – 1, 2, 3

Или 4? (для завершения работы введите 0): 1

Введите первое число: 5.8

Среднее значение: 5.8. Среднеквадратическое отклонение: 0.

Сколько чисел будет в тестовой последовательности – 1, 2, 3

Или 4? (для завершения работы введите 0): 8

Извините, но эта программа может работать только с 1, 2, 3

Или 4-мя числами.

Сколько чисел будет в тестовой последовательности – 1, 2, 3

Или 4? (для завершения работы введите 0): 0

Программа тестирования функций из заголовочного файла

"statistics.h" завершила работу.

Подсказки: (1) Разрабатывайте свою программу методом "сверху вниз ". Начни-

Те с написания короткой главной функции, в которой вызываются функции-

заглушки, например, " test_three_values() ". Детали этих функций вы уточни-

те позже, после отладки функции " main() ". (2) В качестве высокоуровневой

структуры программы вы можете использовать цикл for с пустым разделом

Инициализации и пустым оператором изменения значений (эквивалент цикла

while, который будет рассматриваться в следующих лекциях).

41

ЛЕКЦИЯ 4. Текстовые файлы и потоки ввода/вывода

Назначение файлов

Во всех рассматривавшихся до сих пор программах ввод данных производился

Только с клавиатуры, а вывод – только на экран. Если в качестве устройств вво-

Да/вывода ограничиться только клавиатурой и экраном, то в таком случае будет

Сложно обработать большие объемы входных данных. Выходные данные, отображен-

Ные на экране, после выключения компьютера безвозвратно теряются.

Для устранения подобных проблем удобно сохранять данные на запоминаю-

Щих устройствах, предназначенных для долговременного хранения данных (обычно

Это магнитные диски). Данные, сгенерированные с помощью одной программы, мож-

Но сохранить на диске и в дальнейшем, при необходимости, извлечь и обработать в

Другой программе.

На дисках данные хранятся в виде структур данных, обслуживаемых операци-

онной системой, – в виде файлов. Файл проще всего представить как линейную по-

Следовательность символов. Текст этой лекции (если не учитывать специальные сим-

волы форматирования) можно сохранить в файле с именем "Lecture_4.txt" в виде

(рис. 1):

Рис. 1. Начало файла "lecture_4.txt".

Потоки ввода/вывода

Перед началом изучения файловых операций в Си++, необходимо ознакомить-

ся с понятием потока ввода/вывода. Поток напоминает "канал" или "трубу", через ко-

Торую данные поступают от передатчика к приемнику. Исключительно важная осо-

Бенность потоковой обработки данных состоит в том, что элементы данных можно

посылать или считывать из потока только по одному за раз, т.е. последовательно.

В данном курсе рассматриваются только однонаправленные потоки, в которых

Данные всегда передаются в одном направлении. Из программы данные можно отпра-

вить (записать) в поток вывода, а получить (прочитать) их в программе из потока

ввода. Например, сразу после запуска программы, поток стандартного ввода "cin"

подключается к клавиатуре, а поток стандартного вывода "cout" – к экрану.

Потоки ввода/вывода, вроде "cin" и "cout", являются примерами объектов

класса "поток". Поэтому изучение потоков полезно и по той причине, что позволяет

Ознакомиться с элементами синтаксиса и некоторыми объектно-ориентированными

понятиями Си++.

Список функций для работы с файловыми потоками хранится в заголовочном

файле "fstream.h". Поэтому во всех рассматриваемых ниже фрагментах программ

предполагается, что в начале программы есть соответствующая директива "#include":

#include<fstream.h>

Создание потоков

В программе перед первым обращением к потоку ввода или вывода необходи-

мо "создать" поток. Операторы для создания потоков похожи на описания перемен-

42

Ных, и они обычно размещаются в начале программы или функции рядом с описа-


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: