Версия для печати
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум на Исходниках.RU > Pascal: Общие вопросы > Форматированный вывод на экран


Автор: romtek 12.04.04, 16:39
Форматированный вывод на экран


Чем отличаются write от writeln, и read от readln?
ln-означает, что курсор должен перейти на начало следующей строки.

Рекомендуемый способ ввода данных такой:
<{CODE_COLLAPSE_OFF}><{CODE_WRAP_OFF}>
    write('Введите строку: '); readln(str);
    write('Введите число: '); readln(num);

Пример вывода
<{CODE_COLLAPSE_OFF}><{CODE_WRAP_OFF}>
    Введите строку: Ты просто супер!
    Введите число: 100


Как красиво вывести данные?

Одномерный массив A (M) целых чисел
<{CODE_COLLAPSE_OFF}><{CODE_WRAP_OFF}>
    writeln;
    { Выводит числа с промежутком в 4 позиции один от другого, выравнивая по правому краю }
    for i:=1 to M do write (A[i] : 4);

Пример вывода
<{CODE_COLLAPSE_OFF}><{CODE_WRAP_OFF}>
     -10   3  14 -87


Матрица A (MxN) из вещественных чисел
<{CODE_COLLAPSE_OFF}><{CODE_WRAP_OFF}>
    type arr= array[1..P,1..Q] of real;
    procedure ShowMatrix(var A: arr; M,N: integer);
    var i,j: word;
    begin
         Writeln;
         For i:=1 to M do
         begin
              Writeln; { переход на следующую строку }
              for j:=1 to N do Write (A[i,j]:8:2);
         end;
    end;

Пример вывода
<{CODE_COLLAPSE_OFF}><{CODE_WRAP_OFF}>
       29.33   28.00   20.67
       23.33   19.00   10.33


Записи, База Данных (БД)
<{CODE_COLLAPSE_OFF}><{CODE_WRAP_OFF}>
    type
       TDataBook=record
         Name: string[30];
         Phone: string[10];
         Street: string[30];
         Gender: Char; {(M)ale/(F)emale}
       end;
     
    const Rec=3; { Count of Records }
     
    var
       DataBook: TDataBook;
       A: Array[1..Rec] of TDataBook;
       i: word;
     
    begin
         With DataBook do
         begin
              for i:=1 to Rec do
              with A[i] do
              begin
                   writeln;
                   write('Name: '); readln(Name);
                   write('Phone: '); readln(phone);
                   write('Street: '); readln(street);
                   write('Gender [(M)ale/(F)emale]: '); readln(gender);
              end;
              
          Writeln;
              writeln ('Name':30, 'Phone':10, 'Street':30, 'Gender':7);
              
          for i:=1 to Rec do
              with A[i] do
               writeln (Name:30, Phone:10, Street:30, Gender:2);
         end;
         writeln('Press Enter.');
         readln;
    end.


Дополнительные ссылки:
Как вывести Real в понятном виде?
Как вывести текст (строку) ?

Powered by Invision Power Board (https://www.invisionboard.com)
© Invision Power Services (https://www.invisionpower.com)