Коваленко
?>

написанное письмо состоит из 43 символов. каков размер письма в битах, байтах?

Информатика

Ответы

Korikm

ответ-

344 бита

43 байта

Хабарьева Андрей1056
Решение в PascalABC.NET 3.4

*** этот файл мы должны назвать nekkit20.pas ***
*** после его компиляции будет создан модуль ***

unit nekkit20;

type
  tra=(string,integer);

function RomeToArab(s:string):integer;
// Перевод римских чисел (не больших MMMCMXCIX) в арабские
begin
  var ar:='IVXLCDM';
  var aa:=Arr(1,5,10,50,100,500,1000);
  var n:=0;
  Result:=0;
  foreach var c in s do
  begin
    var c1:=n;
    n:=aa[Pos(c,ar)-1];
    Result+=n+(n>c1?-2*c1:0)
  end;
end;

function Equal(r:array of string; a:array of integer):sequence of tra;
// Возвращает последовательность кортежей
// из массива римских чисел (массив r),
// для которых есть соответствие в массиве арабских чисел (массив a) 
begin
  foreach var q in r do
  begin
    var n:=RomeToArab(q);
    if a.IndexOf(n)>-1 then yield((q,n))
  end
end;

end.

*** а это другой файл с любым именем, кроме nekkit20 ***
*** он обращается к молулю nekkit20 ***

uses nekkit20;

begin
  var sr:=Arr('DXVIII','LXIII','MII','XIV','LXXXVIII','CXCVI');
  var ar:=Arr(14,98,196,1002,518,64,87);
  var R:=Equal(sr,ar);
  if R.Count=-1 then Writeln('Нет совпадений')
  else
    foreach var t in R do
      Writeln(t[0],' = ',t[1])
end.

*** Контрольный пример ***

DXVIII = 518
MII = 1002
XIV = 14
CXCVI = 196
Sinelnikov1650
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <locale.h>

void swap (int *a, int *b)
{
    int temp = *a;
    *a = *b;
    *b = temp;
}
 
void printArray (int arr[], int n)
{
    int i;
    for (i = 0; i < n; i++) printf("%3d ", arr[i]);
    printf("\n");
}
 
void randomize ( int arr[], int n )
{
    long long x;
    asm("rdtsc" : "=A"(x));
    srand(x);
    int i;
    for (i = n - 1; i > 0; i--)
    {
        int j = rand() % (i+1);
        swap(&arr[i], &arr[j]);
    }
}

int main()
{
    setlocale(LC_ALL, "Rus");
    int A[10] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9};
    int B[10] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9};  
    int C[10];
    
    randomize (A, 10);
    printf("Первый массив:\n");
    printArray(A, 10);
   
    randomize (B, 10);
    printf("Второй массив:\n");
    printArray(B, 10);
    
    int i = 0, j = 0;
    
    for (i = 0; i < 10; i++)
        for (j = 0; j < 10; j++)
            if (A[i] == B[j])
            {
                C[i] = i + j;
                break;
            }
    printf("Третий массив:\n");
     printArray(C, 10);
     
    return 0;
}

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

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

написанное письмо состоит из 43 символов. каков размер письма в битах, байтах?
Ваше имя (никнейм)*
Email*
Комментарий*