В
Все
М
Математика
О
ОБЖ
У
Українська мова
Д
Другие предметы
Х
Химия
М
Музыка
Н
Немецкий язык
Б
Беларуская мова
Э
Экономика
Ф
Физика
Б
Биология
О
Окружающий мир
Р
Русский язык
У
Українська література
Ф
Французский язык
П
Психология
А
Алгебра
О
Обществознание
М
МХК
В
Видео-ответы
Г
География
П
Право
Г
Геометрия
А
Английский язык
И
Информатика
Қ
Қазақ тiлi
Л
Литература
И
История
YaShKa111111
YaShKa111111
20.03.2023 13:08 •  Информатика

Преобразовать программу, чтобы с ее можно было находить слова с наиболее частым вхождением буквы ‘я’. (программа должна находить букву в словах из привязанного файла). var sim: array[0..10]of string; c: char; i,k,p: integer; f1: text; begin assign(f1,'file1.txt'); reset(f1); clrscr; randomize; writeln('исходный массив'); for p: = 1 to 6 do begin for i: = 1 to 10 do begin sim[p]: =sim[p]+chr(random(32)+ord('а')); end; writeln(sim[p]); writeln(f1,sim[p]); end; writeln; close(f1); end.

Показать ответ
Ответ:
DOSYMZHAN1
DOSYMZHAN1
08.10.2020 16:03
Var Sim:array[0..10] of string;

function count_ya(var s: string): integer;
begin
  var i, n, len: integer;
  var c: char;
 
  n := 0;
  len := Length(s);
  for i := 1 to len do begin
    c := s[i];
    if (c = 'я') or (c = 'Я') then begin
      n := n + 1;
    end;
  end;
 
  result := n;
end;

procedure word(var s: string);
begin
  var i, c, k, j: integer;
 
  c := count_ya(s);
 
  for i := 0 to 10 do begin
    if count_ya(Sim[i]) < c then begin
      for k := 9 downto i do begin
        Sim[k + 1] := Sim[k];
      end;
    
      Sim[i] := s;
      break;
    end;
  end;
end;

Begin
  Var C: Char;
  Var i, k: integer;
  Var f1: text;
  Var s: string;

  assign(f1, 'file1.txt');
  reset(f1);
  randomize;

  i := 0;
  while not Eof(f1) do begin
    read(f1, C);
    if ((C >= 'а') and (C <= 'я')) or ((C >= 'А') and (C <= 'Я')) then begin
      i := 1;
      s := s + C;
    end else begin
      if i = 1 then begin
        word(s);
      end;
      i := 0;
      s := '';
    end;
  end;
 
  if i = 1 then begin
    word(s);
  end;
 
  close(f1);
 
  for i := 0 to 10 do begin
    s := Sim[i];
    if s = '' then break;
    writeln(s);
  end;
end.
0,0(0 оценок)
Популярные вопросы: Информатика
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота