Карта сайта Kansoftware
НОВОСТИУСЛУГИРЕШЕНИЯКОНТАКТЫ
KANSoftWare

Размещение цикла while в программе для вывода строк треугольника Паскаля

Delphi , Синтаксис , Циклы

В данной статье мы рассмотрим, как использовать цикл while для повторного запроса у пользователя строки треугольника Паскаля. Мы будем использовать язык программирования Pascal (Delphi).

Треугольник Паскаля — это числовая пирамида, в которой каждое число (кроме первого и последнего в строке) является суммой двух чисел, расположенных над ним в предыдущей строке. Например:

     1
    1 1
   1 2 1
  1 3 3 1
 1 4 6 4 1

Мы хотим создать программу, которая будет запрашивать у пользователя номер строки треугольника Паскаля, выводить эту строку и спрашивать, хочет ли пользователь увидеть еще одну строку. Если пользователь вводит "y", программа должна повторить процесс.

Вот как можно реализовать это в Object Pascal (Delphi):

program PascalTriangle;

{$APPTYPE CONSOLE}

uses
  SysUtils;

function ComputeRow(RowToCompute: Integer): TArray<Integer>;
// Функция вычисления строки треугольника Паскаля
var
  LastRow: TArray<Integer>;
  ThisRow: TArray<Integer>;
begin
  if RowToCompute = 1 then
  begin
    SetLength(Result, 1);
    Result[0] := 1;
  end
  else
  begin
    LastRow := ComputeRow(RowToCompute - 1);
    SetLength(ThisRow, Length(LastRow) + 1);
    ThisRow[0] := 1;
    ThisRow[High(ThisRow)] := 1;
    for var I := 1 to High(ThisRow) - 1 do
      ThisRow[I] := LastRow[I - 1] + LastRow[I];
    Result := ThisRow;
  end;
end;

var
  Scanner: TStringReader;
  RowToCompute: Integer;
  Another: Char;

begin
  Scanner := TStringReader.Create('');

  while True do // Бесконечный цикл, так как мы хотим спрашивать пользователя много раз
  begin
    Write('Введите номер строки треугольника Паскаля: ');
    RowToCompute := StrToInt(Scanner.ReadLine);

    Writeln('Строка ', RowToCompute, ' треугольника Паскаля: ', ComputeRow(RowToCompute));

    Write('Еще (y/n)? ');
    Another := Scanner.ReadLine[1];

    if Another <> 'y' then // Если ответ не 'y', выходим из цикла
      Break;
  end;

  Scanner.Free;
  Readln;
end.

В этом примере мы используем бесконечный цикл while True, чтобы повторять процесс запроса у пользователя строки треугольника Паскаля. Внутри цикла мы запрашиваем у пользователя номер строки, вычисляем эту строку с помощью функции ComputeRow и выводим результат. Затем мы спрашиваем пользователя, хочет ли он увидеть еще одну строку. Если ответ не 'y', мы выходим из цикла с помощью команды Break.

Создано по материалам из источника по ссылке.

В данной статье рассматривается создание программы на Object Pascal (Delphi), которая использует цикл while для повторного запроса у пользователя строки треугольника Паскаля, вычисляет и выводит эту строку, а затем спрашивает, хочет ли пользователь увидет


Комментарии и вопросы

Получайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш Telegram-канал delphi_kansoftware и будьте в курсе последних тенденций в разработке под Linux, Windows, Android и iOS




Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.


:: Главная :: Циклы ::


реклама


©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007
Top.Mail.Ru

Время компиляции файла: 2024-12-22 20:14:06
2025-07-26 08:20:02/0.0054209232330322/1