1. часовые пояса
таня решила позвонить своей подруге, но вспомнила, что та живет далеко, поэтому
в часовом поясе подруги может быть слишком поздно или рано. часы у тани показывают ровно
h часов, таня живёт в часовом поясе utc+a, а ее подруга – в часовом поясе utc+в. тане
определить время в часовом поясе подруги в этот момент.
программа получает на вход три целых числа н. а и в. 0shs 23, -11sas 12. -11sbs 12.
в часовом поясе utc+a местное время больше, чем время в часовом поясе utc+0
на а часов (если же a< 0, то меньше на ai часов). например, если в часовом поясе utc+0 сейчас
12 часов, то в часовом поясе utc+1 - 13 часов, а в часовом поясе utc-1- 11 часов.
программа должна вывести одно число — время (количество часов) в часовом поясе подруги.
под временем в этой подразумевается количество часов, которое может принимать
значения от 0 до 23. при решении обратите внимание, что в часовом поясе подруги может
быть уже следующая дата или предыдущая дата, программа должна вывести количество часов
на часах подруги в этот момент, то есть число от 0 до 23.
пример входных и выходных данных
ввод вывод примечание
15
у тани - 15 часов, она живёт в часовом поясе utc+3. в часовом поясе
utc+0 сейчас 12 часов. подруга живёт в часовом поясе utc-5, и у н
const n=100;
var ar:array of array of integer;
ars:array of array of string;
i:integer;
procedure complection(var ar:array of array of integer;var ars:array of array of string);
var
i,j:integer;
begin;
for i:=1 to n do
begin;
for j:=1 to n do
begin;
ar[i,j]:=random(9);
str(ar[i,j],ars[i,j]);
end;
end;
end;
procedure burning(ars:array of array of string);
var
i,j:integer;
t:text;
begin;
assign(t,'text.txt');
rewrite(t);
for i:=1 to n do
begin;
writeln(t,' ');
for j:=1 to n do
write(t,ars[i,j],' ');
end;
end;
begin;
randomize;
setlength(ar,n+1);
setlength(ars,n+1);
for i:=1 to n do
begin;
setlength(ar[i],n+1);
setlength(ars[i],n+1);
end;
complection(ar,ars);
burning(ars);
end.
const
MAX_SIZE = 100;
var
size, n: integer;
stack: array[1..MAX_SIZE] of integer;
procedure push(a: integer);
begin
inc(size);
stack[size] := a;
end;
procedure view;
var
i: integer;
begin
for i := 1 to size do
write(stack[i], ' ');
writeln;
end;
Для очереди:
const
MAX_SIZE = 100;
var
head, tail: integer;
queue: array[1..MAX_SIZE] of integer;
procedure push(a: integer);
begin
queue[tail] := a;
inc(tail);
end;
procedure view;
var
i: integer;
begin
for i := head to tail - 1 do
write(queue[i], ' ');
writeln;
end;
И стек и очередь реализованы с массива. Нужно следить, чтобы размер структуры не был больше размера массива