ПРИМЕР ПРОГРАММЫ

ПРИМЕР ПРОГРАММЫ

     На рис. 5.8 приведена программа, которая может оказаться полезной тем, кто занимается бегом, и которая иллюстрирует некоторые положения данной главы. Она выглядит довольно длинной, но все вычисления в ней выполняются шестью операторами, помещенными в конце. Большей частью программа занимается организацией диалога между машиной и пользователем. Мы ввели в программу достаточно большое число комментариев, чтобы сделать ее почти самодокументируемой. Просмотрите ее, а затем мы объясним некоторые ее моменты.

/* бег */

# define SM     60 /* число секунд в минуте */

# define SH   3600 /* число секунд в часе */

# define МК  0.62137 /* число миль в километре */

main()

{

float distk, distm;    /* дистанция в км и милях */

float rate;   /* средняя скорость в милях в час */

int min, sec;   /* время бега в минутах и секундах */

int time;  /* время бега в секундах */

float mtime;    /* время пробега одной мили в секундах */

int mmin, msec;    /* время пробега одной мили в минутах и секундах */

printf(" Эта программа пересчитывает ваше время пробега дистанции, выраженной в км, ");

printf(" во время, требуемое для пробега одной мили, и вашу среднюю ");

printf(" скорость в милях в час, ");

printf(" Укажите, пожалуйста, дистанцию в километрах. ");

scanf(" %f ", &distk);

printf(" Введите затем время в минутах и секундах. ");

printf(" Начните с ввода минут. ");

scanf(" %d", &min);

printf(" Теперь вводите секунды. ");

scanf(" %d", &sec);time = SM * mm + sec; /* переводит время в секунды */

distm = MK * distk; /* переводит километры в мили */

rate = distm / time*SH; /* число миль в сек * число

                    сек в час = число миль в час */

mtime = (float)time / distm;  /* время/дистанция = время на милю */

mmin = (int)mtime / SM; /* находит целое число минут */

msec = (int)mtime % SM; /* находит остаток в секундах */

printf("Bы пробежали %1.2f KM (%1.2f мили) за %d мин %d с ",distk, distm, mm, sec);

printf(" Эта скорость соответствует пробегу мили за %d : мин", mmin);

printf("%d c. Ваша средняя скорость %l.2f миль/ч ", msec, rate);

}

РИС. 5. 8. Программа, полезная для тех, кто занимается бегом

     Здесь мы применили тот же подход, который использовали в программе секунды в минуты для перевода времени, выраженного в секундах, в минуты и секунды. Кроме того, нам пришлось воспользоваться преобразованиями типов. Почему? Потому что для той части программы, которая занимается переводом секунд в ми нуты, нам требуются аргументы целого типа, а при преобразовании из метрической системы в мили используются числа с плавающей точкой. Мы применили операцию приведения для того, чтобы сделать эти преобразования явными.

     Честно говоря, нашу программу можно было бы написать, используя только автоматическое преобразование типов. Мы так и делали, применяя операцию приведения переменной mtime к типу int, чтобы при вычислении времени все операнды были целого типа. Однако такая версия компилятора работает всего на одной из двух доступных нам систем. Использование операции приведения не только проясняет ваш замысел человеку, знакомящемуся c вашей программой, но и упрощает ее компиляцию.

     Вот результат работы данной программы.

Эта программа пересчитывает ваше время пробега дистанции, выраженной в км,во время, требуемое для пробега одной мили, и вашу среднюю скорость, в милях в час.

Укажите, пожалуйста дистанцию в километрах.10,0.Введите затем время в минутах и секундах.

Начните с ввода минут.36.Теперь введите секунды.23Вы пробежали 10,00 км (6,21 мили) за 36 мин. 23 с.

Эта скорость соответствует пробегу мили за 5 мин 51 с.

Ваша средняя скорость 10.25 миль/ч

Поделитесь на страничке

Следующая глава >

Похожие главы из других книг

Пример программы

Из книги Введение в OpenGL автора Компьютеры Автор неизвестен -

Пример программы Результатом выполнения этой программы является построение тетраэдра с вращающимися вокруг него кольцами, на которые нанесена текстура. В среде MS Visual C++ программа может компилироваться без изменений, а при компиляции в Borland C++ придется закомментировать


6.1.2. Учебный пример: параметр -v программы fetchmail

Из книги Искусство программирования для Unix автора Реймонд Эрик Стивен

6.1.2. Учебный пример: параметр -v программы fetchmail fetchmail — программа-шлюз. Ее главной задачей является преобразование между протоколами удаленной загрузки почты РОРЗ или IMAP и собственным протоколом Internet SMTP для обмена почтой. Он чрезвычайно широко распространен на


6.1.2. Учебный пример: параметр -v программы fetchmail

Из книги Искусство программирования для Unix автора Реймонд Эрик Стивен

6.1.2. Учебный пример: параметр -v программы fetchmail fetchmail — программа-шлюз. Ее главной задачей является преобразование между протоколами удаленной загрузки почты POP3 или IMAP и собственным протоколом Internet SMTP для обмена почтой. Он чрезвычайно широко распространен на Unix-машинах,


6.7. Пример программы клиент-сервер

Из книги UNIX: взаимодействие процессов автора Стивенс Уильям Ричард

6.7. Пример программы клиент-сервер Перепишем наш пример программы типа клиент-сервер из раздела 4.2 с использованием двух очередей сообщений. Одна из очередей предназначена для передачи сообщений от клиента серверу, а другая — в обратную сторону.Заголовочный файл svmsg.h


Пример: перенос программы sortMM (программа 5.5)

Из книги Системное программирование в среде Windows автора Харт Джонсон М

Пример: перенос программы sortMM (программа 5.5) В программе sortMM (программа 5.5) интенсивно используются указатели, и в частности, арифметика указателей. Подготовка этой программы к переносу, в результате чего ее можно будет компоновать и выполнять под управлением как Win32, так и


1.1. Пример программы: родственные отношения

Из книги Программирование на языке Пролог для искусственного интеллекта автора Братко Иван

1.1. Пример программы: родственные отношения Пролог — это язык программирования, предназначенный для обработки символьной нечисловой информации. Особенно хорошо он приспособлен для решения задач, в которых фигурируют объекты и отношения между ними. На рис. 1.1


16.1.3. Пример составления программы

Из книги VBA для чайников автора Каммингс Стив

16.1.3. Пример составления программы С системами, управляемыми образцами, связан свой особый стиль программирования, требующий специфического программистского мышления. Мы говорим в этом случае о программировании в терминах образцов.В качестве иллюстрации, рассмотрим


Пример программы

Из книги Linux: Полное руководство автора Колисниченко Денис Николаевич

Пример программы Чтобы сделать обсуждение иерархии VBA-элементов немного менее абстрактным, давайте рассмотрим приведенный ниже программный код модуля. Этот модуль содержит все упомянутые выше элементы (за исключением проекта, поскольку модули содержатся в проектах, а


21.4. Пример программы на С

Из книги Защита от хакеров корпоративных сетей автора Автор неизвестен

21.4. Пример программы на С В п. 9.2.3 я сказал о состояниях процесса и перечислил среди них состояние «зомби». Зомби — это процесс, который уже завершился, но его родитель еще не получил сигнала о его завершении и не удалил его структуру из таблицы процессов. Такое может


22.3. Пример отладки программы

Из книги Язык Си - руководство для начинающих автора Прата Стивен

22.3. Пример отладки программы Давайте напишем программу, которая обнуляет элементы массива a[]. Да, программа ничего полезного не делает, но на ее примере можно продемонстрировать работу с отладчиком gdb.Вот листинг программы:Листинг 22.1. Демонстрационная программа,


Пример программы, уязвимой к переполнению буфера

Из книги Программирование для Linux. Профессиональный подход автора Митчелл Марк

Пример программы, уязвимой к переполнению буфера После изучения основ переполнения буфера пришло время рассмотреть пример программы, извлекающей из него пользу, – программы переполнения буфера. В интересах простоты изучения программа должна быть понятной, а каждый


Пример уязвимой программы

Из книги автора

Пример уязвимой программы На примере уязвимой программы рассмотрим, каким образом злоумышленник может использовать уязвимости форматирующей строки для достижения своих целей. Наибольший интерес представляют способы удаленного использования уязвимостей


ПРИМЕР ПРОСТОЙ ПРОГРАММЫ НА ЯЗЫКЕ СИ

Из книги автора

ПРИМЕР ПРОСТОЙ ПРОГРАММЫ НА ЯЗЫКЕ СИ Давайте рассмотрим простую программу на языке Си. Следует сразу сказать, что такой пример нужен нам лишь для выявления некоторых основных черт любой программы, написанной на языке Си. Далее мы дадим пояснения к каждой строке, но, перед


ПРИМЕР ПРОГРАММЫ

Из книги автора

ПРИМЕР ПРОГРАММЫ      На рис. 5.8 приведена программа, которая может оказаться полезной тем, кто занимается бегом, и которая иллюстрирует некоторые положения данной главы. Она выглядит довольно длинной, но все вычисления в ней выполняются шестью операторами, помещенными


5.1.6. Пример программы

Из книги автора

5.1.6. Пример программы Программа, приведенная в листинге 5.1, иллюстрирует методику совместного использования памяти.Листинг 5.1. (shm.c) Пример совместного использования памяти#include <stdio.h>#include <sys/shm.h>#include <sys/stat.h>int main() { int segment_id; char* shared_memory; struct shmid_ds shmbuffer; int segment_size; const