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

сделать Сор по информатике вот это


сделать Сор по информатике вот это

Показать ответ
Ответ:
Ученик22811111111
Ученик22811111111
29.10.2021 18:04
//Pascal ABC.NET v3.1 сборка 1219

Const chb:set of char=['а'..'я','a'..'z']; //множество букв

Var
 ar,s,st:string;
 i,j,n:integer;
 c:char;
begin
 readln(s); //читаем текст
 n:=0; //обнуляем счётчик
 for i:=1 to length(s) do {всё в нижнем регистре, чтобы не считать заглавную и строчную буквы разными}
 s[i]:=lowcase(s[i]);
 for i:=1 to length(s) do //снова пройдёмся по каждой букве
  begin
   st:=s; {передаём переменной текст, тем самым не трогая "оригинал"}
    while pos(s[i],st)<>0 do //пока в копии есть символ с заданным циклом for индексом
     begin
      delete(st,pos(s[i],st),1); {...удаляем этот символ(по одному за шаг вложенного цикла)}
      inc(n); //увеличиваем число удалённых
     end; {таким образом, данный цикл позволяет проверить количество вхождений символа в строку}
    if (n<=2) and (pos(s[i],ar)=0) and (s[i] in chb) then ar:=ar+s[i]; {если вхождений не больше 2 и символа нет в конечной строке(чтобы не было повторов) и символ есть в множестве букв(чтобы не было знаков препинания), то добаляем в конечную строку}
    n:=0; //обнуляем счётчик 
 end;
 for i:=1 to length(ar)-1 do {Здесь могла быть "быстрая сортировка", но люди не знающие ничего, кроме "пузырька" будут против}
  for j:=i+1 to length(ar) do
   if ar[i]>ar[j] then {сравниваем символы. Тип char является целочислительным, следовательно, нам можно}
    begin 
    c:=ar[i];
     ar[i]:=ar[j];
     ar[j]:=c;
    end;
 writeln('Result:'); //вывод конечной строки
 for i:=1 to length(ar) do
  write(ar[i],' ');
end.

Пример ввода:
Dds.
Пример вывода:
Result:
d s
0,0(0 оценок)
Ответ:
marylist2005
marylist2005
14.08.2021 12:06
{Предвещая недовольство: мне самому не нравится эта подпрограмма, но динамические массивы обычно не изучают в школьной программе}

//Pascal ABC.NET v3.1 сборка 1219

Const
 n1=5;
 m1=8;
 n2=6;
 m2=4;

 Type
 matrixa=array[1..n1,1..m1] of integer;
 matrixb=array[1..n2,1..m2] of integer;

 procedure FindInd(f:integer;maa:matrixa;mab:matrixb);
Var i,j:integer;
 s:string;
 begin
  for i:=1 to n1 do 
   for j:=1 to m1 do
     if maa[i,j]=f then s:=s+'['+inttostr(i)+']['+inttostr(j)+']'+chr(10)+chr(13);
  writeln('For A:');
writeln(s);
  s:='';
  for i:=1 to n2 do
    for j:=1 to m2 do
     if mab[i,j]=f then s:=s+'['+inttostr(i)+']['+inttostr(j)+']'+chr(10)+chr(13);
  writeln('For B:');
writeln(s);
 end;

      Var
 maa:matrixa;
 mab:matrixb;
 i,j,f:integer;
begin
 randomize;
 writeln('Matrix A:');
 for i:=1 to n1 do
  begin
   for j:=1 to m1 do
    begin
     maa[i,j]:=random(20);
     write(maa[i,j]:4);
    end;
  writeln;
 end;
 writeln('Matrix B:');
 for i:=1 to n2 do
  begin
   for j:=1 to m2 do
    begin
     mab[i,j]:=random(20);
     write(mab[i,j]:4);
    end;
  writeln;
 end;
 readln(f);
 FindInd(f,maa,mab);
end. 

Пример ввода:
2
Пример вывода:
Matrix A:
  14  10  13  11   6   9  14   9
  10   5  12  11  17   5   1   8
   4   6   0  19  17   0   1   8
  16  13   6   9  15  12  14  18
   2   2  15   1   0   7  10   5
Matrix B:
   4   9  13  19
  13  11  10   2
   2  18   9  18
  15   2   7  14
   9   4  14  13
   2   4  13  18
For A:
[5][1]
[5][2] 
For B:
[2][4]
[3][1]
[4][2]
[6][1]
0,0(0 оценок)
Популярные вопросы: Информатика
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота