Программирование на языке Паскаль в среде Турбо Паскаль

Отчет по практике - Компьютеры, программирование

Другие отчеты по практике по предмету Компьютеры, программирование

ot (w in [1. 2]);.

 

Результат решения задачи представлен на рисунке 4.

 

Рисунок 4 - Результат работы программы в TurboPascal

 

1.4 Структура данных: записи

 

Запись содержит данные о продовольственных и промышленных товарах со следующими реквизитами: наименование товара (тип string), тип товара (тип string), количество (тип integer), цена за единицу (тип integer). Составить программу, выполняющую поиск по типу товара и количеству товара.

 

Листинг - Структуры данных: записи

uses crt;

type tov=record: string;: integer;: string;: char;;=10;: integer;: char;: array [1. Nmax] of tov;: integer;: boolean;enter;: string;;: =1;c3 do begin(: );(1.);(2.);(3. );(c);c of

1: enter;

2: find;;;.

Результат решения задачи представлен на рисунке 5.

 

Рисунок 5 - Результат работы программы в TurboPascal

 

1.5 Модульное программирование

 

В заданном массиве К (N) найти индексы элементов, которые кратны минимальному значению элемента массива.

 

Листинг - Модульное программирование

programpract6;

usescrt; {подключениебиблиотеки}

functionRec (k: integer): longint; {описаниефункции}

begin0;(znachenie=,Rec (n));;

readkey; {задержка экрана}

end.

 

Результат решения задачи представлен на рисунке 6.

 

Рисунок 6 - Результат работы модульное программирование

 

1.6 Прямая и косвенная рекурсия

 

Написать программу с рекурсивной функцией, вычисляющей:

 

.

 

Листинг - Прямая и косвенная рекурсия

Programpr7;

uses crt;n: integer;Koren (n: integer): real;n=1 then Koren: =sqrt (3)Koren: =sqrt (3+Koren (n-1));;;(n=);(n);(Koren (n): 0: 5);

end.

 

Таблица 6 - Результаты выполнения прямой и косвенной рекурсии

Входные данныеВыходные данные32.27493

Результат решения задачи представлен на рисунке 7.

 

Рисунок 7 - Результат работы программы в TurboPascal

 

1.7 Рекурсивные алгоритмы

 

Написать рекурсивную процедуру, переводящую целое число из восьмеричной системы счисления в десятичную.

Для тестирования программы использовались данные, приведённые в таблице 7. Полученные результаты приведены там же.

Таблица 7 - Результаты выполнения линейного алгоритма

Входные данныеВыходные данные2420

Листинг - Рекурсивные алгоритмы;Oct2Num (const aSOct: String; const aWeight, aI: Integer): Integer;: Integer;: = 0;aSOct [aI] of

0: Num: = 0 * aWeight;

1: Num: = 1 * aWeight;

2: Num: = 2 * aWeight;

3: Num: = 3 * aWeight;

4: Num: = 4 * aWeight;

5: Num: = 5 * aWeight;

6: Num: = 6 * aWeight;

7: Num: = 7 * aWeight;;aI > 1 then begin: = Num + Oct2Num (aSOct, aWeight * 8, aI - 1);;Num: = Num;;, S: String;: Integer;(zadaite celoe neotricatelnoe chislo: );(SOct);: = Oct2Num (SOct, 1, Length (SOct));

Writeln (Chislo v 10oi sisteme: );

Writeln (Num);(S);S <> ;.

 

Результат решения задачи представлен на рисунке 8.

 

Рисунок 8 - Результат работы программы в TurboPascal

 

1.8 Бинарный поиск

 

Задан массив AX (N). Добавить массив С (К). Выполнить сортировку включением. В полученном массиве положительные элементы уменьшите вдвое, а отрицательные замените на значения их индексов.

Для тестирования программы использовались данные, приведённые в таблице 8. Полученные результаты приведены там же.

 

Таблица 8 - Результаты выполнения линейного алгоритма

Входные данныеВыходные данные1element2element3element4element5element12533456

Листинг - Бинарный поиск

Programpr7;

usescrt; {подключениебиблиотеки}

Constn = 5; {постоянная}

Var{описание переменных}

i,min: integer;: array [1. n] of integer; {описаниемассива}clrscr; {очисткаэкрана}i: = 1 To n Do {заполнениемассива}(Vvedite , i, element: );(K [i]);: = k [1];i: = 2 To n Do {поискминимального}k [i] < min Then min: = k [i];i: = 1 To n Do {кратностьэлементов}(k [i] mod min) = 0 Then Writeln (i);;

End.

 

Результат решения задачи представлен на рисунке 9.

 

Рисунок 9 - Результат работы программы в TurboPascal

 

1.9 Сортировка влючением

 

Задан массив AX (N). Добавить массив С (К). Выполнить сортировку включением. В полученном массиве положительные элементы уменьшите вдвое, а отрицательные замените на значения их индексов

 

Листинг - Сортировка включением;mas=array [0.100] of integer;i,min,n,m, imn: integer; a,c: mas;Straight_Insertion (n: integer; Var a: mas);,j: integer;: integer;i: =2 To n Do: =a [i]; a [0]: =x; j: =i-1;x<a [j] Do[j+1]: =a [j]; j: =j-1;;[j+1]: =x;; {Straight_Insertion};();(n);i: =1 to n do begin[i]: =random (10) +random (5);;();i: =1 to n do begin(a [i], );;;();(m);i: =1 to m do begin[i]: =random (15) +random (5);;;();i: =1 to n do begin(c [i], );;;i: =1 to m do begin: =n+1;[n]: =c [i];;();i: =1 to n do(a [i], );;;_Insertion (n,a);();i: =1 to n do(a [i], );;;: =a [1];i: =1 to n do begina [i] <min then min: =a [i];;(=,min);;: =0;i: =1 to n do begina [i] mod a [min] =0 then: =i;;: =a [1];();i: =1 to n do(a [i] mod min = 0) then(i: 3);;;.

 

Результат решения задачи представлен на рисунке 10.

 

Рисунок 10 - Результат работы программы в TurboPascal

 

1.10 Обменная сортировка

 

Задан массив AX (N). Добавить массив С (К). Выполнить сортировку включением. В полученном массиве положительные элементы уменьшите вдвое, а отрицательные замените на значения их индексов.

 

Листинг - Сортировка обменнаяmas=array [0.100] of integer;i,min,n,m, imn: integer; a,c: mas;Shaker_Sort (n: word; Var a: mas);j,k,l,r: integer;: integer;: =2; r: =n; k: =n;j: =r DownTo l Doa [j-1] >a [j] Then: =a [j-1];[j-1]: =a [j];[j]: =x;: =j;;: =k+1;j: =l To r Doa [j-1] >a [j] Then: =a [j-1];[j-1]: =a [j];[j]: =x;: =j;;: =k-1;l>r; {Shaker_Sort};();(n);i: =1 to n do begin[i]: =random (10) +random (5);;();i: =1 to n do begin(a [i],