Информация на компьютере хранится в структурированном виде. Есть система. На жестком диске размечены логические диски. Чаще всего это либо диск С, либо диски С и D.
Каждый диск представляет из себя древовидную структуру директорий или иначе каталогов (нынче именуемых ПАПКИ) в которых хранятся файлы и, возможно, поддиректории/подпапки.
К нашей задаче.
Пользователь работал с каталогом Автомобили. Затем он поднялся на один уровень выше, затем спустился на 2 ниже и попал в
С:\Транспорт\Сухопутный\Почтовый\Железнодорожный
получается, на 2 уровня выше будет
С:\Транспорт\Сухопутный\.
А на один ниже - тот из которого начинает путь пользователь - Автомобили, получаем
ОТВЕТ: С:\Транспорт\Сухопутный\Автомобили.
Аналогичная задача.
Пользователь находился в каталоге Расписание.Сначала он поднялся на один уровень вверх, затем ещё раз поднялся на один уровень вверх, потом спустился на один уровень вниз. В результате он оказался в каталоге
С:\учёба\информатика\ГИА.
Укажите полный путь каталога, с которым пользователь начинал работу.
1) С :\учёба\информатика\2013\Расписание -- верный ответ
2) С:\учёба\Расписание
3) С:\учёба\2013\Расписание
4) С :\учёба\информатика\Расписание
Поделитесь своими знаниями, ответьте на вопрос:
Программист антон пишет на трех языках программирования: на python, на c++ и на java. вчера вечером антон заметил, что за день количество программ, которые он написал на python’е , в тридцать раз превосходит количество программ, написанных им на c++, а количество программ, написанных им на c++ в тридцать раз меньше, чем количество программ, написанных им на python’е. сколько программ антон написал на java? мистер фокс и мистер форд рассказывают друг другу анекдоты. сначала мистер фокс рассказывает подряд несколько анекдотов, но не больше пяти, чтобы мистеру форду не надоело. затем мистер форд рассказывает подряд несколько анекдотов, но тоже не больше пяти, чтобы мистеру фоксу не надоело. затем опять рассказывает фокс и т.д. они условились заранее, что тот, кто расскажет анекдот с номером 50, пойдет за мороженым. мистер фокс хочет купить мороженое сам. сколько анекдотов ему нужно рассказать первым ходом, чтобы гарантированно этого добиться? комментарий. слово “гарантированно” означает, что у мистера фокса есть стратегия, сколько анекдотов ему нужно рассказывать каждым своим ходом, чтобы рассказать анекдот номер 50, а мистер форд своими действиями никак не сможет ему помешать.
program rome_arabic;
Uses crt;
Const
{римские цифры}
RomeDigits:string='IVXLCDM';
{числа - соответствующие римским цифрам}
ArabicNumbers:array [1..7] of integer =
(1, 5, 10, 50, 100, 500, 1000);
(*
Функция определения правильности ввода арабского числа
*)
function IsArabic(s:string):boolean;
var i,t,c:integer;
begin
IsArabic:=true;
for i:=1 to length(s) do
if not(s[i] in ['0'..'9'])then
begin
IsArabic:=false;
exit;
end;
val(s,t,c);
if (c<>0)or(t<1) then
begin
IsArabic:=false;
exit;
end;
end;
(*
Функция перевода арабского числа в римское
*)
function ArabicToRome (s: string): string;
var
i,n,c: integer;
res: string;
begin
val(s,n,c);
res:='';
i:=7; {Проверяем от больших чисел к меньшим}
while n>0 do
begin
{находим следующее число - из которого будем формировать римскую цифру}
while ArabicNumbers[i]>n do i:=i-1;
res:=res+RomeDigits[i];
n:=n-ArabicNumbers[i];
end;
ArabicToRome := res;
end;
(*
Функция определения правильности ввода римского числа
*)
function IsRome(s:string):boolean;
var i:integer;
begin
IsRome:=true;
if s='' then
begin
IsRome:=false;
exit;
end;
for i:=1 to length(s) do
if not (s[i] in ['I', 'V', 'X', 'L', 'C', 'D', 'M']) then
begin
IsRome:=false;
break;
end;
end;
(*
Функция перевода римского числа в арабское
*)
function RomeToArabic (s: string): integer;
var
b:array[1..100] of integer;
i,j:integer;
res:integer;
begin
for i:=1 to length(s) do
begin
if s[i]='I' then b[i]:=1;
if s[i]='V' then b[i]:=5;
if s[i]='X' then b[i]:=10;
if s[i]='L' then b[i]:=50;
if s[i]='C' then b[i]:=100;
if s[i]='D' then b[i]:=500;
if s[i]='M' then b[i]:=1000;
end;
res:=b[1];{массив локальная переменная и
сравнение первого элемента с нулевым искажает число,
почему-то считает, что b[0]=1 и автоматом вычитает 2}
for i:=2 to length(s) do
begin
res:=res+b[i];
if b[i-1]<b[i] then res:=res-2*b[i-1]{вот здесь}
end;
RomeToArabic:=res;
end;
{Основная программа}
var
arabic: string; {арабское число}
rome: string; {римское число}
ask: char; {режим перевода чисел}
begin
clrscr;
writeln('Программа переводит римское число в арабское или арабское в римское');
repeat
clrscr;
writeln('Выберите режим перевода:');
writeln('1 - римское число в арабское');
writeln('2 - арабское число в римское');
writeln('другое - выход');
ask:=readkey;
case ask of
'1': begin {Римское в арабское}
write('Введите римское число: ');
readln(rome);
if IsRome(rome) then
writeln('Арабское число = ',RomeToArabic(rome))
else writeln('В римской записи числа допущены ошибки! Перевод не возможен!');
writeln('Press Enter...');
readln
end;
'2':begin {арабское в римское}
write('Введите арабское число: ');
readln(arabic);
if IsArabic(arabic) then
writeln('Римская запись = ',ArabicToRome(arabic))
else writeln('В арабской записи числа допущены ошибки! Перевод не возможен!');
writeln('Press Enter...');
readln
end;
else exit;
end;
until not(ask in ['1','2']);
end.