Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
отчёт ОАиП вар.20.doc
Скачиваний:
7
Добавлен:
01.05.2025
Размер:
705 Кб
Скачать
☆

Литература

  1. Багласова Т.Г. Методические указания по оформлению курсовых и дипломных работ. - Мн.: ТБП, 2006

  2. Грибанов В.П. и др. Основы алгоритмизации и программирование. - М.: Бином, 1999

  3. Культин Н.Б. Программирование в Turbo Pascal и Delphi. 2-ое изд. переработанное и дополненное. - С-Пб: БХВ-Петербург, 2008

  4. Леонтьев В.П. Новейшая энциклопедия персонального компьютера. - М.: ОЛМА-ПРЕСС, 2002

  5. Фаронов В.В. Delphi. Программирование на языке высокого уровня. - С-Пб: Питер, 2005

  6. ГОСТ 2.106-96. ЕСКД. Текстовые документы

  7. ГОСТ 19.401-2000. ЕСПД. Текст программы

  8. ГОСТ 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

Приложение Б