Главная Случайная страница


Категории:

ДомЗдоровьеЗоологияИнформатикаИскусствоИскусствоКомпьютерыКулинарияМаркетингМатематикаМедицинаМенеджментОбразованиеПедагогикаПитомцыПрограммированиеПроизводствоПромышленностьПсихологияРазноеРелигияСоциологияСпортСтатистикаТранспортФизикаФилософияФинансыХимияХоббиЭкологияЭкономикаЭлектроника






Структура программы на языке Паскаль

 

Программа – это последовательность инструкций компьютеру приводящих к конечному результату за конечное число шагов.

Программа, написанная на алгоритмическом языке, переводится на язык машинных команд:

program <имя>;

<описательная часть>;

<раздел функций и процедур>;

begin

<исполнительная часть>;

end.

 

Зарезервированные слова:

  • program <имя>– необязательная строка;
  • begin – начало;
  • end – конец.

<имя> - присваивается составителем программы (строится по правилам составления переменных).

 

Описательная часть программы

 

Все переменные, используемые в программе, должны быть описаны.

Описание начинается со служебного слова var.

 

program ff;

var

i,n: integer;

x,y,z: real;

begin;

...

Список переменных от типа отделяется - “:”, одно описание от другого - “;”, список переменных перечисляется через - “,”. Если в программе используются метки, то они описываются с помощью служебного слова label. Метки могут быть числовые и символьные.

В программах на Паскале можно использовать константы, которые описываются с помощью служебного слова const.

const

n=100;

 

Переменная-константа (n), более в программе не описывается, ее тип определяется присвоенным ей числовым значением.

Для определения пользовательского типа данных используют служебное слово - type.

type

in=integer;

var

a,b: in;

 

С помощью служебного слова uses можно подключать к программе стандартные библиотечные модули. Стандартные модули объединяют функции определенного назначения и, в случае необходимости, подключаются к программе.

Например, для использования функции очистки экрана (clrscr), к программе подключают стандартный модуль crt.

uses

crt;

 

Исполнительная часть программы

 

Выполнение программы начинается именно с исполнительной части.

Отдельные инструкции, входящие в программу, называются операторами. Операторы отделяются один от другого – “;” .

Операторы бывают трех типов:

пустой оператор;

простой оператор;

составной оператор.

Структура составного оператора:

begin

<оператор 1>; <оператор 2>; …<оператор N>;

end;

 

Оператор присваивания

 

<переменная> : = <выражения>;

где “: =” – знак присваивания.

Следующие выражения читаются одинаково

x:=2; x:= 2;

 

y:=d+beta; y:=d+Beta;

 

Заглавные и прописные буквы в программе интерпретируются одинаково.

Операторы ввода-вывода

 

Оператор ввода

readln (<список ввода>);

где readln - имя оператора ввода;

<список - ввода> - список имен переменных, разделенных запятыми.

Например:

readln (a,b,c);

По данному оператору с клавиатуры необходимо ввести значения переменных a, b и c.

readln ;

По этому оператору компьютер ожидает нажатия любой клавиши. Используется как последний в программе, чтобы успеть записать результаты вычислений.

 

Оператор вывода

writeln (<список - вывода>);

где writeln - имя оператора вывода;

<список - вывода> - список переменных вывода, разделенных запятыми.

 

writeln ;

Оператор writeln без списка вывода можно использовать для пропуска пустых строк при оформлении вывода результатов.

 

В операторе writeln можно использовать формат вывода значений переменных.

Например:

writeln ( ’ a = ’, a:8:3, ’ b = ’ , b:4);

 

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

При a =341.154 , b = 2 результат на экране будет выглядеть:

a = 341.154 b = 2

При a = 1.3 , b = 144 результат на экране будет выглядеть:

a = 1.300 b =144

 

Комментарии в программе

 

В любом месте программы можно записать пояснительный текст – комментарий. Он не обрабатывается во время выполнения программы. Текст комментария ограничен символами { }.

{ Пояснения к программе - комментарии}

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

 

Задача.

Даны два целых числа. Найти их полусумму и произведение.

 

рrogram primer;

uses

crt;

var

a, b,p: integer;

s: real;

begin

сlrscr; {функция очистки экрана}

{вывод сообщения на экран}

writeln (’ введите a, b ’);

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

readln ( a, b);

s: = (a + b)/2;

p: = a*b;

вывод результатов }

writeln (’ s = ’, x:8:3, ’ ’, ’p = ’, y:4);

readln;

end.

 

Ключевые слова горят ярче, чем остальной текст программы.

 

Пример программы линейной структуры

 

Задача.

Математическая формулировка задачи: Вычислить и вывести на печать значение функции y. Исходные данные x, a и b ввести с клавиатуры.

 

  1. Таблица идентификаторов.
Наименование переменной Обозначения в программе
Функция y
Аргумент x
Переменная 1 a
Переменная 2 b

 

  1. Листинг программы.

 

рrogram lab1;

uses

crt;

var

a, b: integer;

y,x: real;

begin

{оператор очистки экрана}

сlrscr;

{вывод сообщения на экран}

writeln (’ введите x,a, b ’);

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

readln ( x,a, b);

y:=(a+2*b)*sqrt(a+2*b)*(1/cos(x));

{вывод результатов вычисления}

writeln (’ y=’, y:8:3);

readln;

end.

 

Вопросы для самоконтроля

 

  1. Что такое программа?
  2. Какие символы могут содержать имена переменных?
  3. Какие типы стандартные переменных допустимы на языке Паскаль?
  4. Сколько байт памяти занимают переменные типа real?
  5. Из каких частей состоит структура программы на Паскале.
  6. Что определяет объем памяти, отводимой под каждую переменную?
  7. Что такое оператор?
  8. Какие типы операторов допустимы на Паскале?
  9. Как операторы отделяются друг от друга?
  10. Для чего используются комментарии в программе?

 

8.11. Методические указания для выполнения практического задания №4. «Следования»

Цель работы: Ознакомиться со структурой программы на языке Паскаль, основными операторами, алгоритмами линейной структуры..

Задание:

1. В приложении 5 выбрать вариант задания.

2. Выполнить практическое задание №4, используя пример программы линейной структуры.

3. Составить блок-схему алгоритма.

4. Написать программу и отладить ее по заранее подготовленному тесту.

5. Оформить работу в тетради для практических работ.

6. Результат выполнения программы предъявить преподавателю.

7. Ответить на вопросы самоконтроля.

8. Защитить выполненную работу у преподавателя.

Приложение 5. Таблица вариантов заданий

 

  Вычислить и вывести на печать значение функции Y. Исходные данные x, a и b ввести с клавиатуры.  

 

Ветвления

Очень часто встречаются ситуации, когда требуется выбрать между двумя или более вариантами действий в зависимости от заданного условия. Такая алгоритмическая конструкция называется ветвлением.

 

Операторы условия и перехода

 

Строки программы на Паскале не нумеруются. Отдельные строки в программе могут иметь метки, к которым можно переходить.

Метки должны быть описаны в программы с помощью ключевого слова

 

label

N1, N2 … ;

где N1, N2, … - метки.

Метками могут быть идентификаторы или целые числа (положительные) в диапазоне 0 9999.

Оператор перехода по метке:

 

goto N;

Где N - метка.

Фрагмент программы с использованием меток:

 

program pr;

label 3;

var

x, y: real;

begin

3: readln (x, y);

...

go to 3;

...

end.

 

Логический оператор

 

if < условия > then P1 [else P2 ];

(если ) (то ) (иначе)

[ else P2 ] - не обязательная часть оператора.

Где <условие> - логическое выражение;

P1, P2 - простые или составные операторы.

По этому оператору:

если <условие> - "истинно" (true), то выполняется P1, если - " ложно" (false), то выполняется P2. Перед структурой else «;» - не ставится.

Если else - отсутствует и <условие> - "ложно", то управление передается следующему оператору.

Приведем примеры использования оператора:

 

  1. наибольшее из значений двух переменных вывести на печать:

 

if a>b then writeln(‘a=’,a) else writeln(‘ b=’,b);

 

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

 

If x>=0 then y: = sin(x) else y: = - sin(x);

 

  1. в зависимости от значения переменной, выполнить определенные действия:

 

if a<0 then

begin

b:=2*a;

writeln(b);

end

else

begin

b:=a/2;

goto 3;

end;

 

Операции отношения

 

Операция Название
= Равно
<> Не равно
> Больше
< Меньше
>= Больше или равно
<= Меньше или равно

 

Логические операции

Операция Название
and И
or Или

 

В операторе if можно одновременно проверять несколько условий.

Например:

if (a>b)and(a>c) then writeln(’a - max’);

При проверке нескольких условий в одном операторе, каждое условие записывается в скобках.

Паскаль допускает вложенность операторов if.

Например:

if n>0 then

if (m div n)>n then m: = m - n

else m: = m + n;

Структура else - всегда относится к ближайшему оператору if.

Если n>0 и (m div n)>n - будет выполнено m: = m-n.

Если n>0, но (m div n) n - будет выполнено m: = m + n.

Если n 0 - переход к следующему оператору.

 

Задача.

 

Найти максимальное число из трех вещественных чисел.

 

program max;

var

a, b, c: real;

begin

writeln (’введите a, b, c’); readln (a, b, c);

if a>=b then

if a>=c then writeln (’max - a’)

else writeln (’max - c’)

else

if b<=c then writeln (’max - b’)

else writeln (’max - c’) ;

readln;

end.

 

Второй способ решения этой задачи:

 

program max_1;

var

a, b, c: real;

begin

writeln (’введите a, b, c’);

readln (a, b, c);

if (a>=b) and (a>=c) then writeln (’max-a’);

if (b>=a) and (b>=c) then writeln (’max-b’);

if (c>=a) and (c>=b) then writeln (’max-c’);

readln;

end.

Если a=b=c - то все три оператора if будут выполнены.

 

Оператор выбора

Этот оператор предназначен для замены конструкций из вложенных if.

Структура:

case N of

N1: P1;

N2: P2;

NN: PN;

[else P;]

end;

[else P;] - необязательная часть оператора.

где N - целочисленная переменная, или выражение целого типа;

N1, N2 , … NN - возможные значения переменной N;

P, P1, P2, … PN - простые или составные операторы.

По этому оператору:

если значение N = N1, то выполняется P1 (после чего управление передается оператору, следующему за оператором case...of);

если значение N = N2, то выполняется P2, (после чего управление передается оператору, следующему за оператором case...of);

если N не принимает ни одного из перечисленных значений, управление передается оператору P;

если структура else - отсутствует и N - не принимает ни одного из перечисленных значений, управление передается следующему за

case...of оператору.

Например:

case N of

1, 2, 5: writeln (’a’);

7 .. 10: writeln (’b’);

end;

 

1, 2, 5 - перечисляемые значения разделяются точкой.

7 .. 10 - интервал задается начальными и конечными значениями через двоеточие.

 

Пример программы разветвленной структуры

 

Задача.

 

1. Вычислить значение функции:

y=

 

Значение аргумента х в градусах ввести с клавиатуры.

 

2. Таблица идентификаторов

Наименование переменной Обозначения в программе
Функция y
Аргумент x

 

3. Листинг программы.

 

program lab2;

uses

crt;

var

x, y: real;

begin

clrscr;

writeln (’Введите x’);

readln (x);

if x>90 then writeln(’функция не определена’)

else

{составной оператор}

begin

if x<0 then y: = 0

else y: = sin (x*pi/180);

writeln (’y = ’,y:8:3);

end;

readln;

end.

 

Вопросы для самоконтроля

  1. Какие алгоритмические конструкции называются ветвлениями?
  2. Для чего используют оператор goto?
  3. Почему при использовании нескольких условий в одном операторе if … then … else, каждое условие заключается в круглые скобки?
  4. Перечислите основные логические операции.
  5. Перечислите основные операции отношения.
  6. В каких случаях прибегают к использованию оператора case … of ?

 

9.3. Методические указания для выполнения практического задания №5. «Ветвления»

Цель работы: Ознакомиться с алгоритмами разветвленной структуры, логическим оператором, оператором выбора.

Задание:

1. В приложении 6 выбрать свой вариант задания.

2. Выполнить практическое задание №5, используя пример программы разветвленной структуры.

3. Составить блок-схему алгоритма.

4. Написать программу и отладить ее по заранее подготовленному тесту.

5. Оформить задание в тетради для практических занятий.

6. Результат выполнения программы предъявить преподавателю.

7. Ответить на вопросы самоконтроля.

8. Защитить выполненную работу у преподавателя.

Приложение 6. Таблица вариантов заданий

 

Вариант Задание
Переменной k присвоить номер четверти плоскости, в которой находится точка с координатами x и y (xy=0).
Если сумма трех попарно различных действительных чисел x, y, z меньше единицы, то заменить меньшее из x и y полусуммой двух других, в противном случае уменьшить все числа в 5 раз.
Даны три действительных числа. Выбрать из них те, которые принадлежат интервалу (1, 3).
Написать программу, которая выбирает наименьшее из четырех заданных чисел.
  Даны три действительных числа. Возвести в квадрат те из них, значения которых неотрицательны.
Даны действительные числа х, у, и z. Вычислить max (x + y + z, xyz).
Поменять местами значения переменных a, b, c не равных между собой таким образом, чтобы а > b > c.
Меньшее из двух значений переменных вещественного типа заменить нулем, а в случае их равенства – заменить нулями оба.
Если сумма трех попарно различных действительных чисел x, y, z меньше единицы, то наименьшее из этих трех чисел заменить полусуммой двух других, в противном случае возвести все числа в квадрат.
Наибольшее из трех различных значений переменных целого типа х, у и z уменьшить на 3.
Даны два действительных числа, не равных между собой. Меньшее из них заменить их полусуммой.
Если значение w не равно 0 и при этом котангенс от w меньше 0.5, тогда поменять знак у w, а если значение равно 0, тогда присвоить w значение 1.
Даны действительные числа х, у и z. Получить min (x,y,z).
Две точки плоскости заданы своими координатами. Определить, лежат ли они в одной или разных координатных плоскостях.
Даны действительные числа х, у, и z. Вычислить min( (x + y + z / 2), (x*y*z) ) +1.
Даны действительные числа a, b, c. Удвоить эти числа, если a > b > c, и заменить их абсолютными значениями, если это не так.
Известно, что из четырех чисел одно отлично от трех других, равных между собой. Присвоить номер этого числа переменной n.
Написать программу, которая выбирает наибольшее из четырех заданных чисел.
Даны действительные числа x и y. если x и y отрицательны, то каждое значение заменить его модулем; если отрицательно только одно из них, то оба значения увеличить на 0.5, в противном случае извлечь из каждого квадратный корень.
Две точки плоскости заданы своими координатами. Определить, лежат ли они в одной (распечатать ее номер) или разных координатных четвертях.
Даны два действительных числа. Заменить первое число нулем, если оно меньше или равно второму, и удвоить оба числа в противном случае.
Даны действительные числа a, b, c, d. Если a < b < c < d, то каждое число заменить небольшим из них; если a > b > c > d, то числа оставить без изменения; в противном случае все числа заменить их квадратами.
Даны действительные числа х, у и z. Получить max (x,y,z).
Даны три действительных числа. Выбрать из них те, которые принадлежат интервалу (1, 3).
Меньшее из двух значений переменных вещественного типа заменить нулем, а в случае их равенства – заменить нулями оба.
Даны действительные числа х, у и z. Обнулить отрицательные числа.
Известно, что из трех целых чисел одно отлично от трех других, равных между собой. Присвоить номер этого числа переменной n.
Наименьшее из трех различных значений переменных целого типа х, у и z увеличить на 3.  
Если сумма трех попарно различных действительных чисел x, y, z больше единицы, то наибольшее из этих трех чисел заменить полусуммой двух других, в противном случае возвести все числа в квадрат.
Даны два действительных числа, не равных между собой. Наибольшее из них заменить их полусуммой.

 

 

Последнее изменение этой страницы: 2017-09-14

lectmania.ru. Все права принадлежат авторам данных материалов. В случае нарушения авторского права напишите нам сюда...