Задача 2. Использование целочисленного деления 


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Задача 2. Использование целочисленного деления



Условие задачи. Длительность промежутка времени задана в секундах. Выразить её в часах, минутах и секундах. Например, 7940 с. составляют 2 ° ч. 12 ° мин. 20 с.

Определим исходные данные и требуемые результаты. Дан промежуток времени в секундах – это исходное данное, которое может принимать только целое положительное значение. Для него выделим переменную Т. Результат представляет собой 3 величины: количество часов (переменная Н), минут (М) и секунд (S). Эти значения также могут быть только целыми положительными.

Теперь надо решить, какая последовательность действий позволит получить искомый результат. Каждый знает, что 1 час содержит 60 минут, 1 минута – 60 секунд и, следовательно, 1 час – это 60*60, т.е. 3600 секунд. Поэтому если заданное количество секунд разделить на 3600 и отбросить дробную часть частного, получим целое количество часов во временном отрезке - Н, а остаток от деления будет определять оставшуюся часть отрезка в секундах (Т1), не вошедшую в Н. Например, если заданный промежуток времени составляет 7940 секунд, то целых часов в нём будет Н 7940/3600=2, а оставшаяся часть времени равна 740 секунд (это значение Т1). Поскольку Т1 выражено в секундах, то при делении на 60 целая часть частного будет соответствовать количеству минут (М), содержащихся в Т1, а остаток от деления – количеству оставшихся секунд (S). В нашем примере М будет равно 740/60=12 минут, а остаток составит S =20 секунд. Во всех рассматриваемых языках программирования есть средства (операции или функции) для выполнения целочисленного деления и нахождения остатка. Именно они должны быть использованы для получения результата.

Разделение заданного отрезка Т на составляющие можно проиллюстрировать схемой:

Рис. 1

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

Воспользуемся обозначением div для операции целочисленного деления, а для операции получения остатка от целочисленного деления — mod.

Структурированная запись алгоритма 2

1. Ввести T.

2. Вычислить целую часть от Т/3600 и поместить в переменную Н; остаток от деления Т/3600 поместить в переменную Т1.

3. Выполнить деление Т1 на 60 и целую часть результата присвоить переменной М; остаток от деления присвоить переменной S.

4. Вывести Н, М и S.

Схема алгоритма

Программа на языке Си

#include <stdio.h>

int main (void)

{

unsigned int t, h, t1, m, s;

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

scanf (″%u″, &t);

h=t/3600;

t1=t%3600;

m=t1/60;

s=t1%60;

printf (″%u с = %u ч %u мин %u с″,t,h,m,s);

return 0:

}

Программа на языке Паскаль

Program Pr_2;

Var T, H, T1, M, S: integer;

begin

writeln('Введите время в секундах');

read(T);

H:=T div 3600;

T1:=T mod 3600;

M:=T1 div 60;

S:=T1 mod 60;

writeln(T,' с=', H,' ч', M,' мин', S,' с')

end.

Программа на языке Фортран

Program Pr_2

Implicit none

integer T, H, T1, M, S

print *, 'Введите время в секундах'

read *, T

H = T/3600

T1 = mod(T,3600)

M = T1/60

S = mod(T1,60)

print *, T,' с=', H,' ч', M,' мин', S,' с'

end

Программа на языке Python

print("Введите время в секундах")

t = int(input())

h = t // 3600

t1 = t % 3600;

m = t1 // 60;

s = t1 % 60;

print(t," сек = ",h," ч ",m," мин ",s," сек")

Программа в системе Матлаб

T=input('Введите время в секундах');

H = fix(T/3600);

T1 = mod(T,3600);

M = fix(T1/60);

S = mod(T1,60);

disp(strcat(int2str(T),' с=', int2str(H),' ч',…
int2str(M),' мин', int2str(S),' с'))

 



Поделиться:


Последнее изменение этой страницы: 2021-04-12; просмотров: 99; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 18.222.80.122 (0.005 с.)