Перевести код с Pascal - C (СИ) (79232)
Формулировка задачи:
вот есть кусочек кода.я пытался передалть на застопорился на кодах клавиш
repeat kod:=readkey; until Kod in [#13, #72, #80]; case Kod of #72: begin k:=k-1; if k=0 then k:=3; end; #80: begin k:=k+1; if k=4 then k:=1; end; end;
Решение задачи: «Перевести код с Pascal»
textual
Листинг программы
int k; //где-то k чтото присваивается char c; while( c = getc() && c!=13 && c!=72 && c!=80 ); switch( c ){ case 72: --k; if( k==4 ) k=1; break; case 80: ++k; if( k==4 ) k=1; break; }
Объяснение кода листинга программы
- Объявлены две переменные:
k
иc
. - В цикле
while
происходит чтение символа из стандартного ввода и присваивание его переменнойc
. - Условие цикла
while
состоит из трех частей, объединенных оператором&&
:c
должен быть не равен 13 (возможно, это символ перевода строки или возврата каретки).c
должен быть не равен 72 (возможно, это символH
).c
должен быть не равен 80 (возможно, это символP
).
- В блоке
switch
происходит проверка значения переменнойc
:- Если
c
равно 72 (символH
), то переменнаяk
уменьшается на 1, и еслиk
становится равным 4, тоk
снова становится равным 1. - Если
c
равно 80 (символP
), то переменнаяk
увеличивается на 1, и еслиk
становится равным 4, тоk
снова становится равным 1.
- Если
- Цикл
while
продолжается до тех пор, пока не будет выполнено одно из условий прекращения:c
станет равным 13, 72 или 80.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д