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

SaxaR_kaluga

0 / 0 / 0

Регистрация: 22.03.2014

Сообщений: 2

1

Подсчет количества пробелов в строке

22.03.2014, 11:52. Показов 8721. Ответов 4

Метки нет (Все метки)


Студворк — интернет-сервис помощи студентам

Простенькая программка считает количество пробелов в строке.

опыта почти нету поэтому есть вопросы на которые не могу найти ответа
Интуитивно я понимаю, что происходит в этой функции но не могу понять зачем в функции,

переменной count присваивается значение 0
так же не понимаю, что происходит в этом участке кода

Pascal
1
2
 if s[i]=' ' then
  count := count+1;

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
program CountSpacesInString;
var
  str: string;
 
function CountSpaces (s: string): integer;
var
   i, count: integer;
begin
  count := 0;
  for i:=1 to length(s) do
  if s[i]=' ' then
  count := count+1;
  CountSpaces := count;
end;
 
{основная программа}
begin
  writeln('Программа подсчитывает количество пробелов '+'во введенной строке');
    repeat
       writeln('Введите исходную непустую строку:');
       readln(str);
         if (length(str)<1) then
            writeln('Исходная строка должна быть непустой');
    until length(str)>0;
writeln('В строке "',str,'" ',CountSpaces(str),' пробелов.');
 
readln;
end.



0



Почетный модератор

64287 / 47586 / 32739

Регистрация: 18.05.2008

Сообщений: 115,182

22.03.2014, 12:04

2

Цитата
Сообщение от SaxaR_kaluga
Посмотреть сообщение

так же не понимаю, что происходит в этом участке кода

Если символ с номером i в строке пробел, то увеличиваем значение count на 1, просто считаем пробелы, или понятнее на баранах?

Цитата
Сообщение от SaxaR_kaluga
Посмотреть сообщение

не могу понять зачем в функции,

Ну напишите без функции, видимо там где содрали этот код,задание было с функцией.



1



73 / 73 / 20

Регистрация: 11.01.2014

Сообщений: 252

Записей в блоге: 2

22.03.2014, 12:05

3

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



1



SaxaR_kaluga

0 / 0 / 0

Регистрация: 22.03.2014

Сообщений: 2

31.03.2014, 11:45

 [ТС]

4

Разобрался все просто только переменная как с присваиванием нуля

Pascal
1
count := 0;

так и без присваивания програмка все равно работает корректно разницы не заметил.



0



Модератор

9588 / 4908 / 3244

Регистрация: 17.08.2012

Сообщений: 15,346

31.03.2014, 11:51

5

Лучший ответ Сообщение было отмечено SaxaR_kaluga как решение

Решение

SaxaR_kaluga, это случайность, Вам просто повезло с компилятором. Иные компиляторы при инициализации переменной присваивают её значению 0, иные — только выделяют место под переменную, и что там на этом месте будет — не известно, скорее всего, вовсе не 0. Корректнее самому присваивать начальное значение.



1



program boc;

VAR S:STRING;
    I:INTEGER;
BEGIN

 READLN(S);
 i:=1;
 repeat
  BEGIN write(s[i]);
   IF S[I]='*' THEN
    BEGIN
     DELETE(S,I,1);
     I:=I-1
     END
    ELSE
     BEGIN
      INSERT(S[I],S,I);
      I:=I+1
      END
   END;i:=i+1
 until i>length(s);
 writeln(s)
END.

Var  n:string;  a:integer;

procedure chet(n:string;var a:integer);

begin

while pos(‘ ‘,n)<>0 do      //пока в строке есть пробелы 

     begin

        a:=a+1;               //к счетчику пробелов + 1

        delete(n,pos(»,n),1);       //удалить текущий пробел

      end;

end;

begin

  readln(n);         // вводим строку

  a:=0;               //обнуляем счетчик

  chet(n,a)          //считаем пробелы

  writeln(a);        //выводим кол-во пробелов

end.      

OBRAZOVALKA.COM

OBRAZOVALKA.COM — образовательный портал
Наш сайт это площадка для образовательных консультаций, вопросов и ответов для школьников и студентов .

  • Наша доска вопросов и ответов в первую очередь ориентирована на школьников и студентов из России и стран СНГ, а также носителей русского языка в других странах.
  • Для посетителей из стран СНГ есть возможно задать вопросы по таким предметам как Украинский язык, Белорусский язык, Казакхский язык, Узбекский язык, Кыргызский язык.
  • На вопросы могут отвечать также любые пользователи, в том числе и педагоги.


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

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

    begin
      writeln(‘Введите текст’);
      readln(s);
      n := Length(s);
      k := 0;
      for i := 1 to n do
        if s[i] = ‘ ‘ then k := k + 1;
      writeln(‘Количество пробелов в тексте- ‘, k)
    end.

    Тестовый пример:

    Введите текст
    А роза упала на лапу Азора, а тут ДВА пробела  , а тут вообще пять:     : Все!
    Количество пробелов в тексте- 21

    Понравилась статья? Поделить с друзьями:
  • Как найти поверхность куба если известен объем
  • Как найти военкомат по месту прописки
  • Как составить опись предметов
  • Как найти инн организации на сайте налоговой
  • Как составить бьюти наборы