Дана задача: Подсчитать количество букв А в последнем слове строки символов
Программа:
1.var s: string;
2. i, k: integer;
3.begin
4. writeln ('Введите предложение из двух и более слов');
5 readln (s);
6 k:=0;
7 i:=length(s);
8 while s[i]<>' ' do
9 begin
10 if s[i]='а' then inc(k);
11 i:=i-1;
12 end;
13 writeln ('Количество символов а в последнем слове = ',k);
end.
Помогите понять 8 строчку. Объясните пожалуйста, что мы в ней делаем
Спасибо
Другие языки программирования и технологии
Помогите понять программу
Пока элемент массива не пустой ('' - пусто) - критерий окончания цикла
Заголовок цикла с предусловием.
8 строка:
пока символ S[i] не равен пробелу
там не '', там '(пробел) '
пока символ S[i] не равен пробелу
там не '', там '(пробел) '
8ую строчку нужно писать чуток по-другому:
while (s[i] <> ' ') and (i > 0) do
В этом случае программа будет работать даже если слово только одно или строка вообще пуста.
А всего лишь нужно добавить условие проверки допустимости индекса.
while (s[i] <> ' ') and (i > 0) do
В этом случае программа будет работать даже если слово только одно или строка вообще пуста.
А всего лишь нужно добавить условие проверки допустимости индекса.
Вот Вам восьмая и остальные:
=============================
var // var = variables - переменные. Тут объявляются переменные.
s: string; // string - строка. Объявляется переменная с типом строка. Имя переменной - s.
i, k: integer; // integer - целочисленный. Объявляются две целочисленные переменные (отличие целого числа от вещественного смотрите в Вики) . Названия этих переменных - i, k.
begin
writeln ('Введите предложение из двух и более слов'); // эта функция, которая выводит на экран что-то. В данном случае выводит строку между символами ' и '.
readln (s); // эта функция считывает значения переменной s. Т. е. открывается возможность ввести значение переменной s, т. е. текст (т. к. s - строчного типа) .
k:=0; // обнуляем переменную. Это часто нужно. В разных случаях.
i:=length(s); // получаем длину строки с помощью функции length() и присваиваем эту длину переменной i. Длину получаем, не в метрах или километрах, а в количестве символов (букв, знаков, цифр) , из которых состоит переменная (строка s).
while s[i]<>' ' do // Цикл. s[i] <> ' ' - это условие завершения цикла. Т. е. пока это условие выполняется, цикл будет продолжатся.
begin // начало цикла
if s[i]='а' then inc(k); // условный оператор if. в нём написано условие, соблюдение которого требуется для выполнения его тела (или как правильней сказать?) , его операторов. Выполняется только одна операции по инкрементации (увеличению на единицу) значения переменной k.
i:=i-1; // это управляющая переменная. Она управляет циклом. Т. е. в зависимости от изменения её значения будет выполняться или завершится этот конкретный цикл. В данном случае, с помощью этой переменной перечисляются с конца до начала (а точнее, до пробела, как написано в условии цикла) все символы переменной s.
end; // окончание страшного цикла.
writeln ('Количество символов а в последнем слове = ',k); // Выводим на экран результат и пояснения к нему.
end.
=============================
var // var = variables - переменные. Тут объявляются переменные.
s: string; // string - строка. Объявляется переменная с типом строка. Имя переменной - s.
i, k: integer; // integer - целочисленный. Объявляются две целочисленные переменные (отличие целого числа от вещественного смотрите в Вики) . Названия этих переменных - i, k.
begin
writeln ('Введите предложение из двух и более слов'); // эта функция, которая выводит на экран что-то. В данном случае выводит строку между символами ' и '.
readln (s); // эта функция считывает значения переменной s. Т. е. открывается возможность ввести значение переменной s, т. е. текст (т. к. s - строчного типа) .
k:=0; // обнуляем переменную. Это часто нужно. В разных случаях.
i:=length(s); // получаем длину строки с помощью функции length() и присваиваем эту длину переменной i. Длину получаем, не в метрах или километрах, а в количестве символов (букв, знаков, цифр) , из которых состоит переменная (строка s).
while s[i]<>' ' do // Цикл. s[i] <> ' ' - это условие завершения цикла. Т. е. пока это условие выполняется, цикл будет продолжатся.
begin // начало цикла
if s[i]='а' then inc(k); // условный оператор if. в нём написано условие, соблюдение которого требуется для выполнения его тела (или как правильней сказать?) , его операторов. Выполняется только одна операции по инкрементации (увеличению на единицу) значения переменной k.
i:=i-1; // это управляющая переменная. Она управляет циклом. Т. е. в зависимости от изменения её значения будет выполняться или завершится этот конкретный цикл. В данном случае, с помощью этой переменной перечисляются с конца до начала (а точнее, до пробела, как написано в условии цикла) все символы переменной s.
end; // окончание страшного цикла.
writeln ('Количество символов а в последнем слове = ',k); // Выводим на экран результат и пояснения к нему.
end.
Похожие вопросы
- помогите понять-программа, которая переводит новую написанную программу на языке, понятном прогр
- паскаль. помогите понять одну формулу в программе. внутри...
- Помогите написать программу со switch в СИ
- Помогите написать программу на С. Тема Составление программ с использованием массивов
- Помогите написать программу выключения компьютера на С++
- Помогите исправить программу
- помогите написать программы в ассемблере
- Помогите написать программу в с++
- Помогите написать программу на Visual Basic (найти ошибку)
- Помогите доделать программу