var
FileName, Ext: string;
i, p: Integer;
begin
Write ('Введите имя файла: ');
Read (FileName);
p := 0;
for i := Length (FileName) downto 1 do begin
if FileName [i] = '.' then begin
p := i;
Break;
end;
end;
if p = 0 then begin
WriteLn ('Не найдено расширение имени файла!');
Exit;
end;
Ext := LowerCase (Copy (FileName, p + 1, Length (FileName) - p));
if (Ext = 'htm') or (Ext = 'html') or (Ext = 'php') then
WriteLn ('Это веб - страница!')
else if (Ext = 'doc') or (Ext = 'docx') then
WriteLn ('Это документ Microsoft Word!')
else if (Ext = 'xls') or (Ext = 'xlsx') then
WriteLn ('Это документ Microsoft Excel!')
else if (Ext = 'zip') or (Ext = 'rar') or (Ext = '7z') then
WriteLn ('Это архив!')
else if Ext = 'exe' then
WriteLn ('Это программа!')
else
WriteLn ('Что - то другое.');
end.
Объяснение:
V - это знак "ИЛИ"
& - знак "И"
Действия тут выполняются как в математике:
Сначала умножение (знак &), потом сложение (знак V)
Ну или сначала в скобках действия выполняются.
Для этого есть специальная таблица:
0 v 0 = 0
0 v 1 = 1
1 v 0 = 1
1 v 1 = 1
0 & 0 = 0
0 & 1 = 0
1 & 0 = 0
1 & 1 = 1
2)
(((1 v 0) v 1) v 1)
1 v 0 = 1
1 v 1 = 1
1 v 1 = 1
ответ: 1
7)
((0 & 0) v 0) & (1 v 1)
0 & 0 = 0
0 v 0 = 0
1 v 1 = 1
0 & 1 = 0
ответ: 0
9)
((1 & A) v (B & 0)) v 1
Начнём со второй скобки:
B & 0 = 0 в любом случае. Остаётся:
((1 & A) v 0)) v 1
Если A = 1, то:
1 & 1 = 1
1 v 0 = 1
1 v 1 = 1
Если A = 0, то:
1 & 0 = 0
0 v 0 = 0
0 v 1 = 1
ответ: 1 в любом случае, даже можно было не решать, так как в конце стоит " v 1 " - это значит, что в любом случае ответ будет 1