i z g d j .., d h k b q g d h f -...

40
МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РОССИЙСКОЙ ФЕДЕРАЦИИ ФЕДЕРАЛЬНОЕ ГОСУДАРСТВЕННОЕ БЮДЖЕТНОЕ ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ ВЫСШЕГО ОБРАЗОВАНИЯ «ЮЖНО-РОССИЙСКИЙ ГОСУДАРСТВЕННЫЙ ПОЛИТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ (НПИ) ИМЕНИ М.И. ПЛАТОВА» ______________________________________________________ Панкратов П.В., Косиченко М.Ю. Информатика Учебно-методическое пособие по выполнению лабораторных работ Для студентов направления 38.03.01 «Экономика» Новочеркасск 2017 г.

Upload: others

Post on 23-Jul-2020

12 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: I Z g d j .., D h k b q g d h F - ЮРГПУ(НПИ)fiop.npi-tu.ru/assets/fiop/economy/files/38.03.01-mu... · 2017-11-10 · 2 УДК 004.925 (076.5) ББК 32.973-018.2 И74 Рецензент:

МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ

РОССИЙСКОЙ ФЕДЕРАЦИИ

ФЕДЕРАЛЬНОЕ ГОСУДАРСТВЕННОЕ БЮДЖЕТНОЕ

ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ

ВЫСШЕГО ОБРАЗОВАНИЯ

«ЮЖНО-РОССИЙСКИЙ ГОСУДАРСТВЕННЫЙ

ПОЛИТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ (НПИ)

ИМЕНИ М.И. ПЛАТОВА»

______________________________________________________

Панкратов П.В., Косиченко М.Ю.

Информатика

Учебно-методическое пособие

по выполнению лабораторных работ Для студентов направления 38.03.01 «Экономика»

Новочеркасск 2017 г.

Page 2: I Z g d j .., D h k b q g d h F - ЮРГПУ(НПИ)fiop.npi-tu.ru/assets/fiop/economy/files/38.03.01-mu... · 2017-11-10 · 2 УДК 004.925 (076.5) ББК 32.973-018.2 И74 Рецензент:

2

УДК 004.925 (076.5)

ББК 32.973-018.2

И74

Рецензент: канд. техн. наук, доц. О.А. Корнюкова

И74 Панкратов П.В. Информатика: Учебно-методическое пособие

по выполнению лабораторных работ: Для студентов направления 38.03.01

«Экономика» / П.В. Панкратов, М.Ю. Косиченко; М-во образования и

науки РФ, Юж.-Рос. гос. политехн. ун-т. – Новочеркасск: ЮРГПУ, 2017.

– 40 с. – 5 экз.

Учебно-методическое пособие составлено в соответствии с учебными пла-

нами и рабочими программами по дисциплине «Информатика» для

направления подготовки 38.03.01 «Экономика» (направленность «Эконо-

мика предприятий и организаций») всех форм обучения.

УДК 004.925 (076.5)

© Южно-Российский государственный

политехнический университет (НПИ)

имени М.И. Платова, 2017

© Панкратов П.В., Косиченко М.Ю., 2017

Page 3: I Z g d j .., D h k b q g d h F - ЮРГПУ(НПИ)fiop.npi-tu.ru/assets/fiop/economy/files/38.03.01-mu... · 2017-11-10 · 2 УДК 004.925 (076.5) ББК 32.973-018.2 И74 Рецензент:

3

ВВЕДЕНИЕ

Учебно-методическое пособие по выполнению лабораторных работ со-

ставлено в соответствии с учебными планами и рабочими программами по

дисциплине «Информатика» для направления подготовки бакалавров

38.03.01 «Экономика» (направленность «Экономика предприятий и органи-

заций») всех форм обучения.

Пособие включает 7 лабораторных работ. В каждой лабораторной рабо-

те приведены название лабораторной работы, цель работы, оборудование,

программные средства, терминология, порядок выполнения, дополнительные

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

выполнения. После выполнения работы студент должен оформить ответы на

контрольные вопросы и защитить данную работу, ответив устно на вопросы

преподавателя. После выполнения и защиты всех лабораторных работ сту-

дент должен оформить и сдать отчёт по лабораторным работам, который

должен включать титульный лист, а также задания, порядок выполнения и

ответы на контрольные вопросы по каждой лабораторной работе.

Page 4: I Z g d j .., D h k b q g d h F - ЮРГПУ(НПИ)fiop.npi-tu.ru/assets/fiop/economy/files/38.03.01-mu... · 2017-11-10 · 2 УДК 004.925 (076.5) ББК 32.973-018.2 И74 Рецензент:

4

ЛАБОРАТОРНАЯ РАБОТА № 1

ПРОГРАММИРОВАНИЕ ПОСЛЕДОВАТЕЛЬНЫХ

ВЫЧИСЛЕНИЙ

Цель работы: научиться составлять программы на языке Pascal для

программирования последовательных вычислений и освоить работу с систе-

мой программирования Pascal ABC (или Borland Pascal).

Оборудование: персональный компьютер типа IBM PC с процессором не

ниже Intel Pentium I.

Программные средства: система программирования Pascal ABC (или

Borland Pascal).

Элементы языка Pascal

Программа на языке Pascal включает: заголовок программы

(Program), раздел описания используемых модулей (Uses), раздел опи-

сания меток (Label), раздел описания констант (Const), раздел описа-

ния типов данных (Type), раздел описания переменных (Var), раздел

описания процедур (Procedure), раздел описания функций (Function),

раздел операторов (Begin…End.).

К стандартным типам данных в языке Pascal относятся: целочисленный

тип integer (целые числа), вещественный тип real (действительные

числа), логический тип boolean (логические выражения), символьный

тип char (отдельные символы), строковый тип string (строки симво-

лов).

В языке Pascal используются следующие операторы (управляющие ин-

струкции): составной оператор begin…end (начало…конец), оператор при-

сваивания …:=… (…присвоить…), операторы ввода read(…) (считы-

вать) и readln(…) (считывать до новой строки), операторы вывода

write(…) (записывать) и writeln(…) (записывать до новой строки),

оператор безусловного перехода goto… (перейти к…), оператор условного

перехода (условный оператор) if…then…else… (если…то…иначе…), опера-

тор варианта (выбора) case…of…else…end (в случае…из…иначе…конец),

оператор цикла с предусловием while…do… (пока…делать…), оператор

цикла с постусловием repeat…until… (повторять…пока…), операторы

цикла с параметром for…:=…to…do… (для…от…до…делать…) и

for…:=…downto…do… (для…от…вниз до…делать…), оператор присоедине-

ния with…do… (с…делать…).

Операции и функции в языке Pascal

В языке программирования Pascal используются следующие операции:

арифметические операции + (сложение);- (вычитание); (умножение);

/ (деление); div (целочисленное деление); mod (остаток от деления);

Page 5: I Z g d j .., D h k b q g d h F - ЮРГПУ(НПИ)fiop.npi-tu.ru/assets/fiop/economy/files/38.03.01-mu... · 2017-11-10 · 2 УДК 004.925 (076.5) ББК 32.973-018.2 И74 Рецензент:

5

операции сравнения = (равно); <> (не равно); > (больше); < (меньше);

>= (больше или равно); <= (меньше или равно); логические операции

and (логическое «и»); or (логическое «или»); not (логическое «не»).

Среди арифметических операций сначала выполняются умножение и

деление, а потом сложение и вычитание. Порядок выполнения операций

можно изменить с помощью круглых скобок.

Пример 1.

Математическая запись Запись на Паскале

bca cba(1)(2)

cd

ba d)(c/b)-(a

(2)(3)(1)

В языке Pascal используются следующие математические функции и

выражения: Математическая запись Запись на Паскале

xsin sin(x)

xcos cos(x)

xarctg arctan(x)

x abs(x)

xln ln(x)

xe exp(x)

2x sqr(x)

x sqrt(x)

abb ea ln exp(bln(a))

abb ea

ln1 exp(1/bln(a))

a

bba

ln

lnlog ln(b)/ln(a)

10ln

lnlg

xx ln(x)/ln(10)

x

xx

cos

sintg sin(x)/cos(x)

x

xx

sin

cosctg cos(x)/sin(x)

2sin x sin(sqr(x))

x2sin sqr(sin(x))

Константа 14,3 pi

Среди других стандартных функций в языке Pascal наиболее часто

применяются: round (округление числа), trunc (целая часть числа), frac

(дробная часть числа), random (случайное число), odd (проверка нечётно-

сти), ord (порядковый номер аргумента), chr (символ с заданным порядко-

Page 6: I Z g d j .., D h k b q g d h F - ЮРГПУ(НПИ)fiop.npi-tu.ru/assets/fiop/economy/files/38.03.01-mu... · 2017-11-10 · 2 УДК 004.925 (076.5) ББК 32.973-018.2 И74 Рецензент:

6

вым номером), pred (предшествующее значение аргумента), succ (после-

дующее значение аргумента).

Порядок выполнения

1. Если это необходимо, зайти в Windows.

2. Загрузить систему программирования Borland Pascal (или Pascal ABC).

3. Закрыть окно и создать новый пустой файл.

4. Набрать программу на языке Pascal для решения следующей задачи № 1:

Вычислить baс .

5. Задать диск и папку для хранения файлов.

6. Сохранить программу в файле.

7. Проверить программу на ошибки (т.е. сделать компиляцию программы).

8. Запустить программу на выполнение и задать исходные данные ( 3a и

5b ; 138a и 714b ).

9. Просмотреть результат, показать преподавателю и записать полученный

ответ.

10. Сохранить ещё раз программу.

11. Аналогично набрать программу для решения задачи № 2:

Ввести и вывести значения переменных a, b, с с использованием разных

операторов ввода и вывода.

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

текст при вводе и выводе. Далее получить ответ в задаче № 2 (при 1a ;

00008,0b ; 1730c ).

13. Аналогично набрать программу для решения задачи № 3:

Найти величину a

cVF

2,0

, где катет треугольника 22 bca , а объем

шара 3

3

4RV .

14. Изменить программу так, чтобы на экране ответ занимал 7 позиций c 2

цифрами в дробной части. Далее получить ответ в задаче № 3 (при 1b ;

2c ; 3R ).

15. Выйти из системы программирования.

Примеры программ на языке Pascal

1-я программа Объяснение каждой строки

Program Lab1a; Программа по имени lab1a

Var Раздел описания переменных a,b,c:real; Переменные a, b, c – вещественного типа Begin Начало раздела операторов (или начало состав-

ного оператора) writeln('Введите a,b'); Вывод пояснительного текста 'Введите

a,b' read(a,b); Ввод переменных a, b c:=a+b; Переменной c присваивается значение выра-

жения a+b

Page 7: I Z g d j .., D h k b q g d h F - ЮРГПУ(НПИ)fiop.npi-tu.ru/assets/fiop/economy/files/38.03.01-mu... · 2017-11-10 · 2 УДК 004.925 (076.5) ББК 32.973-018.2 И74 Рецензент:

7

writeln('c=',c:10:3); Вывод пояснительного текста 'c=' и

числового значения переменной c,

занимающего 10 позиций, в т.ч. 3 цифры

после запятой End. Конец раздела операторов и программы

2-я программа

Program Lab1b; Var a,b,c:integer; Begin

read(a); readln(b); read(c);

write(a);

writeln(b);

write(c);

End.

3-я программа Program Lab1c;

Var

a,b,c,R,V,F:real;

Begin

writeln('Введите b,c,R');

read(b,c,R);

a:=sqrt(sqr(c)-sqr(b));

V:=4/3piRRR;

F:=(exp(0.2ln(V))+c)/a; writeln('F=',F);

End.

Дополнительное задание

1. Вычислить y

xxz y

2

2

arctg41,3

sin215,3

2

,

где 3

5

420lgln

e

exy ,

9

8cos .

2. Вычислить abxxbY 2

2

43

8tg

4cos

5

3ctg2

7lg

,

где 30log 2b , 10sin ea .

Контрольные вопросы

1. Какие разделы включает программа на языке Pascal? Как они обозначают-

ся?

2. Какие типы данных в языке Pascal являются стандартными? Как они обо-

значаются?

Page 8: I Z g d j .., D h k b q g d h F - ЮРГПУ(НПИ)fiop.npi-tu.ru/assets/fiop/economy/files/38.03.01-mu... · 2017-11-10 · 2 УДК 004.925 (076.5) ББК 32.973-018.2 И74 Рецензент:

8

3. Какие операторы используются в языке Pascal? Какой вид они имеют и что

означают?

4. Какие операции имеются в языке Pascal? Какой приоритет они имеют?

Приведите примеры.

5. Какой синтаксис имеют стандартные математические функции и константа

? Приведите примеры.

6. Как зайти в систему программирования и выйти оттуда? Как создать но-

вый файл и закрыть окно?

7. Как проверить программу на ошибки и запустить её на выполнение? Как

просмотреть ответ и сохранить программу?

8. Напишите программу и нарисуйте блок-схему алгоритма для решения од-

ной из задач дополнительного задания.

Page 9: I Z g d j .., D h k b q g d h F - ЮРГПУ(НПИ)fiop.npi-tu.ru/assets/fiop/economy/files/38.03.01-mu... · 2017-11-10 · 2 УДК 004.925 (076.5) ББК 32.973-018.2 И74 Рецензент:

9

ЛАБОРАТОРНАЯ РАБОТА № 2

ПРОГРАММИРОВАНИЕ РАЗВЕТВЛЕНИЙ

Цель работы: научиться составлять программы на языке Pascal для

программирования разветвлений.

Оборудование: персональный компьютер типа IBM PC с процессором не

ниже Intel Pentium I.

Программные средства: система программирования Pascal ABC (или

Borland Pascal).

Алгоритм линейной структуры

Алгоритм линейной структуры – алгоритм, в котором все действия

выполняются последовательно.

Для реализации этого алгоритма в языке Pascal используются следую-

щие операторы:

1. Составной оператор имеет вид:

begin

Op1;

OpN

end

где begin – начало, end – конец, Op1 – оператор 1-й, OpN – оператор

N-й.

Оператор означает, что надо выполнять оператор Op1, и т.д., … вы-

полнять оператор OpN.

2. Оператор присваивания имеет вид:

P := V

где P – переменная, V – выражение.

Оператор означает, что переменной P присваивается значение выра-

жения V .

3. Операторы ввода имеют вид:

read (P1 , … , PN)

readln (P1 , … , PN)

где read – читать, readln – читать до новой строки (read-on-line), P1 –

переменная 1-я, PN – переменная N-я.

Оператор read позволяет последовательно вводить значения пере-

менных P1 … PN, а оператор readln, кроме этого, позволяет дополнитель-

но перевести курсор на новую строку.

4. Операторы вывода имеют вид:

write (V1 , … , VN)

writeln (V1 , … , VN)

Page 10: I Z g d j .., D h k b q g d h F - ЮРГПУ(НПИ)fiop.npi-tu.ru/assets/fiop/economy/files/38.03.01-mu... · 2017-11-10 · 2 УДК 004.925 (076.5) ББК 32.973-018.2 И74 Рецензент:

10

где write – писать, writeln – писать до новой строки (write-on-line), V1

– выражение 1-е, VN – выражение N-е.

Оператор write позволяет последовательно выводить значения вы-

ражений V1 … VN, а оператор writeln, кроме этого, позволяет дополни-

тельно перевести курсор на новую строку.

Алгоритм разветвляющейся структуры

Алгоритм разветвляющейся структуры – алгоритм, в котором проис-

ходит переход к одной из нескольких ветвей алгоритма или к далеко распо-

ложенной части алгоритма.

Для реализации этого алгоритма в языке Pascal используются следую-

щие операторы:

1. Оператор безусловного перехода имеет вид:

goto M

где goto – идти к, M – метка.

Оператор означает, что надо перейти к строке с меткой M .

Метка – обозначение строки в программе, отделяемое от программного

кода двоеточием.

2. Оператор условного перехода имеет вид:

if U then Op1 else Op2

где if – если, then – то, else – иначе, U – условие, Op1 – оператор 1-

й, Op2 – оператор 2-й.

Оператор означает, что если условие U истинное, то выполнять опе-

ратор Op1, иначе выполнять оператор Op2.

Условие – логическое выражение, которое может принимать одно из 2-х

значений: истина или ложь.

3. Оператор варианта (или оператор выбора) имеет вид:

case S of

Z1 : Op1;

ZN : OpN

else Op0

end

где case – в случае, of – из, else – иначе, end – конец, S – селектор,

Z1 – значение 1-е, ZN – значение N-е, Op1 – оператор 1-й, OpN – оператор

N-й, Op0 – оператор 0-й.

Оператор означает, что в случае, если селектор S принимает значе-

ние из списка Z1, то выполнять оператор Op1 … если селектор S

принимает значение из списка ZN, то выполнять оператор OpN, иначе

выполнять оператор Op0.

Селектор – выражение порядкового типа, которое может принимать од-

но из многих значений.

Page 11: I Z g d j .., D h k b q g d h F - ЮРГПУ(НПИ)fiop.npi-tu.ru/assets/fiop/economy/files/38.03.01-mu... · 2017-11-10 · 2 УДК 004.925 (076.5) ББК 32.973-018.2 И74 Рецензент:

11

Порядок выполнения

1. Зайти в Borland Pascal (или Pascal ABC).

2. Набрать текст программы для решения задачи № 1 и получить ответ (при

3a и 5b ; 20a и 10b ).

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

слова else.

4. Набрать текст программы для решения задачи № 2 и получить ответ (при

1a ; 0a ; 10a ; 100a ).

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

оператора case.

Примеры задач

Задача 1.

Вычислить величину

baa

baab

ba

сb если,

если,.

Program Lab2a;

Var

a,b,c:real;

Begin

writeln('Введи a,b');

read(a,b);

if a>b

then c:=(a-b)/(a*b)

else c:=exp(b*ln(a));

writeln('c=',c:10:3);

End.

Задача 2. Вычислить величину

иначе,5

11 или 1,4

101,3

0,2

aa

a

a

c ,

где a и c – целые числа.

Program Lab2b;

Var a,c:integer;

Begin

read(a);

case a of

0: c:=2;

1..10: c:=3;

-1,11: c:=4

else c:=5

end;

writeln(c);

Page 12: I Z g d j .., D h k b q g d h F - ЮРГПУ(НПИ)fiop.npi-tu.ru/assets/fiop/economy/files/38.03.01-mu... · 2017-11-10 · 2 УДК 004.925 (076.5) ББК 32.973-018.2 И74 Рецензент:

12

End.

Дополнительное задание

1. Вычислить

.2при2lg57,0tg

;2приsin 2

bb

bexy

a

2. Вычислить yRn

С1

0 при

.1если,3,1

;1если,5,1

RC

RCy

3. Вычислить ZAz , где

.18090если,90

35,07,0

90;0если,180

sin

A

4. Вычислить

,если,66

;если,12

3

2

baxlb

g

al

xlg

bagl

M где

3

alblx

.

5. Вычислить 02 zgQ , где

.4или3если,2

;2если,4

;1если,

2

jjhba

jd

jbh

6. Вычислить

yxm,x

yxn,m

yx,nn

B

n

m

при sin1

при tg

при cos1

.

7. Найти

10;1 если ,0

5;0 если ,1

x

xu

8. Найти

. при , ,

; при , ,

bax

bzbxy

bax

azaxy

Контрольные вопросы

1. Что такое алгоритм линейной структуры? Перечислите операторы, реали-

зующие этот алгоритм.

2. Что такое алгоритм разветвляющейся структуры? Перечислите операторы,

реализующие этот алгоритм.

3. Какой вид имеют составной оператор и оператор присваивания, а также

что они означают?

Page 13: I Z g d j .., D h k b q g d h F - ЮРГПУ(НПИ)fiop.npi-tu.ru/assets/fiop/economy/files/38.03.01-mu... · 2017-11-10 · 2 УДК 004.925 (076.5) ББК 32.973-018.2 И74 Рецензент:

13

4. Какой вид имеют операторы ввода и вывода, а также что они означают?

5. Какой вид имеет оператор безусловного и условного перехода, а также что

они означают?

6. Какой вид имеет оператор варианта и что он означает?

7. Что такое метка, условие и селектор? К каким типам данных относятся эти

понятия?

8. Напишите, что означает каждая строка в вышеприведённых программах.

9. Напишите программу и нарисуйте блок-схему алгоритма для решения од-

ной из задач дополнительного задания.

Page 14: I Z g d j .., D h k b q g d h F - ЮРГПУ(НПИ)fiop.npi-tu.ru/assets/fiop/economy/files/38.03.01-mu... · 2017-11-10 · 2 УДК 004.925 (076.5) ББК 32.973-018.2 И74 Рецензент:

14

ЛАБОРАТОРНАЯ РАБОТА № 3

ПРОГРАММИРОВАНИЕ ЦИКЛОВ

Цель работы: научиться составлять программы на языке Pascal для

программирования циклов.

Оборудование: персональный компьютер типа IBM PC с процессором не

ниже Intel Pentium I.

Программные средства: система программирования Pascal ABC (или

Borland Pascal).

Алгоритм циклической структуры

Алгоритм циклической структуры – алгоритм, в котором производит-

ся многократное повторение однотипных действий.

Цикл – многократно повторяющийся участок алгоритма. Цикл включает

заголовок цикла, тело цикла и конец цикла.

Циклы делятся на:

1. Цикл с предусловием (условие выхода из цикла проверяется в нача-

ле перед действиями в теле цикла).

2. Цикл с постусловием (условие выхода из цикла проверяется в конце

после действий в теле цикла).

3. Цикл с параметром (цикл выполняется фиксированное количество

раз, определяемое параметром цикла).

Для реализации алгоритма циклической структуры в языке Pascal ис-

пользуются следующие операторы:

1. Оператор цикла с предусловием имеет вид:

while U do Op

где while – пока, do – делать, U – условие, Op – оператор.

Оператор означает, что пока условие U истинное, повторять опера-

тор Op в цикле; как только условие станет ложным, выйти из цикла.

2. Оператор цикла с постусловием имеет вид:

repeat

Op1;

OpN

until U

где repeat – повторять, until – до тех пор пока, Op1 – оператор 1-й,

OpN – оператор N-й, U – условие.

Оператор означает, что повторять операторы Op1 и т.д., … OpN в

цикле до тех пор, пока условие U не станет истинным; как только условие

станет истинным, выйти из цикла.

3. Оператор цикла с параметром (при увеличении параметра) имеет

вид:

Page 15: I Z g d j .., D h k b q g d h F - ЮРГПУ(НПИ)fiop.npi-tu.ru/assets/fiop/economy/files/38.03.01-mu... · 2017-11-10 · 2 УДК 004.925 (076.5) ББК 32.973-018.2 И74 Рецензент:

15

for Par := Nz to Kz do Op

где for – для, to – до, do – делать, Par – параметр цикла, Nz –

начальное значение, Kz – конечное значение, Op – оператор.

Оператор означает, что для параметра Par , увеличивающегося от

начального значения Nz до конечного значения Kz с шагом 1, повторять

оператор Op в цикле.

4. Оператор цикла с параметром (при уменьшении параметра) имеет

вид:

for Par := Nz downto Kz do Op

где for – для, downto – вниз до, do – делать, Par – параметр цикла,

Nz – начальное значение, Kz – конечное значение, Op – оператор.

Оператор означает, что для параметра Par , уменьшающегося от

начального значения Nz до конечного значения Kz с шагом (-1), повто-

рять оператор Op в цикле.

Параметр цикла (или счётчик циклов) – переменная порядкового типа,

которая изменяется в цикле от начального до конечного значения с каким-

либо шагом.

Порядок выполнения

1. Зайти в Borland Pascal (или Pascal ABC).

2. Набрать текст программы для решения задачи № 1 и получить ответ (при

1н x ; 4,1к x ; 1,0x ).

3. Исправить программу так, чтобы она решала задачу с использованием

оператора цикла с постусловием.

4. Исправить программу так, чтобы она решала задачу с использованием

оператора безусловного перехода.

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

6. Исправить программу так, чтобы она решала задачу с использованием

оператора цикла с предусловием.

7. Исправить программу так, чтобы она решала задачу с использованием

оператора цикла с параметром.

Примеры задач

Задача 1.

Вычислить значения функции xey при x, увеличивающемся от xн до xк с шагом x .

(Обозначения: xnx н ; xkx к ; dxx )

Program Lab3a;

Var x,y,xn,xk,dx:real; Begin writeln('Введи xn,xk,dx');

read(xn,xk,dx); x:=xn; while x<=xk do

Page 16: I Z g d j .., D h k b q g d h F - ЮРГПУ(НПИ)fiop.npi-tu.ru/assets/fiop/economy/files/38.03.01-mu... · 2017-11-10 · 2 УДК 004.925 (076.5) ББК 32.973-018.2 И74 Рецензент:

16

begin

y:=exp(x); writeln('при x=',x:10:3,' y=',y:10:3); x:=x+dx;

end; End.

Задача 2.

Вычислить значения функции xy tg при x, изменяющемся от 0 до 10 с шагом 1.

Program Lab3b;

Var

x,y:real;

Begin

x:=0;

repeat

y:=sin(x)/cos(x);

writeln(x,y);

x:=x+1;

until x>10;

End.

Дополнительное задание

1. Вычислить 2

3

eR

abcW , где с увеличивается от сн до ск с шагом с.

2. Вычислить 32 arctgsin PxN , где P меняется от Pн = 0,3 до Pк = 1,5 с

шагом P = 0,2.

3. Вычислить 23 costg DyM , где y меняется от y н = 1 до y к = 5 с шагом

y = 0,5.

4. Вычислить

,2

если,

;2

если,2

021

0

021

0

210

E

E

E где 0 уменьшается от н

до к с шагом .

5. Вычислить

,2если,1

;302если,0

;30если,

nn

s

n

nn

s

CV где n – целое число и меняется от

nн = 100 до nк = 10 с шагом n = 5.

6. Вычислить

yxm,x

yxn,m

yx,nn

B

n

m

при sin1

при tg

при cos1

, где x увеличивается от xн до xк с

шагом x.

Page 17: I Z g d j .., D h k b q g d h F - ЮРГПУ(НПИ)fiop.npi-tu.ru/assets/fiop/economy/files/38.03.01-mu... · 2017-11-10 · 2 УДК 004.925 (076.5) ББК 32.973-018.2 И74 Рецензент:

17

7. Вычислить

xaa

xaxe

xaxe

E

xe при ,

при ,lg

при ,sin15

cos1

2

, где x увеличивается от xн до xк с

шагом x.

Контрольные вопросы

1. Что такое алгоритм циклической структуры? Перечислите операторы, реа-

лизующие этот алгоритм.

2. Что такое цикл? Перечислите составляющие и разновидности циклов.

3. Какой вид имеет оператор цикла с предусловием и что он означает?

4. Какой вид имеет оператор цикла с постусловием и что он означает?

5. Какой вид имеет оператор цикла с параметром (при увеличении параметра)

и что он означает?

6. Какой вид имеет оператор цикла с параметром (при уменьшении парамет-

ра) и что он означает?

7. Что такое параметр цикла? Может ли он быть целым числом, дробным

числом?

8. Напишите, что означает каждая строка в вышеприведённых программах.

9. Напишите программу и нарисуйте блок-схему алгоритма для решения од-

ной из задач дополнительного задания.

Page 18: I Z g d j .., D h k b q g d h F - ЮРГПУ(НПИ)fiop.npi-tu.ru/assets/fiop/economy/files/38.03.01-mu... · 2017-11-10 · 2 УДК 004.925 (076.5) ББК 32.973-018.2 И74 Рецензент:

18

ЛАБОРАТОРНАЯ РАБОТА № 4

ПРОГРАММИРОВАНИЕ ЗАДАЧ С ОДНОМЕРНЫМИ

МАССИВАМИ

Цель работы: научиться составлять программы на языке Pascal для

программирования задач с одномерными массивами.

Оборудование: персональный компьютер типа IBM PC с процессором не

ниже Intel Pentium I.

Программные средства: система программирования Pascal ABC (или

Borland Pascal).

Одномерные массивы

Массив – упорядоченный набор нумерованных величин одинакового

типа. Массивы бывают одномерные (вектор-строка, вектор-столбец), дву-

мерные (матрица) и многомерные (тензор).

Вектор-строка имеет вид: naaaA ;;; 21 .

Пример 1. 3,7;4;3;2;1 A .

Вектор-столбец имеет вид:

na

a

a

A2

1

.

Пример 2.

3,7

10

2

1

A .

Элемент массива – величина, входящая в состав массива. Индекс – по-

рядковый номер элемента в одномерном массиве (целое число типа inte-

ger). Размерность массива – количество элементов в массиве.

Одномерные массивы обычно обозначаются так: iaA ; nA , где A –

массив; n – размерность массива; i – индекс элемента; ia – i-тый элемент мас-

сива A .

Описание одномерного массива в разделе описания переменных (Var)

на языке Pascal имеет вид:

Mas : array [ IMin .. IMax ] of T

где array – массив, of – из, Mas – имя массива, IMin – минимальное

значение индекса, IMax – максимальное значение индекса, T – тип элемен-

тов.

Это означает, что переменная Mas является массивом, который мо-

жет иметь индексы от IMin до IMax у элементов типа T .

Page 19: I Z g d j .., D h k b q g d h F - ЮРГПУ(НПИ)fiop.npi-tu.ru/assets/fiop/economy/files/38.03.01-mu... · 2017-11-10 · 2 УДК 004.925 (076.5) ББК 32.973-018.2 И74 Рецензент:

19

Пример 3. Var A:array[1..100] of real;

Это означает, что переменная A – массив, который может содержать от

1 до 100 элементов вещественного типа.

Доступ к элементу массива на языке Pascal имеет вид:

Mas [ Ind ]

где Mas – имя массива, Ind – индекс.

Это означает доступ к элементу массива Mas с индексом Ind .

Пример 4. a[1]; b[3]; c[i]; d[n]; f[k+1].

Это означает 1-й элемент массива A и т.д.

Фрагменты вычисления характеристик одномерного

массива

Характеристика Для всех элементов ai Для части элементов zai

1. Сумма

s

s:=0;

for i:=1 to n do

s:=s+A[i];

s:=0;

for i:=1 to n do

if A[i]>z then

s:=s+A[i];

2. Количество

k

k:=n; k:=0;

for i:=1 to n do

if A[i]>z then

k:=k+1;

3. Произведение

p

p:=1;

for i:=1 to n do

p:=p*A[i];

p:=1;

for i:=1 to n do

if A[i]>z then

p:=p*A[i];

4. Максимальное

значение

max

max:=A[1];

for i:=2 to n do

if A[i]>max

then max:=A[i];

max:=-1E10;

for i:=1 to n do

if (A[i]>max)

and (A[i]>z)

then max:=A[i];

5. Минимальное

значение

min

min:=A[1];

for i:=2 to n do

if A[i]<min

then min:=A[i];

min:=1E10;

for i:=1 to n do

if (A[i]<min)

and (A[i]>z)

then min:=A[i];

6. Среднее значение

sr

s:=0;

for i:=1 to n do

s:=s+A[i];

sr:=s/n;

s:=0;

k:=0;

for i:=1 to n do

if A[i]>z then

begin

s:=s+A[i];

k:=k+1;

end;

sr:=s/k;

Фрагменты операций с одномерными массивами

1. Ввод элементов массива writeln('Введи массив A');

for i:=1 to n do

read(A[i]);

Page 20: I Z g d j .., D h k b q g d h F - ЮРГПУ(НПИ)fiop.npi-tu.ru/assets/fiop/economy/files/38.03.01-mu... · 2017-11-10 · 2 УДК 004.925 (076.5) ББК 32.973-018.2 И74 Рецензент:

20

2. Вывод элементов массива writeln('Массив A');

for i:=1 to n do

writeln(A[i]:10:3);

3. Замена элементов массива на величину z for i:=1 to n do

A[i]:=z;

4. Увеличение элементов массива на вели-

чину z

(аналогично уменьшение, умножение,

деление)

for i:=1 to n do

A[i]:=A[i]+z;

5. Вычисление нового массива B прибав-

лением к элементам массива A величи-

ны z

(аналогично вычитанием, умножением,

делением)

for i:=1 to n do

B[i]:=A[i]+z;

6. Вычисление индекса максимального

элемента imax

(аналогично минимального)

max:=A[1];

imax:=1;

for i:=2 to n do

if A[i]>max then

begin

max:=A[i];

imax:=i;

end;

7. Перестановка 1-го и 2-го элементов

массива

c:=A[1];

A[1]:=A[2];

A[2]:=c;

Порядок выполнения

1. Зайти в Borland Pascal (или Pascal ABC).

2. Набрать текст программы для решения задачи № 1 и получить ответ для

контрольного примера.

3. Исправить программу так, чтобы она находила сумму и количество поло-

жительных элементов.

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

значение всех элементов.

5. Исправить программу так, чтобы она находила максимальное и минималь-

ное значение в массиве.

Пример задачи

Задача 1.

Дан одномерный массив A из n элементов.

Найти сумму элементов массива:

n

n

i

i aaaas

21

1

.

Program Lab4a;

Var

A:array[1..100] of real;

i,n:integer;

s:real;

Begin

Page 21: I Z g d j .., D h k b q g d h F - ЮРГПУ(НПИ)fiop.npi-tu.ru/assets/fiop/economy/files/38.03.01-mu... · 2017-11-10 · 2 УДК 004.925 (076.5) ББК 32.973-018.2 И74 Рецензент:

21

writeln('Введи n');

read(n);

s:=0;

writeln('Введи массив A');

for i:=1 to n do

begin

read(A[i]);

s:=s+A[i];

end;

writeln('s=',s:10:3);

End.

Контрольный пример.

Исходные данные: 5n ; 1;5;3;2;1 A .

Ручной счёт: 1015321 s .

Результат: 10s .

Экран пользователя. Введи n

5

Введи массив A

1 2 3 5 -1

s= 10.000

Дополнительное задание

1. Дан массив L(n). Найти количество элементов, больших корня из суммы

положительных элементов.

2. Дан массив G(q). Найти произведение неотрицательных элементов и сум-

му элементов в диапазоне от 10 до 20.

3. Дан массив A(n). Найти сумму и количество элементов, равных среднему

значению.

4. Дан массив C(m). Найти отношение максимального к минимальному эле-

менту.

5. Дан массив D(n). Найти минимальный среди элементов, больших суммы, и

найти количество элементов, не равных максимальному.

6. Дан массив A(n). Сформировать новый массив B умножением элементов

массива A на 100. В новом массиве переставить местами третий и предпо-

следний элементы.

7. Дан массив A(n). Положительные элементы массива заменить на их сумму,

а отрицательные элементы уменьшить на минимальный.

8. Дан массив A(n). Найти сумму элементов на чётных местах и произведение

элементов, кратных 3.

9. Дан массив A(n). У нечётных элементов отбросить дробную часть числа, а

у элементов с индексами, дающими остаток 1 при делении на 3, отбросить

целую часть числа.

10. Сформировать массив случайных чисел в диапазоне от 10 до 20 и

округлить значения элементов, по модулю меньших 1.

Page 22: I Z g d j .., D h k b q g d h F - ЮРГПУ(НПИ)fiop.npi-tu.ru/assets/fiop/economy/files/38.03.01-mu... · 2017-11-10 · 2 УДК 004.925 (076.5) ББК 32.973-018.2 И74 Рецензент:

22

Контрольные вопросы

1. Объясните понятие массива, его элемента, индекса, размерности? Пере-

числите виды массивов.

2. Как обозначаются и описываются массивы и их элементы? Приведите

примеры.

3. Чем отличается вычисление суммы всех элементов от вычисления суммы

части элементов?

4. Чем отличается вычисление суммы части элементов от вычисления коли-

чества части элементов?

5. Чем отличается вычисление суммы элементов от вычисления произведе-

ния элементов?

6. Чем отличается вычисление суммы элементов от вычисления среднего

значения элементов?

7. Чем отличается вычисление максимального элемента от вычисления ми-

нимального элемента?

8. Чем отличается ввод элементов от их вывода?

9. Чем отличается увеличение элементов на какую-либо величину от замены

элементов на эту величину?

10. Чем отличается увеличение элементов на какую-либо величину от ана-

логичного вычисления нового массива?

11. Чем отличается вычисление максимального элемента от вычисления

его индекса?

12. Почему для перестановки элементов используется три оператора?

13. Напишите, что означает каждая строка в вышеприведённой программе.

14. Напишите программу и нарисуйте блок-схему алгоритма для решения

одной из задач дополнительного задания.

Page 23: I Z g d j .., D h k b q g d h F - ЮРГПУ(НПИ)fiop.npi-tu.ru/assets/fiop/economy/files/38.03.01-mu... · 2017-11-10 · 2 УДК 004.925 (076.5) ББК 32.973-018.2 И74 Рецензент:

23

ЛАБОРАТОРНАЯ РАБОТА № 5

ПРОГРАММИРОВАНИЕ ЗАДАЧ С ДВУМЕРНЫМИ

МАССИВАМИ

Цель работы: научиться составлять программы на языке Pascal для

программирования задач с двумерными массивами.

Оборудование: персональный компьютер типа IBM PC с процессором не

ниже Intel Pentium I.

Программные средства: система программирования Pascal ABC (или

Borland Pascal).

Двумерные массивы

Двумерный массив (матрица) – одномерный массив, элементы которо-

го также являются одномерными массивами. Матрица имеет вид:

mnmm

n

n

aaa

aaa

aaa

A

21

22221

11211

.

Пример 1.

11109

8765

4321

A .

Элемент массива – величина, входящая в состав массива. Индекс –

порядковый номер строки или столбца в двумерном массиве. Двумерные

массивы обычно обозначаются так: ijaA ; nmA , , где A – массив; m – коли-

чество строк; n – количество столбцов; i – индекс строки; j – индекс столбца;

aij – элемент массива A в i-й строке и j-м столбце.

Описание двумерного массива в разделе описания переменных (var)

на языке Pascal имеет вид:

Mas : array [ IMin .. IMax , JMin .. JMax ] of T

Это означает, что переменная Mas является массивом, который может

иметь индексы строк от IMin до IMax , индексы столбцов от JMin до

JMax , а также состоит из элементов типа T .

Пример 2. Var A:array[1..10,1..15] of real;

Это означает, что A – массив, который может содержать от 1 до 10

строк и от 1 до 15 столбцов из элементов вещественного типа.

Доступ к элементу двумерного массива на языке Pascal имеет вид:

Mas [ Ind1 , Ind2 ]

Это означает доступ к элементу массива Mas с индексом строки Ind1 и

индексом столбца Ind2.

Пример 3. a[1,1]; b[i,j].

Page 24: I Z g d j .., D h k b q g d h F - ЮРГПУ(НПИ)fiop.npi-tu.ru/assets/fiop/economy/files/38.03.01-mu... · 2017-11-10 · 2 УДК 004.925 (076.5) ББК 32.973-018.2 И74 Рецензент:

24

Это означает элемент массива A в 1-й строке и 1-м столбце, элемент

массива B в i-й строке и j-м столбце.

Фрагменты вычисления характеристик строк и столб-

цов двумерного массива

Характеристика Для каждой строки Для каждого столбца

1. Сумма

s

for i:=1 to m do

begin

s[i]:=0;

for j:=1 to n do

s[i]:=s[i]+A[i,j];

end;

for j:=1 to n do

begin

s[j]:=0;

for i:=1 to m do

s[j]:=s[j]+A[i,j];

end;

2. Произведение

p

for i:=1 to m do

begin

p[i]:=1;

for j:=1 to n do

p[i]:=p[i]*A[i,j];

end;

for j:=1 to n do

begin

p[j]:=1;

for i:=1 to m do

p[j]:=p[j]*A[i,j];

end;

3. Максимальное

значение

max

for i:=1 to m do

begin

max[i]:=A[i,1];

for j:=1 to n do

if A[i,j]>max[i]

then max[i]:=A[i,j];

end;

for j:=1 to n do

begin

max[j]:=A[1,j];

for i:=1 to m do

if A[i,j]>max[j]

then max[j]:=A[i,j];

end;

4. Минимальное

значение

min

for i:=1 to m do

begin

min[i]:=A[i,1];

for j:=1 to n do

if A[i,j]<min[i]

then min[i]:=A[i,j];

end;

for j:=1 to n do

begin

min[j]:=A[1,j];

for i:=1 to m do

if A[i,j]<min[j]

then min[j]:=A[i,j];

end;

Фрагменты операций с двумерными массивами

1. Ввод элементов массива writeln('Введи массив A');

for i:=1 to m do

for j:=1 to n do

read(A[i,j]);

2. Вывод элементов массива writeln('Массив A');

for i:=1 to m do

begin

for j:=1 to n do

write(A[i,j]:10:3);

writeln;

end;

3. Замена элементов массива на вели-

чину z

for i:=1 to m do

for j:=1 to n do

A[i,j]:=z;

4. Увеличение элементов массива на

величину z (аналогично уменьше-

ние, умножение, деление)

for i:=1 to m do

for j:=1 to n do

A[i,j]:=A[i,j]+z;

Page 25: I Z g d j .., D h k b q g d h F - ЮРГПУ(НПИ)fiop.npi-tu.ru/assets/fiop/economy/files/38.03.01-mu... · 2017-11-10 · 2 УДК 004.925 (076.5) ББК 32.973-018.2 И74 Рецензент:

25

5. Вычисление элементов массива B

прибавлением к элементам массива

A величины z (аналогично отнима-

нием, умножением, делением)

for i:=1 to m do

for j:=1 to n do

B[i,j]:=A[i,j]+z;

Квадратные матрицы

Матрица называется квадратной, если у неё количество строк равно ко-

личеству столбцов ( nm ).

Рассмотрим квадратную матрицу:

333231

232221

131211

aaa

aaa

aaa

A .

У ней

диагонали. главной вне если ,

диагонали; главной ниже если ,

диагонали; главной выше если ,

диагонали; главной на если ,

ij

ij

ij

ij

aji

aji

aji

aji

Порядок выполнения

1. Зайти в Borland Pascal (или Pascal ABC).

2. Набрать текст программы для решения задачи № 1 и получить ответ для

контрольного примера.

3. Исправить программу так, чтобы она находила сумму и произведение эле-

ментов выше главной диагонали.

4. Исправить программу так, чтобы она находила минимальное и максималь-

ное значение отрицательных элементов.

5. Исправить программу так, чтобы она находила количество нулевых и

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

Пример задачи

Задача 1. Дан двумерный массив A (m, n). Найти сумму и произведение всех эле-

ментов, а также вычислить минимальный и максимальный элементы.

Program lab5a;

Var

A: array [1..10,1..15] of real;

i, j, m, n: integer; s, p, min, max: real;

Begin

writeln('Введи m,n'); read(m,n);

writeln('Введи массив A');

for i:=1 to m do

for j:=1 to n do

read(A[i,j]);

s:=0; p:=1; min:=A[1,1]; max:=A[1,1];

for i:=1 to m do for j:=1 to n do

begin

s:=s+A[i,j]; p:=p*A[i,j];

if A[i,j]<min then min:=A[i,j];

if A[i,j]>max then max:=A[i,j];

Главная диагональ

Page 26: I Z g d j .., D h k b q g d h F - ЮРГПУ(НПИ)fiop.npi-tu.ru/assets/fiop/economy/files/38.03.01-mu... · 2017-11-10 · 2 УДК 004.925 (076.5) ББК 32.973-018.2 И74 Рецензент:

26

end;

writeln('s=',s:10:3,' p=',p:10:3,

' min=',min:10:3,' max=',max:10:3);

End.

Контрольный пример.

Исходные данные: 3m ;

4n ;

11109

8765

4321

A .

Результаты: 45s ;

3628800p ;

5min ;

10max .

Дополнительное задание

1. Дан массив B (m, n). Найти сумму положительных элементов и количество

элементов в диапазоне от 10 до 20.

2. Дан массив C (m, n). Найти произведение элементов, больших среднего

значения.

3. Дан массив D (m, n). Найти среднее значение среди элементов, не совпа-

дающих с минимальным.

4. Дан массив L (n, n). Найти максимальный среди отрицательных элементов

и сумму элементов на главной диагонали.

5. Дан массив P (n, n). Элементы выше главной диагонали заменить на ноль,

а ниже главной диагонали – округлить.

6. Сформировать двумерный массив A (m, n), элементы которого вычисляют-

ся по формуле: ijij Rjia , где R (m, n) – двумерный массив случайных ве-

личин.

7. Дан массив R (m, n). Найти произведения элементов в каждой строке и

максимальные элементы в каждом столбце.

8. Дан массив W (m, n). Найти суммы элементов в каждом столбце и мини-

мальные элементы в каждой строке.

9. Дан массив S (m, n). Найти массив минимальных элементов в каждой стро-

ке, а затем в новом массиве отсортировать элементы по возрастанию.

10. Дан массив T (m, n). Отсортировать столбцы по убыванию их средних

значений.

Контрольные вопросы

1. Объясните понятие двумерного массива, его элемента, индекса? Как обо-

значаются двумерные массивы?

2. Как описываются двумерные массивы и обозначаются их элементы? При-

ведите примеры.

3. Какие особенности у элементов на главной и побочной диагонали в квад-

ратных матрицах?

Page 27: I Z g d j .., D h k b q g d h F - ЮРГПУ(НПИ)fiop.npi-tu.ru/assets/fiop/economy/files/38.03.01-mu... · 2017-11-10 · 2 УДК 004.925 (076.5) ББК 32.973-018.2 И74 Рецензент:

27

4. Чем отличается вычисление характеристик двумерного массива от таких

же характеристик одномерного массива?

5. Чем отличаются операции с двумерными массивами от таких же операций

с одномерными массивами?

6. Чем отличается вычисление характеристик массива по строкам от анало-

гичного вычисления по столбцам?

7. Напишите, что означает каждая строка в вышеприведённой программе.

8. Напишите программу и нарисуйте блок-схему алгоритма для решения од-

ной из задач дополнительного задания.

Page 28: I Z g d j .., D h k b q g d h F - ЮРГПУ(НПИ)fiop.npi-tu.ru/assets/fiop/economy/files/38.03.01-mu... · 2017-11-10 · 2 УДК 004.925 (076.5) ББК 32.973-018.2 И74 Рецензент:

28

ЛАБОРАТОРНАЯ РАБОТА № 6

ПРОГРАММИРОВАНИЕ ЗАДАЧ С ПРОЦЕДУРАМИ И

ФУНКЦИЯМИ

Цель работы: научиться составлять программы на языке Pascal для

программирования задач с процедурами и функциями.

Оборудование: персональный компьютер типа IBM PC с процессором не

ниже Intel Pentium I.

Программные средства: система программирования Pascal ABC (или

Borland Pascal).

Подпрограммы

Подпрограмма – именованный блок операторов, отдельно выделенный

в составе программы и не зависящий от других её частей. Подпрограммы бы-

вают 2-х видов:

1. Подпрограмма-функция – это подпрограмма для вычисления функ-

ции, которая возвращает какое-либо значение.

2. Подпрограмма-процедура – это подпрограмма для выполнения дей-

ствий, которая не возвращает никаких значений.

Как правило, описание подпрограммы включает заголовок, разделы

описаний и раздел операторов, начинающийся словом begin, а заканчива-

ющийся словом end и точкой с запятой (;).

Формальные параметры – переменные, которые объявляются в заго-

ловке подпрограммы.

Фактические параметры – переменные или значения, которые под-

ставляются вместо формальных параметров в момент конкретного вызова

подпрограммы.

Параметры-значения – параметры, значения которых передаются в

подпрограмму в момент её вызова.

Параметры-переменные – параметры со словом var, значения кото-

рых могут использоваться после выполнения подпрограммы.

Локальные переменные – переменные, используемые только внутри

подпрограммы.

Глобальные переменные – переменные, которые могут использоваться

в любом месте основной программы, в т.ч. и в подпрограмме.

Заголовок описания функции имеет вид:

function Func ( FormPar1 : T1 , … ) : T ;

Это означает, что задаётся подпрограмма-функция с именем Func, зави-

сящая от формальных параметров FormPar1 типа T1 и т.д., а также

вычисляющая значение типа T.

Вызов функции из основной программы или другой подпрограммы

имеет вид:

Func ( FaktPar1 , … )

Page 29: I Z g d j .., D h k b q g d h F - ЮРГПУ(НПИ)fiop.npi-tu.ru/assets/fiop/economy/files/38.03.01-mu... · 2017-11-10 · 2 УДК 004.925 (076.5) ББК 32.973-018.2 И74 Рецензент:

29

Это означает, что вычисляется значение функции Func, зависящей от

фактических параметров FaktPar1 и т.д., причём вызов функции мо-

жет осуществляться в составе выражения.

Заголовок описания процедуры имеет вид:

procedure Proc ( FormPar1 : T1 , … ) ;

Это означает, что задаётся подпрограмма-процедура с именем Proc, зави-

сящая от формальных параметров FormPar1 типа T1 и т.д., а также

выполняющая какие-либо действия.

Вызов процедуры из основной программы или другой подпрограммы

имеет вид:

Proc ( FaktPar1 , … );

Это означает, что выполняются действия в теле процедуры Proc, зави-

сящей от фактических параметров FaktPar1 и т.д., причём вызов про-

цедуры не может осуществляться в составе выражения.

Порядок выполнения

1. Зайти в Borland Pascal (или Pascal ABC).

2. Набрать текст программы для решения задачи № 1 и получить ответ для

контрольного примера.

3. Получить ответ для своих исходных данных.

4. Набрать текст программы для решения задачи № 2 и получить ответ для

контрольного примера.

5. Получить ответ для своих исходных данных.

Примеры задач

Задача 1. Вычислить 3,05 71,2 B , а также найти nnxaxaxaaC 2

210 с использо-

ванием подпрограммы-функции возведения в степень.

Программа.

Program Lab6a;

Var

A:array[0..100] of real;

B,C,x:real;

i,n:integer;

Function Step(a,b:real):real;

begin

Step:=exp(b*ln(a));

end;

Begin

writeln('Введи n,x'); read(n,x);

writeln('Введи массив A');

for i:=0 to n do read(A[i]);

B:=Step(2.1,5)+Step(7,0.3);

C:=0;

for i:=0 to n do C:=C+A[i]*Step(x,i);

writeln('B=',B:10:3,' C=',C:10:3); End.

Контрольный пример.

Page 30: I Z g d j .., D h k b q g d h F - ЮРГПУ(НПИ)fiop.npi-tu.ru/assets/fiop/economy/files/38.03.01-mu... · 2017-11-10 · 2 УДК 004.925 (076.5) ББК 32.973-018.2 И74 Рецензент:

30

Исходные данные: 3n ;

5x ; 1;2;3;4 A .

Результаты: ,63442B ; 94С .

Задача 2. В двумерном массиве A из 3 строк и 4 столбцов вычислить сумму и про-

изведение отрицательных элементов с использованием подпрограммы-процедуры.

Программа.

Program Lab6b;

Const m=3; n=4;

Type TT=array [1..m,1..n] of real;

Var A:TT; i,j:integer; s,p:real;

Procedure SumPro(B:TT; m,n:integer; var s,p:real);

var i,j:integer;

begin

s:=0; p:=1;

for i:=1 to m do

for j:=1 to n do

if B[i,j]<0 then

begin

s:=s+B[i,j];

p:=p*B[i,j];

end;

end;

Begin

writeln('Введи массив A');

for i:=1 to m do

for j:=1 to n do

read(A[i,j]);

SumPro(A,3,4,s,p);

writeln(s,p); End.

Контрольный пример.

Исходные данные:

1110987654321

A .

Результаты: 6s ;

5p .

Дополнительное задание

1. Вычислить yxz tgtg с использованием подпрограммы-функции вычисле-

ния тангенса.

2. Вычислить yxz ctgctg с использованием подпрограммы-функции вычис-

ления котангенса.

3. Вычислить yxz lglg с использованием подпрограммы-функции вычисле-

ния десятичного логарифма.

4. Вычислить yxz 32 loglog с использованием подпрограммы-функции вы-

числения логарифма по произвольному основанию.

5. Вычислить 43 yxz с использованием подпрограммы-функции вычисле-

ния корня произвольной степени.

Page 31: I Z g d j .., D h k b q g d h F - ЮРГПУ(НПИ)fiop.npi-tu.ru/assets/fiop/economy/files/38.03.01-mu... · 2017-11-10 · 2 УДК 004.925 (076.5) ББК 32.973-018.2 И74 Рецензент:

31

6. В двумерном массиве A из m строк и n столбцов вычислить сумму и сред-

нее значение всех элементов с использованием подпрограммы-процедуры.

7. В двумерном массиве A из m строк и n столбцов вычислить максимальный

и минимальный элементы с использованием подпрограммы-процедуры.

8. В двумерном массиве A из m строк и n столбцов вычислить сумму и коли-

чество элементов выше главной диагонали с использованием подпрограм-

мы-процедуры.

9. В двумерном массиве A из m строк и n столбцов вычислить произведение и

среднее значение элементов на главной диагонали с использованием под-

программы-процедуры.

10. В двумерном массиве A из m строк и n столбцов вычислить максималь-

ный и минимальный среди элементов ниже главной диагонали с использо-

ванием подпрограммы-процедуры.

Контрольные вопросы

1. Что такое подпрограмма? Перечислите виды подпрограмм.

2. Какие элементы входят в описание подпрограммы?

3. Что такое формальные и фактические параметры? Чем они отличаются?

4. Что такое параметры-значения и параметры-переменные? Чем они отли-

чаются?

5. Что такое локальные и глобальные параметры? Чем они отличаются?

6. Какой вид имеет заголовок описания функции? Что это означает?

7. Какой вид имеет вызов функции? Что это означает?

8. Какой вид имеет заголовок описания процедуры? Что это означает?

9. Какой вид имеет вызов процедуры? Что это означает?

10. Напишите, что означает каждая строка в вышеприведённых програм-

мах.

11. Напишите программу и нарисуйте блок-схему алгоритма для решения

одной из задач дополнительного задания.

Page 32: I Z g d j .., D h k b q g d h F - ЮРГПУ(НПИ)fiop.npi-tu.ru/assets/fiop/economy/files/38.03.01-mu... · 2017-11-10 · 2 УДК 004.925 (076.5) ББК 32.973-018.2 И74 Рецензент:

32

ЛАБОРАТОРНАЯ РАБОТА № 7

ПРОГРАММИРОВАНИЕ ЗАДАЧ СО СТРУКТУРНЫМИ

ТИПАМИ ДАННЫХ

Цель работы: научиться составлять программы на языке Pascal для

программирования задач с файлами, строками и записями.

Оборудование: персональный компьютер типа IBM PC с процессором не

ниже Intel Pentium I, глобальная сеть Internet.

Программные средства: система программирования Pascal ABC (или

Borland Pascal).

Файлы

Файлы – упорядоченные наборы данных различного типа, хранящиеся

в памяти.

В языке Pascal файлы бывают:

1. Текстовые (типа Text).

2. Типизированные (типа File of …).

3. Нетипизированные (типа File).

При работе с текстовыми файлами обычно применяются следующие

стандартные процедуры:

1. Assign(FP,F) – связывание файловой переменной FP с именем файла

F.

2. Reset(FP) – открытие файла, связанного с файловой переменной FP,

для чтения.

3. ReWrite(FP) – открытие файла, связанного с файловой переменной FP,

для записи новых данных с удалением старых.

4. Append(FP) – открытие файла, связанного с файловой переменной FP,

для записи новых данных с добавлением к старым.

5. Close(FP) – закрытие файла, связанного с файловой переменной FP.

6. Read(FP,P1,…) – ввод значений переменных P1, … из файла, связанно-

го с файловой переменной FP.

7. ReadLn(FP,P1,…) – ввод значений переменных P1, … из файла, связан-

ного с файловой переменной FP, и перевод указателя в файле на новую

строку.

8. Write(FP,V1,…) – вывод значений выражений V1, … в файл, связанный

с файловой переменной FP.

9. WriteLn(FP,V1,…) – вывод значений выражений V1, … в файл, связан-

ный с файловой переменной FP, и перевод указателя в файле на новую

строку.

Строки

Строка – упорядоченный набор символов в кавычках.

Page 33: I Z g d j .., D h k b q g d h F - ЮРГПУ(НПИ)fiop.npi-tu.ru/assets/fiop/economy/files/38.03.01-mu... · 2017-11-10 · 2 УДК 004.925 (076.5) ББК 32.973-018.2 И74 Рецензент:

33

Описание строки в разделе описания переменных (Var) на языке Pas-

cal имеет вид:

St : string [ NMax ];

где string – строка, St – имя строки, NMax – максимальное количество

символов в строке.

Это означает, что переменная St является строкой, которая может

содержать от 1 до NMax символов.

Записи

Запись – неупорядоченный набор величин разных типов, называемых

полями.

Поле – именованная величина, являющаяся частью записи.

Описание записи в разделе описания переменных (Var) на языке Pascal

имеет вид:

Zap : record

SP1 : T1;

SPN : TN

end;

где record – запись, end – конец описания записи, Zap – имя записи,

SP1 – список полей 1-й, SPN – список полей N-й, T1 – тип полей в 1-м

списке, TN – тип полей в N-м списке.

Это означает, что переменная Zap является записью, включающей

поля в списке SP1 типа T1 … поля в списке SPN типа TN.

Пример 1. Var

computer:record

nazv:string[10];

god:integer;

bystr:real;

end;

Это означает, что переменная computer – запись, включающая поля nazv

строкового типа, god целочисленного типа, bystr вещественного типа.

Доступ к полю записи имеет вид:

Zap . Pole

где Zap – имя записи, Pole – имя поля.

Это означает доступ к полю Pole записи Zap.

Пример 2. computer.nazv

Это означает поле nazv записи computer.

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

with Zap do Op

где with – с, do – делать, Zap – имя записи, Op – оператор.

Это означает, что с полями записи Zap выполнять оператор Op.

Page 34: I Z g d j .., D h k b q g d h F - ЮРГПУ(НПИ)fiop.npi-tu.ru/assets/fiop/economy/files/38.03.01-mu... · 2017-11-10 · 2 УДК 004.925 (076.5) ББК 32.973-018.2 И74 Рецензент:

34

Пример 3. Ввести поля записи computer без использования оператора

присоединения и с его использованием.

a) readln(computer.nazv,computer.god,computer.bystr);

б) with computer do readln(nazv,god,bystr);

Порядок выполнения

1. Зайти в Borland Pascal (или Pascal ABC).

2. Создать новый файл, набрать в нём исходную матрицу A и сохранить её в

файле Lab7a.txt. 3. Набрать текст программы для решения задачи № 1 и выполнить програм-

му.

4. Открыть файл Lab7c.txt и записать ответ.

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

контрольного примера.

Примеры задач

Задача 1. Ввести матрицу A размером 33 из файла Lab7a.txt, заменить в ней

элементы выше главной диагонали на нули, а затем вывести эту матрицу в файл

Lab7c.txt.

Программа.

Program Lab7b;

Var

A:array[1..3,1..3] of real;

i,j:integer;

f1,f2:text;

Begin

assign(f1,'Lab7a.txt');

assign(f2,'Lab7c.txt');

reset(f1); rewrite(f2);

for i:=1 to 3 do

for j:=1 to 3 do

read(f1,A[i,j]);

for i:=1 to 3 do

for j:=1 to 3 do

if i<j then A[i,j]:=0;

writeln(f2,'Массив A');

for i:=1 to 3 do

begin

for j:=1 to 3 do

write(f2,A[i,j]:10:3);

writeln(f2,'');

end;

close(f1); close(f2);

readln; End.

Контрольный пример.

Исходные данные:

987654321

A .

Page 35: I Z g d j .., D h k b q g d h F - ЮРГПУ(НПИ)fiop.npi-tu.ru/assets/fiop/economy/files/38.03.01-mu... · 2017-11-10 · 2 УДК 004.925 (076.5) ББК 32.973-018.2 И74 Рецензент:

35

Результаты:

987054001

A .

Задача 2. Задана запись студента с полями: фамилия, год рождения, средний балл

за сессию. Начислить студенту стипендию, если известно, что за все отличные

оценки начисляется стипендия в 1000 рублей, а за остальные оценки стипендия не

начисляется.

Программа.

Program Lab7d;

Var

student:record

fam:string[10];

god:integer;

ball:real;

end;

stip:real;

Begin

with student do

readln(fam,god,ball);

if student.ball=5 then stip:=1000 else stip:=0;

writeln('Стипендия – ',stip:5:1,' рублей'); End.

Контрольный пример.

Исходные данные: Фамилия – Иванов

Год рождения – 1989

Средний балл – 5

Результаты: Стипендия – 1000 рублей

Дополнительное задание

1. С использованием ввода исходных данных из файла и вывода результатов

в файл найти сумму всех элементов в двумерном массиве и заменить на

нули элементы на главной диагонали.

2. Дан массив студентов из полей записи: фамилия, год рождения, оценки по

3 экзаменам. Найти средний балл студентов 1989 года рождения и старше,

а также вычислить количество отличников и задолжников.

Контрольные вопросы

1. Что такое файл? Какие бывают виды файлов и как они обозначаются?

2. Какие процедуры применяются для связи файловой переменной с именем

файла и для закрытия файла?

3. Какие процедуры применяются для открытия файла?

4. Какие процедуры применяются для ввода данных из файла?

5. Какие процедуры применяются для вывода данных в файл?

6. Что такое запись и поле?

7. Какой вид имеет описание записи и что это означает?

8. Какой вид имеет доступ к полю записи и что это означает?

9. Какой вид имеет оператор присоединения и что он означает?

10. Напишите, что означает каждая строка в вышеприведённых програм-

мах.

Page 36: I Z g d j .., D h k b q g d h F - ЮРГПУ(НПИ)fiop.npi-tu.ru/assets/fiop/economy/files/38.03.01-mu... · 2017-11-10 · 2 УДК 004.925 (076.5) ББК 32.973-018.2 И74 Рецензент:

36

11. Напишите программу к одной из задач дополнительного задания.

Page 37: I Z g d j .., D h k b q g d h F - ЮРГПУ(НПИ)fiop.npi-tu.ru/assets/fiop/economy/files/38.03.01-mu... · 2017-11-10 · 2 УДК 004.925 (076.5) ББК 32.973-018.2 И74 Рецензент:

37

ЛИТЕРАТУРА

Основная учебная литература

1. Информатика [Электронный ресурс]. – М.: Флинта, 2011. – 260 с. –

Режим доступа http://www.knigafund.ru.

2. Кудинов Ю.И. Основы современной информатики [Электронный ре-

сурс] / Ю.И. Кудинов, Ф.Ф. Пащенко. – СПб.: Лань, 2011. – 256 с. – Режим

доступа: http://e.lanbook.com.

3. Андреева Т.А. Программирование на языке Pascal [Электронный ре-

сурс]. – М.: Интернет-Университет Информационных Технологий, 2006. –

234 с. – Режим доступа http://www.knigafund.ru.

Дополнительная учебная литература

4. Схиртладзе А.Г. Информатика, современные информационные тех-

нологии. [Электронный ресурс] / А.Г. Схиртладзе, В.П. Мельников, В.Б. Мо-

исеев. – Пенза: ПензГТУ, 2015. – 548 с. – Режим доступа: http://e.lanbook.com.

5. Лапчик М.П. Методика обучения информатике [Электронный ре-

сурс] / М.П. Лапчик, М.И. Рагулина, И.Г. Семакин, Е.К. Хеннер. – СПб.:

Лань, 2016. – 392 с. – Режим доступа: http://e.lanbook.com.

6. Теория и реализация языков программирования [Электронный ре-

сурс]. – М.: Интернет-Университет Информационных Технологий, 2007. –

323 с. – Режим доступа http://www.knigafund.ru.

7. Роганов Е.А. Основы информатики и программирования [Электрон-

ный ресурс]. – М.: Интернет-Университет Информационных Технологий,

2006. – 336 с. – Режим доступа: http://knigafund.ru.

8. Маринин В.И. Информатика: учеб. пособие [Электронный ресурс] /

В.И. Маринин, Л.В. Черкесова; Юж.-Рос. гос. техн. ун-т (НПИ). – Новочер-

касск: изд-во ЮРГТУ (НПИ), 2004. – 300 с. – Режим доступа:

http://www.lib.npi-tu.ru.

Методические указания и материалы по видам занятий

- к лекциям [1-8]:

9. Информатика: базовый курс: учеб. пособие для вузов / под ред. С.В.

Симоновича; 2-е изд. – СПб.: Питер, 2007. – 640 с.

10. Информатика: учебник / под ред. Н.В. Макаровой; 3-е изд., перераб.

– М.: Финансы и статистика,2005. – 768 с.

11. Острейковский В.А. Информатика: учебник для вузов. – 3-е изд.,

стер. – М.: Высш. шк., 2005. – 511 с.

12. Сырецкий Г.А. Информатика. Т. 2: Фундаментальный курс: учебник

для вузов. – СПб.: БХВ-Петербург, 2007. – 848 с.

13. Информатика для юристов и экономистов / под ред. С.В. Симонови-

ча. – СПб.: Питер, 2006. – 688 с.

14. Фаронов В.В. Turbo Pascal: учеб. пособие для вузов. – СПб.: Питер,

2007. – 367 с.

Page 38: I Z g d j .., D h k b q g d h F - ЮРГПУ(НПИ)fiop.npi-tu.ru/assets/fiop/economy/files/38.03.01-mu... · 2017-11-10 · 2 УДК 004.925 (076.5) ББК 32.973-018.2 И74 Рецензент:

38

15. Немнюгин С.А. Turbo Pascal. Программирование на языке высокого

уровня: учебник для вузов. – 2-е изд. – СПб.; М.: Питер, 2007. – 544 с.

16. Киреев В.И. Численные методы в примерах и задачах: учеб. пособие

для втузов / В.И. Киреев, А.В. Пантелеев. – М.: Высш. шк., 2004. – 480 с.

17. Турчак Л.И. Основы численных методов: учеб. пособие / Л.И. Тур-

чак, П.В. Плотников. – 2-е изд., перераб. и доп. – М.: Физматлит, 2003. –

304 с.

18. Филиппенко Г.Г. Информатика: учеб. пособие / Г.Г. Филиппенко,

Л.Н. Филиппенко, В.И. Маринин. – Новочеркасск: ЮРГТУ, 2004. – 83 с.

- к практическим и лабораторным занятиям [3, 6-14, 17]:

19. Лабораторный практикум по информатике: учеб. пособие для вузов /

Под ред. В.А. Острейковского; 2-е изд., стер. – М.: Высш. шк., 2006. – 376 с.

20. Маринин В.И. Информатика в тестовых заданиях: учеб.-метод. посо-

бие для подготовки к Федеральному Интернет-экзамену / В.И. Маринин, Л.П.

Веселовская, Д.Н. Князев, М.Ю. Косиченко, Г.Г. Филиппенко. – Новочер-

касск: ЮРГТУ, 2007. – 32 с.

21. Филиппенко Л.Н. Программирование на языке Pascal: учеб. пособие:

ч. 1 / Л.Н. Филиппенко, Г.Г. Филиппенко; ЮРГПУ (НПИ) им. М.И. Платова.

– Новочеркасск: Изд-во ЮРГПУ (НПИ), 2014. – 137 с.

- дидактические материалы:

22. Наглядные пособия и стенды (расположенные в лабораториях).

23. Комплект вопросов для контроля знаний.

Интернет-ресурсы

24. Образовательные ресурсы Интернета – Информатика [Электронный

ресурс]. – Режим доступа http://alleng.ru.

Перечень информационных технологий

25. Операционная система Microsoft Windows (номер лицензионного со-

глашения Agreement V4640039).

26. Система программирования Pascal ABC .NET (бесплатное ПО).

27. Язык программирования Pascal.

Page 39: I Z g d j .., D h k b q g d h F - ЮРГПУ(НПИ)fiop.npi-tu.ru/assets/fiop/economy/files/38.03.01-mu... · 2017-11-10 · 2 УДК 004.925 (076.5) ББК 32.973-018.2 И74 Рецензент:

39

СОДЕРЖАНИЕ Введение ................................................................................................................... 3

Лабораторная работа № 1 Программирование последовательных

вычислений ...................................................................................................... 4

Лабораторная работа № 2 Программирование разветвлений .......................... 9

Лабораторная работа № 3 Программирование циклов ................................... 14

Лабораторная работа № 4 Программирование задач с одномерными

массивами ...................................................................................................... 18

Лабораторная работа № 5 Программирование задач с двумерными

массивами ...................................................................................................... 23

Лабораторная работа № 6 Программирование задач с процедурами и

функциями ..................................................................................................... 28

Лабораторная работа № 7 Программирование задач со структурными

типами данных............................................................................................... 32

Литература ............................................................................................................. 37

Page 40: I Z g d j .., D h k b q g d h F - ЮРГПУ(НПИ)fiop.npi-tu.ru/assets/fiop/economy/files/38.03.01-mu... · 2017-11-10 · 2 УДК 004.925 (076.5) ББК 32.973-018.2 И74 Рецензент:

40

Информатика Учебно-методическое пособие по выполнению лабораторных работ

Для студентов направления 38.03.01 «Экономика»

Панкратов Павел Викторович

Косиченко Михаил Юрьевич

Подписано в печать 1.09.2017 г. Формат 6084 1/16. Печ. л. 2,5.

Уч.-изд. л. 2,5.

Южно-Российский государственный политехнический университет

Редакционно-издательский отдел ЮРГПУ

Типография ЮРГПУ

Адрес университета и типографии:

346428, г. Новочеркасск, ул. Просвещения, 132