Есть ответ 👍

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

183
371
Посмотреть ответы 3

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


//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. пример ввода: daaaaaaaaaaaaaads. пример вывода: result: d s
karvou
4,6(53 оценок)

Что же, можно и покороче решить, но поймете ли решение? // pascalabc.net 3.1, сборка 1230 от 27.04.2016 begin   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. тестовое решение введите строку: а роза упала на лапу азора. карл у клары украл кораллы. з,н,п,ы

368640 : 8 = 46080 байт – 46080 : 1024 = 45 Кбайт

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

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

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

Caktus Image

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

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

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

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

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

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

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

GTP TOP NEWS