Мало програм обходиться без введення даних і майже нема таких, що не виводять отримані результати. Передача даних програмі та виведення результатів програми є необхідним елементом програми. Зразу зазначимо, що організація введення та виведення даних у різних мовах програмування виконується по різ ому.
Під лінійною програмою будемо розуміти програму, алгоритм якої складається лише з структури слідування.
Basic.
У мові BASIC введення значень відбувається за допомогою оператора INPUT.
Наприклад, рядок програми, який забезпечує введення значення для змінної А буде мати вигляд (припустимо, хоча це і не суттєво, що рядок має номер 20):
20 INPUT A
Якщо потрібно ввести значення для кількох змінних, то можна скористатися декількома операторами input. Але доцільніше використати один такий оператор, після якого записати мінної А буде мати вигляд (припустимо, хоча це і не суттєво, що рядок має номер 20):
20 INPUT A
Якщо потрібно ввести значення для кількох змінних, то можна скористатися декількома операторами input. Але доцільніше використати один такий оператор, після якого записати змінні, відокремлені символом “кома”.
Наприклад:
20 INPUT A, B
Оператор INPUT дозволяє виводити на екран коментарі, які полегшують введення даних. Коментарі містяться у лапках, після яких ставиться символ “крапка з комою”, а далі записуються змінні. Текст коментарю може містити разом з англійськими й російські літери.
Наприклад:
20 INPUT “Введіть значення A і B”; A, B
При виконанні даного оператора на екрані комп’ютера з’являється знак питання і очікується введення змінні, відокремлені символом “кома”.
Наприклад:
20 INPUT A, B
Оператор INPUT дозволяє виводити на екран коментарі, які полегшують введення даних. Коментарі містяться у лапках, після яких ставиться символ “крапка з комою”, а далі записуються змінні. Текст коментарю може містити разом з англійськими й російські літери.
Наприклад:
20 INPUT “Введіть значення A і B”; A, B
При виконанні даного оператора на екрані комп’ютера з’являється знак питання і очікується введення даних. Якщо даних декілька, то при веденні вони відокремлюються комами. Введення закінчується натисканням клавіші Enter.
Виведення даних забезпечує оператор PRINT. Якщо необхідно вивести не одну, а декілька змінних або значень виразів, то після оператора записують їх перелік, відокремлюючи символами “кома” або “крапка з комою”. Використання символу “крапка з комою” забезпечує пропуск на екрані однієї позиції після виведеного значення. Якщо ж після змінної або виразу використана кома, то на екрані значення займатиме зону шириною в 14 позицій. Аналогі і записуються змінні. Текст коментарю може містити разом з англійськими й російські літери.
Наприклад:
20 INPUT “Введіть значення A і B”; A, B
При виконанні даного оператора на екрані комп’ютера з’являється знак питання і очікується введення даних. Якщо даних декілька, то при веденні вони відокремлюються комами. Введення закінчується натисканням клавіші Enter.
Виведення даних забезпечує оператор PRINT. Якщо необхідно вивести не одну, а декілька змінних або значень виразів, то після оператора записують їх перелік, відокремлюючи символами “кома” або “крапка з комою”. Використання символу “крапка з комою” забезпечує пропуск на екрані однієї позиції після виведеного значення. Якщо ж після змінної або виразу використана кома, то на екрані значення займатиме зону шириною в 14 позицій. Аналогічно оператору INPUT, оператор PRINT теж може використовувати коментарі.
Наприклад,
50 PRINT “S= ” ; S , ”Р= ” ; P
Якщо у програмі використано декілька операторів PRINT, то для кожного оператора виведення починається з нового рядка.
Для того, щоб виконати програму, необхідно з нового рядка екрана записати команду RUN і натиснути клавішу Enter. Для виконання програми з рядка, що має певний номер N, потрібно виконати команду RUN N.
Pascal.
Введення даних на мові Pascal виконується за допомогою оператора READ.
Наприклад, фрагмент програми, який забезпечує введення значення для змінної А буде мати вигляд:
READ ( A ) ;
Якщо потрібно ввести значення для декількох змінних, то можна використати декілька операторів READ або для одного оператора READ записати перелік змінних, відокремлених комами.
Наприклад,
READ ( A , В ) ;
При виконанні оператора програма зупиняється і очікує на введення необхідної кількості значень для змінних. Якщо значень декілька, то вони відокремлюються пропуском. Закінчують введення завжди натисканням клавіші Enter.
Виведення даних на екран дисплея виконуються оператором WRITE. Після оператора в дужках вказується список виразів. Слідом за виразом, після двокрапки можна зазначити ширину поля екрана, в якому розміститься виведене значення. Наприклад, оператор WRITE (10:5, 7:5) виведе на екран числа 10 і 7 так[1]:
˜˜˜10˜˜˜˜7 ( ).
Для дійсних значень можна вказати, скільки цифр необхідно вивести на екран в дробовій частині числа.
Наприклад, якщо x = 31.23456098, а y = - 9032.45987, то оператор
WRITE ( X :6 :3 , Y :12 :2 ) ;
виведе на екран
31.234˜˜˜˜- 9032.45.
Якщо не використовувати такий спосіб виведення, то оператор WRITE дійсні значення виводить у режимі плаваючої крапки.
Щоб прокоментувати виведене значення, у список виведення можна поміщати рядки будь-яких символів, обмежених одинарними лапками.
Наприклад,
Write ( ‘ S= ’, S :10 :4, ’ P= ’, P :6 :3) ;
Існують допоміжні оператори введення та виводу, які при виконанні в програмі переводять курсор на новий екранний рядок — це оператори READLN і WRITELN.
Щоб у тілі програми прокоментувати деякі операції, можна у фігурних дужках { } записати текст коментарю. У середині коментарів не можна використовувати символи фігурних дужок.
С.
Дві функції – Scanf та Printf дозволяють формувати форматні рядки, що забеспечують вірне введення та виведення значень зимінних. Рядок параметрів цих функцій включае звичайні символи, що просто копіюються у вхідний поток, та специфікації перетворень. Кожна спеціфікація перетворення починаеться з символу % та закінчуеться деяким словом, що задае перетворення.
Спеціфікації перетворення
%d
|
Ціле десяткове представлення;
|
%o
|
Ціле в восімковому вигляді без знаку;
|
%x
|
Ціле в восімковому представленні без знаку;
|
%h
|
Десяткове представленні без знаку;
|
%c
|
Один символ
|
%s
|
Рядок символів
|
%e
|
Експоненційне представлення дійсного числа
|
%f
|
Представлення дійсного числа з фіксованою точкою
|
%g
|
Представлення дійсного числа як %f або %e в залежності від значеннь
|
Введення даних на мові С виконується за допомогою оператора Scanf.
Наприклад, фрагмент програми, який забезпечує введення значення для десяткової цілої змінної А буде мати вигляд:
Scanf ( “%d”,&A );
Якщо потрібно ввести значення для декількох змінних, то можна використати декілька операторів Scanf або для одного оператора Scanf записати перелік змінних, відокремлених комами.
Наприклад,
Scanf ( “%d%d%d”, &A, &В, &C );
При виконанні оператора програма зупиняється і очікує на введення необхідної кількості значень для змінних. Якщо значень декілька, то вони відокремлюються пропуском. Закінчують введення завжди натисканням клавіші Enter.
Виведення даних на екран дисплея виконуються оператором Printf. Після оператора в дужках вказується спочатку „рядок формату”, що задає форму виведення інформації, а потім можуть розташовуватись вирази арифметичних типів або рядки. Наведемо ряд прикладів.
Вивід на екран цілого числа
Printf( “/%d/\n”, 123);
Printf( “/%2d/\n”, 123);
Printf( “/%10d/\n”, 123);
Printf( “/%-10d/\n”, 123);
Результат виконання операторів:
/123/
/123/
/˜˜˜˜˜˜˜123/
/123˜˜˜˜˜˜˜/
Вивід на екран дійсного числа
Printf( “/%f/\n”, 1234.67);
Printf( “/%e/\n”, 1234.67);
Printf( “/%4.2f/\n”, 1234.67);
Printf( “/%3.1f/\n”, 1234.67);
Printf( “/%10.3f/\n”, 1234.67);
Printf( “/%10.3e/\n”, 1234.67);
Результат виконання операторів:
/1234.670000/
/1.234670e+03/
/1234.67/
/1234.7/
/˜˜˜˜˜1234.670/
/˜˜˜˜1.235e+03/
Щоб у тілі програми прокоментувати деякі операції, можна у дужках, що задаються символами, /* та */ записати текст коментарю. У середині коментарів не можна використовувати символи дужок коментарів.
Приклад 1. Обчислити площу та периметр прямокутника, якщо відомо його сторони.
початок
A, B
S, P
S, P
кінець
мал. 7
|
І етап. Математична модель: маючи значення сторін а і b прямокутника, обчислимо його площу за формулою S=ab та периметр за формулою P=2(a+b).
ІІ етап. Складемо алгоритм розв’язку задачі у вигляді блок-схеми (мал. 7).
ІІІ етап. Запишемо текст програми.
10 REM Прямоугольник
20 INPUT “Введіть A і B” ; A, B
30 S = A * B
40 P = 2 * ( A + B )
50 PRINT “S= ” ; S, ”Р= ” ; P
60 END
Basic-програма 1
|
|
Program Rectangle; {прямокутник}
Var
A, B, S, P : Real;
Begin
{вводимо данні}
Write ( ‘ Введіть а= ’ ) ; ReadLn (A) ;
Write ( ‘ Введіть b= ’ ) ; ReadLn (B) ;
{виконуємо обчислення}
S:= A * B;
P:= 2 * ( A + B ) ;
{виводимо результат на екран}
WriteLn ( ‘ S= ’, S :10 :4, ’ P= ’, P :6 :3)
End.
|
|
|
Pascal-програма 1
|
ІV етап. Тест. Вхідні дані: А=10, В=2. Результати: S=20, P=24. n
Приклад 2. Обчислити площу трикутника, який задано координатами своїх вершин.
І етап. Математична модель: маючи координати вершин за формулою довжини відрізка () визначимо довжини сторін. Для визначення площі трикутника скористаємося формулою Герона (, де ).
ІІ етап. Складемо алгоритм у вигляді блок-схеми (мал. 7).
ІІІ етап. Запишемо текст програми.
початок
x1,X2,х3
y1,y2,y3
А, В, С,
P, S
S
кінець
мал. 8
|
алг Герон (вещ x1, y1, x2, y2, x3, y3, S)
арг x1, y1, x2, y2, x3, y3
рез S
нач вещ a, b, c, p
a := ((x2-x1)**2+(y2-y1)**2)**(1/2)
b := ((x3-x2)**2+(y3-y2)**2)**(1/2)
c := ((x3-x1)**2+(y3-y1)**2)**(1/2)
p := (a+b+c)/2
S := (p*(p-a)*(p-b)*(p-c))**(1/2)
S := S
кон
НАМ-програма 2
|
10 REM Герон
20 INPUT “Введіть координати точок” ; X1, Y1, X2, Y2, X3, Y3
30 A = SQR ((X2-X1)^2+(Y2-Y1)^2)
40 B = SQR ((X3-X2)^2+(Y3-Y2)^2)
50 C = SQR ((X3-X1)^2+(Y3-Y1)^2)
60 P = (A+B+C) / 2
70 S = SQR (P*(P-A)*(P-B)*(P-C))
80 PRINT “Площа дорівнює ”; S
Basic-програма 2
|
|
Program Geron;
Var
A, B, C, P, S : Real;
X1, Y1, X2, Y2, X3, Y3 : Real;
Begin
Write ( ‘ Координати 1-ї точки ’ ) ;
ReadLn (X1, Y1) ;
Write ( ‘ Координати 2-ї точки ’ ) ;
ReadLn (X2, Y2) ;
Write ( ‘ Координати 3-ї точки ’ ) ;
ReadLn (X2, Y2) ;
A := Sqrt ( Sqr (X2-X1)+Sqr (Y2-Y1) ) ;
B := Sqrt ( Sqr (X3-X2)+Sqr (Y3-Y2) ) ;
C := Sqrt ( Sqr (X3-X1)+Sqr (Y3-Y1) ) ;
P := ( A + B +C ) / 2 ;
S := Sqrt ( P*(P-A)*(P-B)*(P-C) ) ;
WriteLn ( ‘ S= ’, S :10 :4 )
End.
|
|
|
Pascal-програма 2
|
ІV етап. Тест. Вхідні дані: x1=0 , y1=0 , x2=3 , y2=3 , x3=7 , y3= -1 . Результат: S=12. n
[1] Нагадаємо, що символом ˜ми позначаємо порожню позицію екрана
|