Форум программистов, компьютерный форум, киберфорум
Наши страницы
Turbo Pascal
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.80/5: Рейтинг темы: голосов - 5, средняя оценка - 4.80
viksa123
0 / 0 / 0
Регистрация: 25.02.2015
Сообщений: 36
1

Подсчитать количество слов в данной строке, подсчитать количество букв а в последнем слове

28.02.2015, 12:15. Просмотров 912. Ответов 4
Метки нет (Все метки)

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

Добавлено через 17 часов 50 минут
кто нибудь поможет??
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
28.02.2015, 12:15
Ответы с готовыми решениями:

Подсчитать количество букв а в последнем слове данной последовательности
Дан ряд символов S. Подсчитать кол-во букв а в последнем слове данной...

Дан текст из слов. Подсчитать количество букв «m» в последнем слове
Дан текст из слов. Подсчитать количество букв «m» в последнем слове.

В данной строке подсчитать количество символов "с" в последнем слове
В данной строке подсчитать кол-во символов "с" в последнем слове.

Подсчитать количество букв в последнем слове
Помогите, пожалуйста, составить программы. 1) Составить программу,...

Подсчитать количество букв k в последнем слове
1.Дана строка.Подсчитать количество букв k в последнем слове 2.Дан текст на...

4
marick0073
3 / 3 / 1
Регистрация: 06.07.2014
Сообщений: 115
01.03.2015, 02:30 2
Обязательно протестируйте алгоритм на ошибки.
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
program sentenceJob;
var
 inputSentence,wordBuf:string;
 wordArray:array[1..50] of string[50];
 ci,wordAm,lastWord,aAm,bStartAm,twinSEAm,shortSenAm:byte;
begin
 wordAm:=1; lastWord:=1; shortSenAm:=255;
 write('Предложение: '); readln(inputSentence);
 for ci:=1 to ord(inputSentence[0]) do
  if inputSentence[ci] in [#44,' ',#39,#34] then
   begin
    wordArray[wordAm]:=copy(inputSentence,lastWord,ci-lastWord);
    if inputSentence[ci+1]=' ' then inc(ci); inc(wordAm);
    if inputSentence[ci+1] in [#39,#32] then lastWord:=ci+2 else lastWord:=ci+1;
   end;
 wordArray[wordAm]:=copy(inputSentence,lastWord,ord(inputSentence[0])); wordBuf:=wordArray[wordAm];
 if wordBuf[ord(wordBuf[0])] in [#33,#46] then
  begin
   delete(wordBuf,ord(wordBuf[0]),1);
   wordArray[wordAm]:=wordBuf;
  end;
 lastWord:=0; wordBuf:=wordArray[wordAm];
 for ci:=1 to ord(wordBuf[0]) do
  if wordBuf[ci] in [#128,#160] then inc(aAm);
 for ci:=1 to wordAm do
  begin
   wordBuf:=wordArray[ci];
   if wordBuf[1] in [#129,#161] then inc(bStartAm);
  end;
 for ci:=1 to wordAm do
  begin
   wordBuf:=wordArray[ci];
   if wordBuf[1]=wordBuf[ord(wordBuf[0])] then inc(twinSEAm);
  end;
 for ci:=1 to wordAm do
  begin
   wordBuf:=wordArray[ci];
   if ord(wordBuf[0])<shortSenAm then shortSenAm:=ord(wordBuf[0]);
   write(wordArray[ci],'|');
  end;
 writeln;
 writeln('Количество слов - ',wordAm);
 writeln('Количество букв "а" в последнем слове  - ',aAm);
 writeln('Слова начинающиеся с буквы "б" - ',bStartAm);
 writeln('Количество слов с одинаковым началом и концом - ',twinSEAm);
 writeln('Количество букв в самом коротком слове - ',shortSenAm); readln;
end.
Добавлено через 43 года
Немного изменил:
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 sentenceJob;
var
 inputSentence,wordBuf:string;
 wordArray:array[1..30] of string[30];
 ci,wStart,wordAm,lastWord,aAm,bStartAm,twinSEAm,shortSenAm:byte;
 function searchChar:byte;
  var
   charPos:byte;
  begin
   charPos:=0;
   for ci:=1 to ord(inputSentence[0]) do
    if inputSentence[ci] in [#128..#175,#224..#241] then
     begin
      charPos:=ci;
      break;
     end;
   wStart:=charPos;
   searchChar:=charPos;
  end;
begin
 shortSenAm:=255; readln(inputSentence);
 while searchChar<>0 do
  begin
   inc(wordAm); ci:=wStart;
   repeat inc(ci);
   until not(inputSentence[ci] in [#128..#175,#224..#241]);
   wordArray[wordAm]:=copy(inputSentence,wStart,ci-wStart);
   delete(inputSentence,wStart,ci-wStart);
  end;
 wordBuf:=wordArray[wordAm];
 for ci:=1 to ord(wordBuf[0]) do
  if wordBuf[ci] in [#128,#160] then inc(aAm);
 for ci:=1 to wordAm do
  begin
   wordBuf:=wordArray[ci];
   if wordBuf[1] in [#129,#161] then inc(bStartAm);
   if wordBuf[1]=wordBuf[ord(wordBuf[0])] then inc(twinSEAm);
   if ord(wordBuf[0])<shortSenAm then shortSenAm:=ord(wordBuf[0]);
  end;
 writeln; writeln('Количество слов - ',wordAm);
 writeln('Количество букв "а" в последнем слове  -> ',aAm);
 writeln('Слова начинающиеся с буквы "б" -> ',bStartAm);
 writeln('Слова с одинаковым началом и концом -> ',twinSEAm);
 writeln('Количество букв в самом коротком слове -> ',shortSenAm); readln;
end.
0
viksa123
0 / 0 / 0
Регистрация: 25.02.2015
Сообщений: 36
04.03.2015, 14:38  [ТС] 3
Переменная цикла for должна описываться в том же блоке, что и цикл for
0
marick0073
3 / 3 / 1
Регистрация: 06.07.2014
Сообщений: 115
05.03.2015, 01:04 4
Функция function searchChar:byte вложена в главную программу. Так как она вложена значит она является внутренней по отношению к главное программе. В турбо паскале внутренние процедуры/функции имеют доступ к переменным их внешних функции/процедуры. Но никак внешние процедуры/функции не будут иметь доступ к их внутренним переменным.
Попробуйте изменить следующую часть кода:
Pascal
1
2
3
  function searchChar:byte;
   var
    charPos:byte;
изменить на:
Pascal
1
2
3
  function searchChar:byte;
   var
    charPos,ci:byte;
0
viksa123
0 / 0 / 0
Регистрация: 25.02.2015
Сообщений: 36
05.03.2015, 13:20  [ТС] 5
Ошибка времени выполнения: Индекс находился вне границ массива.
0
05.03.2015, 13:20
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
05.03.2015, 13:20

Подсчитать количество букв «m» в последнем слове
Ребята срочно нужна помощь я не успеваю, помогите. Задание 1.29. б)...

Подсчитать количество букв k в последнем слове строки
1) дана строка. Подсчитать количество букв k в последнем ее слове. 2) Дана...

Дана строка. Подсчитать количество букв k в последнем ее слове
Дана строка. Подсчитать количество букв k в последнем ее слове. Нужен код...


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

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

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