Помогите изменить код pascal
Нужно по другому записать функцию if или вообще переписать программу , но чтобы смысл был тот же
Заранее спасибо !
Сам код pascal : 
const
t=5.0;
cl=0.9;
var 
s:string;
a,i:byte;
begin
writeln('Введите ваше сообщение');
Readln(s);
For i:=1 to length(s) do
if (s[i]=' ') and (s[i+1]<>' ') then inc(a);
a:=a+1;
writeln('Количество слов - ', a);
begin
writeln('Стоимость телеграммы ',t+cl*a,' руб');
end;
end.


maxtaines: Это я же просил
Аноним: Ах-ах, учитель злобный, проверяет решение на "Антиплагиате"...
maxtaines: Только добавил счет слов в строке
Аноним: Поменяйте имена переменных и все дела.
maxtaines: Нет , не в антиплагиате дело
maxtaines: Можно ли переделать код , не используя функцию if ?
Аноним: if - это не функция, а условный оператор. Как можно писать программу с проверками, если в ней условия не проверять?
Merovingian: Эта программа еще и вылетать будет на последнем символе строки
Merovingian: Из-за обращения к следующему (т.е. конечному + 1) символу
Аноним: Моя первоначальная не должна вылетать, потому что там я дописывал в конец специально лишний пробел.

Ответы

Ответ дал: Merovingian
1
constt=5.0;
cl=0.9;
var 
s:string;
a,i:byte;
f:boolean;
begin
writeln('Введите ваше сообщение');
Readln(s);
a:=0;
i:=1;
while i<=length(s) do
begin
 while (i<=length(s)) and (s[i]=' ') do inc(i); 
 f:=(i<=length(s)) and (s[i]<>' '); 
 while f do
  begin
   inc(a);
   f:=false;
  end;
 while (i<=length(s)) and (s[i]<>' ') do inc(i);
end;
writeln('Количество слов - ', a);
writeln('Стоимость телеграммы ',t+cl*a,' руб');
end.

Merovingian: Можно IF заменить на boolean
Merovingian: Это усложнит код, но функция IF задействована не будет
Вас заинтересует