Составить программу на языке Turbo Pascal для параллельной сортировки чисел

4564
знака
0
таблиц
4
изображения

Федеральное агентство по образованию

Государственное образовательное учреждение высшего профессионального образования

Южно-Уральский государственный университет

Приборостроительный факультет

Кафедра «Электронно-Вычислительные машины»

Курсовая работа

по курсу ПЯВУ

Выполнила: студентка

группы ПС-197 Савельева К.А.

Проверил: Сяськов С.В.

Челябинск 2009


Условие задачи

Составить программу на языке Turbo Pascal для параллельной сортировки множества из n чисел, где n- мощность множества, состоящего из букв фамилии, n>2.


Оглавление

Условие задачи

Описание программы

Схема алгоритма

Текст Программы

Примеры выполнения

Список литературы


Описание программы

Тело программы начинается с цикла for, создающего верхнюю строчку, состоящую из символов:

{ for i:=1 to 35 do

begin

textcolor(1);

write(chr(5));

end; }

где 35- произвольное число, длина строки; τextcolor – процедура, задающая цвет нужному фрагменту программы. Далее оформление создаётся аналогичным образом.

Для начала работы программы вводим фамилию. Она считывается в переменную fam типа string. Затем требуется создать по количеству символов из этой введенной фамилии одномерный массив типа integer. Для этого сначала требуется посчитать количество символом - это легко можно сделать с помощью строковой функции Length: e:=Length(fam), где e-переменная типа integer.

Далее требуется проверить введённую фамилию, на наличие цифр. Для этого используется функция Val: val(fam[i],n,kod). Эту функцию выполняем в цикле for, так как нужно проверить каждый символ в фамилии. Потом делаем проверку переменной kod в условном операторе if:

{for i:=1 to e do

begin

val(fam[i],n,kod);

if kod=0 then

begin

writeln ('neverno vvedena familia')

f:=false; end;}

Если kod=0 значит в нашей фамилии содержится цифра.

Всё выше описанное происходит в цикле repeat, условием выхода которого является f=false. В начале этого цикла мы поднимаем флажок, т.е. f=true. Далее, как описано во фрагменте кода выше, если kod=0 мы опускаем флажок. Это нужно для того, чтобы получилось зацикливание, и пользователь мог, в случае неправильного ввода фамилии, сделать это снова. Если же f=true после прохождения по циклу, цикл завершит свою работу.

После этого цикла создаётся удобный интерфейс, позволяющий пользователю не запутаться в том, что нужно ввести. Далее непосредственно начинается сортировка массива, двумя способами: методом вставки и методом пузырька.

k:=0;

{metod vstavki}

{for i:=2 to e do

begin

x:=a[i];

j:=i-1;

while (x<a[j]) and (j>=1) do

begin

a[j+1]:=a[j];

j:=j-1;

k:=k+1;

if j=0 then goto 1;

end;

1: a[j+1]:=x;

end;}


{puzyrkovyi metod}

for i:=2 to e do

begin

for j:=e downto i do

if a[j-1] > a[j] then

begin

x:=a[j-1];

a[j-1]:=a[j];

a[j]:=x;

end;

end;

  Схема алгоритма





Текст Программы

program kursach1;

uses crt;

var a: array [1..100] of integer;

i,e,n,kod,j,k,x:integer; fam:string; f:boolean;

label 1;

begin

clrscr;

for i:=1 to 35 do

begin

textcolor(1);

write(chr(5));

end;

writeln;

TextColor(1); write(chr(5));

repeat

f:=true;

textcolor(5);

write(' vvedite familiu= ');read(fam);

TextColor(1); write(chr(5));

e:=length(fam);

for i:=1 to e do

begin

val(fam[i],n,kod);

if kod=0 then

f:=false;

end;

if f=false then writeln('neverno vvedena familia') else

until f=true;

Textcolor(4); write(' kol-vo bukv v familii= ',e);

TextColor(1); write(' ',chr(5));

writeln;

write(chr(5));

TextColor(11); write(' vvedite massiv iz ',e,' chisel: ');

TextColor(1); write(chr(5));

writeln;

write(chr(5),' ');

for i:=1 to e do

begin

TextColor(14);

write(i,'-e chislo=');

TextColor(45);

read(a[i]);

TextColor(1);

write(chr(5),' ');

end;

TextColor(15); write(' Isxodnii massive: ');

Textcolor(1); write(chr(5));

writeln;

write(chr(5));

for i:=1 to e do

begin

TextColor(5); write(' ',a[i],' ');

end;

writeln;

Textcolor(1); write(chr(5));

TextColor(15); write(' Otsortirovannii massive:');

TextColor(1); write(' ',chr(5));

writeln;

k:=0;

{metod vstavki}

{for i:=2 to e do

begin

x:=a[i];

j:=i-1;

while (x<a[j]) and (j>=1) do

begin

a[j+1]:=a[j];

j:=j-1;

k:=k+1;

if j=0 then goto 1;

end;

1: a[j+1]:=x;

end;}

{puzyrkovyi metod}

for i:=2 to e do

begin

for j:=e downto i do

if a[j-1] > a[j] then

begin

x:=a[j-1];

a[j-1]:=a[j];

a[j]:=x;

end;

end;

write(chr(5));

For i:=1 to e do

begin

TextColor(5);

write(' ',a[i],' ');

end;

writeln;

for i:=1 to 35 do

begin

textcolor(1);

write(chr(5));

end;

readln;

end.

  Примеры выполнения

 
Список литературы

1.    http://pascal.proweb.kz/

2.    Д. Кнут, Искусство программирования, М.:Мир,1978.

3.    Рейнгольд, Нивергельт, Део, Комбинаторные алгоритмы. Теория и практика, М.:Мир, 1982.


Информация о работе «Составить программу на языке Turbo Pascal для параллельной сортировки чисел»
Раздел: Информатика, программирование
Количество знаков с пробелами: 4564
Количество таблиц: 0
Количество изображений: 4

Похожие работы

Скачать
49877
5
0

... в среде Delphi). Задачи использовались как с данного сайта, так и из других источников – книг и семинарских занятиях по информатике в МГОУ. Курс завершается разработкой игры. Программное обеспечение: свободно распространяемая версия объектно-ориентированной среды программирования Delphi. Методы обучения: метод проектов, лекции, проблемный метод, частично-поисковый метод. Контроль знаний и умений ...

Скачать
668870
13
0

... программе. В данном разделе они перечислены в алфавитном порядке и приводятся с объяснениями. Эти ошибки могут являться следствием случайного затирание памяти программой. Abnormal program termination Аварийное завершение программы Данное сообщение может появляться, если для выполнения программы не может быть выделено достаточного количества памяти. Более подробно оно рассматривается в конце ...

Скачать
225314
2
0

... раза. В силу специфичности информации схемы определения количества информа­ции, связанные с ее содержательной стороной, оказы­ваются не универсальными. Универсальным оказывается алфавитный подход к измерению количества информации. В этом подходе сообщение, представленное в какой-либо знаковой системе, рассматривается как совокупность сообще­ний о том, что заданная позиция в последовательнос­ти ...

Скачать
225204
6
0

... полезно учителю при подготовке рассказа на уроке. В данной публикации сделана попытка выделить тот самый минимум, который ученику необходимо включить в свой ответ на экзамене. Примечания для учеников При ответе надо быть готовым к дополнительным вопросам об обосновании тех или иных утверждений. Например, каковы максимальное и минимальное значения 8-битного целого числа со знаком и почему их ...

0 комментариев


Наверх