• Помогите пожалуйста составить программу на Паскале(подробно). Дан текст. Выведите в алфавитном порядке все буквы текста, входящие в него: - не более двух раз

Ответы 9

  • а можно эту программу без объяснений написать все как есть?)) пожалуйста
    • Автор:

      parker
    • 6 лет назад
    • 0
  • 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 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]; n:=0; end;
    • Автор:

      abramb39x
    • 6 лет назад
    • 0
  • for i:=1 to length(ar)-1 do for j:=i+1 to length(ar) do if ar[i]>ar[j] then 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.
    • Автор:

      stanton
    • 6 лет назад
    • 0
  • ухх, какая длинная программа. Спасибо)
    • Автор:

      roland13
    • 6 лет назад
    • 0
  • в том то и дело что не поняла, смешано все
    • Автор:

      jags
    • 6 лет назад
    • 0
  • Если только что где и смешано - то в Ваших мыслях.
    • Автор:

      escobar
    • 6 лет назад
    • 0
  • А в программе все четко: ввод текста, составление частотного словаря, выборка из него данных по условию и их сортировка. Затем - вывод.
    • Автор:

      jags
    • 6 лет назад
    • 0
  • //Pascal ABC.NET v3.1 сборка 1219Const 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.Пример ввода:Daaaaaaaaaaaaaads.Пример вывода:Result:d s
    • Автор:

      dougherty
    • 6 лет назад
    • 0
  • Что же, можно и покороче решить, но поймете ли решение?// PascalABC.NET 3.1, сборка 1230 от 27.04.2016begin  var s:=ReadlnString('Введите строку:').ToUpper.    Where(c->c in ['A'..'Z','А'..'Я','Ё']);  var d:=new dictionary<char,integer>;  foreach var c in s do d[c]:=d.Get(c)+1;  d.Where(k->k.Value<=2).OrderBy(k->k.key).    Select(k->k.key).Println(',');end.Тестовое решениеВведите строку: А роза упала на лапу Азора. Карл у Клары украл кораллы.З,Н,П,Ы
    • Автор:

      bandit67
    • 6 лет назад
    • 0
  • Добавить свой ответ

Войти через Google

или

Забыли пароль?

У меня нет аккаунта, я хочу Зарегистрироваться

How much to ban the user?
1 hour 1 day 100 years