Есть ответ 👍

В двух файлах записаны отсортированные по возрастанию массивы неизвестной длины. Объединить их и записать результат в третий файл. Полученный массив также должен быть отсортирован по возрастанию.
На питоне

213
281
Посмотреть ответы 2

Ответы на вопрос:


1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

var f1,f2,f3:text;

   n,i,a,b:integer;

begin

//создадим исходные файлы, можно вынести в отдельную программу

//или создать файлы вручную

randomize;

assign(f1,'f1.txt');

rewrite(f1);

assign(f2,'f2.txt');

rewrite(f2);

write('Сколько чисел ввести в первый файл n=');

readln(n);

writeln('Содержание файла f1:');

a:=1;

for i:=1 to n do

begin

 a:=a+random(5);

 write(f1,' ',a);

 write(' ',a);

end;

writeln;

write('Сколько чисел ввести во второй файл n=');

readln(n);

writeln('Содержание файла f2:');

a:=1;

for i:=1 to n do

begin

 a:=a+random(5);

 write(f2,' ',a);

 write(' ',a);

end;

writeln;

reset(f1);

reset(f2);

assign(f3,'f3.txt');

rewrite(f3);

//если не конец файла, то читаем числа иначе создаем барьер из

//максимально возможного целого числа

if not eof(f1) then read(f1,a) else a:=maxint;

if not eof(f2) then read(f2,b) else b:=maxint;

while (a<maxint) or (b<maxint) do//пока оба файла не кончились

begin

 if (a<=b) and (a<maxint) then //если 1<=2

  begin

   write(f3,' ',a);//1 пишем в файл 3

   if not eof(f1) then read(f1,a) else a:=maxint;//если не конец 1,

                                                 //то читаем следующее , иначе барьер

 end

 else if b<a then //иначе если 2<1 то же но со 2 файлом

  begin

   write(f3,' ',b);

   if not eof(f2) then read(f2,b) else b:=maxint;

 end;

end;

reset(f3);//смотрим что получилось

writeln('Слияние файлов:');

while not eof(f3) do

begin

 read(f3,a);

 write(' ',a);

end;

close(f1);

close(f2);

close(f3);

end.

Объяснение:

Вроде бы так, я не слишком в этом хорош.


запишем условие: информационный объем сообщения записывается так i=3кб, количество символов обозначается буквой к=3072, нужно вычислить мощность алфавита, которым написано сообщение - это буква n.

решение: выразим информационный объем сообщения в битах. для этого запишем так i=3*1024*8=24576 бит

информационный объем сообщения равен произведению кол-ва символов на вес 1 символа i=k*i,  подставим в формулу то, что известно

24576=3072*i, i=8 бит n=256

Реши свою проблему, спроси otvet5GPT

  • Быстро
    Мгновенный ответ на твой вопрос
  • Точно
    Бот обладает знаниями во всех сферах
  • Бесплатно
    Задай вопрос и получи ответ бесплатно

Популярно: Информатика

Caktus Image

Есть вопросы?

  • Как otvet5GPT работает?

    otvet5GPT использует большую языковую модель вместе с базой данных GPT для обеспечения высококачественных образовательных результатов. otvet5GPT действует как доступный академический ресурс вне класса.
  • Сколько это стоит?

    Проект находиться на стадии тестирования и все услуги бесплатны.
  • Могу ли я использовать otvet5GPT в школе?

    Конечно! Нейросеть может помочь вам делать конспекты лекций, придумывать идеи в классе и многое другое!
  • В чем отличия от ChatGPT?

    otvet5GPT черпает академические источники из собственной базы данных и предназначен специально для студентов. otvet5GPT также адаптируется к вашему стилю письма, предоставляя ряд образовательных инструментов, предназначенных для улучшения обучения.

Подпишись на наш телеграмм канал

GTP TOP NEWS