Статистика
Всего в нашей базе более 4 327 663 вопросов и 6 445 976 ответов!

ПАСКАЛЬ. Срочно!

10-11 класс

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

Ssaasshhaa 19 янв. 2015 г., 18:58:45 (9 лет назад)
Рейтинг
+ 0 -
0 Жалоба
+ 0 -
Kirakirova
19 янв. 2015 г., 20:51:21 (9 лет назад)

Готово.................Это если между словами всегда один пробел.
UPD.Заменил ,теперь не важно сколько пробелов

+ 0 -
23антон1982
19 янв. 2015 г., 22:21:30 (9 лет назад)

const
  Blanks = [' '];

function PosBlank(s: string; pn, pk: integer): integer;
{
  Ищет в строке s в позициях от pn до pk пробельный символ.
  Возвращает его позицию в строке или ноль, если таковой символ не найден.
  Использует подмножество пробельных символов Blanks, что позволяет определять
  произвольный набор пробельных символов (например, табуляцию и т.д.)
}
var
  p: integer;
  flag: boolean;

begin
  p := pn;
  flag := true;
  while flag and (p <= pk) do
  begin
    if s[p] in Blanks then flag := false
    else p := p + 1
  end;
  if p > pk then PosBlank := 0
  else PosBlank := p
end;

function PosNonBlank(s: string; pn, pk: integer): integer;
{
  Ищет в строке s в позициях от pn до pk непробельный символ.
  Возвращает его позицию в строке или ноль, если таковой символ не найден.
  Использует подмножество пробельных символов Blanks, что позволяет определять
  произвольный набор пробельных символов (например, табуляцию и т.д.)
}
var
  p: integer;
  flag: boolean;

begin
  p := pn;
  flag:=true;
  while flag and (p <= pk) do
  begin
    if s[p] in Blanks then p := p + 1
    else flag := false
  end;
  if p > pk then PosNonBlank := 0
  else PosNonBlank := p
end;

var
  s: string;
  i, l, k: integer;

begin
  Write('Введите строку: ');
  Readln(s);
  l := Length(s);
  k := 0;
  i := PosNonBlank(s, 1, l);
  while (i>0) and (i <= l) do
  begin
    k := k + 1;
    i := PosBlank(s, i + 1, l);
    if i = 0 then i := l + 1
    else i := PosNonBlank(s, i + 1, l)
  end;
  Writeln('Количество слов в строке равно ', k)
end.

Ответить

Другие вопросы из категории

Нужно в паскале ABS

Одноклеточная амеба каждые 3 часа делится на 2 клетки. Определить сколько амеб будет через 3,6,9,12,....24 часа?

Помогите, пожалуйста!!!

К визуальной компоненте для выбора значений относится:


1. Label

2. Shape

3. SpinEdit

4. Image

5. ListBox

привести примеры ситуации в которых информация: 1- создается. 2-. обрабатывается в. запоминается 3-. делится на части. 4-. копируется. 5-.

воспринимается 6-. измеряется. 7. принимается 8-. передается. 9-разрушается 10-передается

Читайте также

Помогите пожалуйста...Напечатать программу в паскале...Срочно...Завтра последний срок сдачи..

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

ПАСКАЛЬ.Срочно.Не могу нормально оформить вывод переменной которая высчитывается в процедуре.Как правильно это сделать?При таком раскладе выводит ноль,

хотя если вывод поставить в процедуру тогда все нормально.
program kr_pr_4;

procedure fgerona(a,b,c:real);
var
p,s:real;
begin
p:=(a+b+c)/2;
s:= sqrt(p*(p-a)*(p-b)*(p-c));

end;

var
a,b,c,s,p:real;
begin
writeln('Введите сторону А');
read(a);
writeln('Введите сторону B');
read(b);
writeln('Введите сторону C');
read(c);
fgerona(a,b,c);
writeln('S = ',s);
end.

РЕШИТЬ В ПАСКАЛЕ СРОЧНО!

в одномерном массиве М[15] вычислить сумму четных чисел



Вы находитесь на странице вопроса "ПАСКАЛЬ. Срочно!", категории "информатика". Данный вопрос относится к разделу "10-11" классов. Здесь вы сможете получить ответ, а также обсудить вопрос с посетителями сайта. Автоматический умный поиск поможет найти похожие вопросы в категории "информатика". Если ваш вопрос отличается или ответы не подходят, вы можете задать новый вопрос, воспользовавшись кнопкой в верхней части сайта.