Бражинскене_Алексей
?>

Напишите программу, которая вводит две символьные строки и находит все латинские буквы. которых нет ни в одной из них. заглавные и строчные буквы не различаются. входные данные на вход программе две символьные строки. выходные данные программа должна вывести в одной строке в алфавитном порядке все латинские буквы, которые не встречаются ни в одной из двух входных строк. все буквы должны быть заглавными. если ни одной такой буквы нет, нужно вывести число 0. примеры входные данные qwertyuiop asdfghjklzxc выходные данные bmnv pascal abc 1.8 с использованием множеств

Информатика

Ответы

Strelkov-Roman1263
Var used: Set of Char;
    s1, s2: string;
    i: integer;
    done: boolean;
    c: char;

function IsLetter(c: char): boolean;
begin
  IsLetter := ((c >= 'a') and (c <= 'z')) or ((c >= 'A') and (c <= 'Z'));
end;

function UpperCase(c: char): char;
begin
  if (c >= 'a') and (c <= 'z') then
    UpperCase := Chr(Ord(c) - Ord('a') + Ord('A'))
  else
    UpperCase := c;
end;

begin
used := [];

readln(s1);
readln(s2);

for i := 1 to length(s1) do
  if (IsLetter(s1[i])) then
    include(used, UpperCase(s1[i]));

for i := 1 to length(s2) do
  if (IsLetter(s2[i])) then
    include(used, UpperCase(s2[i]));

done := False;
for c := 'A' to 'Z' do
  if not (c in used) then
  begin
    done := True;
    write(c);
  end;

if not done then
  write(0);

writeln;
end.
olgalooo

254₈ = 172₁₀ = АС₁₆

9F₁₆ = 159₁₀ = 237₈

Объяснение:

Переведите число 254₈ по схеме А8 → А10 → А16

254₈ = 2 * 8² + 5 * 8¹ + 4 * 8⁰ = 2 * 64 + 5 * 8 + 4 * 1 = 128 + 40 + 4 = 172₁₀

254₈ = 172₁₀

172 / 16 = 10 + остаток 12 (С)

10 / 16 = 0 + остаток 10 (А)

записываем остатки снизу вверх

В качестве цифр 16-ой системы счисления используются цифры от 0 до 9 и латинские буквы от A до F.

А = 10₁₀   B = 11₁₀   C = 12₁₀   D = 13₁₀   E = 14₁₀   F = 15₁₀

172₁₀ = АС₁₆

Переведите число 9F₁₆ по схеме А16 → А10 → А8

9F₁₆ = 9 * 16¹ + F * 16⁰ = 9 * 16 + 15 * 1 = 144 + 15 = 159₁₀

В качестве цифр 16-ой системы счисления используются цифры от 0 до 9 и латинские буквы от A до F.

А = 10₁₀   B = 11₁₀   C = 12₁₀   D = 13₁₀   E = 14₁₀   F = 15₁₀

9F₁₆ = 159₁₀

159 / 8 = 19 + остаток 7

19 / 8 = 2 + остаток 3

2 / 8 = 0 + остаток 2

записываем остатки снизу вверх

159₁₀ = 237₈

zanthia94
Задача, аналогичная той, которую публиковали вчера. Только цикл repeat заменяем на while.

Сначала немного математики.
\displaystyle a_n= \frac{n!}{(2n)!}=\frac{\prod_{i=1}^ni}{\prod_{i=1}^{2n}i}=\frac{\prod_{i=1}^ni}{\prod_{i=1}^{n}i\times\prod_{i=n+1}^{2n}i}=\frac{1}{\prod_{i=n+1}^{2n}i}; \quad n\in\mathbb N
О модуле тут смысла нет говорить, поскольку все an - суть положительные величины на интервале (0;1).

uses Crt;

function ai(n:integer):real;
var
  i:integer;
  p:real;
begin
  p:=1;
  for i:=n+1 to 2*n do p:=p*i;
  ai:=1/p
end;

var
  i:integer;
  eps,s,an:real;
begin
  ClrScr;
  Write('eps='); Read(eps);
  s:=0; i:=1; an:=eps+1;
  while an>=eps do begin
     an:=ai(i);
     if an>=eps then begin s:=s+an; Inc(i) end
  end;
  Writeln('s=',s);
  ReadKey
end.

Тестовые решения:
eps=0.07
s= 5.8333333333E-01

eps=0.000001
s= 5.9229647667E-01

eps=1e-8
s= 5.9229653448E-01

Для контроля результата можно отметить, что сумма первых 1000 членов ряда равна приблизительно 5.922965365Е-01

Если раздражает наличие функции, можно и без нее:
uses Crt;

var
  i,j:integer;
  eps,s,an,p:real;
begin
  ClrScr;
  Write('eps='); Read(eps);
  s:=0; i:=1; an:=eps+1;
  while an>=eps do begin
    p:=1;
    for j:=i+1 to 2*i do p:=p*j;
    an:=1/p;
    if an>=eps then begin s:=s+an; Inc(i) end
  end;
  Writeln('s=',s);
  ReadKey
end.

Ответить на вопрос

Поделитесь своими знаниями, ответьте на вопрос:

Напишите программу, которая вводит две символьные строки и находит все латинские буквы. которых нет ни в одной из них. заглавные и строчные буквы не различаются. входные данные на вход программе две символьные строки. выходные данные программа должна вывести в одной строке в алфавитном порядке все латинские буквы, которые не встречаются ни в одной из двух входных строк. все буквы должны быть заглавными. если ни одной такой буквы нет, нужно вывести число 0. примеры входные данные qwertyuiop asdfghjklzxc выходные данные bmnv pascal abc 1.8 с использованием множеств
Ваше имя (никнейм)*
Email*
Комментарий*