Помощь - Поиск - Пользователи - Календарь
Полная версия: вывод данных цикла на экран через таблицу
Форум «Всё о Паскале» > Pascal, Object Pascal > Задачи
JPearce
такая проблема в Turbo Pascal: есть функция, ей задают отрезок, дают кол-во точек табулирования. Через цикл записываем табуляцию и высчитываем для каждого X Y. Это я сделал. Но! Дальше требуется вывести полученные данные на экран в виде таблицы с шапкой "№ точки" "X" "Y" "min-max" . В столбике min-max должно быть повторено значение Y в тех строках, где оно min и max, в остальных строках пусто. Это я ваще не знаю как сделать. Если кто знает как вывести эту штуку, помогите, взяв для примера какую-нибудь простейшую функцию( у меня просто очень громоздкая ).

Заранее большое спасибо. понимаю, что для кого-то это задание совсем легким покажется, но я програмирую совсем недавно просто.
klem4
Поиск -> Табулирование (Табулирование функции)

В общем вот простейший пример

uses crt;

function F(x : Integer) : Single;
begin
  F := Sin(x);
end;

var

  x: Integer;


begin

  clrscr;


  writeln('|-----|---------|');
  writeln('|  x  |    y    |');
  writeln('|-----|---------|');

  for x := 1 to 30 do
   writeln('|', x:3, '|':3, F(x):7:3, '|':3);

  writeln('|---------------|');


  readln;
end.
Гость
Спасибо большое))) что-то я нереально тупил) все действительно легко очень. Отдельное сапсибо за оперативность, ответ последовал очень быстро)
Гость
правда, как все же быть со столбцом min-max?
volvo
Изврат, но работает:
uses crt;

function F(x : Integer) : Single;
begin
  F := Sin(x);
end;

function s(st: string; b: boolean): string;
begin
  if b then s := st else s := '';
end;

var
  x: Integer;
  b: boolean;
  i_min, i_max: integer;
  T, min, max: single;

begin

  clrscr;


  writeln('|-----|---------|-------|');
  writeln('|  x  |    y    |min/max|');
  writeln('|-----|---------|-------|');

  i_min := 0; min := maxlongint;
  i_max := 0; max := -maxlongint;

  for b := false to true do

    for x := 1 to 20 do begin
      T := F(X);
      if (not b) then begin
        if min > T then begin
          min := T; i_min := x;
        end;
        if max < T then begin
          max := T; i_max := x;
        end;
      end
      else writeln('|', x:3, '|':3, F(x):7:3, '|':3,
                   s('min', x = i_min)+s('max', x = i_max):7, '|');
    end;

  writeln('|-----------------------|');


  readln;
end.

smile.gif
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.