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

[ виправити ] текст може містити помилки, будь ласка перевіряйте перш ніж використовувати.

скачати

Федеральне агентство з освіти
Державна освітня установа вищої професійної освіти
Південно-Уральський державний університет
Приладобудівний факультет
Кафедра «Електронно-Обчислювальні машини»
Курсова робота
за курсом ПЯВУ
Виконала: студентка
групи ПС-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;

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

початок
"Введіть прізвище"
fam
A: Iнач = 0 Iкон = 100; f, e, n, kod, j, k, x, fam
F = true
E = Length (fam)
I = 1
Val (fam [i], n, kod)
Kod = 0
F = false
I = I +1
I = e
та
немає
F = false
немає
та
немає
та


Невірно введіть прізвище
Кількість літер у прізвищі
е
Введіть масив з е чисел
I = 1
I = I +1
A [i]
I = e
Сортування Масиву
I = 2
J = e
a [J-1]> a [j]
немає
та
та
немає


X = a [j-1]
a [j-1] = a [j]
a [j] = x
J = e-1
J = I
I = I +1
I кон = Iнач
Висновок Масиву
кінець
немає
та
та
немає



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


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.
Додати в блог або на сайт

Цей текст може містити помилки.

Програмування, комп'ютери, інформатика і кібернетика | Курсова
17кб. | скачати


Схожі роботи:
Складання програм для вирішення задач на мові програмування Turbo Pascal
Розробка в середовищі Turbo Pascal програми сортування елементів рядків матриці
Записи у мові Turbo Pascal
Файли в мові Turbo Pascal
Основні відомості про алгоритмічну мову Turbo Pascal Графіка Pascal
Скласти програму навчання роботі з клавіатурою
Turbo Pascal
Оператори Turbo Pascal 7
Мова програмування Turbo Pascal
© Усі права захищені
написати до нас