Тройной вывод - PascalABC.NET

Узнай цену своей работы

Формулировка задачи:

Задание звучит так: "Написать программу игры в «Поле чудес»: ведущий загадывает слово, обозначаемое символами * (то есть ***** - слово из пяти букв) . Отгадывающий вводит буквы, если буква присутствует в слове, она отображается. Когда слово угадано целиком - выводится количество сделанных попыток." Программу я написал, она вроде как работает. Но есть проблемы: счётчик ведёт начисление 3 раза, и 3 раза пишется массив Б. Я не понимаю почему так происходит, вроде как они ни в каких циклах не содержатся.

Решение задачи: «Тройной вывод»

textual
Листинг программы
Var 
  Memory: array of char; //Ваше слово
  Yes: array of char;
  Counter: integer; //Счетчик
 
Begin
  Var Size:= Random(1,18); //Рандомный размер слова
  SetLength(Memory,Size); //Выделение памяти 
  SetLength(Yes,Size); //Выделение памяти
 
  For var i:=0 to Size-1 do begin
    Memory[i]:= chr(Random(1040,1071)); //Заполняем слово
    Yes[i]:='*'; //Заодно и выводящий таблоид
  end;
  
  Writeln('Начинайте ввод букв:');
  Counter:= 0;
  
  Repeat
    Writeln(Yes);
    Var chr:= ReadlnChar; //Тут в .NET почитать о методах динамических массивов
    If Memory.Contains(chr) then begin
      Yes[Memory.IndexOf(chr)]:= Memory[Memory.IndexOf(chr)]; //В выводный массив вносим букву по позиции chr в Memory.
      Memory[Memory.IndexOf(chr)]:= '-'; //Обнуляем ячейку,в которой находится chr: возможны повторения букв в слове.
    end;
    Counter += 1; //Операторы,как во всех .NET языках
  Until Yes.IndexOf('*') = -1;
  Writeln('Количество попыток: ', Counter);
end.

Объяснение кода листинга программы

  1. Объявлены три переменные: Memory, Yes, Counter.
  2. Размер слова (Size) генерируется случайным образом.
  3. Память выделяется под массивы Memory и Yes размером Size.
  4. Массив Memory заполняется случайными символами.
  5. Массив Yes заполняется символом '*'.
  6. Выводится приглашение к вводу букв.
  7. Устанавливается счетчик Counter равным 0.
  8. В цикле повторяется вывод массива Yes и чтение символа из ввода пользователя.
  9. Если введенный символ присутствует в массиве Memory, то он заменяется на '-' в массиве Yes и на соответствующем индексе в массиве Memory.
  10. Счетчик Counter увеличивается на 1.
  11. Цикл повторяется до тех пор, пока в массиве Yes есть символ '*'.
  12. Выводится количество попыток.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

9   голосов , оценка 4.333 из 5
Похожие ответы