alyvolkonskaya1994
16.09.2020 04:25

Паскаль объясните как работает программа подробно Program kursayin_khndir_2;
Type arr = array [1..100] of integer;
var
s1, s2, s3: string;
n1, n2, n3, l1, l2, l3, i: byte;
c: string[1];
begin
writeln(' 1 ');
readln(s1);
writeln(' 2 ');
readln(s2);
l1 := length(s1);
l2 := length(s2);
if l1 > l2 then begin
s3 := s1; l3 := l1;
s1 := s2; l1 := l2;
s2 := s3; l2 := l3;
end;
s3 := ''; n3 := 0;
for i := l1 downto 1 do begin
val(s1[i], n1);
val(s2[l2], n2);
l2 := l2 - 1;
str((n1 + n2 + n3) mod 10, c);
s3 := c + s3;
if n1 + n2 + n3 > 9 then
n3 := 1
else n3 := 0;
end;
while n3 = 1 do begin
if l2 <> 0 then begin
val(s2[l2], n2);
l2 := l2 - 1;
str((n2 + n3) mod 10, c);
s3 := c + s3;
if n2 + n3 < 10 then
n3 := 0;
end
else begin
s3 := '1' + s3;
n3 := 0;
end;
end;
if l2 <> 0 then
s3 := copy(s2, 1, l2) + s3;
writeln('1 + 2 ');
writeln(s3);
end.

Нажмите на рекламу ниже и сразу увидите ответ
Популярные вопросы:
Ответ:
Mila19911
26.01.2023 00:32

Нам важно однозначное разбиение, поэтому вариант "00" не подходит, так как его можно спутать с буквой "Б". Другие значение проверим при дерева.


1. Пусть буква "Г" будет записана в первую ветку (1). Распишем ее.

Первой ветке подходит буква "В", так как код начинается с единицы. Рисуем еще ветку, также с единицей и нулем. Получается, что "В" пойдет во вторую ветку (0), а "Г", соответственно, в первую. Итого получаем: В = 10, Г = 11.


2) Пусть "Г" будет во второй ветке (0). С нуля начинаются буквы "А" и "Б", поэтому их тоже пишем. Рисуем еще две ветки. Так как А = 01, то она пойдет в первую ветку, буквы "Б" и "Г" пишем во вторую. "Б" = 000, поэтому пишем во вторую ветку, следовательно, "Г" пойдет в первую. Итого: А = 01, Б = 000, Г = 001.


Теперь сравним полученные значения. Переведем их в десятичную систему счисления.

11₂ = 1*2¹ + 1*2⁰ = 2 + 1 = 3₁₀.

001₂ = 1*0² + 1*0¹ + 1*2⁰ = 0 + 0 + 1 = 1₁₀.


В итоге, значение 001 является минимальным и соответствует однозначному декодированию.


ответ: 001.


Решение смотри во вложении.


Для передачи по каналу связи сообщения, состоящего только из букв а, б, в, г, решили использовать не
0,0(0 оценок)
Ответ:
umnyyk
01.01.2020 19:59
//Pascal ABC.NET v3.0 сборка 1111

var
 i,a,b:integer;
 ar:array[1..10] of integer;

 procedure oddDec(var a,b:integer);  //подпрограмме переданы аргументы a и b
//процедура для вычитания в нечётном элементе
begin;
a:=a-b;
end;

procedure NotoddInc(var a,b:integer); //подпрограмме переданы аргументы a и b
//процедура для сложения в чётном элементе
begin;
a:=a+b;
end;

begin
randomize;
readln(a); //ввод a
readln(b); //ввод b
writeln('Array:');
for i:=1 to 10 do //весь массив
 begin;
  ar[i]:=random(-20,80); //случайные числа от -20 до 80 включительно
  write(ar[i]:4); //вывод
  if odd(i) then oddDec(ar[i],b) else NotoddInc(ar[i],a);
  {если нечётное, то первая процедура, иначе вторая. Обращаю внимания на то, что элементы меняются сразу после вывода}
 end;
writeln;
writeln('Final array:'); //вывод получившегося массива
for i:=1 to 10 do
write(ar[i]:4);
end.

Пример ввода:
20
10
Пример вывода:
Array:
  10  16   0  60  23   4  22 -20   4  55
Final array:
   0  36 -10  80  13  24  12   0  -6  75  
0,0(0 оценок)
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота