Литература
Багласова Т.Г. Методические указания по оформлению курсовых и дипломных работ. - Мн.: ТБП, 2006
Грибанов В.П. и др. Основы алгоритмизации и программирование. - М.: Бином, 1999
Культин Н.Б. Программирование в Turbo Pascal и Delphi. 2-ое изд. переработанное и дополненное. - С-Пб: БХВ-Петербург, 2008
Леонтьев В.П. Новейшая энциклопедия персонального компьютера. - М.: ОЛМА-ПРЕСС, 2002
Фаронов В.В. Delphi. Программирование на языке высокого уровня. - С-Пб: Питер, 2005
ГОСТ 2.106-96. ЕСКД. Текстовые документы
ГОСТ 19.401-2000. ЕСПД. Текст программы
ГОСТ 19.701-90. ЕСПД. Схемы алгоритмов, программ, данных и систем
Приложение а (обязательное) Тексты программ
Листинг А.1 – Программа cтруктурное программирование на языке Pascal
Листинг А.2 – Программа пошаговая детализация на языке Pascal
Листинг А.3 – Программа массивы на языке Pascal
program massivi;
uses crt;
const n=5; m=5;
var a:array[1..n,1..m] of integer;
i,j:byte;
s,k:integer;
pr,pr2:longint;
begin
clrscr;
for i:=1 to n do
for j:=1 to m do
begin
write(' ');
write('vvedite [',i,';',j,'] = ');
readln(a[i,j]);
end;
clrscr;
writeln('matrica:');
s:=0;
k:=0;
for i:=1 to n do
begin
for j:=1 to m do
write(a[i,j]:5);
writeln;
end;
pr:=1;
for i:=1 to n do
begin
for j:=1 to m do
if a[i,1]<0 then begin pr:=pr*a[i,j];
pr2:=pr; end;
end;
writeln('proizvedenie ravno = ',pr2);
end.
Листинг А.4 – Программа строки на языке Pascal
string str = "ruzke medved balalaika vodka biton";
string[] slova = str.split(" ");
int[] Mass = new int[slova.Lenght]; {massiv dlin slov}
for(int i = 0; i < slova.Lenght; i++)
{
if(slova[i] != " " && slova[i] != string.Empty)
{
Mass[i] = slova[i].Lenght; {zanosim dlini slov v massiv}
}
}
int Max = Mass.Max(); {maximal length}
int Min = Mass.Min(); {minimal length}
uses crt;
const ds=['А'..'п','р'..'ё',' '];
var s:string;
i,k,j,mx,mn:byte;
begin
clrscr;
repeat
k:=0;
writeln('Введите строку из русских слов, разделенных пробелами:');
readln(s);
for i:=1 to length(s) do
if not (s[i] in ds) then
begin
k:=1;
break;
end;
if k=1 then writeln('Строка введена неверно!');
until k=0;
s:=s+' ';
mx:=0;mn:=255;
i:=1;
while i<=length(s)do
if s[i]<>' ' then
begin
k:=0;j:=i;
while s[j]<>' 'do
begin
k:=k+1;
j:=j+1;
end;
if k>mx then mx:=k;
if k<mn then mn:=k;
i:=i+k+1;
end
else i:=i+1;
writeln('Длина короткого слова=',mn,' длинного слова=',mx);
readln
end.
Листинг А.5 – Программа записи на языке Pascal
program tovarri;
type tov=record
k:integer;
n:string;
c:real;
end;
const
Nmax=10;
var
i:integer;
c:string;
m:array [1..Nmax] of tov;
k:integer;
o:boolean;
procedure enter;
begin
ClrScr;
i:=1;
while c<>'n' do begin
ClrScr;
i:=i+1;
writeln('vvedite nazvznie tovara');
readln(m[i].n);
writeln('vvedite kolichestvo tovara');
readln(m[i].k);
writeln('vvedite cenu shtole');
readln(m[i].c);
writeln('povtorit vvod?(y/n)');
readln(c);
end;
end;
procedure find;
var
kol:integer;
cena:real;
begin
while c<>'n' do begin
ClrScr;
write('vvedite kolichestvo tovara:');
readln(kol);
write('vvedite cenu tovara:');
readln(cena);
for i:=2 to Nmax do begin
if (m[i].c=cena)and(m[i].k=kol)then begin
writeln('nazvznie: ',m[i].n,' kolichestvo ',m[i].k,' cena: ',m[i].c);
o:=true;
end;
end;
if o=false then writeln('not found');
writeln('search again(y/n)?');
readln(c);
end;
end;
Листинг А.6 – Программа оформление и подключение модуля на языке Pascal
unit unit1;
interface
uses crt;
const max=100;
type mas=array[1..max] of integer;
procedure Vvod(var m:mas;var n:byte);
procedure Udal(var m:mas; var n:byte);
implementation
procedure Vvod;
var i:byte;
begin
repeat
write('Размер массива до ',max,' n=');
readln(n);
until n in [1..max];
writeln('Введите в массив ',n,' целых чисел:');
for i:=1 to n do
begin
write('el[',i,']=');
readln(m[i]);
end;
clrscr;
writeln('Исходный массив:');
for i:=1 to n do
write(m[i],' ');
writeln;
writeln;
end;
procedure Udal;
var i,j,k:byte;
begin
i:=1;k:=0;
while i<=n do
begin
if m[i] mod 6=0 then
begin
k:=1;
for j:=i to n-1 do
m[j]:=m[j+1];
n:=n-1;
end
else i:=i+1;
end;
if k=0 then write('В массиве нет элементов, кратных 6!')
else if n=0 then write('Все элементы удалены!')
else
begin
writeln('Массив после сжатия:');
for i:=1 to n do
write(m[i],' ');
end;
end;
end.
, сама прога:
uses Crt,Unit1;
var a:mas;
n:byte;
begin
ClrScr;
Vvod(a,n);
Udal(a,n);
readln
end.
Листинг А.7 – Программа рекурсия на языке Pascal
uses crt;
function Rec(n:integer):longint;
begin
if n<3 then Rec:=1
else Rec:=Rec(n-1)*n+Rec(n-2);
end;
var i:integer;
begin
clrscr;
write('i=');
readln(i);
write(Rec(i));
readln
end.
Листинг А.8 – Программа косвенная рекурсия на языке Pascal
uses crt;
{основная функция}
function Prost(n:longint):boolean;
{вспомогательная, определяет есть ли делители у числа кроме самого и 1}
function Kratn(a,b:longint):boolean;
begin
if b<=1 then exit;{1 и 0 не считаем, это условие выхода из рекурсии}
Kratn:=(a mod b <>0)and Kratn(a,b-1);
{если не делится на данное и меньше его на 1 число, смотрим следующее}
end;
begin
Prost:=Kratn(n,n-1);{если нет делителей-простое}
end;
var m:longint;
begin
clrscr;
write('M=');
readln(m);
if Prost(m) then write('Prostoe!')
else write('No!');
readln
end.
Листинг А.9 – Программа бинарный поиск на языке Pascal
Program 123;
Const n = 10;
Var
i,min : integer;
k : array[1..n] of integer;
Begin
For i := 1 To n Do {Zapolnenie massiva}
Begin
Writeln('Vvedite ',i,' element:');
Readln(K[i])
End;
min := k[1];
For i := 2 To n Do {Poisk minimalnogo}
if k[i] < min Then min := k[i];
For i := 1 To n Do {Kratnost' elementov}
If (k[i] mod min) = 0 Then Writeln(i);
End.
Листинг А.10– Программа сортировка включением на языке Pascal
uses crt;
var ax,c:array [1..100]of integer;
n,k,i,j,p,b:integer;
begin
clrscr;
randomize;
write('n=');readln(n);
write('k=');readln(k);
writeln('Исходный массив АX:');
for i:=1 to n do
begin
ax[i]:=random(50)-10;
write(ax[i]:4);
end;
writeln;
writeln('Массив C:');
for i:=1 to k do
begin
c[i]:=random(50)-10;
write(c[i]:4);
end;
writeln;
for i:=1 to k do
begin
n:=n+1;
ax[n]:=c[i];
end;
writeln('Объединенный массив:');
for i:=1 to n do
write(ax[i]:4);
writeln;
for i:=2 to n do
begin
b:=ax[i];
j:=1;
while b>ax[j] do inc(j);
for p:=i-1 downto j do ax[p+1]:= ax[p];
ax[j]:=b;
end;
writeln('Объединенный отсортированный массив:');
for i:=1 to n do
write(ax[i]:4);
writeln;
b:=ax[1];
ax[1]:=ax[n];
ax[n]:=b;
writeln('Обмен максимального и минимального:');
for i:=1 to n do
write(ax[i]:4);
readln
end.
Листинг А.11– Программа обменные сортировки на языке Pascal
Прога кривая как не знаю что, так что не заню что с ней и делать-то..
uses crt;
const max=100;
var ax,c:array[1..max] of integer;
n,k,i,j,pp:byte;
x:integer;
begin
clrscr;
randomize;
repeat
write('Размер массива AX до ',max div 20,' n=');
readln(n);
until n in [1..max div 2];
writeln('Исходный массив A:');
for i:=1 to n do
begin
ax[i]:=random(20)-9;
write(ax[i]:3);
end;
writeln;
writeln;
repeat
write('Размер массива C до ',max div 20,' k=');
readln(k);
until k in [1..max div 2];
writeln('Исходный массив C:');
for i:=1 to k do
begin
c[i]:=random(20)-9;
write(c[i]:3);
end;
writeln;
writeln;
for i:=1 to k do
begin
n:=n+1;
ax[n]:=c[i];
end;
writeln('Объединение массивов AX+C');
for i:=1 to n do
write(ax[i]:3);
writeln;
writeln;
for i:=1 to n-1 do//сортировка прямым обменом
for j:=i+1 to n do
if ax[i]>ax[j] then
begin
x:=ax[i];
ax[i]:=ax[j];
ax[j]:=x;
end;
writeln('Отсортированный массив:');
for i:=1 to n do
write(ax[i]:3);
writeln;
writeln;
if ax[n]<=0 then write('В массиве А нет положительных элементов')
else
begin
i:=1;
while ax[i]<=0 do//пока не положительные, считаем
i:=i+1;
pp:=i;
writeln('Первый минимальный из положительных=',ax[pp],' имеет номер=',pp);
end;
readln
end.
Листинг А.12– Программа сортировка разделением на языке Pascal
Листинг А.13– Программа обработка динамических массивов на языке Pascal
Uses Crt;
Type massiv=array[1..10] of real;
Var
i:integer;
b:massiv; PtrMas:^massiv;
Begin
clrscr; randomize;
Writeln('Элементы массива : ');
{Заполнить массив случайными значениями+вывод на экран}
for i:=1 to 10 do begin b[i]:=100*random; write(b[i]:7:2); end;
{Присвоить указателю PtrMas адрес начала размещения массива в памяти}
PtrMas:=@b;
{Напечатать значения второй половины элементов массива}
writeln(#13#10,#13#10,'Значения второй половины элементов массива');
for i:=6 to 10 do write(ptrmas^[i]:7:2);
{Присвоить указателю адрес 10-го элемента}
PtrMas:=@b[10];
PtrMas:=Ptr(Seg(b[9]),Ofs(b[9])+ SizeOf(real));
{Ptr- преобразует базовый адрес сегмента и смещения в значение типа указатель}
Writeln(#13#10,#13#10,'Значение 10-го элемента: ',PtrMas^[1]:7:2);
Readkey;
end.
Листинг А.14– Программа oрганизация списков на языке Pascal
Листинг А.15– Программа модуль GRAPH на языке Pascal
Листинг А.16– Программа объектно-ориентированное программирование на языке Pascal
Приложение Б
