Алгоритм на части

Содержание

Слайд 2

Примером проектирования методом «снизу- вверх» является проектирование программы для РГР

Примером проектирования методом «снизу- вверх» является проектирование программы для РГР

Слайд 3

Нисходящее программирование («сверху – вниз») Методы проектирования программ // Шафеева О.П.

Нисходящее программирование («сверху – вниз»)

Методы проектирования программ // Шафеева О.П. 2004.

-32с.
(Метод. указания к курсовой работе и РГР)
Слайд 4

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

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

Слайд 5

Типы в ТурбоПаскале TYPE = ; {array[1..5] of byte;} = ;

Типы в ТурбоПаскале

TYPE
<НовыйТип1>=<МассивЦелыхЧисел>; {array[1..5] of byte;}
<НовыйТип2>=<Множество символов>; {set of 0..9;}
<НовыйТип3>=<запись>; {record}
. . .
<НовыйТип8>=<другой тип>;
<НовыйТип9>=(<перечисленные

здесь значения>); -перечислимый тип. <идентификатор типа>=<определяющие тип зарезервированные слова или
значения элементов>
-
Слайд 6

Классификация типов -

Классификация типов
-

Слайд 7

Порядковые типы ORD(X) - возвращает порядковый номер значения выражения х; Для

Порядковые типы
ORD(X) - возвращает порядковый номер значения выражения х;
Для целых типов

ORD(X)=X (возвращает само значение Х).
Для логического типа возвращает целое число 0 или 1.
Для символьного типа возвращает число в диапазоне 0..255(код символа)
Для перечислимого типа возвращает число в диапазоне 0..65353. PRED(X) ORD(PRED(X))=ORD(X)-1;
SUCC(X) ORD(SUCC(X))=ORD(X)+1;

ЦЕЛЫЕ ТИПЫ

Короткое целое без знака
Короткое целое со знаком
Целое без знака
Целое со знаком
Длинное целое со знаком

от 0 до 255
от -128 до 127
от 0 до 65535
-32768 .. 32767
от -2147483648
до 2147483647

BYTE (B)
SHORTINT (S)
WORD (W)
INTEGER (I)
LONGINT (L)

1
1
2
2
4

Примечание

Диапазон

Название

Длина (байт)

Слайд 8

PROGRAM MAX; Begin writeln (MAXINT); {32 767} readln; {Задержка до нажатия

PROGRAM MAX;
Begin
writeln (MAXINT); {32 767}
readln; {Задержка до

нажатия клавиши }
END.

Операции и функции
1) сложение, вычитание (имеют более низкий пpиоpитет);
DIV, MOD, умножение;
2) ABS(X), SQR(X); TRUNC(X), ROUND(X) дают целый результат;
3) деление дает вещественный результат;
-

Пример: VAR X:INTEGER;
I,J:BYTE;

-MAXINT<= X<= MAXINT.

Слайд 9

Возвращает символ по его коду Возвращает старший байт аргумента. Возвращает младший

Возвращает символ по его коду
Возвращает старший байт аргумента.
Возвращает младший байт аргумента.
Возвращает

значение (TRUE), если аргумент нечетное число; (FALSE) - если четное.
меняет местами байты в
слове
Возвращает псевдослучайные числа равномерно распределенные на интервале 0<=X<=W

CHAR
BYTE
BYTE
BOOLEAN
INTEGER
WORD
Как у параметра

CHR(B)
HI(I),HI(W)
LO(I),LO(W)
ODD(L)
SWAP(I)
SWAP(W)
RANDOM(W)

Уменьшает
Увеличивает

Процедура
Процедура

DEC(Vx[,i])
INC(Vx[,i])

Действие

Тип результата

Обращение

Функции для целых типов

значение Vx на i, при отсутствии i -на 1

Слайд 10

WORD>BYTE LONGINT>INTEGER>SHORTINT Trunc(x) Round(x) $FF $7 $FFFFAB0C -$80(со знаком) – ЦЕЛЫЕ

WORD>BYTE
LONGINT>INTEGER>SHORTINT
Trunc(x) Round(x)

$FF $7 $FFFFAB0C -$80(со знаком) – ЦЕЛЫЕ в 16-ричном формате

Word, Integer, LongInt

- в перевернутом виде

W=$0102 ⇒ $02 и $01
-

Слайд 11

ЛОГИЧЕСКИЙ ТИП (BOOLEAN) FALSE(ложь), TRUE(истина) FALSE Ord(false)=0; Ord(true)=1; succ(false)=true, pred(true)=false. NOT,

ЛОГИЧЕСКИЙ ТИП (BOOLEAN)

FALSE(ложь), TRUE(истина)
FALSEOrd(false)=0; Ord(true)=1;
succ(false)=true, pred(true)=false.
NOT, AND, OR, XOR

(<>,<=,>=,<,>,=),
BOOLEAN

VAR X, Y, A, B: BOOLEAN;
BEGIN

X:=A OR B;
Y:=(A>x) AND (AEND.

FOR x:=FALSE TO TRUE do <оператор>;
FOR x:=TRUE DOWNTO false do <оператор>;

ODD(x) логическая функция проверки нечетности
TRUE FALSE
EOLN(f) - функция проверки конца строки END OF LINE
EOF(f) - определяет конец файла END OF FILE
-

Слайд 12

ПЕРЕЧИСЛИМЫЙ ТИП Boolean (2 значения с номерами 0 и 1), char

ПЕРЕЧИСЛИМЫЙ ТИП

Boolean (2 значения с номерами 0 и 1),
char

(256 символов с кодами 0..255),
все целые типы: Byte (256 значений от 0 до 255),
Word (65536 значений),
а также другие целые типы: ShortInt, Integer, LongInt (нумерация значений которых начинается с отрицательного целого числа).
Пример:TYPE Char=(Симв0,симв1,..,симв64,'A','B','C',..,симв255);
Boolean=(False,True);
Byte=(0,1,2,...,255);

TYPE <имя типа1>=(<элемент1>,<элемент2>...,<элементN>);
<имя типаK>=(<элемент1>,...,<элементM>);
<имя типаJ>=<имя типаK>; ...

Пример: TYPE TEST=(test1,test2,test3,test4,test5);
Day = (PN, VT, SR, HT, PT, SB, VS);
BOOLEAN3=(False_,Noinfo,True_) ;{значения новых типов}

BOOLEAN3 TRUE и FALSE. -

Слайд 13

Максимальное количество элементов в одном вводимом перечислимом типе равно 65536 (0..65535).

Максимальное количество элементов в одном вводимом перечислимом типе равно 65536 (0..65535).

Пример:

var
T1, T2: TEST;
B1, B2: BOOLEAN3;

for T1:=test2 to test4 do <оператор>;

B1:=false_; B2:=B1;
T1:=test1; T2:=test(0);

Пример: True_ > Noinfo
test2 > test1.

ORD(x): Ord(test1)=0; Ord(test2)=1;... Ord(test5)=4;

t1:=Test(0) эквив. t1:=Test1
<имя Перечисл.типа> (номер элемента)

Для типа BOOLEAN3 Pred(True_)=Succ(False_)=Noinfo ; (предыдущее) (следующее в типе значение)
Если x:=test2, то Succ(x)=test3; Pred(x)=test1.
X:=<имяПеречислимогоТипа>(ПорядковыйНомер)
Пример:T1:=TEST(0) и T1:=TEST1 - нулевой элемент типа TEST
-

Слайд 14

ВЕЩЕСТВЕННЫЕ ТИПЫ Знак m*Ep, где m - мантисса числа, причем 0.5

ВЕЩЕСТВЕННЫЕ ТИПЫ

Знак m*Ep,
где m - мантисса числа, причем

0.5<=|m|<1 (нормализованное);
p - порядок (экспоненциальная часть: степень E), целое двоичное число со знаком
-

Знак

порядок

мантисса

Слайд 15

-324..+308 15..16 DOUBLE 8 -4951..+4932 19..20 EXTENDED 10 -2E63+1..+2E63-1 19..20 COMP

-324..+308

15..16

DOUBLE

8

-4951..+4932

19..20

EXTENDED

10

-2E63+1..+2E63-1

19..20

COMP

8

-39..+38

11..12

REAL

6

-45..+38

7..8

SINGL

4

диапазон десятичного

порядка

мантисса
(значащие цифры)

название
типа

длина
(байт )

{$N+} - подключить сопроцессор,
{$N- } - отключить сопроцессор. REAL

Операции +,-,* дадут вещественный результат, если один из аргументов вещественен. Для деления результат получается вещественный, даже если оба операнда целые.

{$N+, Е+} - подключение эмулятора сопроцессора

Слайд 16

Встроенные стандартные функции: sin(х), cos(х), arctg(х), ln(х), Sqrt(x), Exp(x) дают вещественный

Встроенные стандартные функции: sin(х), cos(х), arctg(х), ln(х), Sqrt(x), Exp(x) дают вещественный

результат при вещ. или целом аргументе;
Abs(x), Sqr(x) при вещ. Х дают вещ. результат.
Дополнительно в ТП определены функции:

Pi =3.141592653
Дробная часть числа x
Целая часть числа x
0Случайное целое число
Инициализация датчика
псевдослучайных чисел.
Гарантирует несовпадение
последовательностей случ. чисел, вызываемых функцией Random

вещественный
вещественный
вещественный
Вещественный
Целый

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

Pi
Frac(x)
Int(x)
Random;
Random(x);
Randomize;

примечание

тип результата

тип параметра

Обращение

Слайд 17

Пример. Задать массив из 16 элементов через генератор случайных чисел. Напечатать

Пример. Задать массив из 16 элементов через генератор случайных чисел. Напечатать

их по 4 элемента в строке
Program Mass2;
Uses CRT;
Const N=16;
VAR A:array[1..N] of real;
i :byte;
c: char; {символьный тип}
BEGIN
Randomize;
For i:=1 to N do
begin
a[i]:= random;
Write(a[i]:7:3);
if (I mod 4) = 0 then writeln;
end;
repeat
c:=readkey {читает код нажатой клавиши}
until ord(c) = 27 { пока не нажата клавиша ESC окно вывода не закроется}
END.
Слайд 18

ОГРАНИЧЕННЫЕ ТИПЫ (ДИАПАЗОНЫ) TYPE = .. ; Пример: TYPE NEDEL=(PN, VT,

ОГРАНИЧЕННЫЕ ТИПЫ (ДИАПАЗОНЫ)

TYPE <имя_диапазона>=<начальн.граница>..<конечная_граница>;
Пример:
TYPE
NEDEL=(PN, VT, SR, HT, PT,SB, VS);
TEST=(test1,test2,test3,test4,test5);
Byte20=1..20; {поддиапазон для

базового типа Byte}
LETERS='A'..'Я'; {прописные буквы из базового тип Char }
TESTOD=test2..test5; {часть перечислимого типа TEST}
RABNED=PN..PT; {ограничение на перечислимый тип NEDEL}

Пример: TYPE date=1..31;
VAR L,L1:date;
BEGIN
L:=2*10+5; ...
L1:=2*10+60; {неверно, т.к. L1 выходит за пределы}
END. {диапазона}

TYPE DIAP= 1..10;
vektor = array[diap] of real;
VAR date: 1..31;
month: 1..12;
letchr: 'A'..'Z';

Слайд 19

ИЗМЕНЕНИЕ ТИПА ВЫРАЖЕНИЯ ( ); - операция приведения типа Пример. TYPE

ИЗМЕНЕНИЕ ТИПА ВЫРАЖЕНИЯ

<имяТипа> (<выражение>); - операция приведения типа
Пример. TYPE TyType=array[1..5] of

char;
Var I,J, D:byte;
B:boolean;
R:real;
A:integer;
C:char; Arr:TyType;
Begin ...
A:=Integer('A'); {65}
D:=byte (R);
C:=Char(I+J-D);
R:=real (D);
B:=Boolean(100); {True}
Arr:= TyType('TP_60'); где TyType=array[1..5] of char;

b:=3.5
A:=integer(b+4.8); {8}
A:=integer (b) + integer (4.8) {7}