Помогите изменить код pascal Нужно по другому записать функцию if или вообще переписать...

0 голосов
100 просмотров

Помогите изменить код 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.


Информатика (860 баллов) | 100 просмотров
0

Это я же просил

0

Ах-ах, учитель злобный, проверяет решение на "Антиплагиате"...

0

Только добавил счет слов в строке

0

Поменяйте имена переменных и все дела.

0

Нет , не в антиплагиате дело

0

Можно ли переделать код , не используя функцию if ?

0

if - это не функция, а условный оператор. Как можно писать программу с проверками, если в ней условия не проверять?

0

Эта программа еще и вылетать будет на последнем символе строки

0

Из-за обращения к следующему (т.е. конечному + 1) символу

0

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

Дан 1 ответ
0 голосов
Правильный ответ

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<br>begin
 while (i<=length(s)) and (s[i]=' ') do inc(i); <br> 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.

(1.2k баллов)
0

Можно IF заменить на boolean

0

Это усложнит код, но функция IF задействована не будет