Программирование на языках высокого уровня
Написание программы нахождения минимального по значению элемента списка. Разработка блок-схемы алгоритма. Программа циклического сдвига элементов списка влево на одну позицию. Реализация сортировки массива методом пузырьковой сортировки по возрастанию.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | контрольная работа |
Язык | русский |
Дата добавления | 18.03.2012 |
Размер файла | 1,3 M |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru/
14
Задание № 1
Постановка задачи
Написать программу нахождения минимального по значению элемента списка
Блок-схема алгоритма
Размещено на http://www.allbest.ru/
14
Текст программы
{программа нахождения минимального элемента списка}
{автор Хайдаршина К.С. }
program FindMin;
uses Spisok, Crt; {модуль Spisok - для работы со списками}
var
S1, V1 : U;
A : BT;
I, N : Byte;
begin
ClrScr;
Randomize;
N := 1 + Random(20);
S1 := nil;
A := -100 + Random(201);
V_Nachalo(S1, A);
V1 := S1;
for I := 2 to N do
begin
A := -100 + Random(201);
V_Spisok(V1, A);
V1 := V1^.Next
end;
WriteLn('Исходный список: ');
Print(S1);
V1 := S1;
A := V1^.Inf;
while V1 <> nil do
begin
V1:= V1^.Next;
if V1^.Inf < A then A := V1^.Inf;
end;
Ochistka(S1);
WriteLn('Минимальный элемент: ', A);
Write('Нажмите любую клавишу');
ReadKey;
end.
Контрольный пример
Задание № 2
Постановка задачи
Написать программу удаления из списка элементов с четными номерами
Блок-схема алгоритма
Размещено на http://www.allbest.ru/
14
Текст программы
{программа удаления из списка элементов с четными номерами}
{автор Хайдаршина К.С. }
program DelElem;
uses Spisok, Crt;
var
S1, V1, V2 : U;
A : BT;
I, N : Byte;
begin
ClrScr;
Randomize;
N := 1 + Random(20);
S1 := nil;
A := -100 + Random(201);
V_Nachalo(S1, A);
V1 := S1;
for I := 2 to N do
begin
A := -100 + Random(201);
V_Spisok(V1, A);
V1 := V1^.Next
end;
WriteLn('Исходный список: ');
Print(S1);
I := 1;
V1 := S1;
A := V1^.Inf;
while V1 <> nil do
begin
Inc(I);
if (I mod 2) = 0 then
begin
Iz_Spiska(V1, A);
end else V1:= V1^.Next;
end;
WriteLn('Преобразованный список без четных номеров: ');
Print(S1);
Ochistka(S1);
Write('Нажмите любую клавишу');
ReadKey;
end.
Контрольный пример
Задание № 3
Постановка задачи
Написать программу циклического сдвига элементов списка влево на одну позицию.
Блок-схема алгоритма
Размещено на http://www.allbest.ru/
14
Текст программы
{Программа циклического сдвига элементов списка влево на одну позицию}
{автор Хайдаршина К.С. }
program Sdvig;
uses Spisok, Crt;
var
S1, V1, V2 : U;
A : BT;
N, I : Byte;
begin
ClrScr;
Randomize;
N := 1 + Random(20);
S1 := nil;
A := -100 + Random(201);
V_Nachalo(S1, A);
V1 := S1;
for I := 2 to N do
begin
A := -100 + Random(201);
V_Spisok(V1, A);
V1 := V1^.Next
end;
WriteLn('Исходный список: ');
Print(S1);
V1 := S1;
A := V1^.Inf;
repeat
V1^.Inf := V1^.Next^.Inf;
V1:= V1^.Next;
until V1^.Next = nil;
V1^.Inf := A;
WriteLn('Преобразованный список со сдвигом элементов влево на одну позицию: ');
Print(S1);
Ochistka(S1);
Write('Нажмите любую клавишу');
ReadKey;
end.
Контрольный пример
Задание № 4
Постановка задачи
Даны 2 текстовых файла размером не более 64 Кб, содержащие действительные числа, по одному в каждой строке. Написать программу, формирующую два списка, заполняя их числами из файлов. Получить новый список, значения каждого из элементов которого, равны сумме значений соответствующих элементов исходных списков.
Текст программы
{Даны 2 текстовых файла размером не более 64 Кб, содержащие действительные
числа, по одному в каждой строке. Программа формирует два списка, заполняя
чилами из файлов. Формирует новый список, значения каждого из элементов которого,
равны сумме значений соответствующих элементов исходных списков
автор Хайдаршина К.С. }
program Spiski;
uses Crt;
const
cF1 = 'REALT1.txt';
cF2 = 'REALT2.txt';
type
pList= ^tComp;
tComp = record
data: Real;
next: pList
end;
var
pList1, pList2, pList3: pList;
p1, p2, p3, z: pList;
A : Real;
I : Integer;
{считывает список из файла}
procedure ReadF(FName : string; var pBegin: pList);
var
T : Text;
p, z : pList;
begin
Assign(T, FName);
Reset(T);
New(p);
pBegin := nil;
while not Eof(T) do
begin
ReadLn(T, A);
New(z);
if pBegin = nil then pBegin := z;
z^.data := A;
z^.next := nil;
p^.next := z;
p := z;
end;
Close(T);
end;
procedure Free(var pF :pList);
var
p, z : pList;
begin
p := pF;
repeat
z := p^.next;
Dispose(p);
p := z;
until p=nil;
pF := p;
end;
begin
ReadF(cF1, pList1); {Список из первого файла}
ReadF(cF2, pList2); {Список из второго файла}
p1 := pList1;
p2 := pList2;
New(z);
pList3 := nil;
repeat
New(p3);
if pList3 = nil then pList3 := p3;
p3^.data := p1^.data+p2^.data;
p3^.next := nil;
z^.next := p3;
z := p3;
p1 := p1^.next;
p2 := p2^.next;
until (p1=nil) or (p2=nil);
{вывод результатов}
ClrScr;
p1 := pList1;
p2 := pList2;
p3 := pList3;
repeat
WriteLn(p1^.data, ' ', p2^.data, ' сумма = ', p3^.data);
p1 := p1^.next;
p2 := p2^.next;
p3 := p3^.next;
until (p3=nil);
Free(pList1);
Free(pList2);
Free(pList3);
WriteLn('Нажмите любую клавишу');
ReadKey
end.
Контрольный пример
Задание № 5
программа алгоритм сортировка массив
Постановка задачи
Создать программу, реализующую сортировку массива методом пузырьковой сортировки.
{Сортировка по возрастанию методом пузырька (динамическая структура) }
program Sortirov;
uses Crt;
type
PList= ^Comp;
Comp = record
d: Integer;
next, prev: PList
end;
var
pBegin, pEnd, p, z: PList;
n, i : Byte;
a, a_max : Integer;
{сортировка Пузырьком, меняются только указатели}
procedure SortBublLink(var nach,ends:pList);
var
tmp,pocle1,rab:pList;
begin
rab:=nach;
while rab<>nil do
begin
tmp:=rab^.next;
while tmp<>nil do
begin
if tmp^.d<rab^.d then
begin
pocle1:=tmp^.next;
if rab^.next=tmp then
begin
if tmp^.next<>nil then
tmp^.next^.prev:=rab;
tmp^.next:=rab;
tmp^.prev:=rab^.prev;
if tmp^.prev<>nil then
tmp^.prev^.next:=tmp;
rab^.prev:=tmp;
rab^.next:=pocle1;
end
else
begin
if rab^.prev<>nil then
rab^.prev^.next:=tmp;
tmp^.prev^.next:=rab;
if tmp^.next<>nil then
tmp^.next^.prev:=rab;
rab^.next^.prev:=tmp;
tmp^.next:=rab^.next;
rab^.next:=pocle1;
pocle1:=rab^.prev;
rab^.prev:=tmp^.prev;
tmp^.prev:=pocle1;
end;
if rab=nach then
begin
nach:=tmp;
nach^.prev:=nil;
end;
if tmp=ends then
begin
ends:=rab;
ends^.next:=nil
end;
pocle1:=rab;
rab:=tmp;
tmp:=pocle1;
end;
tmp:=tmp^.next;
end;
rab:=rab^.next;
end;
end;
begin
ClrScr;
Randomize;
WriteLn('Введите количество элементов в списке:');
ReadLn(n);
WriteLn('Введите максимальный по модулю элемент в списке:');
ReadLn(a_max);
pBegin := nil;
pEnd := nil;
WriteLn('Исходный список:');
for i := 1 to n do
begin
New(z);
if pBegin = nil then pBegin := z;
z^.D := -1*Abs(a_max)+2*Random(a_max);
Write(z^.D, ' ');
z^.next := nil;
p^.next := z;
z^.prev := p;
p := z;
end;
pEnd := p;
SortBublLink(pBegin, pEnd);
WriteLn;
WriteLn('Отсортированный список по возрастанию:');
p := pBegin;
repeat
Write(p^.d, ' ');
p := p^.next
until p = pEnd;
WriteLn(p^.d);
{очистка памяти}
p := pBegin;
repeat
z := p^.next;
Dispose(p);
p := z;
until p=nil;
Write('Нажмите любую клавишу');
ReadKey
end.
Контрольный пример
Размещено на Allbest.ru
Подобные документы
Составление программы сортировки по возрастанию массив из 20 шестнадцатеричных чисел, просматривающей все исходные числа во внешней памяти и выбирающей самое большое число. Блок-схема алгоритма работы программы. Таблица команд и число их выполнения.
курсовая работа [23,1 K], добавлен 24.05.2015Краткое описание языка программирования С++. Алгоритм линейного выбора элемента, методов минимального (максимального) элемента и челночной сортировки. Анализ и разработка приложения, организующего сортировку массива данных пятью методами сортировки.
реферат [614,8 K], добавлен 12.04.2014Исследование программного средства для управления базой данных с информацией о фильмах. Составление алгоритма удаления и добавления элемента в указанное место двунаправленного списка. Характеристика поиска, вывода на экран и сортировки элементов списка.
курсовая работа [94,5 K], добавлен 23.09.2011Методы реализации алгоритмов сортировки и алгоритмов поиска на языках программирования высокого уровня. Программирование алгоритмов сортировки и поиска в рамках создаваемого программного средства на языке Delphi. Создание руководства пользователя.
курсовая работа [1,7 M], добавлен 16.04.2012Составление алгоритма сортировки линейной вставкой. Понятие однонаправленного циклического списка символов, реализация процедуры подсчета суммы элементов и составление алгоритма. Прямое представление дерева, алгоритм работы с ним на абстрактном уровне.
контрольная работа [32,8 K], добавлен 20.01.2012Понятие алгоритма и сортировки. Способы и алгоритмы сортировки массивов. Быстрая сортировка Хоара. Описание алгоритма "быстрой сортировки". Реализация на языке программирования. Анализ наихудшего разбиения. Вероятностные алгоритмы быстрой сортировки.
курсовая работа [291,5 K], добавлен 22.03.2012Модификация и сравнения двух текстовых файлов. Программа, написанная на языке программирования Cи и работоспособна на IBM совместимых компьютерах. Псевдографический и графический интерфейсы. Анализ программы методом сортировки одномерного массива.
курсовая работа [116,2 K], добавлен 21.02.2008Разработка программы, сортирующей массивы данных различного типа методом подсчета. Основные шаги алгоритма сортировки, ее свойства и модификация подсчетом. Целесообразность применения сортировки подсчетом. Условия эффективности алгоритма сортировки.
лабораторная работа [438,5 K], добавлен 16.07.2015Анализ основных алгоритмов внутренней сортировки массивов данных, сравнение сложности их реализации и производительности. Сортировка пузырьком, методами вставок, выбора, методом Шелла, быстрая сортировка. Операция разделения массива внутренней сортировки.
курсовая работа [161,7 K], добавлен 17.12.2015Разработка программы для осуществления сортировки данных методами "Выбора" с использованием языка C# и Visual Studio 2012. Плавный метод сортировки. Основные фазы сортировки во внутреннем представлении пирамиды. Программа сортировки методами выбора.
курсовая работа [637,6 K], добавлен 29.11.2014