Форум программистов, компьютерный форум, киберфорум
Pascal (Паскаль)
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.84/25: Рейтинг темы: голосов - 25, средняя оценка - 4.84
0 / 0 / 0
Регистрация: 09.12.2010
Сообщений: 14

Найти количество таких групп букв, которые начинаются и кончаются одной и той же буквой

09.12.2010, 10:49. Показов 4952. Ответов 16
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Не знаю как решить задачу именно с помощью массивов.
Дан текст (массив символьных строк), каждый символ которого может быть буквой, цифрой или одним из знаков +, -, *. Найти количество таких групп букв, которые начинаются и кончаются одной и той же буквой.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
09.12.2010, 10:49
Ответы с готовыми решениями:

Найти число таких групп, которые начинаются и заканчиваются одной и той же буквой
Дан текст, хранящийся в текстовом файле f, каждый символ которого может быть малой буквой, цифрой или одним из знаков ‘+’, ‘-‘, ‘*’....

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

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

16
Почетный модератор
 Аватар для Puporev
64314 / 47610 / 32743
Регистрация: 18.05.2008
Сообщений: 115,167
09.12.2010, 11:05
Цитата Сообщение от joda Посмотреть сообщение
именно с помощью массивов.
А в чем проблема? 1 элемент массив - 1 строка и все, дальше как обычно.
0
0 / 0 / 0
Регистрация: 09.12.2010
Сообщений: 14
09.12.2010, 11:27  [ТС]
Не могу понять как введенную строку превратить в массив. как произвести присвоение.
0
Почетный модератор
 Аватар для Puporev
64314 / 47610 / 32743
Регистрация: 18.05.2008
Сообщений: 115,167
09.12.2010, 11:43
как введенную строку превратить в массив.
Зачем? По условию дан текст=массив строк.
Pascal
1
2
3
4
5
6
7
var s:array[1..50] of string;
..............................
write('Сколько строк в тексте? n=');
readln(n);
writeln('Введите текст построчно:');
for i:=1 to n do
readln(s[i]);
все, потом обрабатывайте каждую строку массива отдельно.
0
0 / 0 / 0
Регистрация: 09.12.2010
Сообщений: 14
09.12.2010, 20:50  [ТС]
А полностью решение нельзя?

Добавлено через 7 часов 53 минуты
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
program simbol;
uses crt;
var b:array[1..50] of string;
 i,j,k,p,l,n:integer;
begin
     clrscr;
     writeln('Kolichestvo strok:');
     readln(n);
     writeln('Vvedite simvoli:');
     for i:=1 to n do
     readln(b[i]);
     k:=0;
     for k:=1 to n do begin
     p:=length(b[i]);
     for i:=1 to p-1 do begin
     for j:=i+1 to p do begin
         if (b[i]>='A') and (b[i]<='Z') OR (b[i]>='a') and (b[i]<='z') then
          if (b[j]>='A') and (b[j]<='Z') OR (b[j]>='a') and (b[j]<='z') then
         if b[i]=b[j] then k:=k+1;  i:=j+1;
                  end;    end;
         end;
         writeln(k);
         readln;
         end.
Добавлено через 2 минуты
Запуталась с индексами. Где какие?
0
0 / 0 / 0
Регистрация: 09.12.2010
Сообщений: 14
10.12.2010, 21:39  [ТС]
Люди, объясните пожалуйста, как в строке символьного массива сравнивать символы. не пойму как там работать с индексами? и каким образом там должен быть цикл?
0
Почетный модератор
 Аватар для Puporev
64314 / 47610 / 32743
Регистрация: 18.05.2008
Сообщений: 115,167
10.12.2010, 21:47
Цитата Сообщение от joda Посмотреть сообщение
как в строке символьного массива сравнивать символы.
Строка она и в Африке строка...
0
0 / 0 / 0
Регистрация: 09.12.2010
Сообщений: 14
11.12.2010, 14:22  [ТС]
все же прошу пояснить, как организовать процедуру перебора элементов строки
0
0 / 0 / 0
Регистрация: 09.12.2010
Сообщений: 14
12.12.2010, 22:36  [ТС]
Я уже весь форум облазила, не могу найти нормальной информации для того чтобы написать программу. Уже 4й раз прошу о помощи и никакого ответа, помогите решить задачу.
Дан текст (массив символьных строк), каждый символ которого может быть буквой, цифрой или одним из знаков +, -, *. Найти количество таких групп букв, которые начинаются и кончаются одной и той же буквой
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
program simbol;
uses crt;
const z=['A'..'Z','a'..'z'];
var b:array[1..100] of string;
c:string;
 i,j,k,p,n:integer;
begin
     clrscr;
     writeln('Kolichestvo strok:');
     readln(n);
          writeln('Vvedite simvoli:');
     for i:=1 to n do
     readln(b[i]);
     p:=0;
     for i:=1 to n do begin
     c:=b[i];
     j:=1; k:=2;
    while j<length(c)-1 do begin
     if (c[j] in z) and (c[j]=c[k]) then begin
     p:=p+1;
     j:=k+1;
     k:=j+1;
     end
     else
     k:=k+1;
     end;  end;
     writeln(p);
         readln;
         end.
Программа вроде работает, но како то глюк вылазиет когда вводятся символы --, +, в общем те что не из алфавита заданного. что не правильно?
0
 Аватар для Mawrat
13114 / 5895 / 1708
Регистрация: 19.09.2009
Сообщений: 8,809
12.12.2010, 23:18
Joda, для пояснения напиши пример входных/выходных данных: исходная строка такая-то, получить надо то-то.
0
0 / 0 / 0
Регистрация: 09.12.2010
Сообщений: 14
13.12.2010, 07:08  [ТС]
Исходная строка 123qweq---ert456asa++
получаем 2 группы букв
0
61 / 12 / 3
Регистрация: 29.08.2010
Сообщений: 23
13.12.2010, 08:35
Цитата Сообщение от joda Посмотреть сообщение
Исходная строка 123qweq---ert456asa++
получаем 2 группы букв
А знаки + и - зачем нужны?
0
0 / 0 / 0
Регистрация: 09.12.2010
Сообщений: 14
13.12.2010, 08:48  [ТС]
это в условиях дано. прочитайте. Дан текст (массив символьных строк), каждый символ которого может быть буквой, цифрой или одним из знаков +, -, *.
0
61 / 12 / 3
Регистрация: 29.08.2010
Сообщений: 23
13.12.2010, 09:33
Цитата Сообщение от joda Посмотреть сообщение
это в условиях дано. прочитайте. Дан текст (массив символьных строк), каждый символ которого может быть буквой, цифрой или одним из знаков +, -, *.
Но получается, что эти знаки не анализируются, просто болтаются для "веса", ведь искать надо групп БУКВ, а не символов. По крайней мере так написано у вас. Вот накидал код на Делфи по быстрому, вроде работает. Не идеальный, конечно)))) Если не сможете самостоятельно в Паскаль перевести, то попозже могу помочь:

Delphi
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
36
37
38
39
40
41
42
procedure TForm2.Button1Click(Sender: TObject);
const z = ['A'..'Z', 'a'..'z'];
var   i, j, k, L, p, n : integer;
      s   : string;
      c   : char;
      b   : array[1..100] of string;    {Исходне данные}
      Res : array[1..100] of string;    {Сюда будем записвать результат}
begin
  for i := 0 to m.Lines.Count - 1 do b[i+1] := m.Lines[i];
  n := m.Lines.Count;
  j := 0;           {Количество найденных совпадений}
  for i := 1 to n do
    begin
      s := '?';
      k := 1;
      while s <> '' do
        begin
          L := Length(b[i]);
          if k < L then
            begin
              s := b[i];
              c := s[k];
              if (c in z) then
                begin
                  s := Copy(b[i], k+1, (Length(b[i])-k));
                  p := Pos(c, s);
                  if p > 0 then
                    begin
                      inc(j);
                      Res[j] := Copy(b[i], k, p+1);
                      k := k + p + 1;
                    end;
                  inc(k);
                end
              else inc(k);
            end
          else s := '';
        end;
    end;
  if j > 0 then
    for i := 1 to j do ShowMessage(Res[i]);
end;
0
 Аватар для Mawrat
13114 / 5895 / 1708
Регистрация: 19.09.2009
Сообщений: 8,809
13.12.2010, 10:56
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
36
37
38
39
40
41
42
43
44
45
program Project1;
 
const
  //Все символы.
  Ds = [#0..#255];
  //Буквы.
  Da = [
    'А'..'П', 'Р'..'Я', 'Ё', 'а'..'п', 'р'..'я', 'ё',
    'A'..'Z', 'a'..'z'
  ];
  //Не буквы.
  D = Ds - Da;
var
  S : String;
  i, Pos1, Len, Cnt : Integer;
begin
  repeat
    Writeln('Задайте строку:');
    Readln(S);
 
    Writeln('Перечень слов, с одинаковой буквой в начале и в конце:');
    Len := Length(S);
    Pos1 := 0;
    Cnt := 0;
    for i := 1 to Len do begin
      //Пропускаем не буквы.
      if S[i] in D then Continue;
      //Отслеживаем начало слова.
      if (i = 1) or (S[i - 1] in D) then Pos1 := i;
      //Отслеживаем конец слова.
      if (i = Len) or (S[i + 1] in D) then begin
        //Проверка начальной и конечной буквы.
        if S[Pos1] = S[i] then begin
          Cnt := Cnt + 1;
          Writeln( Copy(S, Pos1, i - Pos1 + 1) );
        end;
      end;
    end;
 
    Writeln('Всего слов с одинаковой буквой в начале и в конце: ', Cnt);
 
    Writeln('Повторить - Enter, выход - любой символ + Enter.');
    Readln(S);
  until S <> '';
end.
Вывод программы:
Code
1
2
3
4
5
6
7
Задайте строку:
123qweq---ert456asa++
Перечень слов, с одинаковой буквой в начале и в конце:
qweq
asa
Всего слов с одинаковой буквой в начале и в конце: 2
Повторить - Enter, выход - любой символ + Enter.
1
0 / 0 / 0
Регистрация: 09.12.2010
Сообщений: 14
13.12.2010, 20:51  [ТС]
все отлично, только как теперь сделать это не для одной строки а для массива. я делаю, но у меня либо первая строка читается либо последняя..
0
 Аватар для Mawrat
13114 / 5895 / 1708
Регистрация: 19.09.2009
Сообщений: 8,809
13.12.2010, 21:18
Для этого действия по подсчёту слов надо оформить в виде функции. Например так:
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
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
program Project1;
 
(*Функция подсчитывает количество слов с одинаковой буквой в начале и в конце.*)
function GetCount(const aStr : String) : Integer;
const
  //Все символы.
  Ds = [#0..#255];
  //Буквы.
  Da = [
    'А'..'П', 'Р'..'Я', 'Ё', 'а'..'п', 'р'..'я', 'ё',
    'A'..'Z', 'a'..'z'
  ];
  //Не буквы.
  D = Ds - Da;
var
  i, Pos1, Len, Cnt : Integer;
begin
  Len := Length(aStr);
  Pos1 := 0;
  Cnt := 0;
  for i := 1 to Len do begin
    //Пропускаем не буквы.
    if aStr[i] in D then Continue;
    //Отслеживаем начало слова.
    if (i = 1) or (aStr[i - 1] in D) then Pos1 := i;
    //Отслеживаем конец слова.
    if (i = Len) or (aStr[i + 1] in D) then begin
      //Проверка начальной и конечной буквы.
      if aStr[Pos1] = aStr[i] then begin
        Cnt := Cnt + 1;
      end;
    end;
  end;
 
  GetCount := Cnt;
end;
 
const
  N = 100;
var
  Arr : array[1..N] of String;
  S : String;
  i, Len, Cnt : Integer;
begin
  repeat
    Writeln('Задайте перечень строк. Конец ввода: "." + Enter.');
    Len := 0;
    repeat
      Readln(S);
      if S = '.' then Continue;
      Len := Len + 1;
      Arr[Len] := S;
    until (S = '.') or (Len = N);
 
    Writeln('Количество слов с одинаковой буквой в начале и в конце');
    Writeln('для каждой введённой строки:');
    for i := 1 to Len do begin
      Cnt := GetCount(Arr[i]);
      Writeln('Строка N', i:2, ', количество: ', Cnt);
    end;
 
    Writeln('Повторить - Enter, выход - любой символ + Enter.');
    Readln(S);
  until S <> '';
end.
Вывод программы:
Code
1
2
3
4
5
6
7
8
9
10
11
Задайте перечень строк. Конец ввода: "." + Enter.
123qweq---ert456asa++
123qweq---dfg!-jklj&7+##ert456asa++
nbv#=#--09werw123qweq---ert456asa++ghjg
.
Количество слов с одинаковой буквой в начале и в конце
для каждой введённой строки:
Строка N 1, количество: 2
Строка N 2, количество: 3
Строка N 3, количество: 4
Повторить - Enter, выход - любой символ + Enter.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
13.12.2010, 21:18
Помогаю со студенческими работами здесь

Строки. Найти количество таких групп букв, которые начинаются и заканчиваются одной и той же буквой
Ввести строку символов, составленную из букв, цифр и знаков ‘+’, ‘–‘, ‘*’. Найти количество таких групп букв, которые начинаются и...

Найдите число заданных групп букв, которые начинаются и заканчиваются одной и той же буквой
Короче задача: Пусть дан текст, каждый символ которого может быть лат. буквой, цифрой, или одним из знаков +,-,*,. Группой букв будем...

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

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

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


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

Или воспользуйтесь поиском по форуму:
17
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
SDL3 для Web (WebAssembly): Работа со звуком через SDL3_mixer
8Observer8 08.02.2026
Содержание блога Пошагово создадим проект для загрузки звукового файла и воспроизведения звука с помощью библиотеки SDL3_mixer. Звук будет воспроизводиться по клику мышки по холсту на Desktop и по. . .
SDL3 для Web (WebAssembly): Основы отладки веб-приложений на SDL3 по USB и Wi-Fi, запущенных в браузере мобильных устройств
8Observer8 07.02.2026
Содержание блога Браузер Chrome имеет средства для отладки мобильных веб-приложений по USB. В этой пошаговой инструкции ограничимся работой с консолью. Вывод в консоль - это часть процесса. . .
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru