Программирование на языке Паскаль в среде Турбо Паскаль
Отчет по практике - Компьютеры, программирование
Другие отчеты по практике по предмету Компьютеры, программирование
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],