Форум программистов, компьютерный форум, киберфорум
Lazarus
Войти
Регистрация
Восстановить пароль
 
0 / 0 / 0
Регистрация: 07.12.2015
Сообщений: 17
1

Напечатать все буквы, входящие в текст не менее двух раз

11.12.2015, 10:15. Показов 480. Ответов 5
Метки нет (Все метки)

дан текст из строчных латинских букв, за которым следует точка. напечатать: все буквы, входящие в текст не менее двух раз.
вроде понимаю что нужно сделать, но в программу записать не могу, если не сложно помогите! только по проще пожалуйста чтоб я смогла разобраться. Спасибо
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
11.12.2015, 10:15
Ответы с готовыми решениями:

Напечатать все буквы, входящие в текст не менее двух раз; все буквы, входящие в текст по одному разу
3. Дан текст из строчных латинских букв, за которым следует точка. Напечатать: все буквы, входящие...

Напечатать все буквы, входящие в текст не менее двух раз
Дан текст(любой) из строчных латинских букв, за которыми следует точка. Напечатать все буквы,...

Напечатать все буквы, входящие в текст не менее двух раз
1)Дан текст из строчных латинских букв, за которыми следует точка. Напечатать все буквы, входящие...

Напечатать все буквы, входящие в текст не менее двух раз.
Дан текст из строчных латинских букв, за которыми следует точка. Напечатать все буквы, входящие в...

5
0 / 0 / 0
Регистрация: 20.12.2015
Сообщений: 27
23.12.2015, 19:53 2
BesEE, Вот такой вариант пойдет?
Pascal
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
program DoubleCharFinder;
var myPhrase, myTempPhrase:string ;
 
  phraseLength:integer;
  i, i2:integer;
  find:boolean;
 
 
begin
  myPhrase:='this is a frase.';
  myTempPhrase:=myPhrase;
  phraseLength:= Length(myTempPhrase);
  find:=false;
  for i:=1 to phraseLength do
  begin
    for i2:=i+1 to phraseLength do
    begin
      if (myPhrase [i]=' ') or (myPhrase[i]=',') or (myPhrase[i]='.') then
      begin
        break;
            end;
            if myPhrase[i]=myTempPhrase[i2]then
      begin
        find:=true;
        myTempPhrase[i2]:=' ';
            end;
        end;
    if(find) then
    begin
         WriteLn(myPhrase[i]);
         find:=false;
    end;
        end;
    ReadLn();
    end.
0
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
30916 / 20229 / 7885
Регистрация: 22.10.2011
Сообщений: 35,114
Записей в блоге: 6
23.12.2015, 21:16 3
Вообще-то и вот этого вполне достаточно:
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
type
  lett = 'a' .. 'z';
var
  myPhrase : string;
  ch : char;
  count : array [lett] of integer;
begin
  myPhrase:='this is a frase.';
  for ch in myPhrase do
    if ch in ['a' .. 'z'] then inc(count[ch]);
 
  for ch in lett do
    if count[ch] > 1 then write(ch);
  readln;
end.
0
0 / 0 / 0
Регистрация: 20.12.2015
Сообщений: 27
23.12.2015, 23:10 4
volvo, не могли бы вы прокомментировать вот этот код, что там внутри делается, особенно две первые верхние строчки:
Цитата Сообщение от volvo Посмотреть сообщение
Pascal
1
2
3
4
5
6
 
  for ch in myPhrase do
    if ch in ['a' .. 'z'] then inc(count[ch]);
 
  for ch in lett do
    if count[ch] > 1 then write(ch);
А то в интернете поискал про for in, if in во FreePascal, а там почти что ничего нет. Заранее спасибо.
0
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
30916 / 20229 / 7885
Регистрация: 22.10.2011
Сообщений: 35,114
Записей в блоге: 6
24.12.2015, 00:51 5
Цитата Сообщение от Alex2000 cf Посмотреть сообщение
а там почти что ничего нет
Все там есть: for-in loop. Вместо того, чтобы ходить по строке с использованием индексов просто используем цикл for in, который перебирает все элементы строки (то есть поочередно подставляет каждый символ, содержащийся в строке, в переменную ch). Проверяем, принадлежит ли очередной символ множеству латинских букв, и если да - то увеличиваем счетчик для соответствующей буквы.

А второй цикл - это проход по всему множеству латинских символов, и проверка счетчика каждого из них на >1. Если значение счетчика больше единицы - значит, соответствующий символ встречается минимум дважды, вот его и печатаем.
1
0 / 0 / 0
Регистрация: 20.12.2015
Сообщений: 27
24.12.2015, 16:28 6
volvo, спасибо Вам большое за разъяснение кода.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
24.12.2015, 16:28

Заказываю контрольные, курсовые, дипломные работы и диссертации здесь.

Напечатать все буквы, входящие в текст не менее двух раз
Дан текст из строчных латинских букв за которыми следует точка, напечатать все буквы,входящие в...

Напечатать все буквы, входящие в текст не менее двух раз.
Добрый день форумчане!!! Можете помочь с задачкой?! Дан текст из строчных латинских букв, за...

Напечатать все буквы, входящие в текст не менее двух раз
Дан текст из малых латинских букв. Напечатать все буквы, входящие в текст не менее двух раз,

Напечатать все буквы, входящие в текст не менее двух раз.
Незнаю как решить Помогите кто может Дан текст из строчных латинских букв, за которыми следует...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.