search points attachment profile arrow left arrow right star heart verified symbols equation arrow-down question mark check menu accountancyadministrationagriculturalalgebraallarabicartart_musicbelarusbelarus_altbiologybusinesscatalachemistrychineseeconomicsegzamenglishentrepreneurshipenvironmentethicseuskarafirst_aidfrenchgalegogeographygeologygeometrygermangrammarhealthhistoryindia_langindonesian_langinformaticsitalianjapanesekazachkazach_altkoreanlanguagelatinlawlife_scienceliteraturelogicmathematicsmusicnigerian_langother_languagesotherspedagogicsphilosophyphysical_educationphysicspoliticspsychologyreligionrpa_langrussianrussian_altsciencesecurityskillssocial_sciencesociologyspanishstatisticstechnologytourismtrafficukrainianukrainian_altukrainian_literaturewos_civilisation accountancyadministrationagriculturalalgebraall_1arabicartart_music_2belarusbelarus_altbiologybusiness_2catalachemistry_1chineseeconomicsexam_3englishentrepreneurshipenvironment_2ethicseuskarasecurity_1frenchgalegogeography_4geology_4geometrygermangrammarhealthhistoryindia-langindonesian-langinformaticsitalianjapanesekazachAsset 230koreanlanguagelatinlawlife-scienceliteraturelogic_2mathematicsmusicnigerian-langotherlanguagesother_1pedagogicsphilosophyphysical_educationphysicspoliticspsychologyreligion_1rpa-langrussianrussian_altsciencesecurity_3_mskills_1allsocial_science_5_msociologyspanishstatisticstechnologytourismtrafficukrainianukrainian_altukrainian_literaturewos_civilisation

Объясните программу!!!!
Среди заданных чисел A,B,C,D есть хотя бы два четных.
var i,e,t,k:integer;
s:string;
begin
for i:=0 to 3 do
begin
repeat
Write(Chr(Ord('a')+i),': ');
ReadLn(s);
Val(s,t,e);
if e<>0 then WriteLn('Это не целое число, повторите ввод');
until e=0;
if t mod 2=0 then Inc(k);
end;
WriteLn(k>=2);
end.

wusuyidanu

Ответ

Ответ дан
raf1O5

i - Счётчик количества чисел

e - Вывод ошибки

t - Введённое число (преобразованная строка)

k - Счётчик количества чётных чисел

s - Введённое число в виде строки

  1. Начало программы
  2. Начинается цикл for i:=0 to 3 do всё что внутри него будет повторено 4 раза пока i не больше 3 (0, 1, 2, 3)
  3. Начинается цикл repeat ... until e=0; если к концу выполнения команд, которые находятся внутри цикла переменная e будет равна нулю, то цикл закончится и не будет повторятся снова
  4. Вывод Write(Chr(Ord('a')+i),': '); функция Ord преобразует символ (в данном случае символ "a" англ. алфавита) в кодировку Unicode. (В unicode символы пронумерованы в алфавитном порядке. То есть +1 к коду означает сдвиг по алфавиту вправо на 1 позицию). Затем к коду символа "a" прибавляется значение i. Затем функция Chr преобразует новый код в символ.
  5. Ввод переменной s
  6. Функция Val преобразует строку s в число и записывает в переменную t. Если преобразование удалось, то переменная e равняется нулю, если нет, то переменная e больше нуля.
  7. Условие - Если e не равняется нулю, то вывести сообщение "Это не целое число, повторите ввод"
  8. Цикл со вводом числа не повторяется если e = 0
  9. Условие - Если t чётное, то функция Inc прибавляет к переменной k единицу.
  10. Вывод логического значения выражения k >= 2 (True если истина и False, если ложь)
  11. Конец программы :)

Ответы и объяснения

Не тот ответ, который тебе нужен?


По всем вопросам пишите на - [email protected]