PASCAL ЛАБОРАТОРНЫЙ ПРАКТИКУМ


Чтобы посмотреть этот PDF файл с форматированием и разметкой, скачайте его и откройте на своем компьютере.
Елабуга

20
1
1

Е
лабужский государственный
педагогический универс
и
тет


Кафедра информатики

и

ди
с
кретной математики

Лабораторный практикум



УДК 681.14

ББК 32.973

И 21






Печатается по решению Редакционно
-
издательского совета

Елабужского государственного педагогического университета

Протокол №
32

от «
19
» февраля 2009 г.




Рецензенты:


Юрзанова Т.К
., доцент кафедры информационных техн
ологий филиала КГТУ им.
Туполева, кандидат педагогических наук


Кобелев И.А
.,

ст. преподаватель кафедры информатики и дискретной мат
е
матики
ЕГПУ






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





СОДЕРЖАНИ
Е


ПРАКТИЧЕСКОЕ ЗАНЯТИЕ № 1 ЗНАКОМСТВО С URBO PASCAL 7.0

................................
.............

5

ПРАКТИЧЕСКОЕ ЗАНЯТИЕ № 2 РАБОТА КОМПЬЮТЕ
РА В РЕЖИМЕ КАЛЬКУЛЯТОРА
(ВЫЧИСЛЕНИЯ)

................................
................................
................................
................................
............

10

ПРАКТИЧЕСКОЕ ЗАНЯТИЕ № 3 РЕШЕНИЕ МАТЕМАТИЧЕСКИХ ВЫРАЖЕНИЙ

....................

11

ЛИНЕЙНАЯ ПРОГРАММА

................................
................................
................................
..........................

11

ПРАКТИЧЕСКОЕ ЗАНЯТИЕ № 4 РЕШЕНИЕ ФИЗИЧЕСКИХ ЗАДАЧ

................................
..............

12

ПРАКТИЧЕСКОЕ ЗАНЯТИЕ № 5 ОПЕРАТОР УСЛОВНОГО ПЕРЕХОДА

................................
.......

13

ПРАКТИЧЕСКОЕ ЗАНЯТИЕ № 6 ОПЕРАТОР УСЛОВНОГО ПЕРЕХОДА (продолжение)

.............

14

ПРАКТИЧЕСКОЕ ЗАНЯТИЕ № 7 ОПЕРАТОР УСЛОВНОГО ПЕРЕХОДА (продолжение)

...........

15

ПРАКТИЧЕСКОЕ ЗАНЯТИЕ № 8 ОПЕРАТОР ВАРИАНТА

................................
................................
..

16

ПРАКТИЧЕСКОЕ ЗАНЯТИЕ № 9 ОПЕРАТОР ВАРИАНТА (продолжение)

................................
.....

17

ПРАКТИЧЕСКОЕ ЗАНЯТИЕ № 10 ПОДГОТОВКА К КОНТРОЛЬНОЙ РАБОТЕ

.............................

18

ПРАКТИЧЕСКОЕ ЗАНЯТИЕ №11 ЦИКЛИЧЕСКИЕ ПРОЦЕССЫ

................................
.....................

19

ПРАКТИЧЕСКОЕ ЗАНЯТИЕ № 12 ЦИКЛИЧЕСКИЕ ПРОЦЕССЫ (продолжение)

.........................

22

ПРАКТИЧЕСКОЕ ЗАНЯТИЕ № 13 ЦИКЛИЧЕСКИЕ ПРОЦЕССЫ (продолжение)

.....................

23

ПРАКТИЧЕСКОЕ ЗАНЯТИЕ № 14 СУММА. ПРОИЗВЕДЕНИЕ. ТАБУЛИРОВАНИЕ.

...................

24

ПРАКТИЧЕСКОЕ ЗАНЯТИЕ № 15 ТАБУЛИРОВАНИЕ (продолжение)

................................
..........

25

ПРАКТИЧЕСКОЕ ЗАНЯТИЕ № 16 ТАБЛИЦА ПИФАГОРА

................................
................................

26

ПРАКТИЧЕСКОЕ ЗАНЯТИЕ № 17 ПРОЦЕДУРЫ

................................
................................
...................

27

ПРАКТИЧЕСКОЕ ЗАНЯТИЕ
№ 18 ПРОЦЕДУРЫ (продолжение)

................................
.......................

28

ПРАКТИЧЕСКОЕ ЗАНЯТИЕ № 19 ПРОЦЕДУРЫ (продолжение)

................................
......................

29

ПРАКТИЧЕСКОЕ ЗАНЯТИЕ № 20 ФУНКЦИИ

................................
................................
.......................

31

ПРАКТИЧЕСКОЕ ЗАНЯТИЕ № 21 ФУНКЦИИ (продолжение)

................................
...........................

32

ПРАКТИЧЕСКОЕ ЗАНЯТИЕ № 22 ПОВТОРЕНИЕ. ПОДГОТОВКА К КОНТРОЛЬНОЙ РАБОТЕ.

................................
................................
................................
................................
................................
............

32

ПРАКТИЧЕСКОЕ ЗАНЯТИЕ № 23 ПОВТОРЕНИЕ

................................
................................
.................

34

ПРАКТИЧЕСКОЕ ЗАНЯТИЕ № 24 СИМВОЛЬНЫЕ И СТРОКОВЫЕ ФУНКЦИИ

..........................

35

ПРАКТИЧЕСКОЕ ЗАНЯТИЕ № 25 СИМВОЛЬНЫЕ И СТРОКОВЫЕ ФУНКЦИИ (продолжение)
36

ПРАКТИЧЕСКОЕ ЗАНЯТИЕ № 26 ОБРАБОТКА СИМВОЛЬНЫХ И СТРОКОВЫХ ВЕЛИЧИН 1

37

ПРАКТИЧЕСКОЕ ЗАНЯТИЕ № 27 ОБРАБОТКА СИМВОЛЬНЫХ И СТРОКОВЫХ ВЕЛИЧИН 2

39

ПРАКТИЧЕСКОЕ ЗАНЯТИЕ № 28 ОБРАБОТКА СИМВОЛЬНЫХ И СТРОКОВЫХ ВЕЛИЧИН 3

3
9

ПРАКТИЧЕСКОЕ ЗАНЯТИЕ № 29 ОБРАБОТКА СИМВОЛЬНЫХ ВЕЛИЧИН 4

..............................

40

ПРАКТИЧЕСКОЕ ЗАНЯТИЕ № 30 ЗАПОЛНЕНИЕ И ВЫВОД МАССИВОВ

................................
.....

42

ПРАКТИЧЕСКОЕ ЗАНЯТИЕ № 31 ЗАПОЛНЕНИЕ И ВЫВОД МАССИВОВ (продолжение)

.........

43

ПРАКТИЧЕСКОЕ ЗАНЯТИЕ № 32 ОБРАБОТКА ОДНОМЕРНЫХ ЧИСЛОВЫХ МАССИВОВ.
.....

44



СУММИРОВАНИЕ ЭЛЕМЕНТОВ МАССИВА

................................
................................
..........................

44

ПРАКТИЧЕСКОЕ ЗАНЯТИЕ № 33 ОБРАБОТКА ОДНОМЕРНЫХ ЧИСЛОВЫХ МАССИВОВ
......

45

СУММА ЭЛЕМЕНТОВ МАССИВА ПО УСЛОВИЮ

................................
................................
.................

45

ПРАКТИЧЕСКОЕ ЗАНЯТИЕ № 34 ОБРАБОТКА ОДНОМЕРНЫХ МАССИВОВ

..............................

46

ОПРЕДЕЛЕНИЕ ЧИСЛА ЭЛЕМЕНТОВ МАССИВА ПО УСЛОВИЮ

................................
..................

46

ПРАКТИЧЕСКОЕ ЗАНЯТИЕ № 35 ОБРАБОТКА ОДНОМЕРНЫХ ЧИСЛОВЫХ МАССИВОВ
......

47

СУМ
МА ДВУХ ОДИНАКОВЫХ ПО РАЗМЕРУ МАССИВОВ

................................
................................

47

ПРАКТИЧЕСКОЕ ЗАНЯТИЕ № 36 ОБРАБОТКА ОДНОМЕРНЫХ МАССИВОВ

..............................

48

ОБЪЕДИНЕНИЕ ДВУХ МАССИВОВ С

ЧЕРЕДОВАНИЕМ ЭЛЕМЕНТОВ

................................
........

48

ПРАКТИЧЕСКОЕ ЗАНЯТИЕ № 37 ОБРАБОТКА ОДНОМЕРНЫХ МАССИВОВ

..............................

49

ИНВЕРТИРОВАНИЕ МАССИВА

................................
................................
................................
................

49

ПРАКТИЧЕСКОЕ ЗАНЯТИЕ № 38 ОБРАБОТКА ОДНОМЕРНЫХ МАССИВОВ
ФОРМИРОВАНИЕ МАССИВА ИЗ ЭЛЕМЕНТОВ ДРУГОГО МАССИВА УДОВЛЕТВОРЯЮЩИХ
ЗАДАННОМУ УСЛОВИЮ

................................
................................
................................
.............................

50

П
РАКТИЧЕСКОЕ ЗАНЯТИЕ № 39 ОБРАБОТКА ОДНОМЕРНЫХ МАССИВОВ ПОИСК
МАКСИМАЛЬНОГО ЭЛЕМЕНТА В МАССИВЕ С ЗАПОМИНАНИЕМ ЕГО ПОЛОЖЕНИЯ
(ИНДЕКСА)

................................
................................
................................
................................
......................

51

ПРАКТИЧЕСКОЕ ЗАНЯТИЕ № 40 ОБРАБОТКА ОДНОМЕРНЫХ МАССИВОВ
ПОИСК
ЗАДАННОГО ЭЛЕМЕНТА В МАССИВЕ

................................
................................
................................
....

52

ПРАКТИЧЕСКОЕ ЗАНЯТИЕ № 41 ОБРАБОТКА ОДНОМЕРНЫХ МАССИВОВ УПОРЯДОЧЕНИЕ
МАССИВА

................................
................................
................................
................................
........................

53

ПРАКТИЧЕСК
ОЕ ЗАНЯТИЕ № 42 ОБРАБОТКА МАТРИЦ ВВОД И ВЫВОД МАТРИЦ

................

54

ПРАКТИЧЕСКОЕ ЗАНЯТИЕ № 43 ОБРАБОТКА МАТРИЦ

................................
................................
...

55

ПРАКТИЧЕСКОЕ ЗАНЯТИЕ № 44
ОБРАБОТК МАТРИЦ

................................
................................
.....

56

ПРАКТИЧЕСКОЕ ЗАНЯТИЕ № 45 ПОДГОТОВКА К КОНТРОЛЬНОЙ РАБОТЕ

.............................

58

ПРАКТИЧЕСКОЕ ЗАНЯТИЕ № 46. ЗАПИСИ

................................
................................
...........................

59

ПРАКТИЧЕСКОЕ ЗАНЯТИЕ № 47. ФАЙЛЫ

................................
................................
............................

61

ПРАКТИЧЕСКОЕ ЗАНЯТИЕ № 48. ЗАДАЧИ ОПТИМИЗАЦИИ

................................
..........................

63

ПРАКТИЧЕСКОЕ ЗАНЯТИЕ № 49.

................................
................................
................................
.............

64

ПРАКТИЧЕСКОЕ ЗАНЯТИЕ № 50. ЗНАКОМСТВО С IBM. ОПЕРАЦИОННАЯ СИСТЕМА.
NORTON COMMANDER

................................
................................
................................
................................

66

ПРИЛОЖЕНИЕ

................................
................................
................................
................................
...............

69

ЛИТЕРАТУРА

................................
................................
................................
................................
..................

72



5


ПРАКТИЧЕСКОЕ ЗАНЯТИЕ № 1

ЗНАКОМСТВО С URBO PASCAL

7.0


Turbo

Pascal

7.0

-

реализация языка
Pascal

фирмой
Borland

International

для
IBM

PC
.
Можно работать в
Pascal

ABC
,
заменяя
readkey

на
readln
. (см.
приложение стр. 65, 66
)

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

ВХОД

В СРЕДУ urbo
Pascal
:

Войти в меню пользователя, выбрать версию
Turbo

Pascal

и нажать
Enter
.

Либо найти файл
turbo
.
exe

в папке
c
:
\
Pascal
\
turbo
7
\
bin

и
щелкнуть
Enter
.


ГЛАВНОЕ МЕНЮ




F10
-

ВЫХОД В МЕНЮ

File


-

меню работы с фай
лами;


Edit


-

меню редактора;

Search


-

меню службы поиска;

Run


-

меню запуска

программы;

Compile

-

меню компиляции;

Debug


-

меню отладки;

Options

-

меню установок;

Window

-

меню окон;

Help


-

меню справочной службы.

File
: Open...F3

-

открыть суще
ствующую на диске программу
;


New


-

открыть новое окно редактора;


Save F2

-

записать
программу на диск с текущим именем
;


Save as

-

записать
программу

на диск
с указанием имени;


Exit


-

выход из среды или
Alt+X

Ctrl+F2

-

прекратить
отладку (убрать голубую полосу);

Ctrl
+
F
8



красную полосу.

Ctrl+F4

-

просмотр значения переменной из редактора;


ФУНКЦИИ КЛАВИШ

Ctrl,Alt,Shift


-

управляющие клавиши;

Esc



-

отмена команды;

BackSpace


-

удаление символа слева от курсора со сдвигом стро
ки;

Insert



-

переключение режима
вставк
и
/замен
ы
;




-

удаление символа над курсором;



Home



-

курсор в начало строки;

End



-

курсор в конец строки;

Page Up


-

курсор
на страницу вверх
;

Page D
ow
n


-

курсор на страницу вниз
;

Caps Lock


-

переключен
ия

заглавные/строчные или Shift+буква;

Ctrl+Break+Break

-

останов работы программы;

Ctrl+Y


-

удалить строку;


Ctrl+N


-

вставить строку;

Shift+↑

[↓,


,

←,Home, End, Page U, Page Down
]

-

выделить

фрагмент

программы

Ctrl
+
K

B



-

отметить начало выделения
фрагмента;


Ctrl
+
K

K



-

отметить
конец

выделения фрагмента;

Ctrl+K C


-

скопировать выделенный фрагмент
;

Ctrl+K V


-

переместить выделенный фрагмент
;

Ctrl+K Y


-

удалить

выделенный фрагмент;

Ctrl+K H


-

снять/вернуть выделение
;

Ctrl+F9


-

выполнить комп
иляцию и запуск программы;


МОДУЛИ

Turbo

P
ascal

содержит

библиотеку

модулей:
SYSTEM
,
DOS
,
CRT
,
GRAPH

и
др.

Если работа производится в текстовом режиме, надо объявлять модуль CR,
если требуется

выполнить графические работы,
то объявляется графический мо
дуль
Graph.

Например,


Program

Primer
;


USES

CRT
,
GRAPH
;


Var ...

Чтобы увидеть результа
ты после выполнения программы, надо
перед окончанием
программы указать READLN или
READKEY
, без этих команд после выполнения
программы осуществляется автом
атических возврат в редактор, в этом случае для
просмотра экрана пользователя надо нажать клавиши
Alt
+
F
5
;



ЗАДАНИ
Я

1. Выйти в редактор

и получить на экране строки :



* : =
-

/ ? (

) [ { ] } ' ` , . " ; + &#x-2 0; %

_ 1 2 0 9 4 8 7 6 3 5


abcdefghijklm
nopqrstuvwxyz ABCDEFGHIJKLMNOPQRSTUVWXYZ


PROGRAM

program

CONST

const

type

TYPE

Begin

End

procedure


{ Програ
мма вычисления функции Ysin(x)
}


2. В полученном на экране тексте раздвинуть строки.



7

3. Разд
елить первые три строки пополам
,

т.е. получить с
емь строк.

4. Удалить шестую строку.

5. Удалить пустые строки.

6. Скопировать первую строку в конец текста.

7. Поместить первую строку между 4 и 5 строками.

8. Переместить 3 и 4 строки в начало текста.

9. Подчеркнуть строки 1
-
ю
-
'*' ,

2
-
ю
-

'=' ,

3
-
ю
-

'
-
' .


ПРИЛОЖЕНИЕ К ПРАКТИЧЕСКОМУ ЗАНЯТИЮ

ОСНОВНЫЕ ТИПЫ ЯЗЫКА ПАСКАЛЬ:

I
nteger

-
целый тип
-

целое число от
-
32768 до +32767,занимает 2 байта памяти

R
eal


-

вещественный тип
-

числа от 1Е
-
37 до 15.9Е37

B
oolean

-

логический тип

-

значение высказывания true

или false

char

-

символьный тип

(
один символ
)

byte

-

стандартный байтовый тип
-

целые от 0 до 255,

занимает 1 байт памяти

string

-

строковый тип.


Целы
е

тип
ы
:

BYTE


-

целые положительные из интервала
[ 0; 255 ];

WORD

-

целые положительные из интервала

[ 0; 65535 ];

SHORTINT

-

целые из интервала [
-
128;
127 ];

INTEGER

-

целые из интервала [
-
32768;
32767 ];

LONGINT

-

целые из интервала
[
-
2147483648; 214748647 ];


СТАНДАРТН
Ы
Е МАТЕМАТИЧЕСКИЕ ФУНКЦИ
И

ABS(X)

эбсолют

-

модуль

│x│

SIN(X)

синус


-

синус x, гд
е x в радианах. Перевод град .в рад.
X
=
X
*
PI
/180

COS(X)

косинус

-

косинус x, где x в радианах

ARCTAN(X)

арктан


-

арктангенс х , где результат в радианах

SQR(X)

сквэа


-

квадр
ат х



SQuaRe
-
англ.

SQRT(X)

сквэати

-

квадратный корень из х

SQuare RooT
-
англ.

PI


пи


-

константа (
π≈
3.141592
)

ROUND(X)
раунд


-

округление х. Результат
-

integer

TRUNC(X)

транк


-

целая часть числа без округления. Результат
-

integer

INT(X)

инт


-

целое,

не

превосходящее +Х. Результат
-

real

ODD(X)

од


-

не
четность
. ODD

(7)

=t
rue , ODD(8)=false

FRAC(X)

фрак


-

дробная часть числа

EXP
(
X
)

эксп


-

экспонента функция
y
=
e

(
e
≈2.71828)

LN
(
X
)


лн


-

натуральный логарифм
y
=
ln

x

(по основанию
e
).




ФОРМУЛЫ ВОЗВЕДЕНИЯ В СТЕПЕНЬ

=
EXP
(
LN
(
a
)*
x
)




-

для
a
>0 и

x

1

=
EXP
(
LN
(
ABS
(
a
))/
x
)



-

для
0
x
1,
x



четное число

=
EXP
(
LN
(
ABS
(
a
))/
x
)*
ABS
(
a
)/
a


-

для
0
x
1,
x



нечетное число


ЗАПИСЬ МАТЕМАТИЧЕСКИХ ВЫРАЖЕНИЙ

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

и знаков арифметических операций согласно
ПРИОРИТЕТ
А

действий
:

1.

Действия в скобках
.





()

2.

Вычисление функций
.




SIN
,
SQR
,
ABS

и другие

3.

Ц
елочисленное деление
.

О
статок от деления.

DIV

MOD

4.

Умножение. Деление
.




*

/

5.

Сложение. Вычитание.




+

-

6.

Операции

отношений
.





�=, , , 耀, =, &#x=-3,;&#x 400;=

7.

Булевы
(логические)
операции
.




Not
,
And
,
Or


ЗАПИСЬ МАТЕМАТИЧЕСКИХ ВЫРАЖЕНИЙ

В МАТЕМАТИКЕ:


НА ПАСКАЛЕ:






A+B/C






(A+B)/C






C/(A
-
B)






A/B/C = A/(B*C)






A*B/C = A/C*B = B/C*A




(2+sqrt

(abs(A
-
B)))/(B*C)
-
A


Sin 30°





sin

(30*PI/180)


A
rctg

(1)





arctan

(1) = 0.785 (
радиан

)

arctan

(1)*180/pi = 45 (
градус
ов
)







A/(
-
B)







5e
-
6






sqr

(sin(A*A))







sin (
A)/cos(A)





cos

(60*pi/180)/sin(60*pi/180)

или

A:=60*pi/180
затем

cos(A)
/sin(A)




9

СТРУКТУРА

ПРОГРАММЫ

Программа

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

Program
Nam
e
;



{
название
программы
без пробелов 


{ разделы описаний

записываются

по мере надобности 



Uses


-

раздел объявления модулей;




l
abel


-

раздел описания меток;


const

-

раздел описания констант;


type


-

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


var


-

раздел описания переменных

(используется чаще всего)
;


function

-

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


procedure

-

раздел описания процедур;

{основная программа
}

Begin


{тело основной программы
}


Readkey
; или
Readln
;
-

ожидание нажатия клавиши

(
E
nter
)

для просмотра
результата.

End.

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

Текст
программы может записываться как
большими
,

так и маленькими буквами.

Русские буквы используются только д
ля
комментариев
, которые записываются двумя способами: {текст комментария  или
(* текст комментария *).


ОПЕР
АТОР ВЫВОДА ИНФОРМАЦИИ НА ЭКРАН

write(a);


-

стандартная процедура вывода значения переменной
«а» или
результата

вычисления
арифметического выра
жения на экран

writeln(а)
;

-

вывод с последующим переводом строки

writeln;

-

стандартная процедура перевода курсора на новую строку

write
(
x
:8:4)
-

форматированный вывод (8
-
общее кол
-
во позиций, 4
-
дробная часть)


Например:



на экране:


если
А:2;

Write
(
a
);



2

Writeln
(
a
);



2

и переход на следующую строку

Write(‘a’,a);


a=2

Write(‘a’,

a,’
метров
’);

a=2
метров

Write(‘Y’, 4+6);


Y=10

Write(‘S’,a,’*’,3,’’,a*3);

S=2*3=6
,

если

a=2

Write(‘z’,z:8:4);


z=135.6432,

если

z=1,356432223e02

Writeln(‘
погода
’);


п
огода

Writeln(‘
хорошая
’);

хорошая

Write
(‘
погода

’);

Writeln
(‘хорошая’);

погода хорошая



Для вывода в заданную позицию экрана
перед командой
Write

используется
команда
GotoXY
(
C
,
R
); которая устанавливает курсор в позицию
C

строки
R
.

Размеры текстового экрана
в
Turbo

Pascal

7.0 80х25
.
80
-
количество позиций в
строке, 25
-
количество строк.

Следовательно,
C

может меняться от 1 до 80, а
R



от 1 до 25 (обязательно целые
числа!).

Например:
GotoXY
(38,12);
Write
(‘
Hello
’);
-

выводит слово ‘
Hello
’ в центре экрана.


ПРАКТ
ИЧЕСКОЕ ЗАНЯТИЕ № 2

РАБОТА КОМПЬЮТЕРА В РЕЖИМЕ КАЛЬКУЛЯТОРА (ВЫЧИСЛЕНИЯ)



ЗАДАНИ
Я
:

1. Набрать программу:


{пояснения к программе:

Program

Primer
;
uses

crt
;


{
-
название программы '
Primer
'. Объявлен
модуль
crt
}

Begin





{
-
начало программы


Clrscr
;




{
-
очистка экрана

или окна вывода
}


write('Y=', 6+3 );
readkey
;

{
-
вывод на экран результата Y9
.}

End.





{
-
конец программы

2. Запустить

(исполнить) программу


{
-
нажать Ctrl+F9

3. Вычислить:
17+34

;
24,7+56

;
24:3

;
5
-
6

;

-
9│

;
12/3/4

;

.

4. Вычислить
:


Ответ:
-
3.941621





Ответ:
(


4.1 )





Ответ:
-
0.2496655

1.

Вычислить:

и вывести ответ в центре экрана.




11

ПРАКТИЧ
ЕСКОЕ ЗАНЯТИЕ № 3

РЕШЕНИЕ МАТЕМАТИЧЕСКИХ ВЫРАЖЕНИЙ


ЛИНЕЙНАЯ ПРОГРАММА

ЛИНЕЙНОЙ

называют программу
,

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


:=


-

символ присваивания переменным значен
ий;

x:=3.4


-

инструкция присваивания (переменной х присваивается значение 3.4).


read
ln
(а);


-

стандартная проце
дура ввода значения переменной а

с клавиатуры



ЗАДАНИ
Я
:

1. Набрать готовую программу вычисления площади прямоугольника Sa*b.

Во всех прогр
аммах не забывать в начале
Uses

crt
; и в конце
readkey
: или
readln
;



Program Area;

Uses

crt
;

{ Л И Н Е Й Н А Я ПРОГРАММА (см. конспект)


var a,b,s:

real;

{ описание переменных. Тип вещественный 


Begin



{ начало программы S 


ClrScr;


{ оч
истка экрана. От англ.
C
L
eaR

SCReen

}


write('a='); read
ln
(a);

{ввод длины и переход на следующую строку


write('b='); read
ln
(b);

{ввод ширины и переход на следу
ю
щую строку


s:=a*b;


{ вычисление по формуле 


write('S=',s);

{ вывод результ
ата на экран 


readkey
;


{удержание изображения до нажатия клавиши


End.



{ конец программы
Area

}


Запустить программу. Получить результат.


2. Добавить в программу комментарий к вводу переменных и выводу ответа


(Например:

Введите сторону а Площадь прямоугольника S ).

3. Составить про
грамму вычисления площади круга
:


4. Составить программу
вычисления площади треугольника
:

1) выделить целую часть результата;

2) выделить др
обную часть результата;

3) получить целый остаток от деления;

4) округлить результат

5) округлить до целого, не превосходящего результат.

5. Составить программу вычисления выражения:
Y=Sin(a+b/2)


при a15, b30 (градусов).




ПРАКТИЧЕСКОЕ ЗАНЯТИЕ № 4

РЕШ
ЕНИЕ ФИЗИЧЕСКИХ ЗАДАЧ


ОСОБЕННОСТИ
:


-

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

буквы
;


-

описать назначение переменных;


-

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


-

результат должен иметь указание единиц измерения;


-

особого внимания требует правильный перевод единиц измерения физических
величин;


-

постоянные физические величины описываются в разделе описания констант.


-

на Паскале

не
т

различ
ия между

строчны
ми

и заглавны
ми

букв
ами
: Gg, Аа.



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

Всемирного тяготения:


Program

Ff
;

Uses

crt
;


const g=6.672E
-
11;

{ г
равитационная постоянная 



var m1,m2,


{ массы взаимодейст
вующих тел 


r,


{ расстояние между точечными телами 


f:
re
al;

{ сила Всемирного тяготения 

Begin


ClrScr
;


write
('Введите массу
m
1=');

read
ln
(
m
1);


write
('Введите массу
m
2=');

read
ln
(
m
2);


write
('Введите расстояние
r
=');

read
ln
(
r
);



f
:=
g
*
m
1*
m
2/(
r
*
r
);


writeln
;


{ получение пустой строки 


write
('Сила притяжения
F
=',
f
:8:4
,' Н')
;


readkey
;

End
.



З
АДАНИЯ
:

1. Набрать программу вычисления силы Всемирного тяготения.

Запустить программу


Вычислить при
m
1=
m
250 кг и
r
1 м. Ответ переве
сти в мг силы.

2. Составить программу вычисления кинетической энергии

3. Подчеркнуть результат звездочками.



13


ПРАКТИЧЕСКОЕ ЗАНЯТИЕ № 5

ОПЕРАТОР УСЛОВНОГО ПЕРЕХОДА


Неполная форма:
IF условие HEN серия
;

УСЛОВИЕ
-

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

Выполняется инструкция так:
если

условие истинно,
то

выполняется серия ,

иначе выполняется следующая за IF..HEN инструкция.

СЕРИЯ
-

один оператор языка.

Полная форма :
IF условие HEN серия1


ELSE с
ерия2;

Если условие истинно, то выполняется серия1, иначе выполняется серия2.

ВНИМАНИЕ! Перед словом ELSE точка с запятой не ставится !!


Найти большее из двух чисел а и b.

Program Bid;

Uses crt;


var a,b,max: integer;

Begin


ClrScr;


write
(' Введите ц
елое число а');
read
ln
(
a
);


write
(' Введите целое число
b
=');
read
ln
(
b
);


i�f a=b then max:=a

{
если

условие

=true,
то

max:=
а

}


else max:=b;

{
если

условие

=false,
то

max:=b }


writeln('Max=',max);


readkey;

End.


При нажа
тии цифры 1 печатается слово1, а при нажатии любой клавиши слово2.

Program Text;

Uses crt;


var x: integer;

Begin


ClrScr;


write('
Введите

цифру

1
или

любую

:'); read
ln
(x); ClrScr;


if x=1 then write('
В

а

с

я
')


else write('
П

е

т

я
');


readkey
;

End.



ЗА
Д
АНИ
Я
:

1. Набрать программу Bid и проверить ее работу для '+' и '
-
' чисел.

2. В программе Bid применить округление для вещественных чисел.

3. Набрать программу ext , получить результат.



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

выводилось только при
нажатии цифры 2
, а при нажатии цифры кроме 1 и 2 выводилось сообщение

ERROR

.

5. Составить программу вычисления для любого х функции Y 1/x ,


при х0 выдать сообщение ' функция не существует '.

6. Найти
наи
большее из трех чис
ел.


ПРАКТИЧЕСКОЕ ЗАНЯТИЕ № 6

ОПЕРАТОР УСЛОВНОГО ПЕРЕХОДА (продолжение)


При сложных условиях применяются логические связки:

And

-

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


Пример: ((
x
�=0)
and

(
x
<5)) истинно для
x

из интервала [0;5]

и ложно при
x
=6


Not

-

истинно, когда ложно исходное логическое выражение


Пример:
not
(
x
>0) истинно для
x
=
-
5 и ложно для
x
=6


O
r

-

истинно, когда истинно хотя бы одно из логических выражений


Пример: ((
a
5)
or

(
a
>9)) истинно для
a
=2
и ложно для
a
=6







при
x
0

Вычислить:
Y
=








при
x

²
0


Program

Primer
;

Uses

crt
;


var

x
:
integer
;

Begin


ClrScr
;


write
('Введите значение
x
=') ;
read
ln
(
x
);


if x0 then write(' Y1=',1/(x
-
1))


else write(' Y1

-

не существует по условию');


if (x�=0) and (x耀5) then write(' Y2=',1/(x
-
5))


else write(' Y2
-

не существует по условию');


readkey
;

End.



З
АДАНИЯ
:

1. Набрать программу и проверить ее работу для Х:
-
2, 1, 5, 6.

2. Эту

же задачу решить для условия:


1) Х<0 или Х5 или Х8


2)

Х>0 и Х<>5 и Х<>6



15


Проверить работу программы для Х:
-
2,

0,

2,

5,

6,

8,

9.

3. Эту же задачу решить для условия:

1)
-
2<Х<5

Х<>1 ,

2)
-
1<Х<8

Х<>5


Проверить все ко
нтрольные точки:
-
3,


-
2,

-
1,

0,

1,

5,

8,

9.


ПРАКТИЧЕСКОЕ ЗАНЯТИЕ № 7

ОПЕРАТОР УСЛОВНОГО ПЕРЕХОДА (продолжение)


Если требуется после HEN или ELSE п
рименить более одного оператора
,

то
применяются
ОПЕРАТОРНЫЕ СКОБКИ BEGIN..END

Решение КВАДРАТНО
ГО УР
АВНЕНИЯ


Program

Kwur
;

Uses

crt
;



var a,b,c,x1,x2,d: real;

Begin


ClrScr;


write('
Введите

коэффициенты

a,b,c :'); read
ln
(a,b,c);


d:=b*b
-
4*a*c;


if d0 then writeln('
Нет

корней
.')


else begin



if d=0 then begin


x1:=
-
b/(2*a);


x2:=x1


end


else begin


x1:=(
-
b+sqrt(d))/(2*a);


x2:=(
-
b
-
sqrt(d))/(2*a)


end;


write(' x1=',x1
:5:2
,' x2=',x2
:5:2
)


end;


readkey
;

End.



З
АДАНИЯ
:

1. Решить следующие уравнения:


а) 3х
²

+ 6х
-

8 = 0


б) х
²

-


-

1 = 0


в) 5х
²

-

4х + 3  0


г) 4х
²

+ 4х
-

1 = 0


д) 5х
²

-

5х + 2  0



2. Вставить в программу комментарии:


а) полное название программы
;


б) автор программы и

дат
у

составления программы.

3. Сделать так, чтобы результат выводился на чистом экране


с указанием значений коэффициентов.




ПРАКТИЧЕСКОЕ ЗАНЯТИЕ № 8

ОПЕРАТОР ВАРИАНТА


Оператор варианта является обобщением условного операт
ора: он дает

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

от значения некоторого выражения, называемого
СЕЛЕКТОРОМ
.


CASE <селектор> OF

{ case (кейс)
-

выбор 



список меток1

:


оператор1
>; { of (oф)
-

из 



список меток2

:


оператор2
�;


. . . . . . . : . . . . . .;



список метокN

:


операторN
�;


ELSE <оператор>


END;

селектор

-

выражение любого перечисляемого типа, кроме вещественного;

integer, byte (
-
целые из [0;255]), char
-
символьный тип.

оператор

-

любой оператор языка, в том числе и составной;

список меток

-

список разделенных запятыми значений выражения 'селектор' или
одно его значение; тип метки и селектора одинаков;

Оператор варианта выбирает для исполнения
тот ОПЕРАТОР, одна из меток
которого равна текущему значению выражения СЕЛЕКТОР. Если ни одна из меток
не равна текущему значению селектора, то никакие операторы не выполняются,
либо выполняются операторы, следующие за зарезервированным словом ELSE (
е
сли такое имеется ).

Program Primer_Case1;

Uses crt;


var n:integer;

Begin


clrscr; write('
Нажмите

цифру

1..8'); read
ln
(n);


case n of


1,7: write('
В

а

н

я
');


2: write('В а с я');


3: write('В а л я');


4: write('
В а р я');


5: write('В а д я');


6: write('в а з а')


else write(' Нет такой метки')


end
; readkey;

End.

Program Primer_Case2;

Uses crt;



17


var n:char; { char
-

символьный тип ,занимает 1 байт памяти 

Begin


clrsc
r
;
write
('Нажмите букву а..е');
read
ln
(
n
);


case

n

of


'
a
':
write
('Вы ввели символ а');


'
b
':
write
('Вы ввели символ
b
');


'c': write('Вы ввели символ c');


'd': write('Вы ввели символ d')


else write('Вы ввели символ, кот
орого нет среди меток')


end
;
readkey
;

End.


ЗАДАНИ
Я
:

1. Набрать приведенные выше программы и выполнить их.

2. Во второй программе после ввести МЕНЮ для выбора меток.


ПРАКТИЧЕСКОЕ ЗАНЯТИЕ № 9

ОПЕРАТОР ВАРИАНТА (продолжение)


Вычислить площ
ади фигур, выбирая их из списка (меню) :



Program PLFigur;

Uses crt;


var s,a,b,h,r:real;


n:integer;


Begin


ClrScr;


writeln('
П

Л

О

Щ

А

Д

И
');


writeln(' =============');


writeln(' 1.
Прямоуг
ольника.');


writeln
(' 2. Трапеции.');


writeln(' 3.
Круга
.');


writeln(' 4.
Конец

работы
.');


writeln;


write('
Введите

номер

строки

:'); read
ln
(n);


case n of


1: begin


clrscr;


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


read
ln
(a,b);


s:=a*b;


write('
Площадь

прямоугольника

S=',s)


end
;


2:
begin




clrscr
;


write('Введите основания и высоту трапеции a,b,h :');


read
ln
(a,b
,h);


s:=(a+b)*h/2;


write
('Площадь трапеции
S
=',
s
)


end
;


3:
begin


clrscr
;


write
('Введите радиус круга
r
=');


read
ln
(r);


s:=pi*r*r;


write
('Площадь круга
S
=',
s
)


end


else write(' ***** Работа окончена *****');


end;


readkey
;

End.


ЗАДАНИ
Я
:

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

2. Самостоятельно дописать в программу вычисление площади треугольника.


ПРАКТИЧЕСКОЕ ЗАНЯ
ТИЕ № 10

ПОДГОТОВКА К КОНТРОЛЬНОЙ РАБОТЕ


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


F
-

сила взаимодействия зарядов по закону Кулона ( Ньютон ),


q1,q2
-
неподвижные точеч
ные электрические заряды ( Кулон ),


k9∙е9
-
к
оэффициент (

),


е
-

относительная диэлектрическая проницаемость среды (табличное знач
ение
),


r
-

расстояние между точечными электрическими зарядами ( метр ).


2. Вычислить значение

функции:


, при x

3 и
-
2=x8

Y=


, при x

-
5 и x
-
10 и x0 и x10


3. Повторить к контрольной работе:



19


а) Принципы фон Неймана;


б) экспоненциальная форма представления числа;


в) графическое

представление разветвляющихся алгоритмов;


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


д) решение математических и физических задач;


е) разветвляющиеся вычислительные процессы.


ПРАКТИЧЕСКОЕ ЗАНЯТИЕ №11

ЦИКЛИЧЕСКИЕ ПРОЦЕСС
Ы


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

1. ЦИКЛ С ПРЕДУСЛОВИЕМ или цикл "ПОКА".

Сначала проверяется условие и тело цикла выполняется ПОКА УСЛОВИЕ
ИСТИННО,

если условие становится ЛОЖНЫМ, то происходит выход из цикла.

Реализуется этот цикл инструкцией:


WHILE


условие

DO


тело

цикла



while
-

(вайл)
-

пока, do
-

(ду)


делать

(выполнять)
.

В тело цикла входит только один оператор! Если нужно объединить в тело цикла
несколько операторов, то применяются операторные скобки
begin
-
end
.

Условие может быть простым или
сложным, если применить слова: NO, AND, OR.


ПРИМЕРЫ ПРОСТЕЙШИХ ЦИКЛИЧЕСКИХ ПРОЦЕССОВ.

Пример 1. Вывести 20 одинаковых символов на экран.


Program

Simwol
;

Uses

crt
;


var

i
,
h
,
n
:
integer
;

Begin




{Действительно ли на экране 20 символов?


clrscr;



{прон
умеруем символы:


i
:=1;
h
:=1;
n
:=20;


while i=n do


while i=n do


beg
in




begin


wr
ite('* ');



writeln(i,'
-

*

');


i:=
i+h;




i:=i+h;


end;





end;


readkey
;

End
.


Пример 2.
Вывести на экран



Пример 3. Вывести на экран

числа от 1 до 20.



числа от 20 до 1.


Program

Ch
;

Uses

crt
;





Program

Ch
;

Uses

crt
;


var

i
,
h
,
n
:
integer
;






var

i
,
h
,
n
:
integer
;



Be
gin








Begin


C
lrscr
;







clrscr;


i:=1; h:=1; n:=20;






i:=20; h:=
-
1; n:=1;



while i=n do







while i�=n do


begi
n







begin


writ
e(i,' ');






write(i,' ');


i:=i+
h;







i:=i+h;


end;








end;


readkey
;







readkey
;

End
.








End
.



ПРИЛОЖЕНИЕ К ПРАКТИЧЕСКОМУ ЗАНЯТИЮ № 11

Пример 4. Вывести на экран

числа
,

оканчивающиеся на 7 на интервале от
-
100 до
100.

Program Ch;

Uses crt;


var i,h,n: integer;

Begin


clrscr;


i:=
-
100; h:=1; n:=100;


while i=n do


begin


if i mod 10=7 then write(i,' ');


i:=i+h;


end;


readkey;

End.


нечетные
:




if odd(i) then write(i,' ');

четные
:




if not(odd(i)) then write(i,' ');

делящиеся

на

7:



if i mod 7=0 then write(i,' ')

нечетные и делящиеся на 7:

if

(
odd
(
i
))
and

(
i

mod

7=0)
then

write
(
i
,' ');


Пример5. Найти сумму ряда:
1, 2, ..20
.

Тип переменно
й
S

может быть integer, если сумма чисел не более 32767.

Program Summa;

Uses crt;


var i,n,h,s: integer;

Begin


clrscr;


i:=1; n:=20; h:=1; s:=0;


{ s:=0
-
обнуление

суммы

}


while i=n do


begin


s:=s+i;




{
процесс

суммирования

}


i
:=
i
+
h
;


end
;


write
('Сумма чисел натурального ряда от 1 до 20 равна ',s);



21


readkey
;

End.

Пример

6. Найти сумму ряда:
0.1, 0.3, 0.5, .. , 32.5


Program Summa;

Uses crt;



{ s
-

сумма

}


var x,h,n,s: real;



{ h
-

шаг

}


Begin





{
x



начальное зна
чение параметра цикла


ClrScr;




{ n
-

конечное значение параметра цикла.


s:=0; x:=0.1; h:=0.2; n:=32.5;


while (x=n) do


begin


s:=s+x;

{
-
суммирование очередного элемента 


x:=x+h;

{
-
изменение параметра ци
кла на шаг 


end;


writeln('
Сумма

ряда
: 0.1, 0.3,.., 32.5 S=',s);

readkey;

End.


ПРИЛОЖЕНИЕ К ПРАКТИЧЕСКОМУ ЗАНЯТИЮ № 11


продолжение

Пример

7. Вывести на экран таблицу функции
Ysin(х),


где х изменяется от 10 до 90 с шагом 5

градусов
.



Program Tabl;

Uses crt;


var x, h, n, y: real;


Begin


ClrScr; writeln('
Таблица

функции

y=sin(
х
)');


x:=10; h:=5; n:=90;


while x=n do


begin


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


writeln('X=',x,' Y=',y);


x:=x+h;


end;


r
eadkey;


End.


ЗАДАНИ
Я
:

1. Найти сумму ряда:
5.6, 5.9, .. ,9.7

2

2. Получить таблицу функции
ycos(5∙х)
, где х изменяется от 1 до 10 с шагом 0.5

3. Найти произведение чисел от
6.7

до
7.8

с шагом
0.4

4. Сравнить, что больше сумма ряда
8.5, 8.6,...,40.9

и
ли произведение чисел от
1

до
3

с шагом
0.25




ПРАКТИЧЕСКОЕ ЗАНЯТИЕ № 12

ЦИКЛИЧЕСКИЕ ПРОЦЕССЫ (продолжение)


2. ЦИКЛ С ПОСТУСЛОВИЕМ или ЦИКЛ "ДО"

Сначала выполняется тело цикла, затем проверяется условие. Выход из цикла

осуществляется, когда УСЛОВИЕ СТАНЕТ

ИСТИННЫМ , если условие ЛОЖНО,
то

цикл повторяется.

REPEAT



repeat
-

(рипид)
-

повторять


тело цикла


until
-

(антил)
-

ДО тех пор пока

UNIL условие
;

Проверка условия производится после выполнения тела цикла, что делает

применение цикла "ПОКА" бол
ее предпочтительным, когда требуется пропустить

цикл вообще.

Вычислить

для любого Х, с проверкой корректности ввода.



Program Func
;

Uses crt;


var x,y: real;


Begin


repeat


ClrScr;


write('X=');
read
ln
(x);


until (x�0);


y:=1/x;


writeln('x=',x,' y=',y);


readkey
;


End.



ЗАДАНИ
Я:

1. Вычислить сумму ряда:
0.6, 0.7, 0.8, 0.9
.

2. Вывести таблицу функции
y=cos(x)

,


где x изменяется в градусах от 10 до 45 с шагом 5.

3. Опр
еделить, что больше сумма ряда:
1.1 , 1.3 , ... , 93.1


или произведение:
5*7*...*11
.

4. Вычислить значение функции
y=1/(x
-
5)
, на отрезке от 0 до 10

с шагом 1 и с проверкой отсутствия деления на 0.




23

ПРАКТИЧЕСКОЕ ЗАНЯТИЕ № 13

ЦИКЛИЧЕСКИЕ ПРОЦЕССЫ (пр
одолжение)


3. ЦИКЛ С ЗАДАННЫМ ПАРАМЕТРОМ (ДЛЯ)

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


FOR <параметр цикла> : <выражение1> O <выражение2> DO <оператор>

[
DOWNTO

]


for

-

(фо)
-

для;
to

-

(ту)
-

до
; { шаг1 ;


downto
-

(даунту)
-

вниз до; { шаг
-
1 }; do
-

(ду)
-

выполнить;


параметр цикла
-

переменная любого скалярного типа, кроме вещественного


(управляющая переменная) ;


выражение1
-

скалярное выражение
-

начальное значение парам
етра цикла;


выражение2
-

скалярное выражение
-

конечное значение параметра цикла;


оператор
-

тело цикла;

Напечатать числа от 1 до 20.

Program Chisla;

Uses

crt
;


var i:integer;

{ управляющая (параметр) цикла 

Begin


clrscr
;


for

i
:=1
to

20
do

write
(
i
,' ');

{ 1
-
начальное значение параметра 

End.





{ 20
-
конечное значение параметра 

{
write
(
i
,' ')
-
тело цикла 

После каждого выполнения тела цикла параметр

i

увеличивается
на 1
.


Напечатать числа от 20 до 1.

Program

Chisla
;

U
ses

crt
;


var i:integer;

Begin


clrscr;


for i:=20 downto 1 do write(i,' ')

End.

После каждого выполнения тела цикла параметр
i

увеличивается на

-
1
.


Найти произведение чисел делящихся на 2 от 10 до 20.

Program Mult;

Uses crt;



var x:integer; P:real;

Begin


clrscr;


p:=1;

{ начальное значение произведения 


for x:=10 to 20 do


if x mod 2=0 then p:=p*x;


write('Произведение чисел, делящихся на 2 от 10 до 40 равно P',)

End.





ЗАДАНИ
Я
:

1. Вычислить сумму чисел из промежутка [1;
1000].

2. Вывести на экран 56 символов & .

3. Получить на экране значения функции YSIN X,


где x берется из промежутка [25;45] и измеряется в градусах.

4. Вывести на экран все числа, делящиеся на 13, от 1 до 100.

5. Вывести на экран все числа от 500 до

300.

6. Найти значение дроби: в числителе
-

сумма чисел от 1 до 100 делящи
хся

на 7,


а в знаменателе
-

сумм
а чисел от 100 до 500, делящихся

на 17.


ПРАКТИЧЕСКОЕ ЗАНЯТИЕ № 14

СУММА. ПРОИЗВЕДЕНИЕ. ТАБУЛИРОВАНИЕ


Рассмотрим суммирование числового ряда, если
элемент ряда является

алгебраическим выражением с помощью циклов ДЛЯ, ПОКА, ДО:

Найти сумму ряда
для
i

от 1 до 15, каждый элемент которого выражается

по формуле
, то

есть найти сумму: 6+9+14+...


Program

Summa
;

Uses

crt
;




Program

Summa
;

Uses

crt
;



var

s
,
i
,
n
:
integer
;






var

s
,
i
,
n
,
h
:
integer
;

Begin







Begin


clrscr;







clrscr;


s:=0; n:=15;







s:=0; i:=1; n:=15; h:=1;


FOR i:=1 TO n DO s:=s+(i*i+5);




WHILE i=n DO


write('
Сумма

числового

ряда

S=',s);



begin

End.








s:=s+(i*i+5);

i:=i+h;

Program Summa;

Uses crt;





end;


var s,i,n,h: integer;






write('
Сумма

ряда

S=',s);

Begin







End.


clrscr;


s:=0; i:=1; n:=15; h:=1;


REPEAT


s:=s+(i*i+5);


i:=i+h;


UNTIL� in;


write('
Сумма

числового

ряда

S=',s);

E
nd.

Найти произведение чисел ряда, каждый элемент которого определяется по формуле
(i+1)/i

и i изменяется от 1 до 20 с шагом 0.2 , т.е. найти

произведение

чисел
:
P=2*1.8333*1.714*1.625*...

Program Mult;

Uses crt;



25


var i,p,n,h: real;

Begin


clrscr;


p:=1; i:=1; n:=20; h:=0.2;


while i=n do begin p:=p*(i+1)/I; i:=i+h; end;


write('Произведение ряда чисел P',);

End.



ЗАДАНИ
Я
:

1. Найти сумму чисел ряда, каждый элемент которого определяется по


формуле (i+5)
/i и i изменяется от 1 до 20 с шагом 0.4.

2. Получить таблицу для построения графика функци
и


на отрезк
е [7;15] с шагом 0.4.


3. Найти сумму ряда чисел, каждый элемент которого определяется по


формуле (
i
+5)/(
i
*
i
) и
i
=1,2,3,4,.
.. . Суммировать до элемента равного 6E
-
3.


ПРАКТИЧЕСКОЕ ЗАНЯТИЕ № 15

ТАБУЛИРОВАНИЕ (продолжение)


Для получения качественного вывода таблицы применяется указание
ШИРИНЫ

П
ОЛЯ ВЫВОДА
, которая пишется после переменной через двоеточие.

Например,
а:5

или
в:6

.Для числа <а> выделяется поле из пяти символов.

Но следует иметь ввиду, что целые и вещественные числа при таком выводе

в таблице будут расположены нестандартно.

Для получения более качественного вывода таблицы применяют
GOTOXY(C,R)
.

C

-

номер символа в

строке, изменяется от 1 до 79 ,

{ Column }

R

-

номер строки, изменяется от 1 до 24.



{ Row }

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


Рассмотрим программу решения задания
#2 практического занятия #14.

Program Tab;

Uses crt;


var x,h,n: real; r:byte;

Begin


clrscr;


x:=7; h:=0.4; n:=15; r:=1;

{ r
-

номер

строки

}


repeat


gotoxy(1,r); write('X=',x:2,' Y=',(x*x+5*x+4)/(x
-
6));


x:=x+h; r:=r+1;







until

x

n
;

End
.

ПРИМЕЧАНИЯ:

1. Выравнивание разрядов производится
if
-
then
-
else

2. Если строк в таблице больше, чем строк на экране, то применяется поэкранный
вывод с очисткой экрана (см.
WHEREY

занятие № 17).


Встречаются таблицы
,

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

Вывести таблицу значений функции

на интервале 1,2..15.


Program

Tab
;

U
ses

crt
;



var

x
,
n
:
integer
;

Begin


clrscr
;
n
:=15;


for

x
:=1
to

n

do

if

x
=5
then

writeln
('
X
=',
x
:2,'
Y
-
не определяется')



else writeln('X=',x:2,' Y=',1/(x
-
5) );

End
.



ЗАДАНИ
Я
:

1. Получить таблицу для построения графика функции
ysin х
,

ис
пользуя


указание ширины поля вывода.

2. Получить эту же таблицу с использованием
gotoxy(c,r);

3. Вывести таблицу в центральной части экрана.


ПРАКТИЧЕСКОЕ ЗАНЯТИЕ № 16

ТАБЛИЦА ПИФАГО
РА


Если телом цикла является циклическая конструкция, то такие циклы
называют
ВЛОЖЕННЫМИ.


Program

Pifagor
;

Uses

crt
;


var

i
,
j
:
integer
;


Begin


clrscr
;


gotoxy
(20,1);
writeln
('Таблица Пифагора');



FOR I:=1 TO 9 DO


BEGIN


FOR J:=1 TO 9 DO


BEGIN



27


gotoxy(i*4,j*2);



write(i*j:4);


END;


WRITELN;


END;



for i:=1 to 41 do


begin


gotoxy(i,3);write('
-
');


if i=19 then begin


gotoxy(9,i);


write('!');



end;


end;


gotoxy
(5,22);


readkey
;


End.



ЗА
Д
АНИ
Я
:

1. Набрать программу и получить на экране таблицу.

2. Получить максимально возможную квадратную таблицу.

3. Получить максимально возможную прямоугольную таблицу.



ПРАКТИЧЕСКОЕ ЗАНЯТИЕ № 17

ПРОЦЕДУР
Ы


Программу, состоящую только из операторов
,

наз
ывают
МОНОЛИТНОЙ
.

Программу, содержащую процедуры и функции называют
МОДУЛЬНОЙ
.

ПРОЦЕДУРА

-

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

PROCEDURE

Name
;

pr
о
cedure

-

служебное слово;

BEGIN



Name
-

идентификатор отражающий смысл данной задачи;

ИНСТРУКЦИЯ


Описание процедуры само по себе никакого действия не

END;




вызывае
т.

Чтобы исполнить процедуру, необходимо в
нужном

месте программы поместить обращение к ней
,

указав Name; .


Например: Напечатать сорок любых символов.

В программе используется функция
WhereX



она определяет позицию курсора в
строке (принимает значения от

1 до 80, изменяется автоматически при выводе




информации на экран). С помощью этой функции можно проверить, где находится
курсор. Аналогичная функция
WhereY



определяет строку, в которой в данный
момент находится курсор (принимает значения от 1 до 25).
Условие (
wherex
40)
означает, что при выводе на экран еще не достигнута 40 позиция в текущей строке.


Program

Stroka
;

Uses

crt
;


{
Stroka

-

имя программы 



procedure

Str
_
Simw
;


{
Str
_
Simw

-

имя процедуры 


begin


while wherex40 do write('$');

{
-

тело

процедуры

}


writeln


end;


Begin


clrscr;


Str_Simw; Str_Simw;


{
-

вызов

процедуры

(
два

раза
)}


Readkey
;

End.



ЗАДАНИ
Я
:

1. Набрать и исполнить пример.

2. Взять любую программу суммирования числового ряда и часть программы
описать


с помощ
ью процедуры.

3. Применить процедуру Str_Simw для подчеркивания.

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

Процедуры позволяют разбить программу на законченные блоки.


ПРАКТИЧЕСКОЕ ЗАНЯТИЕ № 18

ПРОЦЕДУР
Ы (продолжение)


Переменные, описанные VAR после слова PROGRAM , называют
ГЛОБАЛЬНЫМИ.

Глобальные переменные передаются в любую часть программы, в том числе и в
процедуры.

Program

Stroka
;

Uses

crt
;


var i: integer;


{ i
-

глобальная переменная 


procedure St_Sim;


begin


for i:=1 to 40 do write('$');


writeln;



29


end;

Begin


clrscr;


St_Sim; St_Sim;

End.

Переменные , описанные в процедуре, называют
ЛОКАЛЬНЫМИ

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

не
т
.


Program

Stroka
;

Uses

crt
;


procedure

St
_
Sim
;


var

i
:
integer
;


{
i

-

локальная переменная


begin


for i:=1 to 40 do write('
-
');


end;

Begin


clrscr;


St_Sim;


Readkey
;

End
.

Нежелательно, чтобы глобальные и локальные переменные совпадали.


ЗАДАНИ
Я
:

1. Набрать и исполнить данные программы.

2. Решить задачу: Найти сумму чисел ряда 1,2,3,...,60 с использованием процедуры
нахождения суммы и процедуры подчеркивания результата. В обеих процедурах
использовать локальные переменные. Количество с
имволов в строке задать
глобальной переменной.

3. С помощью процедур получить вертикальную и горизонтальную линии. Линия
проводится многократной печатью символа. Заключить слово в рамку из
полученных линий.


ПРАКТИЧЕСКОЕ ЗАНЯТИЕ № 19

ПРОЦЕДУР
Ы (продолжени
е)


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

rocedure имя (СПИСОК ПАРАМЕТРОВ);

...

Список параметров
-

перечень имен для обозначения исходных данных и

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

называют
ФОРМАЛ
ЬНЫМИ
.

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

(выражения) и имена,

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


формальные параметры,

указанные в ее
заголовке,

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


Вывести на экран строку содержащую задаваемое с клавиатуры число
символов.

Program

Stroka
;

Uses

crt
;



var

m
:
integer
;





{
m



глобальная переменная


procedure

Str
_
Sim
(
n
:
integer
;
c
:
char
);

{
n
,
c

-

параметры
-
значения 


var i:integer;





{ i
-

локальная переменная 


begin


for

i
:=1
to

n

do

write
(
c
);




{ конструкция печати символов 


writeln
;


end;

Begin



clrscr;


Str_Sim(64,'*');




{ вызов процедуры с указанием числа звездочек
}


writeln; writeln;


write('Сколько символов напечатать? :'); read
ln
(m);


Str_Sim(m,'=');




{ вызов процедуры с указанием числа знаков ''

End.


Параметры
-
зн
ачения нельзя использовать для передачи результатов из процедуры в
основную программу ! Если возникла такая необходимость, то применяют
формальные параметры
-
переменные ,перед которыми в списке формальных
параметров стоит
var.

Program Pr1;

Uses crt;




Prog
ram Pr2;

Uses crt;



var x: integer;






var x: integer;


procedure Izm(y: integer);





procedure Izm(var y: integer);


begin







begin


y:=1







y:=1


end;








end;

Begin

Y
не

передает

ре
-



Begin

Вс
е

изменения

формальных


x:=0;

зультат из проце
-




x:=0;

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


Izm(x);

дуры в основную




Izm(x);

к фактическим.


write
(
x
) программу.





write(x)

End.







End.

Результат
: x=0
.





Результат: x1.



ЗАДАНИ
Я
:

1. Набрать и исполнить приведенные примеры.



31

2. Найти сумму чисел ряда 1,2,3,4,... от числа n до числа m. Суммирование
оформить процедурой с

параметрами. Значения n и m программа

должна
запрашивать.


ПРАКТИЧЕСКОЕ ЗАНЯТИЕ № 20

ФУНКЦИ
И


ФУНКЦИЯ

-

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

частный случай
процедур.

ОТЛИЧИ
Я

от процедур:

1. В описании указывается тип результата функции.

2. Результат выполнения функции

-

ОДНО значение.

3. Имени функции обязательно присваивается результат.

4. Результат передается в программу как значение имени этой функции.

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

Описание функции аналогично описанию п
роцедуры:


FUNCION имя ( список формальных параметров ): тип;


[var локальные переменные: тип;]


BEGIN


блок функции


END;

Допускается описание функции без параметров:


FUNCTION

имя : тип;


...

Найти сумму чисел ряда

1,2,3,... ,используя функцию.

Program

Summa
;

uses

crt
;


var

n
:
integer
;


{
n

-
глобальная переменная
}


function

Sum
(
m
:
integer
):
integer
;

{
m

-
параметр
-
значение функции


var

i
,
s
:
integer
;

{
i
,
s

-

локальные пере
менные


begin


s:=0;


for i:=1 to m do s:=s+i;


Sum:=s

{
-

присв
аивание имени функции значения
}


end
;

Begin


clrscr
;


write('До какого числа суммировать? :'); read
ln
(n);


write('Сумма чисел ряда S',Sum(n))

{
-
вызов функ
ции Sum с парам.


readkey
;

End.


ЗАДАНИ
Я
:



1. Набрать и исполнить программу.

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

чис
е
л
от
m до числа n
,

вводимых с клавиатуры.


ПРАКТИЧЕСКОЕ ЗАНЯТИЕ № 21

ФУНКЦИ
И (продолжение)


Составить программу вычислен
ия степени числа X с целым показателем n,
используя функцию без параметров.


Program Step;

uses crt;


var n:integer;


x,y:real;


function St:real;


var i: integer;


begin


y:=1;


for i:=1 to n do y:=y*x;


St:=y


end;

Begin


clrscr
;


write
('Введите число :');
read
ln
(
x
);


write
('Введите степень :');
read
ln
(
n
);


if n0 then begin n:=
-
n; x:=1/x end;


write('Число ',x,' в степени ',n,' равно ',St)


readkey
;

End.



ЗАДАНИ
Я
:

1. Набрать и исполнить программу.

2. Изменить прогр
амму,

применив функцию с параметрами.

3. Вычислить
, при Х3 ,используя функцию с параметрами.

ПРАКТИЧЕСКОЕ ЗАНЯТИЕ № 22

ПОВТОРЕНИЕ. ПОДГОТОВКА К КОНТРОЛЬНОЙ РАБОТЕ.


1. Вычислить YA+B+C , применив:


а)
-

процедуру ввода данны
х;


-

процедуру вычисления Y;


-

процедуру вывода результата;



-

глобальные переменные
;



33


б)
-

заменить глобальные переменные на формальные;


в)
-

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



ВТОРОЙ ВАРИАНТ КОНТРОЛЬН
ОЙ РАБОТЫ

Пол
учить таблицу значений аргумен
та и функции

на
интервале от
-
5 до 15 с шаг
ом 2

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


Program

Primer
;

Uses

crt
;


Function

R
(
x
:
integer
):
real
;


{
x



формальн
ая переменная


Begin


R
:=
sqrt
(
x
+8);


End
;


Procedure

Tab
;


Var

x
,
n
,
h
:
integer
;



{
x
,
n
,
h



локальные

переменн
ые
}


Begin


X:=
-
5; n:=15; h:=2;


While x=n do



Begin



Writeln(‘x’,x,’ Y’
,(r(x)+2*(r(x)
-
2))/(4*(5
-
r(x))
-
r(x)) )



X:=x+h;



End;


End;

Begin


Clrscr
;


Tab
;


Readkey
;

End
.


ПРАКТИЧЕСКОЕ ЗАНЯТИЕ № 23

П
ОВТОРЕНИЕ


Вычислить сумму четных или нечетных чисел натурального ряда до 100
,

используя
выбор из мен
ю:


1. Сумма четных чисел ряда 1,2,3,..., 100.


2. Сумма нечетных чисел ряда 1,2,3,..,100.


3. Конец работы.

Выбор осуществить с помощью if
-
then
-
else.

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

Применить
CASE

Если у
спеете, то подчеркните результат, применив процедуру подчеркивания, и
покажите результат в центральной части экрана.





35

ПРАКТИЧЕСКОЕ ЗАНЯТИЕ № 24

СИМВОЛЬНЫЕ И СТРОКОВЫЕ ФУНКЦИИ


Различают величины:


1.
Константы

-

последовательность символов в апострофах.


2.
Символьные переменные

типа
CHAR

(кэр, чар)
-

переменные принимают
значения символов: ...var a:char;...а:'м';...


3.
Строковые переменные

типа
STRING

-

цепочки символов:.var а:string;


Максимальное число символов в цепочке равно 255.

1
. LENGT
H(S)

-
(лэнкс)
-

определяет и присваивает ДЛИНУ строковой величины S

( количество символов, включая пробел ). Результат


целое число.

2.
CONCAT(S1,S2)

-
(конкат)
-

ОБЪЕДИНЕНИЕ (склеивание) символьных и
строковых

величин S1 и S2.

Конкатенация производится т
акже с помощью
знака
+

,например S:'Ва'+'ся' Результат
-

строка ‘Вася’.

3.
POS(ST,S)

-
(позишэ
н)
-

определяет и присваивает НОМЕР ПОЗИЦИИ,

с которой подстрока S входит в строку S.

Результат
-

число,

например os('о','колесо') 2.

4.
COPY(S,
P
,
D
)

-
(копи)
-

ВЫБИРАЕТ часть строковой величины S,

начиная с позиции
P
,

длиной
D

символов.

Результат
-

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

ПРИМЕРЫ:

Program

Primer
1;

Uses

crt
;



Program

Primer
2;

Uses

crt
;



var

b
:
string
;






var

a
,
b
,
c
:
string
;


y
:
integer
;





B
egin

Begin








clrscr
;


clrscr
;







a
:' погода';


b
:'информатика';





b
:' хорошая';


y
:=
length
(
b
);






c
:=
a
+
b
;


writeln
('Длина строки ',
y
);




writeln
(
c
)

End
.







End
.

Program

Primer
3;

Uses

crt
;



Program

Primer
4;

Uses

crt
;


var

a
:
string
;






var

a
,
b
:
string
;


y
:
integer
;





Begin

Begin








clrscr
;


clrscr
;







a
:'информатика';


a
:'информатика
';





b
:=
copy
(
a
,3,5);


writeln(a);







writeln(a);


y:=pos('
р
',a);






writeln(b) {
фор
ма

}


writeln('
р

на

',y,'
месте
');




End.

End.





ЗАДАНИ
Я
:

1. Набрать и запустить данные программы.

2. Определить число символов в предложении: 22 сентября
-

день осеннего
равноденствия. Вырезать слово 'день' и присвоить его переменной b.

Вывести
предложение и это слово на экран.


ПРАКТИЧЕСКОЕ ЗАНЯТИЕ № 25

СИМВОЛЬНЫЕ И СТРОКОВЫЕ ФУНКЦИИ (продолжение)


CHR(X)

-
(си эйч а)
-

ПРИСВАИВАЕТ
СИМВОЛ

соответствующий коду X.

CHR(65) соответствует лат
инской

заглавной букве А.

ORD(S)

-
(ода)
-
ПРИСВАИВАЕТ

НОМЕР

символа из упорядоченной
последовательности символов (см. ASCII)
, например:
ORD
(‘
B
’)66
.


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

1.
,POS,NUM)
-
(дилит)
-

УДАЛЯЕТ из с
троки S

участок, содержащий
NUM символов с позиции POS.

2.
INSERT(OBJ,
S
,POS)

-
(
инсет)
-

ВСТАВИТЬ строку OBJ (переменну
ю или
константу) в строку
S
(переменная) с позиции POS (целое).


ПРОЦЕДУРЫ ПРЕОБРАЗОВАНИЯ ТИПОВ:

3.
STR(VALUE,ST)

-
(стр)
-

ПРЕОБРАЗУЕТ числовое значение в СТРОКУ символов
и запоминает результат в строке S.

4.
VAL(ST,V
AR,CODE)

-
(вэл)
-

ПРЕОБРАЗУЕТ строковую величину S в
ЧИСЛОВУЮ величину (в зависимости от VAR). CODE
-

целая величина. Code0
,если нет ошибки, иначе Code равно Pos ошибочного символа, начиная с апострофа.


Program Primer5;

Uses crt;



Program Primer6;

Use
s crt;


var a: string;







var a: string;

Begin







Begin


clrscr;







clrscr;


a
:='
Информатика
';





a:='
Инка
';


writeln(a);







writeln(a);


delete(a,3,7);






insert('
формати
',a,3);


writeln(a);







writeln(a)

End.







End.

Program Primer7;

Uses crt;



Program Primer8;

Uses crt;


var a,b: string;






var a: string;


c: integer;






r,x,y: integer;

Begin







Begin


clrscr;







clrscr;


c:=100;







a:='100
лет
';


a:='
Цена

руб
.';






val(
a,x,r);



37


str(c:4,b);







y:=5*x;


insert(b,a,5);






write('Y=',y);


writeln
(a);







readkey;

End.







End.



ЗАДАНИ
Я
:

1. Исполнить пример 5, затем используя delete, получить слова: "фомка" или
"нотка".

2. Набрать и исполнить пример 6,
затем используя delete, получить из слова
"информатика" слово "математика".

3. Исполнить пример 7, затем получить фразу "Цена 10000 руб.". Для нахождения
места вставки числа применить os.

4. Исполнить пример 8, затем используя str и конкатенацию, получить

фразу "2000
лет".

ПРАКТИЧЕСКОЕ ЗАНЯТИЕ № 26

ОБРАБОТКА СИМВОЛЬНЫХ И СТРОКОВЫХ ВЕЛИЧИН 1


Изменить цену товара, применив: coy, delete, val, str, insert.

Program

Primer
9;

uses

crt
;


var

a
,
b
:
string
;


x
,
y
,
p
,
r
:
integer
;

Begin


clrscr;


a:'Цена тов
ара 100 руб.';

{начальная фраза
}


p:=pos('1',a);



{позиция цифры 1
}


b
:=copy(a,p,3);


{ вырезка числа 100
}


delete(a,p,3);



{
удаление числа 100 из фразы
}


val(b,x,r);




{
преобразование '100' в
число 100
}


y:=2*x;



{изменение числа 100
}


str(y:4,b
);



{
преоб
разование 200 в константу '200'
}


insert(b,a,p);



{
вставка

'200' }


writeln(a);



{печать полученной фразы
}


readkey
;

End.


ЗАДАНИ
Я
:

1. Набрать и исполнить программу.

2. Уменьшить начальную цену до 1 и получить 2000.

3. Из фразы "Сашеньке
вчера исполняется 120 лет" получить фразу

"Саше завтра
исполняется 12 лет", используя процедуры и функции.







39

ПРАКТИЧЕСКОЕ ЗАНЯТИЕ № 27

ОБРАБОТКА СИМВОЛЬНЫХ И СТРОКОВЫХ ВЕЛИЧИН 2


ЗАГАДК
А

Задать пользователю загадку и похвалить его за правильный ответ.

Prog
ram Primer10;

uses crt;


var otg,name,a: string;

Begin


clrscr
;


write
('Здравствуйте. Как Вас зовут ?
'); readln(name);


clrscr;

writeln;


writeln(name,',
отгадайте

загадку
: ');


a:'Висит груша,нельзя скушать.';


repeat


write
(
a
,' Отгадка: ');
r
eadln
(
otg
);
clrscr
;

{только
READLN
}


until

(
otg
'лампа')
or

(
otg
'лампочка');


writeln;


writeln;


writeln('
Молодец
, ',name,' !
До свидания !');


readkey
;

End.


ЗАДАНИ
Я
:

1. Набрать и исполнить программу.

2. Ввести свою загадку и ответ. Предусмотреть
различные способы ввода отгадки.

3. "Спрятать" в программе отгадку и вызывать ее с помощью строковых процедур и
функций.

4. Установить пароль для защиты текста от неразрешённого доступа.


ПРАКТИЧЕСКОЕ ЗАНЯТИЕ № 28

ОБРАБОТКА СИМВОЛЬНЫХ И СТРОКОВЫХ ВЕЛИЧИН 3


Получить перевертыш: ОГОРОД
-

ДОРОГО.

Program

Primer
11;

uses

crt
;


var a: string;


i,l: integer;

Begin


clrscr;


write('
Введите

слово

:'); read
ln
(a);


clrscr;





{

for i:=length(a)
down
to 1 do write(a[i]); }


writeln(a);


l:=length(a);


fo
r i:=l downto 1 do writeln(copy(a,i,1));


readkey
;



End.


Очень давно слово "АБРАКАДАБРА" записывали определенным образом на
ткани

и это заклинание носили в виде шарфика вокруг шеи. Считалось, что закл
инание
защищает от малярии и других

болезней. Получить
эту запись в виде треугольника.


Program Primer12;

uses

crt
;


Программу можно написать


var a: string;




и другими способами.


i
,
k
:
integer
;

Begin






Можете подумать на досуге.


clrscr;


a:='a b r a k a d a b r a';


k:=0;


for i:=1 to 11 do


begin


gotoxy(30+i,9+i);


-
k,2);


write(a);k:=k+2


end
;


readkey
;

End.


ЗАДАНИ
Я
:

1. Набрать и исполнить программы. Разобраться в работе программ.

2. Ввести слово произвольной длины и напечатать его в виде


т
реугольника: 1)Л 2) ЛИПА 3) ЛИПА 4) ЛИПКА


ЛИ ЛИП ИПА ИПК


ЛИП ЛИ ПА П


ЛИПА Л А



ПРАКТИЧЕСКОЕ З
АНЯТИЕ № 29

ОБРАБОТКА СИМВОЛЬНЫХ ВЕЛИЧИН 4


Задача: Ввести с клавиатуры предложение.


1. Подсчитать в нем количество всех символов.


2. Подсчитать количество букв "а".


3. Заменить запятые пробелами.


4. Осуществить движение первых двух символов вн
из.


Program Simwol;

Uses

crt
;


var a,



{начальное предложение
}


b,



{
промежуточная переменная
}



41


c: string;


{
конечное предложение


i,



{переменная цикла

}


k,



{счетчик символов "а"


l: integer;

{
счетчик символов

Begin


clrscr
;


write
('Введите предложение :');
read
ln
(
a
);


l
:=
length
(
a
);


writeln('В предложении содержится ',l,' символов');


k:=0; b:=''; c:='';


for i:=1 to l do begin b:=copy(a,i,1); if b='a' then k:=k+1 end;


writeln('В предложении содержитс
я ',k,' символов "a");


for i:=1 to l do


begin


b:=copy(a,i,1);


i�f b',' then c:=c+b else c:=c+' '


end;


delay(6000);





{
временная задержка вывода (пауза)


clrscr; write(c);


b:=copy(c,1,2);


for i:=2 to 22 do


begin



gotoxy(1,i); write(b); delay(500);

{
печать

двух

символов

}


gotoxy
(1,
i
);
write
(' ')



{стирание этих символов
}


end
;
readkey
;

End.


ЗАДАНИ
Я
:

1. Набрать и исполнить программу.

2. Разобраться в работе программы.

3. Заменить движение первых дву
х символов на движение слова.

4. Заменить движение слова по вертикали на движение по наклонной.

5. Заменить движение слова на перемещение букв этого слова по одной.

МАССИВ
Ы

ПОСТАНОВКА ЗАДАЧИ
-

существует большое число задач, требующих много

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

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

РЕШЕНИЕ ЗАДАЧИ
-

введем новое понятие
-

мас
сив.

МАССИВ
-

это упорядоченный

по номерам
набор

значений, объединенных
общим

типом и именем.

Упорядоченность в том, что элементы массива
располагаются в последовательных, пронумерованных ячейках памяти. Массив


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

Элементы массива
-

это переменные с индексами. Индексы можно вычислять.

ОПРЕДЕЛЕНИЕ МАССИВА
-

массивы, как и простые переменные, подлежат
описанию в разделе переменных:


VAR <имя>: ARRAY[с>] OF <тип элементов>;

array (эррэй)
-

массив. of (оф)
-

из.

Тип индексов
-

любой скалярный тип кроме real. Индексы можно вычислять.

Тип элементов
-

любой для данной версии языка.

[min..max]
-

размер массива. min
-

нижняя, max

верхняя границы индекс
ов.
min=max.

Границы можно задать с помощью переменных.


Можно задавать постоянный массив:

const x: array [1..10] of integer=(4,6,3,5,2,1,7,8,9,13);

const x: array [1..8] of char=('a','b','c','d','e','f','g','h');


Элементы таких массивов являются к
онстантами.

Если массивы одинаковы и отличаются лишь именами
,

то их можно описать в одной
строке:


var a,b,c :array[1..n] of real;

, где n
-
верхняя граница индекса и n описывается в
разделе констант.

ВИДЫ МАССИВОВ:

Одномерные

-

ряд элементов. B[5]
-

5
-
ы
й элемент массива.

Двумерные

-

таблицы. B[3,5]
-

элемент таблицы B ,стоящий в 3 строке и в 5
столбце.

Многомерные
-

ряд таблиц (изучаются в Вузе).


ЗАПОЛНЕНИЕ МАССИВА:


1. С помощью CONS.


2. С помощью READ и циклической конструкции.


3. Часто требу
ется обнуление ячеек массива.
For

I
:=1
to

n

do

A
[
I
]:=0;


4. Для отладки программ и для программирования игр, тестов применяют
заполнение массива случайными числами
.
randomize
;

For

I
:=1
to

n

do

A
[
I
]:=
random
(
q
-
p
+1)+
p
;
q
²
p


5. Присваивание значений.
A
[1]:=7
;
A
[2]:=77;
A
[3:33; и т. д.


ПРАКТИЧЕСКОЕ ЗАНЯТИЕ № 30

ЗАПОЛНЕНИЕ И ВЫВОД МАССИВОВ


Заполнить и вывести на экран одномерный массив целых чисел.

Program Primer1;

uses crt;


var a: array[1..5] of integer;


i: integer;

Begin


clrscr;


{*******
за
полнение

массива

c
клавиатуры

*******}


for i:=1 to 5 do


begin



43


write('a[',i,']='); read
ln
(a[i]);


end;


clrscr;


{***** вывод массива на экран *****


Write(‘
Массив

А
: ’);

for i:=1 to 5 do write(
a[i]
,’ ‘
);


readkey
;

End.



ЗАДАНИ
Я
:

1.
Набрать и исполнить программу.

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

3. Описать размерность массива с помощью переменных.

4. Оформить программу с помощью процедуры ввода массива и процедуры вывода
массива на экран.

5. Заполнить массив нулями.


ПРАКТИЧЕСКОЕ

ЗАНЯТИЕ № 31

ЗАПОЛНЕНИЕ И ВЫВОД МАССИВОВ (продолжение)


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

Program Primer2;

uses crt;


const a: array[1..5] of char=('a','b','c','d','e');



procedure Print(n: integer);


var i: integer;


begin



for i:=1 to n do write (a[i]:2)


end;

Begin


clrscr;


write('
Массив

А
: '); Print(5);


readkey
;

End
.


ЗАДАНИ
Я
:

1. Набрать и исполнить программу.

2. Вывести на экран первые 3 буквы.

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

3. Запол
нить массив дробными и отрицательными значениями.



4. Заполнить и вывести на экран одномерный массив, содержащий 200 одинаковых
элементов.

5. Вывести элементы построчно ( используйте
wherex
,
см. практическое занятие 17

).

6. Вывести элементы в указанной с к
лавиатуры строке экрана
.


ПРАКТИЧЕСКОЕ ЗАНЯТИЕ № 32

ОБРАБОТКА ОДНОМЕРНЫХ ЧИСЛОВЫХ МАССИВОВ.

СУММИРОВАНИЕ ЭЛЕМЕНТОВ МАССИВА


ПОСТАНОВКА ЗАДАЧИ:

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

Найти среднее арифметическое.

Program

Summa
;

uses

crt
;


const

n
=5;


var

a
:
array
[1..
n
]
of

integer
;


m
,
i
,
s
:
integer
;





Автоматическое заполнение








случайными числами от1 до20


procedure Input;





Procedure Input;


begin







begin


for i:=1 to n do






p:=1; q:=20; randomize;


begin







fo
r i:=1 to n do a[i]:=
random
(q
-
p+1)+p;


write('a[',i,']='); read
ln
(a[i]);




end;


end


end;


procedure Print;


begin


write('
Массив

целых

чисел

А
: ');


for i:=1 to n do write(' ',a[i])


writeln; writeln;


{
пропуск

строки
}


end;


procedure Sum( m: integer);


begin


s:=0;


for i:=1 to m do s:=s+a[i];


end
;

Begin


ClrScr
;


Input
;




{
заполнение
массива из 5 элементов
}


ClrScr;


Print;




{
печать заполненного массива
}


write('Сколько элементов суммировать: '); read
ln
(m);



Sum(m); writeln;


{
с
уммирование m элементов массива
}


writeln('Сумма ',m,' элементов массива равна: ', s);





{ сумм
ирование всех элементов массива
}


Sum
(
n
);
writeln
;


writeln('Сумма всех ',
n
,' элементов массива равна: ', s);



45


Write ('Среднее ари
фметическое всех элементов равно ', s/n);


Readkey
;

End.


ЗАДАНИ
Я
:

1. Набрать и исполнить программу.

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

3. Найти сумму 8 элементов массива.

4. Осуществить ввод количества элементов массива с клавиатуры.


ПРАКТИЧЕСКОЕ ЗА
НЯТИЕ № 33

ОБРАБОТКА ОДНОМЕРНЫХ ЧИСЛОВЫХ МАССИВОВ

СУММА ЭЛЕМЕНТОВ МАССИВА ПО УСЛОВИЮ


ПОСТАНОВКА ЗАДАЧИ: Заполнить и вывести массив на экран.


Ввести условие суммирования ( а[i]

Найти сумму и вывести на экран резул
ьтат.

Program SumUsl;

uses crt;


const a: array[1..10] of integer=(3,5,2,1,6,3,8,7,5,9);


var i, s, u: integer;


procedure Su;


begin


s:=0;


for i:=1 to 10 do if a[i]u then s:=s+a[i]


write('Сумма элементов меньших ',u,' равна ',s);


end;

Begin


ClrScr;



Print; {
смотри

занятие

32 }


writeln; writeln;


write('
Введите

условие

суммирования

: '); read
ln
(u);


Su;


Readkey
;

End.


ЗАДАНИ
Я
:

1. Изменить условие суммирования.

2. Написать процедуру Inut.

3. Найти произведение э
лементов по условию.




ПРАКТИЧЕСКОЕ ЗАНЯТИЕ № 34

ОБРАБОТКА ОДНОМЕРНЫХ МАССИВОВ

ОПРЕДЕЛЕНИЕ ЧИСЛА ЭЛЕМЕНТОВ МАССИВА ПО УСЛОВИЮ


ПОСТАНОВКА ЗАДАЧИ:

Заполнить массив и вывести его на экран.

Ввести с клавиатуры условие.

Подсчитать количество элементов удовлетво
ряющих условию.

Program KolUsl;

uses crt;


const m=1; { min
индекс

}

n=10; { max
индекс

}


var i, k, usl: integer;


a: array[m..n] of integer;



... {
процеду
ры

Input
и

Print
см
.
занятие

32
}


procedure Kol_po_Usl;


begin


write('
Введите

ограничение

:'); read
ln
(usl);


k:=0;


for i:=m to n do if a[i�]usl then k:=k+1


write('Кoличество элементов больших ',usl, ' равно ', k);


end;

Begin


ClrScr;


Input;


ClrScr;


Print;


writeln; writeln;


Kol_po_Usl;


Rea
dkey;

End.



47


З
АДАНИЯ
:

1. Самостоятельно написать процедуры Inut, Print и исполнить программу.

2. Изменить условие подсчета элементов.

3. Подсчитать сумму элементов по условию.


ПРАКТИЧЕСКОЕ ЗАНЯТИЕ № 35

ОБРАБОТКА ОДНОМЕРНЫХ ЧИСЛОВЫХ МАССИВОВ

СУММА ДВУХ О
ДИНАКОВЫХ ПО РАЗМЕРУ МАССИВОВ


В языке Pascal программист может описывать свои собственные типы и объекты,
относящиеся к этому типу.

Тип массив относится к
структурированным

типам.

Описание типа помещают в раздел определения типов после раздела описания
ко
нстант и до раздела описания переменных (var).

Например
:
TYPE massiv=array[1..100] of integer;

var

a
,
b
,
c
:
massiv
;

Описание типа позволяет применить формальный параметр типа
massiv
.


ПОСТАНОВКА ЗАДАЧИ:

Заполнить и вывести на экран два одинаковых по р
азмеру массива: А и B.

Найти массив C ,каждый элемент которого равен сумме

соответствующих элементов массивов А и В: C[i]A[i]+B[i].

Program Summa_Mass;

uses crt;


Type mas= array[1..100] of integer;


var a, b, c: mas;


I, n: integer;


procedure Input(var x: mas);


begin


for i:=1 to n do begin write('
Элемент

[',i,']='); read
ln
(x[i]); end


end;


procedure Print(x: mas); begin for i:=1 to n do write(' ',x[i]); end;


procedure SumMass; begin for i:=1 to n do c[i]:=a[i]+b[i]; end
;

Begin


ClrScr; n:=20;


writeln('
Вв
o
д

массива

А
:); Input(a);


writeln
('Ввод массива В:);
Input
(
b
);


ClrScr;


write(' A: '); Print(a);


write(' B: '); Print(b);


SumMass;


write(' C: '); Print(c);


readkey
;

End.




ЗАД
АНИЯ
:

1. Набрат
ь и исполнить программу.

2. Найти сумму элементов, стоящих на четных местах в массиве С.

3. Найти сумму четных элементов в массиве С.


ПРАКТИЧЕСКОЕ ЗАНЯТИЕ № 36

ОБРАБОТКА ОДНОМЕРНЫХ МАССИВОВ

ОБЪЕДИНЕНИЕ ДВУХ МАССИВОВ С ЧЕРЕДОВАНИЕМ ЭЛЕМЕНТОВ


ПОСТАНОВКА ЗА
ДАЧИ:


Объединить два массива A и B ,содержащих по
N

элементов в один массив c,
который будет содержать 2*N элементов, т.е. получить массив
C(а1,b1,a2,b2,..,an,bn).

Program Ob_Mass;

uses crt;


type massiv=array[1..20] of integer;


var a,b,c: massiv;



I, n: integer;


procedure Input(var x: massiv; n: integer);


begin


for i:=1 to n do


begin


write('
Элемент

[',i,']='); read
ln
(x[i]);


end


end;


procedure Print(x: massiv; n: integer);


...



procedure Ob(n: integer);


b
egin


for i:=1 to n do


begin


c[2*i
-
1]:=a[i];


c[2*i]:=b[i]


end


end;

Begin


ClrScr; n:=10;


Input(a,n); writeln;


Input(b,n);


ClrScr;


write('
Массив

А
: '); Print(a, n); writeln;


write('
Массив

B: '); Print(b, n); write
ln;



49


Ob(n);


write('
Массив

C: '); Print(c, 2*n);


readkey
;

End.


ЗАД
АНИЯ
:

1. Набрать и исполнить программу.

2. Изменить количество элементов в массивов.

3. Объединить массивы так, чтобы элементы одного массива следовали


за элементами другого: c(а1,
а2,а3,..,аn,b1,b2,b3,..,bn).


ПРАКТИЧЕСКОЕ ЗАНЯТИЕ № 37

ОБРАБОТКА ОДНОМЕРНЫХ МАССИВОВ

ИНВЕРТИРОВАНИЕ МАССИВА


ПОСТАНОВКА ЗАДАЧИ:


Требуется изменить порядок следования элементов массива C, состоящего из
n элементов, на обратный, используя вспомогательную п
еременную .

Исходный массив C: 1 2 3 4 5

Конечный массив C: 5 4 3 2 1

Перестановка производится по одному элементу через промежуточную
переменную:

1) 1
-
ый элемент передается в ячейку ;

2) последний элемент ставится на место 1
-
го;

3) элемент из ячейки  с
тавится на последнее место.

Количество таких перестановок равно trunc(n/2)

или (
n

div

2)


деление
нацело
.

Program Inwert;

uses

crt
;


{
описание переменных и массива
}



писание процедуры ввода массива
}


{оп
исание процедуры вывода массива
}


procedure

In
w
;


var

m
:
integer
;
p
:
real
;


begin


m:=trunc(n/2);


{определение числа циклов


for i:=1 to m do


begin


p:=c[i];



{
перестановка i элемента в 
}


c[i]:=c[n
-
i+1];


{переста
новка на i место элемента n
-
i+1
}


c[n
-
i+1]:=p;


{
перестанов
ка элемента из  нa n
-
i+1 место
}


end


end;

Begin




ClrScr; n:=20;


Input;


ClrScr;


Print; writeln;


Inw;


Print; writeln;


Inw;


Print; writeln;


Readkey;

End.


ЗАДАНИ
Я
:

1. Набрать и исполнить программу.

2. Увеличить число э
лементов.

3. Заменить числовой массив на символьный.


Получить из слова ГОРОД слово ДОРОГ и другие перевертыши.

4. Произвести инвертирование с сохранением исходного массива.


Подсказка: используйте новый массив.


ПРАКТИЧЕСКОЕ ЗАНЯТИЕ № 38

ОБРАБОТКА ОДН
ОМЕРНЫХ МАССИВОВ

ФОРМИРОВАНИЕ МАССИВА ИЗ ЭЛЕМЕНТОВ ДРУГОГО

МАССИВА УДОВЛЕТВОРЯЮЩИХ ЗАДАННОМУ УСЛОВИЮ


ПОСТАНОВКА ЗАДАЧИ:

Требуется из данного массива А, состоящего из N
элементов, выбрать элементы, удовлетворяющие заданному ( пусть А(i)> ), и
сформировать

из них массив B.

Исходный массив А: 4 6 8 2 23 1 9 Условие: A(i)>8

Новый массив B: 8 23 9

Особенность решения: Индексы элементов массивов A и B не совпадают,


так как не все элементы массива A включаются в массив B.


Введем перем
енную, формирующую индексы и являющуюся счетчиком


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

Program

Massiv
_
po
_
Uslowiu
;

Uses

crt
;


. . .


procedure

Mass
_
Usl
;


begin


write
('Введите параметр условия: ');
read
ln
(
t
);


k
:=0;


{
k
-

счетчик найденых элементов

}


for i:=1 to n do if a[i�]=t then begin k:=k+1; b[k]:=a[i]; end;


end
;

Begin


ClrScr
;
n
:=20;



51


Input;



{
заполнение исходного массива
A
}


ClrScr;


Print(а, n); writeln;

{
печать
исходного массива A
}


Mass_Usl;



{формирование массива по условию
}


Print(b, k); writeln;

{
вывод на эк
ран нового массива B
}


Readkey
;

End.


ЗАДА
Н
И
Я
:

1. Набрать и исполнить программу.

2. Изменить условие.

3. Вывести на экран сообщение о количестве найденных элементов.

4. Найти среднее арифметическое элементов нового ма
ссива.




ПРАКТИЧЕСКОЕ ЗАНЯТИЕ № 39

ОБРАБОТКА ОДНОМЕРНЫХ МАССИВОВ

ПОИСК МАКСИМАЛЬНОГО ЭЛЕМЕНТА В МАССИВЕ

С ЗАПОМИНАНИЕМ ЕГО ПОЛОЖЕНИЯ (ИНДЕКСА)


ПОСТАНОВКА ЗАДАЧИ:

Найти в массиве A, состоящем из n элементов,
наибольший

элемент и запомнить его индекс (K).


Program

MaxElMassiva
;

uses

crt
;


{описание массива и перемен
ных
}


{процедура ввода массива
}



{процедура вывода массива
}



procedure MaxEl;


begin


max:=a[1]; k:=1;


for i:=1 to n do if maxa[i] then begin max:=a[i]; k:=
i
; end;


writeln('Ма
ксимальный элемент массива А равен ',max);


writeln('Максимальный элемент массива стоит на ' ,k, ' месте);


end;

Begin


ClrScr; n:=20;


Input;


ClrScr;


Print; writeln;


MaxEl;




Readkey
;
;

End
.


ЗАДАНИ
Я
:

1. Набрать и исполнить программу.

2. Найти

минимальный элемент и его индекс.

3. Найти минимальный и максимальный элементы, и их индексы.

4. Заменить найденный минимальный элемент числом 100 и показать

на экране
массив с этой заменой.



ПРАКТИЧЕСКОЕ ЗАНЯТИЕ № 40

ОБРАБОТКА ОДНОМЕРНЫХ МАССИВОВ

ПОИСК
ЗАДАННОГО ЭЛЕМЕНТА В МАССИВЕ


ПОСТАНОВКА ЗАДАЧИ
: Определить, есть ли в заданном массиве элемент
равный L.

Имеется массив А: 3 1 2 5 3 4 8 L5

В массиве А имеется элемент равный 5



В данной программе можно использовать "флажок"
-

специальную перемен
ную,
которая принимает значения "истина" или "ложь" в зависимости от того найден
элемент или нет.


Program Poisk_El_Massiva;

uses crt;


. . .


procedure Poisk(L: integer);


var fl: boolean;


begin


fl:=false;


for i:=1 to n do if a[i]=L then fl
:=true;


if fl then write(' Элемент равный ',L,' имеется ')


else write(' Элемент равный ',L,' отсутствует');


end;

Begin


ClrScr; n:=20;


Input;


ClrScr;


Print; writeln; writeln;


write('
Введите

значение

искомого

элемента
: ');
read
ln
(L);


Poisk(L);


Readkey;
End.



53


ЗАДАНИ
Я
:

1. Набрать и исполнить программу, т. е. найти 3
-
4 элемента.

2. Если в массиве несколько одинаковых элементов, то найти первый из них и
указать его индекс.

3. Подсчитать количество одинаковых элементов в мас
сиве.


ПРАКТИЧЕСКОЕ ЗАНЯТИЕ № 41

ОБРАБОТКА ОДНОМЕРНЫХ МАССИВОВ

УПОРЯДОЧЕНИЕ МАССИВА


ПОСТАНОВКА ЗАДАЧИ:

Расположить элементы массива в порядке возрастания.

Из множества сортировок рассмотрим поиск MIN и перестановку.

Исходный массив: 3 2
-
5 2 0 8 4

Конечн
ый массив:
-
5 0 2 2 3 4 8

Program

SortirowkaMassiva
;

uses

crt
;


. . .


procedure

Sort
;


var

min
:
real
;


begin


for

i
:=1
to

n

do


begin


min
:=
a
[
i
];
k
:=
i
;


for

j
:=
i

to

n

do


if a[j]min then begin min:=a[j]; k:=j; end;



a[k]:=a[i];


a[i]:=min


end


end;

Begin


ClrScr;


Input;


ClrScr;


write('
Исходный

массив
: '); Print; writeln;


Sort
;


write
('Конечный массив: ');
Print
;


readkey
;

End.




З
АДАНИЯ
:

1. Набрать и исполнить программу.

2. Отсортироват
ь исходный массив по убыванию элементов.

3. Отсортировать исходный массив по возрастанию и убыванию элементов.

4. Отсортировать массив латинских букв.


ПРАКТИЧЕСКОЕ ЗАНЯТИЕ № 42

ОБРАБОТКА МАТРИЦ

ВВОД И ВЫВОД МАТРИЦ



В Паскале двумерные массивы
называют
матриц
ами
.


TYPE MATRICA
=ARRAY[1..N,1..M] OF REAL;

-

определение

типа


двумерного массива, где N
-
число строк, М
-

столбцов.

ПОСТАНОВКА ЗАДАЧИ: Заполнить
матрицу

и вывести ее на экран.

Заполнение матрицы может производиться также

как и о
дномерного массива,
только с помощью вложенных циклов.

Program Wwod_Wywod_Mat;

uses crt;


const n=3;


var a: array[1..n,1..n] of integer;


i
,
j
:
integer
;

Begin

{ ввод матрицы по строкам 


ClrScr;


for i:=1 to n do


for j:=1 to n d
o


begin


write('a[',i,',',j,']=');read
ln
(a[i,j])


end;


{ вывод матрицы по строкам



вывод в указанном месте
}


for i:=1 to n do






for i:=1 to n do


begin








begin


for j:=1 to n do write(a[i,j],' ');





gotoxy(10,5+i);


writeln

{
перевод

курсора

на

новую

строку

}


for j:=1 to n do

write(a[i,j]:3);


end
;









end;


readkey;







readkey;

End.








End
.


Можно задать постоянную матрицу:


const a: array[1..3,1..3] o
f integer=((1,2,3),


(4,5,6),


(7,8,9));



55


ЗАД
АНИЯ
:

1. Набрать и исполнить программу.

2. Описать процедуры ввода и вывода матриц.

3. Задать постоянную матрицу.

4. Вывести на экран матрицу по столбцам.

5. Вывести матрицу в указанное место экрана.




П
РАКТИЧЕСКОЕ ЗАНЯТИЕ № 43

ОБРАБОТКА МАТРИЦ

1. СУММА ЭЛЕМЕНТОВ МАТРИЦЫ

ПОСТАНОВКА ЗАДАЧИ
: Для двумерного массива B размером N х M необходимо

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


Program Summa_Mat;

uses crt;


. . .


procedure Sum;


begin


s:=0;


for i:=1 to n do


for j:=1 to m do


s:=s+b[i,j]


end;

Begin


ClrScr;


Input_Mat;

{
если

массив

вводится

с

клавиатуры

}


ClrScr;


Print_Mat; writeln;


Sum;


write('
Сумма

элементов

матрицы

равна

',s);


readkey
;

End.





ЗАДАНИ
Я
:

1. Набр
ать и исполнить программу.

2. Ввести дробные и отрицательные числа.



ПРАКТИЧЕСКОЕ ЗАНЯТИЕ № 44

ОБРАБОТК МАТРИЦ

2. ВЫЧИСЛЕНИЕ СЛЕДА МАТРИЦЫ

СЛЕД МАТРИЦЫ

-

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

ПОСТАНОВКА ЗАДАЧИ
: Для матрицы В размером N х N надо в
ычислить

сумму диагональных элементов B[i,i].


. . .


procedure

Sled
_
Mat
;

{ главная диагональ 


begin


s:=0;


for i:=1 to n do s:=s+b[i,i]


end;


. . .

3. ВЫЧИСЛЕНИЕ СУММЫ ЭЛЕМЕНТОВ СТРОК МАТРИЦЫ

ПОСТАНОВКА ЗАДАЧИ
: Вычислить сум
му элементов каждой строки матрицы В

размером N х M. Результат получить в виде вектора D.


. . .


p
rocedure Sum_Strok_Mat;


begin


for i:=1 to n do


begin


s:=0;


for j:=1 to m do


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


d
[i]:=s


end


end;


. . .


. . .


З
АДАНИЯ
:

1. Набрать и исполнить программу.

2. Получить сумму элементов побочной диагонали.

3. Напечатать вектор суммы строк вертикально справа от матрицы.

4. Получить вектор суммы столбцов матрицы.





57

ПРИЛО
ЖЕНИЕ

ПРОЦЕДУРЫ ОБРАБОТКИ МАТРИЦ:

Сумма указанной строки:

S:=0; i:=3;

For J:=1 to m do S:=S+b[i,j];

Транспонирование квадратной матрицы:

For

i
:=1
to

n
-
1
do


For j:=1 to n do


Begin


P:= a[
i
,j];


a
[
i
,j]
:=a[j,i];


a[j,i]:=
p;


end;

Удаление

строки

из

матрицы
:

n:=n
-
1;

For i:=1 to n do


For

j
:=1
to

m

do

b
[
i
,
j
]:=
b
[
i
+1,
j
];

Включение строки в матицу:

i:=n;

whil�e i=
k

do


begin


for j:=1 to
m

do
b
[
i+1,j
]:=
b
[
i,j
];


i:=i
-
1;


end;

for j:=1 to m do b[k,j]:=c[j];

n
:=
n
+1;

Перестановка строк матрицы:

For k:=1 to k do c[
k
]:=
a
[
i,k
];

For k:=1 to k do a[
i,k
]:=
a
[
j,k
];

For k:=1 to k do a[
j,k
]:=
c
[
k
];

Поиск минимального элемента матрицы:

Min
:=
a
[1,1];
k
;=1;
L
:=1;

For i:=1 to n do


For j:=1 to m do


IF min�a[i,j] then

begin min:=a[i,j]; k:=i; l:=j; end;

Сложение строк матрицы:

For

j
:=1
to

m

do


a[k,j]:=a[k,j]+a[l,j]*b;




З
АДАНИЯ
:

1.

Изменить значения указанной строки.

2.

Найти минимальные значения в каждой строке.

3.

Найти максимальные значения в каждом столбце.


ПРАКТИЧЕСК
ОЕ ЗАНЯТИЕ № 45

ПОДГОТОВКА К КОНТРОЛЬНОЙ РАБОТЕ


ПОСТАНОВКА ЗАДАЧИ:

1. ПОВТОРИТЬ ТЕМУ "
МАССИВЫ (
ВЕКТОР
А

И МАТРИЦЫ

)
"
.

2. В КОНТРОЛЬНОЙ РАБОТЕ 2 ЗАДАНИЯ:

ОБРАБОТКА ОДНОМЕРНОГО МАССИВА (ВЕКТОРА);

а) 1
-
я обработка; б) 2
-
я обработка.

3. ПРОГРАММА

ДОЛЖНА ИМ
ЕТЬ БЛОЧНУЮ СТРУКТУРУ
.


ПРИМЕР ЗАДАНИЯ
:

Заполнить

одномерный числовой массив и
выбрать

из него
отрицательные элементы.
Найти

среднее арифметическое отрицательных элементов
массива. Отрицательные элементы
отсортировать

по возрастанию.


ПРИМЕР РЕШЕНИЯ:


Pro
gram

Vektor
;

uses

crt
;


type mas=array[1..40] of integer;


var i, k, s, n, p, q: integer;


a, d: mas;

procedure Input;

begin

randomize; p:=
-
10; q:=10; for i:=1 to n do a[i]:=random(q
-
p+1)+p;

end;

procedure Print (y: mas; x: integer);

begin

for i:=1 to x do write(y[i],' '); writeln;
writeln;

end;

procedure Vybor;

begin

k:=0; for
i
:=1 to n do if a[
i
]0 then begin k:=k+1; d[k]:=a[
i
]; end;

end;

function Sredn_Arifm: real;

begin


s:=0;


if k�0 then
begin for i:=1 to k do s:=s+d[i];

Sredn_Arifm:=s/k
; end



else Sredn_Arifm:=0

end;



59

procedure Sort;




var l,j,min: integer;

begin


k:=0; l:=0;


for i:=1 to k
-
1 do begin


min:=d[i];


for j:=i+1 to k do


if d[j]min then begin


min:=d[j];

l:=j;


d[l]:=d[i]; d[i]:=min


end


end

end;


Begin


ClrScr;


write('
Число

элементов
(40) : '); read
ln
(n); clrscr; Input;


write('
Исходный

массив

A: ');


Print(a,n);

vybor;


write('M
ассив

D: '); Print(d,k);


writeln('Среднее арифметическое

отрицательных элементов массива равно
',Sredn_Arifm);


if Sredn_Arifm=0 then write
ln
('Нет отр
ицательных элементов');


Sort;


if Sredn_Arifm�0 then


begin


write('Отсортированный массив по возрастанию: ');



Print
(
d
,
k
)


end
;


readkey
;


End
.

ПРАКТИЧЕСКОЕ ЗАНЯТИЕ № 46
.

ЗАПИСИ


При работе с массивами существует один существенный недостаток


элементы в массиве одного типа. На практике часто требуется обрабатывать данны
е
с элементами разного типа. Если одновременно вести работу с несколькими
массивами разного типа, то программа получается очень громоздкой и требуется
много времени для отладки такой программы.

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

ЗАПИСЬ



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

ЗАПИСЬ



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

Тип записи

TYPE

NAME
=
RECORD




пол
е_1: тип;




поле
_2:
тип
;






……..




поле
_
N
:
тип
;




END
;

VAR

NAMREC
:
NAME
;


Record



служебное слово


запись,

NAME



имя типа записи,

Поле_
N



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

NAMREC



имя записи


перемен
ная определенного
TYPE

типа;

Имена полей не должны совпадать,

Если полей одного типа несколько, то их имена перечисляются через запятую:

Record

x
,
y
:
real
;
end
;

Доступ к элементу записи производится с помощью
компонентных
переменных
, имеющих форму
R
.
T

,
гд
е
R



переменная типа записи, Т


имя поля.

Если полей много, то обращение можно произвести с помощью
оператора над
записью

или
оператора присоединения

WITH

имя_записи
DO

Задача

Для группы учащихся, имеющих итоговые оценки по 5 предметам вычислить
средний
балл и упорядочить список группы по убыванию среднего балла.

Нарисуем таблицу с указанием имен полей, их типов.

Затем приступим к описанию переменных и написанию программы.

ТАБЕЛЬ УСПЕВАЕМОСТИ

Фамилия

Fam:
string[15]

Матем

Mat:
byte

Русский

Rus:
byte

Физик
а

Fiz:
byte

Химия

Xim:
byte

История

Ist: byte

Средн балл

Sb:real


Иванов

Петров

Сидоров


4

5

3


5

3

4


3

4

3


4

3

3


3

5

4


3.8

4

3.4


Program Sr_Ball; uses crt;


type grup=record


fam:string[15];


mat,rus,xim,fiz:byte;



sb:real;


end;


var tbl:array[1..20] of grup;


y:grup;


i,j,k,m:integer;


x:real;

Begin


clrscr;


write('
Количество

учащихся

в

группе
: '); readln(m);


writeln;


for i:=1 to m do


with tbl[i] do



61


begin


write
('fam[',i,']='); readln(fam);


write('mat='); readln(mat);


write('rus='); readln(rus);


write('xim='); readln(xim);


write('fiz='); readln(fiz);


end;


for i:=1 to m do with tbl[i] do sb:=(mat+rus+xim+fiz)/4;


for i:=1 to m do



begin


k:=i; x:=tbl[i].sb;


for j:=i to m do


if tbl[j].sb�x then begin k:=j; x:=tbl[j].sb end;


y:=tbl[k];


tbl[k]:=tbl[i];


tbl[i]:=y;


end;


clrscr;


writeln('
Пн

|
Фамилия

| Mat | Rus | Xim | Fiz ' );


wr
iteln('
---------------------------------------------
');


for i:=1 to m do


with tbl[i] do


writeln(i:2,' |',fam:15,' | ',mat:2,' | ',rus:2,' | ',xim:2,' | ',fiz:2);


readln; clrscr; writeln('
Пн

|
Фамилия

| Sredn ball ' );


for i:=1 to m

do with tbl[i] do writeln(i:2,' |',fam:15,' |',sb:3:1);

readkey;

End
.


ПРАКТИЧЕСКОЕ ЗАНЯТИЕ № 47
.

ФАЙЛЫ


Файл



форма хранения информации вне среды.

Файл удобен
:


-

данные из файла можно использовать в нескольких программах;


-

файл сохраняется после око
нчания работы программы;


-

данные часто не убираются в ОЗУ (игры);


-

с файлами можно выполнять множество полезных манипуляций.

Типы файлов:

1)

Последовательные


чтение/запись от начала к концу.

2)

Файлы прямого доступа


доступ к записи по адресу.

3)

Индексирова
нные файлы


доступ к записи по адресу и по ключу.

Порядок работы с файлами.

1.

Объявить файл

(
var

f
:
file

of

тип или
var

f
:
text

для текстового файла)
.

2.

Связать файловую переменную с конкретным файлом на устройстве.

3.

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

4.

Закрыть файловую переменную для записи или чтения.



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

и
нетипизированные
.

Основные процедуры и функции обработки файлов

(общие)
.

Assign
(
f
,
name
);

-

связь файловой пе
ременной
f

с внешним файлом.

(
f
);


-

открыть существующий файл для чтения.

Rewrite
(
f
);


-

открыть файл для записи

(если существует


стирается!)
.

Close
(
f
);


-

закрыть файл для чтения/записи.

Eof
(
f
)



-

функция «конец файла» (
true
, если из файла всё сч
итано).

Для типизированных файлов:

Read
(
f
,
a
);


-

чтение информации из файла

в переменную а
.

Write
(
f
,
a
);


-

запись информации
(значения переменной
a
)
в файл.

Seek
(
f
,
num
);


-

пропуск заданного количества записей в файле.

Truncate
(
f
);


-

удаление части файла
с текущего компонента до конца.

FilePos
(
f
)


-

фу
нкция номера текущей записи в файле
.

FileSize
(
f
)


-

функция
-

количество записей в файле (размер файла)
.

Для текстовых файлов:

Readln
(
f
,
a
);


-

чтение строки

из файла
.

Writeln
(
f
,
a
);


-

запись
строки в файл
.

Ap
pend
(
f
);


-

открыть файл для добавления в конец файла.

Eoln
(
f
)


-

функция конец строки файла.

SeekEoln
(
f
)


-

функция конец строки файла(не замечает пробелов в конце).

SeekEof
(
f
)


-

функция конец файла(не замечает пробелов в конце файла).

Задача 1.

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

Задача 2.

Создать текстовый файл данных из нескольких строк. Прочитать файл.

Прочитать числовое значение из текстового файла в числовую пе
ременную и
изменить полученное значение.

Program fil; Uses crt;


var f: file of integer;


b,c,d,x,y,z,i:integer;


t:text; a:string;

Begin


clrscr; b:=3; c:=4; d:=5;


writeln('b=',b,' c=',c,' d=',d);


assign(f,'c:r.dat');


rewrite(f);


writ
e(f,b,c,d);


close(f);




read(f,x,y,z);


write('x=',x,' y=',y,' z=',z);


close(f);


readkey; clrscr; assign(t,'c:
\
pascal
\
turbo7
\
work
\
prob.dat');




for i:=1 to 4 do


begin



63


readln(t,a);


writeln(a);


end;


readln(
t,x); x:=x*2; writeln('x=',x);


close(t);


readkey;

End.


ПРАКТИЧЕСКОЕ ЗАНЯТИЕ № 48
.

ЗАДАЧИ ОПТИМИЗАЦИИ


Проблема оптимизации встречается во всех сферах человеческой
деятельности
-

от самого высокого общегосударственного уровня до личного
(распределение

средств). Задача сводится к поиску наилучшего варианта с точки
зрения намеченной цели.

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

Многие задачи оптимизации сводятся к поиску
MAX
, MIN

некоторой
функции, которую принято называть
ЦЕЛЕВОЙ ФУНКЦИЕЙ

или
КРИТЕРИЕМ

КАЧЕСТВА.

Задачи оптимизации, в которых целевая функция является линейной
функцией независимых переменных, а условия, определяющие допустимые
значения этих переменных, име
ют вид линейных уравнений и неравенств относят к
ЛИНЕЙНОМУ ПРОГРАММИРОВАНИЮ.

НАЧАЛО
: 1938г.

Ленинградский Государственный Университет.
Л.В. Канторович

приступил к решению задачи о распределении работы 8 станков. Канторович нашел
общий метод решения.Позже К
анторович получил Ленинскую и Нобелевскую
премии.

МАТЕМАТИЧЕСКОЕ МОДЕЛИРОВАНИЕ


Этапы моделирования:

1. Определение цели и формирование
ЦЕЛЕВОЙ ФУНКЦИИ
.

2. Составление
СПИСКА ПЕРЕМЕННЫХ

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

3. Составление математического описания процесса.

4. Разработка алгоритма реализации математического. описания на эвм.

5. Проверка соответствия математической модели моделируемому процессу.

6. Исследование объекта моделирования с помощ
ью математической модели.

НЕКОТОРЫЕ ЗАДАЧИ ЛИНЕЙНОГО ПРОГРАММИРОВАНИЯ

ЗАДАЧА О ИСПОЛЬЗОВАНИИ РЕСУРСОВ

Выпускаются стулья двух типов:

Переменная

Цена(у.е.)

Доски(м)

Ткань(кв.м)

Рабочее время(чел.час)

X
1


8


2


0,5


2

X
2

12


4


0,25


2,5

Р
есурсы:


440

65

320



Какие стулья выпускать и в каком количестве чтобы выручка от продажи стульев
была наибольшей?

МАТЕМАТИЧЕСКАЯ МОДЕЛЬ

2 ∙х1+4
·

х2

440

0,5∙х1+0,25∙х2


65 Целевая функция
Р8∙х1+12∙х2


max

2
·

х1+2,5 ∙х2

320

х1
²
0 , х2
²
0

П
осле построения и исследования графиков получим, что оптимальные
значения: х160, х280 стульев.


ЗАДАНИЯ:

1. Найти выручку, если выпускать стулья только х1.

2. Найти выручку, если выпускать стулья только х2.

3. Найти выручку, если выпускать стулья
х1х2


ПРАКТИЧЕСКОЕ ЗАНЯТИЕ № 49
.

БИОЛОГИЧЕСКАЯ ЗАДАЧА


Для производства вакцины на заводе выращивают культуру бактерий.
ИЗВЕСТНО, что если масса бактерий Х г, то через день она увеличится на (А
-
В∙Х)∙Х г, где А и В
-

коэффициенты рождение и гибель

бактерий. Ежедневно для
нужд производства забирается М г бактерий.

ИССЛЕДОВАТЬ, как изменяется масса бактерий по дням от 1 до 365.

МАТЕМАТИЧЕСКАЯ МОДЕЛЬ


Исходные данные: коэффициенты А, В


начальная масса Хо



масса для производства М


Результаты: масса бактерий через 1,2,3,..,365 дней


Из условия получим рекур
р
ентную формулу: Х:Х+(А
-
В∙Х)∙Х
-
М


Если масса бактерий станет равной или меньшей 0, то необходимо
сигнализировать о ЧП
-

чрезвычайном проис
шествии и остановить производство.

ВЫЧИСЛИТЕЛЬНЫЙ ЭКСПЕРИМЕНТ

А1 , ВО.ООО1, ХО12ООО, М2ООО.

Масса бактерий сначала быстро убывает, но на 11 день становится равной 7236 г и
после этого практически не изменяется.

Увеличим начальную массу бактерий до
ХО17ООО. Масса резко снижается, но к
27 дню стабилизируется на уровне 7236 г.

Возьмем 18ООО г, то уже через 2 дня произойдет ЧП. Бактерии гибнут.

НАЙТИ:

1
. Минимальное первоначальное количество бактерий.

2. Максимальное первоначальное количество бактер
ий.

3. Определить какую максимальную массу можно забирать, чтобы завод
бесперебойно работал в течение года при начальной массе ХО12ООО грамм.



65

ЭКОЛОГИЧЕСКАЯ ЗАДАЧА

В результате аварийного или преступного сброса в реку загрязненных стоков в ней
резко увели
чилась концентрация вредных веществ. Требуется ОПРЕДЕЛИТЬ, каков
будет уровень загрязненности реки через сутки, двое и т.д. и через какое время
уровень загрязненности станет меньше допустимого, если ИЗВЕСТНО, что за
сутки он

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

МАТЕМАТИЧЕСКАЯ МОДЕЛЬ

В каждом городе, районе имеется СЭС
-

санитарно
-
эпидемиологическая станция,
которая, в частности, следит за состоянием воды в реках, источниках, прудах и т.д.
Лаборант СЭС может выезжать на место загрязнения
по сообщению жителей,
рыбаков, туристов и т.д. На месте загрязнения берется проба воды сегодня, завтра и
с помощью лабораторных исследований определяется коэффициент, который
показывает, во сколько раз за сутки уменьшается загрязненность. Коэффицие
нт
К>1, так как при 0-

загрязненность увеличивается, а при K1
-

не изменяется.


Обозначим: Cо
-

начальная концентрация (лабораторные исследования);


Сд
-

допустимая концентрация (табличные значения);


Сn
-

искомая концентрация через n суток.


Естественно предположить, что С Cn/K.


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

ВЫЧИСЛИТЕЛЬНЫЙ ЭКСПЕРИМЕНТ

ņņņņņņņņņņņņņņņņ
ņņņņņņņņņņņņņņņņņņņņņņņņņņ


ВЕЩЕСТВО

Со (мг/л)

Сд (мг/л)

К


n (суток)



СВИНЕЦ


10


0.03


1.12


МЫШЬЯК


5


0.05


1.05


ФТОР


8


0.05


1.01

════════════════════════════════════════════


Написать программу и найти значения n для свинца,

мышьяка и фтора
-

очень
опасных веществ для человека, если концентрация их значительно превышает
норму.


66


ПРАКТИЧЕСКОЕ ЗАНЯТИЕ № 50
.

ЗНАКОМСТВО С IBM. ОПЕРАЦИОННАЯ СИСТЕМА.

NORTON COMMANDER


IBM


-

International

Business

Machines

Corporation

-

америка
нская корпорация,
разработчик и изготовитель ЭВМ, внешних устройств и программного обеспечения.

Intel Corporation

-

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

Ею были разработаны первые микропроцессоры: Intel
4004 и Int
el 8008, которые использовались в калькуляторах, затем были разработаны
и изготовлены серии: 80080,

80086,

80088,

80286,

80386,

80486,

Р
entium
,
Pentium

Pro
,

-
MMX
,
-
II
,
-
III
,
-
4,
Pentium

D
.

Microsoft

-

американская фирма, разрабатывающая и выпускающая прогр
аммное
обеспечение для ПЭВМ; ведущий разработчик для IBM PC.

IBM PC

AT

-

персональный компьютер фирмы IBM.

PC

-

Personal

Computer
,
AT

-

Automatic

Translation
.

IBM PC состоит из оборудования:


-

системный блок;



-

принтер (
P
rinter);


-

дисплей (VGA, S
VGA);


-

CD
/
DVD

ROM;


-

клавиатура
(
Keyboard
)
;


-

модем

(
Modem
;


-

мышь (
M
ouse);



-

сканер (
Scaner
).

УПРАВЛЕНИЕ
: нажать кнопку включения
(POWER); (через 10 сек. после ВЫКЛ.)

TURBO
-

кнопка переключения скорости выполнения операций.

RESE (сброс)
-

кнопк
а для перезагрузки ЭВМ без отключения питания.

ОПЕРАЦИОННАЯ СИСТЕМА

(ОС)
-

система для
работы с программами,
файлами и
оглавлениями данных на ЭВМ.

MS DOS

-

Дисковая Операционная Система фирмы MicroSoft; требует знания
специальных команд и точного их вво
да. Например
,

Coy имя файла rn
-

распечатать текст файла на принтере.

NORTON COMMANDER

-

программный пакет (программная оболочка) для
работы с MS DOS; команды ОС расположены в меню. Создана фирмой
Symantec

Corporation
.
-

выполняет все команды DOS;

не тре
буется запоминать множество
команд
,

WINDOWS

-

операционная система с графической оболочкой,

позволяющая
исполнять команды ОС.

КРАТКАЯ СПРАВКА ПО NORON COMMANDER


После включения ЭВМ автоматически загружается с винчестера ОС и
программная оболочка NORO
N COMMANDER. О ее загрузке можно узнать по
синим
панелям (окнам) на экране монитора.

Если панели не появились, то в MS DOS набрать команду nc и нажать Enter.

Активное окно

-

то, в котором находится подсветка (highlight).

Смена окна производится нажатием

Tab.

Под панелями расположена строка для ввода команд MS DOS.

При работе в NC строка автоматически заполняется командами MS DOS.

КАТАЛОГ

(catalog)
-

структура данных, обеспечивающая поиск объекта по
текстовому имени.

В каталог входит перечень имен файло
в и имен других каталогов


67

(подкаталогов), объединенных по какому
-
либо признаку и хранящихся на
устройствах памяти ЭВМ. Имена каталогов записываются заглавными буквами.

ФАЙЛ
(file)
-

форма хранения информации вне среды. Имена файлов записываются
строчными б
уквами

по правилу 8.3
. Файлы хранятся на каком
-
либо носителе
информации, например на магнитном диске.

СРЕДА

(environment)
-

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

на которой она выполняется.

Например
,

среда
программировани
я
-

Pascal.

Файлы имеют
РАСШИРЕНИЕ
от 0 до
4

букв. Расширение помогает
систематизировать файлы.

Файлы с расширени
я
м
и
:

exe,

com
,
bat

-

выполняемые
программы
;

.txt, .doc, .lst
-

текстовые файлы;

.bat
-

командные файлы ОС;

.
pas
-

программы на Паскале;

.b
as
-

программы на Бейсике;

.bak
-

старые версии файлов.

ФУНКЦИИ КЛАВИШ
:

F1
-

справка по NC;

F2
-

меню пользователя
-

набор названий программ, часто используемых в работе;

F3
-

просмотр текста файла;

F4
-

редактирование файлов;

F5
-

копирование файлов в дру
гой каталог или устройство;

F6
-

переименование файлов, перемещение;

F7
-

создание нового каталога или подкаталога;

F8
-

удаление текущего файла или каталога (пустого);

F9
-

дополнительное меню;

Enter
-

вход в каталог, выход из подкаталога (курсор на ..
), запуск программ ;

Insert
-

выделить/снять выделение файла, на котором находится курсор;

ПОИСК ФАЙЛОВ
:

Alt+F1
-

вывод информации о устройствах в левую панель;

Alt+F2
-

вывод информации о устройствах в правую панель;


ňņʼn ňņʼn ňņņņņņņņņņņņņņņņņņņņņņņņņņ
ņʼn


│A│ │B│ │ C D E F │


Ŋņŋ Ŋņŋ Ŋņņņņņņņņņņņņņņņņņņņņņņņņņņŋ


A
-

НГМД 5.25" B
-

НГМД 3.5"


С
-

винчестер(НЖМД); D,E,F
-

логические диски на винчестере.

Выбор устройства подтверждается нажатием
Enter
.

Перемещаясь по катало
гам и подкат
алогам
, ведем поиск нужного файла. Если
файлов много, то такой поиск утомителен.


Можно осуществить быстрый поиск файла на ТЕКУЩЕМ ДИСКОВОДЕ,
используя команду
Alt+F7
. Поиск можно производить по первым буквам файла, а
также использовать *. Напр
имер, найти файлы *.lst

ЗАПУСК ПРОГРАММ

-
Если файл имеет расширение .exe или .com,

то такой файл запускается
непосредственно из Norton Commander.

-
Если файл создан в среде, создающей свои специфические файлы, то надо
запустить данную среду, затем открыть и

запустить файл.


Например, файл с расширением .as можно запустить после входа в среду Pascal.



ПУТЬ

-

указание имен каталогов и подкаталогов ведущих к файлу.


Дисковод:
\
путь
\
имя файла
-
� c:
\
pascal
\
turbo
7
\
work
\
life.pas

c:
-

дисковод (устройство



жесткий диск
);

pascal
-

каталог;



life
-

имя файла;

turbo
7
, work
-

подкаталоги;

.pas
-

расширение имени файла.

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


ЗАДАНИ
Я:

1. Перейти в соседнюю панель и обратно.

2.

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

3. Найти файл turbo.exe разными способами.

4. Посмотреть каталог диска а: на левой и правой панелях. Вернуться к каталогу
с: на обоих панелях.

5. В правую панель вывести каталог
другого устройства:

6. Вывести содержимое левой панели в виде:


-

только имена;




(Brief)


-

по убыванию размера;



(Size)


-

в алфавитном порядке;



(Name)


-

в алфавитном порядке расширений;

(eXtension)


-

по дате создания;



(tiMe)


-

c полной информацией;


(Full)


-

краткий формат без сортировки.

(Unsorted)

7.
Создать

каталог PRIMER.

8. Скопировать в полученный каталог текстовые файлы.

9. Удалить из каталога PRIMER все файлы.

1
0
. Определить тип ЭВМ, дисплея, процессора, п
одключенных устройств и
содержимое оперативной памяти ЭВМ.


69

ПРИЛОЖЕНИЕ


Особенности работы в средах Borland Pascal 7.0 и Pascal
ABC



Pascal
. ВИРТ Никлаус.
Швейцария.197
1

Pascal ABC
. Мехмат РГУ. 2002
-
2006

Turbo Pascal
.
Филип

Кан
.
1983
г
.

Станислав Малк
ович. База
-

Delphi Pascal

MS DOS

Windows

Ctrl+F9 запуск программы

F9 или


на панели
инструментов

Ctrl+Break+Break
-
останов

Stop
-

на панели инструментов
или


Выделение: Shift+клавиша,
или ЛК

ЛК провести по фрагменту

*

Ctrl+K C или V или H или Y

П
К через контексное меню

*

Вывод на отдельном экране
вывода

Вывод также, но при открытом
экране ввода

Сохранить

файл
: F10
-

FILE
-

Save as…

Файл
-

Сохранить как … или
F2

Открыть файл F3

F3

Текстовый и числовой
режим: Uses CR;

Uses CRT;

Графический
модуль:
Uses Graph;

Uses GraphABC;



Очистка окна вывода: Ctrl+Del
или


Integer:
-
32768 .. 32767

нет

longint
:

integer
:
-
2147483648 ..
2147483647

4 байта

real: 2.9E
-
39 .. 1.7E38

нет

double

real
: 5E
-
324 .. 1.7E308

8 байт

Пауза delay(ms)
;

sleep(ms)
; delay(ms);

Очистка окна вывода ClrScr;

ClrScr; или Cls;

Режим замена имеется Insert

нет

Возведение

x^y :real;
exp(y*ln(x))

power(x,y)



FileExists
(
name
)
-

true
, если
файл на диске

Ожидан
ие нажатия:
readkey
;
или
readln
;

Readln;


readkey
-

функция

Выход из среды
Alt+X

Закрыть стандартное окно
Widows




*
ЛК


левая кнопка мыши.

*
ПК


правая кнопка мыши.


Программа *.
pas

исполняется после

Щелчок по имени файла запу
скает среду

входа в среду и вызова из среды


и считывание текста файла в окно
редактора

данного файла в окно редактора.


КОМАНДЫ ГРАФИЧЕСКОГО МОДУЛЯ

(
C
);

-
цвет линии, шрифта

(
ClBrown
);

-
цвет линии;







(
ClBlue
);

-
цвет шри
фта;

(
P
,
C
);

-
цвет фона


(
ClPurple
);

-
цвет фона;

(
Ls
,
Pa
,
Th
);
-
стиль линии

(
psClear
);

-
стиль пера;







(
psSolid
,
psDash
,
psDot
,
psDashDot
,..)







(
sz
);

-

толщина линии;

(
F
,
D
,
Sz
);
-
парам
. шрифта

(
sz
);

-
размер шрифта;







(‘
Times
’);

-

вид шрифта;

O
utTextXY
(
X
,
Y
,
S
);

-

вывод текста


TextOut
(
X
,
Y
,
S
);

-

вывод текста

PutPixel
(
X
,
Y
,
C
);


вывод точки


(
X
,
Y
,
C
);

,



ко
о
рд
инаты

точки;


(
X
,
Y
)



координаты
точки;

MoveTo
(
X
,
Y
);




MoveTo
(
X
,
Y
);

не рисуй до точки;

Line(X1,Y1,X2,Y2);

линия



Line(X1,Y1,X2,Y2);

линия

(
X
,
Y
);

-

линия до точки с координатами
X
,
Y

Rectangle(X1,Y1,X2,Y2);

прямоугольн
ик

Rectangle(X1,Y1,X2,Y2);







RoundRect(X1,Y1,X2,Y2,W,H);

w,h
-

оси

Bar(X1,Y1,X2,Y2);

полоса


FillRect(X1,Y1,X2,Y2);

-
закраска

текущ
им

ц
ветом

FloodFill
(
X
,
Y
,
B
);

В
-

цвет границы

FloodFill
(
X
,
Y
,
C
);

-

закраска цветом С

Circle
(
X
,
Y
,
R
);

-

окружность


Circle
(
X
,
Y
,
R
);

-

окружность

Ellipse(X,Y,Sa,Ea,Xr,Yr);

эллипс


Ellipse(X1,Y
1,X2,Y2);

Arc(X,Y,a1,a2,R);

-

дуга

(
градусы
)

Arc(X,Y,R,a1,a2);

Sector(X,Y,Sa,Ea,Xr,Yr);

сектор

элл
ипса

Pie(X,Y,R,a1,a2);

-

сектор

окружности

PieSlice
(
X
,
Y
,
Sa
,
Ea
,
R
);

-

закр
ашенный

сектор

FillEllipse
(
X
,
Y
,
Xr
,
Yr
);

-
закр
ашенный

эллипс







Chord
(
X
,
Y
,
R
,
a
1,
a
2);

-

сегмент
;







LoadWindow
(‘*.
bmp
’);

-
вкл
ючить картинку







ClearWindow
;


очистка окна текущим цветом







MaximizeWindow
;
-

максимальное окно


СПИСОК ЦВЕТОВ:

0

чёрный




clBlack

1

синий





cl
Navy

2

зелёный




cl
Green

3

голубой




cl
Blue

4

красный




cl
Maroon

5

фиолетовый




cl
Purple



71

6

коричневый




cl
Brown

7

светло
-
серый



cl
LtGray


(
clMedGray



серый
)

8

тёмно
-
серый




cl
DkGray

9

ярко
-
синий




cl
SkyBlue

10

ярко
-
зелёный



cl
Lime

11

ярко
-
голубой



cl
Aqua


-

бирюзовый

12

розовый




cl
Fuchsia


-

сиреневый

13

малиновый




cl
Red

14

жёлтый




cl
Yellow

15

белый





cl
White


(
clCream



кремовый
)




72

ЛИТЕРАТУРА


1.

Р. Форсайт «Паскаль для всех» Москва. Машиностроение. 1986 г
.

2.

Г. Джонстон «Учитесь программировать» Москва. Финансы и статистика.
1989 г.

3.

В.С. Новичков,
Н.И. Парфилова, А.Н. Пылькин «Алгоритмические языки в
техникуме. Паскаль» Москва. Высшая школа. 1990 г.

4.

Е.А. Зуев «Язык программирования
Turbo

Pascal

6.0» Москва. «Унитех» 1992
г.

5.

М.В. Дмитриева, А.А. Кубенский «Элементы современного
программирования» Санк
т
-
Петербург изд
-
во С
-
Петербургского университета.
1991 г.

6.

В.В. Фаронов «Основы турбо
-
паскаля» МВТУ
-
Фесто Дидактик Москва. 1992
г.

7.

А.М. Епанешников, В.А. Епанешников «Программирование в среде
Turbo

Pascal

7.0» Москва. Диалог МИФИ.1995 г.

8.

С.А. Абрамов,

Г.Г. Гнездилова, Е.Н. Капустина, М.И. Селюн «Задачи по
программированию» Москва. «Наука». 1988 г.

9.

В.Н. Пильщиков «Сборник упражнений по языку Паскаль» Москва. Наука.
1989 г.

10.

Л.З. Шауцукова «Информатика 10
-
11» Просвещение. 2000 г.

11.

С.А. Абрамов, Е.В. Зима «
Начала информатики» Москва. Наука. 1989 г.

12.

П.Семакин И.Ф. Основы

программирования:

учебник / И. Ф. Семакин,
А. П.
Шестаков.
-

М.: Мастерство, 2002.

13.

Фаронов В.В, Т
urbo

Pascal

7.0. Начальный курс: учебное пособие / В.В.
Фаронов.
-

М.: Нолидж, 2000.

14.

Васильев

П.П.

Турбо Паскаль в

примерах и

задачах.

Освой
самостоятельно:

учебное пособие / П. П. Васильев.


М.: Финансы и статистика,

2003.

15.

Макарова Н.В., Николайчук Г.С., Титова Ю.Ф. под ред. Макаровой Н.В.
Информатика и ИКТ (базовый уровень) 10 Питер Пресс.

16.

Мака
рова Н.В., Николайчук Г.С., Титова Ю.Ф. под ред. Макаровой Н.В.
Информатика и ИКТ (базовый уровень) 11 Питер Пресс.

17.

Семакин И.Г., Хеннер Е.К. Информатика и ИКТ (базовый уровень) 10
-
11
БИНОМ.

18.

Фиошин М.Е., Рессин А.А., Юнусов С.М. под ред. Кузнецова А.А.
Инф
орматика и ИКТ (профильный уровень) 10
-
11 Дрофа.

19.

Гейн А.Г., Ливчак А.Б., Сенокосов А.И. и др. Информатика и
информационные технологии (базовый и профильный уровни) 10
Просвещение.



Приложенные файлы


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