Перевести код с 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.