Как осуществляется просмотр результата программы в pascal
Перейти к содержимому

Как осуществляется просмотр результата программы в pascal

  • автор:

Ввод-вывод данных в Pascal

Компьютерные программы обрабатывают (изменяют) различные данные. Программа получает данные, что-то делает с ними и выводит их в измененной форме или выводит другие данные.

Следовательно, любой язык программирования должен иметь инструменты как для ввода данных, так и их вывода. В Паскале ввод осуществляется с помощью процедур read и readln, а вывод — благодаря write и writeln. Процедуры, которые имеют окончание ln, после своего выполнения переводят указатель на новую строку.

Откуда или с помощью чего можно ввести данные в программу? Обычно это можно сделать с помощью клавиатуры или из файлов.

Куда можно вывести данные? На экран, в файл, на принтер, передать по сети.

Стандартным устройством ввода является клавиатура, а вывода — монитор. Стандартные — значит «работающие по-умолчанию»; то есть если не указано ничего иного, то программа будет считывать данные с клавиатуры, а выводить их на монитор. Вместе клавиатуру и монитор называют консолью. Таким образом консоль представляет собой стандартное устройство ввода-вывода.

Вывод данных на экран. Форматированный вывод

Вывод данных на экран и в файл в языке программирования Pascal осуществляется с помощью процедур write и writeln . Здесь будет рассмотрен вывод только на экран.

Допустим, нам требуется отобразить на экране пару фраз. Если мы хотим, чтобы каждая из них начиналась с новой строки, следует использовать writeln , если нет – то write .

Вывод с помощью writeln и write

Write нередко используется, когда надо вывести для пользователя сообщение на экран, после чего получить данные, не переводя курсора на новую строку. Например, выводим на экран «Введи число: » и не переводим курсор на новую строку, а ждем ввода.

Еще один пример. В памяти компьютера хранятся данные. Из программы мы обращаемся к ним с помощью переменных num , fl и st . Вывести их значения на экран можно по-разному.

Форматированный вывод

Во втором случае мы видим, что процедуры вывода, как write , так и writeln , позволяют конструировать выводимую информацию из различных частей (строковых литералов и переменных).

В третьем случае был осуществлен так называемый форматированный вывод. При этом для выводимого значения указывается ширина поля вывода (количество знакомест). Если мы выводим дробное значение, то вторым числом через двоеточие указывается количество знаков после запятой. Если для вещественных чисел не осуществлять форматирование, то они отобразятся так, как определено для данного компьютера. Если указать только число знакомест без фиксирования дробной части, то вывод будет в экспоненциальной форме.

Ввод данных с клавиатуры

Ввод данных в языке программирования Паскаль обеспечивается процедурами read и readln . Ввод данных осуществляется либо с клавиатуры, либо из файла. Здесь рассматривается только ввод с клавиатуры.

Когда данные вводятся, то они помещаются в ячейки памяти, доступ к которым обеспечивается с помощью механизма переменных. Поэтому, когда в программе на Pascal используется процедура read или readln , то в качестве фактического параметра (аргумента) ей передается имя переменной, которая будет связана с вводимыми данными. Потом эти данные можно будет использовать в программе или просто вывести на экран.

Readln

В процедуры ввода можно передавать не один фактический параметр, а множество.

Передача readln нескольких параметров

При вводе данных их разделяют пробелом, табуляцией или переходом на новую строку ( Enter ). Данные символьного типа не разделяются или разделяются переходом на новую строку.

Существуют особенности ввода данных с помощью операторов read и readln . Если используются подряд несколько read , то вводимые данные можно разделять всеми допустимыми способами. При использовании нескольких вызовов readln каждый последующий срабатывает только после нажатия Enter . Программа ниже иллюстрирует это. Комментарии поясняют последовательность возможных действий при вводе данных.

var a, b, c, d: integer; begin read(a); // a -> Пробел или Tab или Enter -> b read(b); writeln(a, ' ', b); readln(c); // c -> только Enter -> d readln(d); writeln(c, ' ', d); read(a, b); // a -> Пробел или Tab или Enter -> b writeln(a, ' ', b); readln(c, d); // c -> Пробел или Tab или Enter -> d writeln(c, ' ', d); end. 

Как осуществляется просмотр результата программы в pascal

Название темы должно быть информативным !
Прежде чем задать вопрос, воспользуйтесь Поиском . и проверьте в FAQ (ЧАВО) Паскаля
Чтобы получить вразумительный ответ, подробно опишите проблему: что надо сделать, что не получается и номер ошибки (если есть), которую выводит компилятор. Для вставки кода ваших программ используйте, пожалуйста, кнопку СODE=pas или выпадающий список СODE для других языков (подсветка синтаксиса). [!] Как правильно задавать вопросы | Руководство по языку B.Pascal 7 & Objects/LR | Borland Pascal. Руководство пользователя

Модераторы: volvo877
‘> Help!!Как просмотреть результат программы в Pascal если он не влезает на экран?

  • Подписаться на тему
  • Сообщить другу
  • Скачать/распечатать тему

Сообщ. #1 , 08.09.09, 17:35
Unregistered

Помогите. Help. Как просмотреть результат выполнения программы в Pascal если он не влезает на один экран.

Сообщ. #2 , 08.09.09, 17:48
Unregistered

Полоса прокрутки ничего не дает, может взять монитор побольше. Хотя мне необходимо просматривать десятки тысяч строк, вряд ли есть такой монитор. А может результат затирается, каждый раз когда количество символов переходит определенный порог? Как этого избежать. может надо увеличить какой- то файл. Помогите пожалуйста, а то я последний раз сталкивался с паскалем еще на PDP-11 и VAX в 1994.

Сообщение отредактировано: StrangerTheMan2005 — 08.09.09, 18:19
Сообщ. #3 , 08.09.09, 18:16

Рейтинг (т): 878

Пиши результат в файл и просматривай его потом сколько влезет. Больше ничего посоветовать не могу, ибо КАК формируется результат, и что у тебя вообще происходит в программе — не имею ни малейшего понятия. Будет код — будем разговаривать.

Сообщ. #4 , 08.09.09, 18:27
Unregistered

program test;
var i:integer;
begin
for i:=1 то 1000 do
begin
writeln(i);
end
end.
вот простейший код, буду очень благодарен, если сможешь объяснить как мне просмотреть весь результат, как организовать его листинг на экране в окне вывода!

Сообщение отредактировано: StrangerTheMan2005 — 08.09.09, 18:29
Сообщ. #5 , 08.09.09, 18:34

Рейтинг (т): 878

Я тебе сказал уже: пиши в файл, а файл просматривай сторонними средствами. Это первый вариант. Второй вариант — выводишь по 25 строк, чтобы успеть просмотреть каждую порцию, потом жмешь Enter и на экран выводится следующая порция результатов. Устраивает тебя это? Тогда покажу, как сделать.

Третий вариант — выводить не только «порциями», а еще и в несколько столбцов (не всегда приемлемо, несколько столбцов могут и не поместиться на экране). Тогда нажимать на Enter придется не так много раз.

Сообщ. #6 , 08.09.09, 18:42
Unregistered
Цитата volvo877 @ 08.09.09, 18:34

Я тебе сказал уже: пиши в файл, а файл просматривай сторонними средствами. Это первый вариант. Второй вариант — выводишь по 25 строк, чтобы успеть просмотреть каждую порцию, потом жмешь Enter и на экран выводится следующая порция результатов. Устраивает тебя это? Тогда покажу, как сделать.

Третий вариант — выводить не только «порциями», а еще и в несколько столбцов (не всегда приемлемо, несколько столбцов могут и не поместиться на экране). Тогда нажимать на Enter придется не так много раз.

у меня когда-то был паскаль в котором я мог смотреть результаты пролистывая клавишами page up page down, но в 7.1 не могу этого сделать

Добавлено 08.09.09, 18:45
да меня устроит выводить по 25 строк, если можно будет вернуться к уже просмотренным строкам, раньне у меня был паскаль в котором я мог перемещаться в окне результатов с помощью page up? page down? неужели в 7.1 нет такой возможности?

как в паскале можно посмотреть результаты своего программирования?

Последним оператором программы поставьте ReadLn; (именно так, без параметра) , тогда программа приостановит работу и будет ждать нажатия клавиши Enter. Это даст возможность рассмотреть пользовательский экран, который, как справедливо замечено, Отображается по Alt+F5.

Остальные ответы

включаешь компилятор
и что не работает?

не вру, ошибки нет
предпоследняя строчка лишняя, ты уже написал, что «с: » и значение числа «с»

Pascal: Занятие № 8. Подпрограммы: функции в Pascal

На занятии будет объяснен алгоритм работы с функциями на Паскале, рассмотрены стандартные функции. Будут разобраны примеры использования функций с параметрами и без параметров.

Стандартные функции языка Pascal

Арифметические функции (основные)

Функция Назначение Тип результата
abs (x) абсолютное значение аргумента совпадает с типом аргумента
sqr (x) квадрат аргумента совпадает с типом аргумента
sqrt (x) квадратный корень аргумента вещественный
cos (x) косинус аргумента вещественный
sin (x) синус аргумента вещественный
arctan (x) арктангенс аргумента вещественный
exp (x) ex вещественный
ln (x) натуральный логарифм вещественный
int (x) целая часть числа вещественный
frac (x) дробная часть числа вещественный

Функции преобразования типов

round (x) — округляет вещественное число до ближайшего целого.
trunc (x) — выдает целую часть вещественного числа, отбрасывая дробную.

Пользовательские функции Pascal

Функция в Паскале — это подпрограмма, которая в отличие от процедуры всегда возвращает какое-либо значение. Для этого в теле функции её имени присваивается вычисленное значение — результат, который она возвращает.

  • Функция – это подпрограмма, результатом работы которой является определенное значение.
  • Функции используются для:
    • выполнения одинаковых расчетов в различных местах программы;
    • для создания общедоступных библиотек функций.

    1

    формальные параметры в паскале

    параметры-переменные в паскале

    тип функции

    локальные переменные в функции

    результат функции

    var; function название (параметры): тип результата; var; beginназвание:=результат; end; beginend.

    Пример: написать функцию, которая вычисляет наибольшее из заданных двух значений

    Решение:

    пример функции в паскале

    вызов функции в паскале

    Вызов функции:

    PascalABC.NET :
    Правила описания функции:

    1. Мы должны написать тип значения, которое возвращает функция.
    2. Переменная Result хранит результат функции.

    function f(x: real): real; begin Result := x * x + 1; end;

    function f(x: real): real; begin Result := x * x + 1; end;

    Вызов функции стоит в выражении:

    // основная программа begin var x := 5; var r := Sqrt(x) + f(x); end.

    // основная программа begin var x := 5; var r := Sqrt(x) + f(x); end.

    Задача function 0. Написать функцию, которая вычисляет наибольшее из заданных трех значений. Функция с тремя параметрами.

    Введите три числа: 4 1 6 наибольшее = 6

    Пример: Написать функцию на Паскале, которая складывает два любых числа

    первое число: 2 второе число: 5 сумма = 7
    1 2 3 4 5 6 7 8 9 10 11 12
    var x,y:integer; function f(a,b:integer):integer; begin f:= a+b; end; begin writeln('первое число:'); readln(x); writeln('второе число:'); readln(y); writeln('сумма= ',f(x,y)); end.

    var x,y:integer; function f(a,b:integer):integer; begin f:= a+b; end; begin writeln(‘первое число:’); readln(x); writeln(‘второе число:’); readln(y); writeln(‘сумма= ‘,f(x,y)); end.

    В рассмотренном примере использования функции в Паскале: функция f имеет два целочисленных параметра — a и b . Через двоеточие в заголовке функции (строка 2) указано, что значение, вычисляемое функцией, будет тоже целочисленным. В теле функции вычисляемая сумма присваивается имени функции. А в основной программе вызов функции осуществляется в качестве параметра оператора writeln .

    Таким образом, главное отличие функции от процедуры — это то, что функция производит какие-либо вычисления и выдает в программу результат в виде значения, в то время как процедура чаще всего выполняет какие-либо действия с результатом, например, выводит его на экран (функция этого делать не может).

    Задача function 1. При помощи функции найти среднее арифметическое двух чисел (функция с двумя параметрами).

    Введите два числа: 4 7 среднее арифметическое = 5,5

    Пример: Составить программу с функцией для вычисления факториала числа.
    Показать решение:

    1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
    var x:integer; function fact(a:integer):integer; var i: integer; begin if a=1 then begin fact:=1;exit; end; result:=2; for i:=3 to a do result:=result*i; fact:=result; end; begin writeln('число:'); readln(x); writeln(fact(x)); end.
    1 2 3 4 5 6 7 8 9 10
    function Fact(n: integer): integer; begin Result := 1; for var i:=1 to n do Result *= i end; begin var x:= readInteger('число:'); println(x,'! = ',fact(x)); end.

    function Fact(n: integer): integer; begin Result := 1; for var i:=1 to n do Result *= i end; begin var x:= readInteger(‘число:’); println(x,’! = ‘,fact(x)); end.

    В рассмотренном примере функция имеет один параметр — a . Вычисляемое функцией значение имеет целочисленный тип, это указывается в заголовке функции (строка 2). В теле функции в цикле for вычисляется факториал числа. Результат вычисления присваивается имени функции (строка 9). В теле программы для вывода результата функции она вызывается в операторе writeln (строка 14), который и выводит результат на экран.

    PascalABC.NET :
    Короткое определение функции:

    function Sq(x: real) := x * x + 1; begin var x := 10; var r := Sq(x) + Sq(2) end.

    function Sq(x: real) := x * x + 1; begin var x := 10; var r := Sq(x) + Sq(2) end.

    Короткая запись

    Если тело функции состоит только из одного оператора, PascalABC.NET позволяет использовать при описании сокращенный синтаксис, без ключевых слов begin и end :

    1 2 3 4 5 6
    ## function SumXY(x,y: real) := x + y; // основная программа begin Print (SumXY(9,2)); //11 end;

    ## function SumXY(x,y: real) := x + y; // основная программа begin Print (SumXY(9,2)); //11 end;

    Задача function 2. Составить функцию, которая определяет сумму всех чисел от 1 до N и привести пример ее использования. N — параметр функции.

    Пример:

    Введите число: 100 сумма = 5050

    Задача function 3. Составить функцию, которая определяет, сколько зерен попросил положить на N-ую клетку изобретатель шахмат (на 1-ую – 1 зерно, на 2-ую – 2 зерна (в два раза больше предыдущего результата), на 3-ю – 4 зерна, на 4-ю – 8 зерен…). N — параметр функции.

    Пример:

    Введите номер клетки: 28 На 28-ой клетке 134217728 зерен.

    Задача function 4. Описать функцию IsDigit(A) , которая возвращает истину, если целое число A представляет цифру (то есть A лежит в диапазоне 0–9). В основной программе вывести значение этой функции для N (N ≥ 0) данных чисел.

    Введите N: 3 Введите число: 2 >>> true Введите число: 34 >>> false Введите число: 4 >>> true

    Задача function 5. Вычисление степени числа с помощью функции на языке Паскаль.

    Пример:

    Введите число: 3 Введите степень числа: 2 Результат 3^2 = 9

    Задача function 6. Описать функцию Calc(A, B, Operation) вещественного типа, выполняющую над ненулевыми вещественными числами A и B одну из арифметических операций и возвращающую ее результат. Вид операции определяется целым параметром Operation : 1 — вычитание, 2 — умножение, 3 — деление, остальные значения — сложение. С помощью Calc выполнить для данных A и B операции, определяемые данными целыми N1 , N2 , N3 .

    Пример:

    Введите два числа: 5 7 Введите номер операции (1 — вычитание, 2 — умножение, 3 — деление, остальные значения — сложение): 2 Результат 5*7 = 35

    * Из задачника М. Э. Абрамян (Proc22)

    Самостоятельная работа

    1 вариант: Описать функцию CircleS(R) вещественного типа, находящую площадь круга радиуса R ( R — вещественное). С помощью этой функции найти площади трех кругов с данными радиусами. Площадь круга радиуса R вычисляется по формуле S=π∗R 2 . В качестве значения Пи использовать 3.14 .

    * Из задачника М. Э. Абрамян (Proc18)

    Пример:

    Введите радиус: 5.2 Площадь круга = 16,328‬ ___ Введите радиус: 6.3 Площадь круга = 19,782‬‬ ___ Введите радиус: 7.1 Площадь круга = 22,294

    2 вариант: Описать функцию TriangleP(a, h) , находящую периметр равнобедренного треугольника по его основанию a и высоте h , проведенной к основанию ( a и h — вещественные). С помощью этой функции найти периметры трех треугольников, для которых даны основания и высоты (периметр = сумме длин всех сторон). Для нахождения боковой стороны b треугольника использовать теорему Пифагора: b 2 =(a/2) 2 +h 2 .

    * Из задачника М. Э. Абрамян (Proc20)

    Пример:

    Введите основание треугольника: 6 Введите высоту треугольника: 5 Периметр треугольника = 17,83095 ___ Введите основание треугольника: . Введите высоту треугольника: . Периметр треугольника = . ___ Введите основание треугольника: . Введите высоту треугольника: . Периметр треугольника = .

    Потренируйтесь в решении задач по теме, щелкнув по пиктограмме:

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *