i z g d j .., d h k b q g d h f -...
TRANSCRIPT
МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ
РОССИЙСКОЙ ФЕДЕРАЦИИ
ФЕДЕРАЛЬНОЕ ГОСУДАРСТВЕННОЕ БЮДЖЕТНОЕ
ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ
ВЫСШЕГО ОБРАЗОВАНИЯ
«ЮЖНО-РОССИЙСКИЙ ГОСУДАРСТВЕННЫЙ
ПОЛИТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ (НПИ)
ИМЕНИ М.И. ПЛАТОВА»
______________________________________________________
Панкратов П.В., Косиченко М.Ю.
Информатика
Учебно-методическое пособие
по выполнению лабораторных работ Для студентов направления 38.03.01 «Экономика»
Новочеркасск 2017 г.
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
3
ВВЕДЕНИЕ
Учебно-методическое пособие по выполнению лабораторных работ со-
ставлено в соответствии с учебными планами и рабочими программами по
дисциплине «Информатика» для направления подготовки бакалавров
38.03.01 «Экономика» (направленность «Экономика предприятий и органи-
заций») всех форм обучения.
Пособие включает 7 лабораторных работ. В каждой лабораторной рабо-
те приведены название лабораторной работы, цель работы, оборудование,
программные средства, терминология, порядок выполнения, дополнительные
задания и контрольные вопросы. По некоторым работам приведены примеры
выполнения. После выполнения работы студент должен оформить ответы на
контрольные вопросы и защитить данную работу, ответив устно на вопросы
преподавателя. После выполнения и защиты всех лабораторных работ сту-
дент должен оформить и сдать отчёт по лабораторным работам, который
должен включать титульный лист, а также задания, порядок выполнения и
ответы на контрольные вопросы по каждой лабораторной работе.
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 (остаток от деления);
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 (символ с заданным порядко-
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
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 являются стандартными? Как они обо-
значаются?
8
3. Какие операторы используются в языке Pascal? Какой вид они имеют и что
означают?
4. Какие операции имеются в языке Pascal? Какой приоритет они имеют?
Приведите примеры.
5. Какой синтаксис имеют стандартные математические функции и константа
? Приведите примеры.
6. Как зайти в систему программирования и выйти оттуда? Как создать но-
вый файл и закрыть окно?
7. Как проверить программу на ошибки и запустить её на выполнение? Как
просмотреть ответ и сохранить программу?
8. Напишите программу и нарисуйте блок-схему алгоритма для решения од-
ной из задач дополнительного задания.
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)
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.
Селектор – выражение порядкового типа, которое может принимать од-
но из многих значений.
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);
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. Какой вид имеют составной оператор и оператор присваивания, а также
что они означают?
13
4. Какой вид имеют операторы ввода и вывода, а также что они означают?
5. Какой вид имеет оператор безусловного и условного перехода, а также что
они означают?
6. Какой вид имеет оператор варианта и что он означает?
7. Что такое метка, условие и селектор? К каким типам данных относятся эти
понятия?
8. Напишите, что означает каждая строка в вышеприведённых программах.
9. Напишите программу и нарисуйте блок-схему алгоритма для решения од-
ной из задач дополнительного задания.
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. Оператор цикла с параметром (при увеличении параметра) имеет
вид:
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
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.
17
7. Вычислить
xaa
xaxe
xaxe
E
xe при ,
при ,lg
при ,sin15
cos1
2
, где x увеличивается от xн до xк с
шагом x.
Контрольные вопросы
1. Что такое алгоритм циклической структуры? Перечислите операторы, реа-
лизующие этот алгоритм.
2. Что такое цикл? Перечислите составляющие и разновидности циклов.
3. Какой вид имеет оператор цикла с предусловием и что он означает?
4. Какой вид имеет оператор цикла с постусловием и что он означает?
5. Какой вид имеет оператор цикла с параметром (при увеличении параметра)
и что он означает?
6. Какой вид имеет оператор цикла с параметром (при уменьшении парамет-
ра) и что он означает?
7. Что такое параметр цикла? Может ли он быть целым числом, дробным
числом?
8. Напишите, что означает каждая строка в вышеприведённых программах.
9. Напишите программу и нарисуйте блок-схему алгоритма для решения од-
ной из задач дополнительного задания.
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 .
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]);
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
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.
22
Контрольные вопросы
1. Объясните понятие массива, его элемента, индекса, размерности? Пере-
числите виды массивов.
2. Как обозначаются и описываются массивы и их элементы? Приведите
примеры.
3. Чем отличается вычисление суммы всех элементов от вычисления суммы
части элементов?
4. Чем отличается вычисление суммы части элементов от вычисления коли-
чества части элементов?
5. Чем отличается вычисление суммы элементов от вычисления произведе-
ния элементов?
6. Чем отличается вычисление суммы элементов от вычисления среднего
значения элементов?
7. Чем отличается вычисление максимального элемента от вычисления ми-
нимального элемента?
8. Чем отличается ввод элементов от их вывода?
9. Чем отличается увеличение элементов на какую-либо величину от замены
элементов на эту величину?
10. Чем отличается увеличение элементов на какую-либо величину от ана-
логичного вычисления нового массива?
11. Чем отличается вычисление максимального элемента от вычисления
его индекса?
12. Почему для перестановки элементов используется три оператора?
13. Напишите, что означает каждая строка в вышеприведённой программе.
14. Напишите программу и нарисуйте блок-схему алгоритма для решения
одной из задач дополнительного задания.
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].
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;
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];
Главная диагональ
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. Какие особенности у элементов на главной и побочной диагонали в квад-
ратных матрицах?
27
4. Чем отличается вычисление характеристик двумерного массива от таких
же характеристик одномерного массива?
5. Чем отличаются операции с двумерными массивами от таких же операций
с одномерными массивами?
6. Чем отличается вычисление характеристик массива по строкам от анало-
гичного вычисления по столбцам?
7. Напишите, что означает каждая строка в вышеприведённой программе.
8. Напишите программу и нарисуйте блок-схему алгоритма для решения од-
ной из задач дополнительного задания.
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 , … )
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.
Контрольный пример.
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 с использованием подпрограммы-функции вычисле-
ния корня произвольной степени.
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. Напишите программу и нарисуйте блок-схему алгоритма для решения
одной из задач дополнительного задания.
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, и перевод указателя в файле на новую
строку.
Строки
Строка – упорядоченный набор символов в кавычках.
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.
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 .
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. Напишите, что означает каждая строка в вышеприведённых програм-
мах.
36
11. Напишите программу к одной из задач дополнительного задания.
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 с.
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.
39
СОДЕРЖАНИЕ Введение ................................................................................................................... 3
Лабораторная работа № 1 Программирование последовательных
вычислений ...................................................................................................... 4
Лабораторная работа № 2 Программирование разветвлений .......................... 9
Лабораторная работа № 3 Программирование циклов ................................... 14
Лабораторная работа № 4 Программирование задач с одномерными
массивами ...................................................................................................... 18
Лабораторная работа № 5 Программирование задач с двумерными
массивами ...................................................................................................... 23
Лабораторная работа № 6 Программирование задач с процедурами и
функциями ..................................................................................................... 28
Лабораторная работа № 7 Программирование задач со структурными
типами данных............................................................................................... 32
Литература ............................................................................................................. 37
40
Информатика Учебно-методическое пособие по выполнению лабораторных работ
Для студентов направления 38.03.01 «Экономика»
Панкратов Павел Викторович
Косиченко Михаил Юрьевич
Подписано в печать 1.09.2017 г. Формат 6084 1/16. Печ. л. 2,5.
Уч.-изд. л. 2,5.
Южно-Российский государственный политехнический университет
Редакционно-издательский отдел ЮРГПУ
Типография ЮРГПУ
Адрес университета и типографии:
346428, г. Новочеркасск, ул. Просвещения, 132