Просьба помочь с задачкой

Ответить
PRo9
Сообщения: 17
Зарегистрирован: 17 ноя 2008, 15:24

Перепишите в форме предусловием (while) следующий оператор цикла паскаля
к:=0; for i:='z' down to 'a' do k:=k+1

Заранее спасибо
Creatizmo
Сообщения: 5
Зарегистрирован: 18 дек 2008, 19:52

Код: Выделить всё

k := 0;
i := z;
while i <= a do
  begin
  k := k + 1;
  i := i - 1;
  end;
dr.Jekill
Сообщения: 526
Зарегистрирован: 03 янв 2009, 23:17
Откуда: Voronezh
Контактная информация:

Creatizmo, я что-то не понял, ты что из символьной i отнимаешь потом единицу? :
i:=z;
..
i:=i-1;


Может попробовать что-то подобное?

var k,j:byte;
i:char;
begin
k:=0;i:='z';j:=26;
while (i<='a') and (j>0) do
begin
k:=k+1;
j:=j-1;//тут конечно коряво
end;
writeln(k:2);
readln;
end.
Нет религии выше истины
PRo9
Сообщения: 17
Зарегистрирован: 17 ноя 2008, 15:24

тут вот челы еще написали так

k:=0;
i:='z';
while i<>'a' do
begin
k:=k+1;
i:=pred(i);
end.

препод придрался к тому что выделено жирным. судя по вашим решениям нужно заменить i<>'a' на i<='a' ???
Creatizmo
Сообщения: 5
Зарегистрирован: 18 дек 2008, 19:52

dr.Jekill писал(а):Creatizmo, я что-то не понял, ты что из символьной i отнимаешь потом единицу?


ммм.. да ошибочка вышла... принял z и a за числовые константы... :(

у тебя кстати тоже в программке ошибочка ;)

PRo9
<> - не равно
>= - больше либо равно
<= - меньше либо равно

Код: Выделить всё

...
k := 0;
i := 'z';
j := 26;
while (i>='a') and (j>0) do
   begin
   inc(k);
   dec(j);
   i := pred(i);
   end;
writeln(k);
...
PRo9
Сообщения: 17
Зарегистрирован: 17 ноя 2008, 15:24

Creatizmo что такое j := 26??? количество букв

А где в твоей задаче k:=k+1??? или это inc(k)
Creatizmo
Сообщения: 5
Зарегистрирован: 18 дек 2008, 19:52

j - это кол-во латинских букв
Да процедура inc(k) увеличивает k на единицу ;)
dr.Jekill
Сообщения: 526
Зарегистрирован: 03 янв 2009, 23:17
Откуда: Voronezh
Контактная информация:

Creatizmo писал(а):ммм.. да ошибочка вышла... принял z и a за числовые константы... :(

у тебя кстати тоже в программке ошибочка ;)

PRo9
<> - не равно
>= - больше либо равно
<= - меньше либо равно

Код: Выделить всё

...
k := 0;
i := 'z';
j := 26;
while (i>='a') and (j>0) do
   begin
   inc(k);
   dec(j);
   i := pred(i);
   end;
writeln(k);
...


Все мы не без греха!

var k:byte;
i,m:char;
begin
k:=0;i:='a';m:='z';
while i<=m do
begin
m:=pred(m);
k:=k+1;
end;
writeln(k:2);
readln;
end.
Нет религии выше истины
Ответить