Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
210700_МУ_ПР_ЯП.doc
Скачиваний:
2
Добавлен:
01.07.2025
Размер:
539 Кб
Скачать
☆

Перечень практических занятий

Практические работы

Количество часов

Структуры языка программирования Pascal

4

Визуальная среда разработки программ DELPHI

4

Основные алгоритмы обработки данных

2

Методы вычислений

2

Визуальное программирование

2

Пакет математических вычислений MAPLE

4

Итого

18

Все материалы, необходимые для выполнения практических работ предоставляются студентам в электронном виде на сетевых ресурсах

“stud\share\kaf_ISiT\Яз_прог_бакалавры”

Практическая работа 1 Структуры языка программированиия Pascal

Интегрированная среда Паскаль АВС. Настройки среды. Меню системы. Трансляция и запуск программ. Составление программ обработки массивов.

Цель работы:

Ознакомиться с приемами работы в интегрированной среде Паскаля АВС, с разделами меню, режимами настроек меню, с окнами редактирования, справки, отладки.

Порядок выполнения задания

  1. Установить на рабочем столе ярлык для вызова среды.

  2. Запустить оболочку, ознакомиться с пунктами главного меню.

  3. Изучить элементы окон редактирования: полосы прокрутки, строка статуса и др.

  4. Освоить вызов справки по пунктам меню, по ключевым словам языка Паскаль. Просмотреть примеры программ в справочной системе, выполнить их.

  5. Освоить ввод данных с клавиатуры с помощью оператора READ и вывод информации на экран с помощью оператора WRITE (WRITELN).

  6. Написать программу построения массива целых чисел (посредством датчика RANDOM), расположенных в заданном интервале (A, B).

  7. Подключить к программе консольный модуль CRT, применить его функции для очистки экрана, для ввода символов с клавиатуры.

  8. Написать операторы, переставляющие элементы массива в обратном порядке (за основу программы взять приведенный ниже образец выполнения задания).

  9. Модифицировать построенную программу для выделения из полученного массива массивов отрицательных и положительных чисел.

Образец выполнения задания:

Program massiv;

Uses CRT;

Const

n=10;

Var

M: array[1..n] of integer;

i, j :integer;

A,B: integer;

begin

clrscr;{очистка экрана}

randomize; {установка датчика случайных чисел в исходное состояние со случайным начальным значением}

WRITELN('задайте через пробел целые числа: границы интервала A, B ');

read(A,B);

{формируем массив и печатаем в два столбика вместе с номерами }

for i:=1 to n do

begin

WRITE(i:4);

M[i]:=A+RANDOM(B-A);

WRITELN(M[i]:6);

end;

{Перестановка элементов массива}

{Рассмотреть случаи четного и нечетного n}

for i:=1 to n div 2 do {цикл до середины массива}

begin

j:=M[i];

M[i]:=M[n-i+1]; {понять смысл индексов!!!}

M[n-i+1]:=j;

end;

for i:=1 to n do

WRITELN(i:4,M[i]:8);

readln;

Практическая работа 2 Структуры языка программированиия Pascal

Основные структуры. Одномерные и двумерные массивы. Сортировка.

Цель работы:

Ознакомиться с алгоритмами: сортировки по убыванию и возрастанию (для числовых элементов массива) и аналогичных алгоритмов сортировки в алфавитном порядке (для текстовых данных), с алгоритмами поиска элемента в упорядоченном массиве (метод бинарного поиска), с алгоритмами обработки двумерных массивов.

Порядок выполнения задания

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

  2. Рассмотреть алгоритм сортировки методом «пузырька». Модифицировать программу для реализации этого метода.

  3. Изучить метод быстрой сортировки (метод Хоара) на примере программы Quick_sort (в папке заданий для работы № 2.

  4. Написать программу вычисления максимальных по строке элементов двумерного массива, используя для этого в качестве заготовки учебную программу “dim2” и программу линейной сортировки, в которой определены тип данных и функция num_max_elem, вычисляющая в одномерном массиве позицию максимального элемента (номер строки и номер столбца).

Программа линейной сортировки массива по убыванию:

program sortlin;

uses CRT;

const

N=10;

B:array[1..N] of integer=(19,2,60,33,3,6,9,52,23,44);

type

chisla=array [1..n] of integer;

var

a:chisla;

i:integer;

k:integer;

{=============================================}

procedure pseudo(m: integer; a: chisla);{псевдографика}

{процедура выводит на экран псевдографическое изображение массива чисел в виде строчек из a[i] символов как условных величин числа}

var

i,k,j:integer;

begin

for i:=1 to m do

begin

for j:=1 to 2 do

begin

writeln;

for k:=1 to a[i] do

write('W');

end;

writeln(a[i]:3);

end;

readln;

end;

{=============================================}

procedure lin_sort(N:integer;var mass:chisla);

var

k,j:integer;

numer:integer;

function num_max_elem( num:integer):integer;

var

k:integer;

maxel:integer;

begin

maxel:=mass[num];

for k:=num+1 to N do

if mass[k]>maxel then

begin

maxel:=mass[k];

num:=k;

end;

num_max_elem:=num;

end;

procedure swap(var x,y:integer);

var

z:integer;

begin

z:=x;x:=y;y:=z;

end;

begin

for i:=1 to N-1 do

begin

numer:=num_max_elem(i);

if numer<>i then swap(mass[i],mass[numer]);

pseudo(N,mass);

{readln;}

end;

end;

{==============основная программа=============================}

begin

a:=chisla(B);

pseudo(n,a);

lin_sort(n,a);

{ readln;}

end.

Заготовка программы обработки двумерного массива.

Program dim2;

Uses CRT;

const

N=10;M=12;

type

chisla=array [1..n] of integer;

var

Mass2: array[1..M] of chisla;{двумерный массив как массив строчек}

Num:chisla;{массив номеров максимальных по строкам}

{здесь объявить переменные, необходимые для работы программы}

function num_max_elem( num:integer; mass: chisla): integer;

var

k:integer;

maxel:integer;

begin

maxel:=mass[1];

num:=1;

for k:=num+1 to N do

if mass[k]>maxel then

begin

maxel:=mass[k];

num:=k;

end;

num_max_elem:=num;

end;

begin

clrscr;{очистка экрана}

randomize; {установка датчика в исходное состояние}

WRITELN('задайте через пробел целые числа: границы интервала A, B ');

read(A,B);

{формируем массив и печатаем в виде таблицы по строкам }

for i:=1 to m do

begin

for k:=1 to n do

begin

M[I,k]:=A+RANDOM(B-A);

WRITELN(M[I,k]:6);

end; writeln;

num[k]:= num_max_elem(1,M[I]);{в качестве параметра отдаем строку массива}

end;

{полученный массив номеров максимальных элементов по строкам передаем в процедуру и вычисляем номер максимального элемента в нем}

{эти операторы и оператор печати результата: номер строки и номер столбца написать самостоятельно}

end.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]