Автор работы: Пользователь скрыл имя, 20 Декабря 2012 в 14:20, курсовая работа
В любой вычислительной системе память относится к таким ресурсам, которых всегда не хватает. Управление памятью - одна из главных забот программиста, так как для него очень важно создавать программы, эффективно использующие память, ведь во время выполнения программы память необходима для следующих элементов программ и данных:
• сама программа пользователя;
• системные программы времени выполнения, которые осуществляют вспомогательные действия при работе программы пользователя;
Аннотация - 2 -
Введение - 5 -
Глава I. Теоретическая часть - 8 -
1. Указатели. Описание указателей - 8 -
1.1. Указатели и адреса - 8 -
1.2. Описание указателей - 11 -
2. Списки - 13 -
2.1 Линейные однонаправленные списки - 13 -
2.2 Двунаправленные списки - 22 -
2.3 Циклические списки - 23 -
3. Очереди и стеки - 27 -
3.1 Очередь на базе списка - 27 -
3.2 Создание (очистка) очереди - 28 -
3.3 Проверка очереди на пустоту - 28 -
3.4 Включение элемента в очередь - 29 -
3.5 Выбор элемента из очереди - 30 -
3.6 Стек на базе списка - 32 -
3.7 Создание (очистка) стека - 33 -
3.8 Проверка стека на пустоту - 33 -
3.9 Занесение элемента в стек - 34 -
3.10 Выбор элемента из стека - 35 -
4. Двоичные деревья - 43 -
4.1 Поиск элемента в дереве - 44 -
4.2 Включение элемента в дерево - 45 -
4.3 Удаление элемента дерева - 50 -
4.4 Вывод элементов дерева - 53 -
Глава II. Практическая часть - 56 -
1-Задача 1. Программа «Калькулятор» - 56 -
2-Задача2. Выполнить сортировку по латинскому алфавиту - 60 -
Приложения - 63 -
Список литературы - 65 -
else
begin
new( T1 );
T1^.Elem:= T^.Elem;
CopyTree( T^.Left, T1^.Left );
CopyTree( T^.Right, T1^.Right )
end
end;
Постановка задачи. Составить программу калькулятор.
Листинг программы
program Kalkulator;
var
M:array[1..50] of string;
j,i,n:integer;
s,s1,s2,s3:string;
x,y:real;
begin
writeln('BBeDi OPeRAciy');
readln(s);
n:=length(s);
for i:=0 to n-1 do
begin
M[i]:=copy(s,i,1);
if (m[i]='+')or(m[i]='-')or(m[i]=
end;
s1:=copy(s,0,j-1);
s2:=copy(s,j,1);
s3:=copy(s,j+1,n);
val(s1,x,n);
val(s3,y,n);
if s2='+' then writeln(x+y:4:1);
if s2='-' then writeln(x-y:4:1);
if s2='*' then writeln(x*y:4:1);
if s2='/' then writeln(x/y:4:1);
readln;
end.
Блок-схема
Пояснение к блок-схеме
№ блока |
Назначение |
1 |
Начало программы |
2 |
Ввод/вывод данных |
3 |
Выполнение операции N:=length(s) |
4 |
Цикл i:=0 to n-1 |
5 |
Тело цикла, выполнение операции M[i]:=copy(s,i,1) |
6 |
Тело цикла, условие (m[i]=’+’) or (m[i]=’-‘) or (m[i]=’*’) or m[i]=’/’) |
7 |
Тело цикла выполнение операции j:=i |
8 |
Выполнение операции s1:=copy (s,o,j-1); s2:=copy (s,j,1); s3:=copy (s,j+1,n) |
9 |
Выполнение операции val(s1,x,n); val(s3,y,n) |
10 |
Блок условия s2=’+’ |
11 |
Ввод/вывод данных x+y |
12 |
Блок условия s2=’-‘ |
13 |
Ввод/вывод данных x-y |
14 |
Блок условия s2=’*’ |
15 |
Ввод/вывод данных x*y |
16 |
Блок условия s2=’/’ |
17 |
Ввод/вывод данных x/y |
18 |
Конец программы |
Протокол программы
BBeDi OPeRaciy
56*9
504,0
Постановка задачи. Составить программу которая, сортирует буквы латинского алфавита по алфавиту.
Листинг программы
program Alfavit;
var
M:array[1..50] of string;
j,i,n:integer;
b:boolean;
s,tmp:string;
begin
writeln('BBeDu TekcT');
readln(s);
n:=length(s);
for i:=0 to n-1 do
begin
M[i]:=copy(s,i,1);
end;
b:=true;
while b do
begin
b:=false;
for i:=1 to n-1 do
begin
if m[i] > m[i+1] then
begin
tmp:= m[i];
m[i]:=m[i+1];
m[i+1]:=tmp;
b:=true;
end;
end;
end;
for i:=0 to n-1 do begin;
write(m[i],' ');
end;
readln;
end.
Блок-схема
Пояснение к блок-схеме
№ блока |
Назначение |
1 |
Начало программы |
2 |
Ввод/вывод данных n:=length(s) |
3 |
Цикл i:=0 to n-1 |
4 |
Тело цикла M:=copy(s,i,1) |
5 |
Выполнение операции b:=true |
6 |
Выполнение операции b:=false |
7 |
Цикл i:=1 to n-1 |
8 |
Тело цикла, условие m[i]>m[i+1] |
9 |
Выполнение операции tmp:=m[i]; m[i]:=m[i+1]; m[i+1]:=tmp; b:=true |
10 |
Цикл i:=o to n-1 |
11 |
Ввод/вывод данных m[i] |
12 |
Конец программы |
Протокол программы
BBeDu TekcT
abrakadabra
aaaaabbdkr
Рис. 1. Линейный список (связанный список)
Рис. 2. Двунаправленный список
Рис. 3. Однонаправленный циклический список.
Рис. 4. Двунаправленный циклический список.
Рис. 5. Организация дека на основе линейного списка.
Рис. 6. Организация стека на основе линейного списка.
Рис. 7. Представление бинарного дерева в виде списковой структуры.
Информация о работе Инструменты и приборы для поиска и устранения неисправностей ПК