Чтение онлайн

на главную - закладки

Жанры

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

Д. МАРТИН

Шрифт:

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

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

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

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

scanf(" %f ", &distk);

printf("

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

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

scanf(" %d", &min);

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

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 с \n",distk, distm, mm, sec);

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

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

}

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

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

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

операции приведения не только проясняет ваш замысел человеку, знакомящемуся c вашей программой, но и упрощает ее компиляцию.

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

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

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

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

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

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

ЧТО ВЫ ДОЛЖНЫ БЫЛИ УЗНАТЬ В ЭТОЙ ГЛАВЕ

Как использовать операции: +,-,*,/,%,++, --, (type).

Что такое операнд: это - величина, над которой выполняется операция.

Что такое выражение: совокупность операций и операндов.

Как вычислять значение выражения: в соответствии с порядком старшинства.

Как распознать оператор: по символу.

Виды операторов: операторы описания, присваивания, while, составной.

Как сформировать составной оператор: заключить последовательность операторов в фигурные скобки {}.

Как сформируется оператор while: while (проверка условия) оператор.

Как вычисляются выражения со смешанными типами данных: с помощью автоматического преобразования типов.

ВОПРОСЫ И ОТВЕТЫ 

Вопросы.

1. Предположим, все переменные имеют тип int. Определите значение каждой из последующих переменных:

а. х = (2+3)*6,

б. х = (12+6)/2*3,

в. y = x = (2+3)/4,

г. y = 3 + 2*(x = 7/2 ),

д. x = (int)3.8 + 3.3,

2. Мы подозреваем, что в программе, приведенной ниже, имеется несколько ошибок. Сумеете ли вы помочь нам их обнаружить?

main

{

int i = 1,

float n;

 printf(" Внимание! Сейчас появится несколько дробей. \n");

while (i < 30)

n = 1/ i;

printf(" %f", n);

printf(" Вот и все! Конец! \n"),

}

3. Ниже приведена первая попытка сделать программу "секунды в минуты" диалоговой. Программа нас не удовлетворяет. Почему? Как ее улучшить?

#define SM 60

main

{

int sec, mm, left,

Поделиться:
Популярные книги

Седьмая жена короля

Шёпот Светлана
Любовные романы:
любовно-фантастические романы
5.00
рейтинг книги
Седьмая жена короля

Вернуть невесту. Ловушка для попаданки

Ардова Алиса
1. Вернуть невесту
Любовные романы:
любовно-фантастические романы
8.49
рейтинг книги
Вернуть невесту. Ловушка для попаданки

Истинная поневоле, или Сирота в Академии Драконов

Найт Алекс
3. Академия Драконов, или Девушки с секретом
Любовные романы:
любовно-фантастические романы
6.37
рейтинг книги
Истинная поневоле, или Сирота в Академии Драконов

Неудержимый. Книга XVI

Боярский Андрей
16. Неудержимый
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Неудержимый. Книга XVI

Попаданка в академии драконов 2

Свадьбина Любовь
2. Попаданка в академии драконов
Любовные романы:
любовно-фантастические романы
6.95
рейтинг книги
Попаданка в академии драконов 2

Нечто чудесное

Макнот Джудит
2. Романтическая серия
Любовные романы:
исторические любовные романы
9.43
рейтинг книги
Нечто чудесное

Девочка-лед

Джолос Анна
Любовные романы:
современные любовные романы
5.00
рейтинг книги
Девочка-лед

Сотник

Ланцов Михаил Алексеевич
4. Помещик
Фантастика:
альтернативная история
5.00
рейтинг книги
Сотник

Эволюционер из трущоб

Панарин Антон
1. Эволюционер из трущоб
Фантастика:
попаданцы
аниме
фэнтези
фантастика: прочее
5.00
рейтинг книги
Эволюционер из трущоб

Новые горизонты

Лисина Александра
5. Гибрид
Фантастика:
попаданцы
технофэнтези
аниме
сказочная фантастика
фэнтези
5.00
рейтинг книги
Новые горизонты

Возвышение Меркурия

Кронос Александр
1. Меркурий
Фантастика:
героическая фантастика
попаданцы
аниме
5.00
рейтинг книги
Возвышение Меркурия

Скандальный развод, или Хозяйка владений "Драконье сердце"

Милославская Анастасия
Фантастика:
попаданцы
фэнтези
5.00
рейтинг книги
Скандальный развод, или Хозяйка владений Драконье сердце

Курсант: Назад в СССР 7

Дамиров Рафаэль
7. Курсант
Фантастика:
попаданцы
альтернативная история
5.00
рейтинг книги
Курсант: Назад в СССР 7

Шериф

Астахов Евгений Евгеньевич
2. Сопряжение
Фантастика:
боевая фантастика
постапокалипсис
рпг
6.25
рейтинг книги
Шериф