- •В.П. Кондратьев языки программирования
- •210700 «Инфокоммуникационные технологии и системы связи»
- •Содержание
- •Пояснительная записка
- •Перечень практических занятий
- •Практическая работа 1 Структуры языка программированиия Pascal
- •Практическая работа 2 Структуры языка программированиия Pascal
- •Практическая работа 3 Визуальная среда разработки программ delphi
- •Практическая работа 4 Визуальная среда разработки программ delphi
- •Практическая работа 5 Основные алгоритмы обработки данных.
- •Практическая работа 6 Методы вычислений.
- •Практическая работа 7 Визуальное программирование
- •Практическая работа 8 Пакет математических вычислений maple.
- •Практическая работа 9 Пакет математических вычислений maple.
- •Литература
Перечень практических занятий
Практические работы |
Количество часов |
Структуры языка программирования Pascal |
4 |
Визуальная среда разработки программ DELPHI |
4 |
Основные алгоритмы обработки данных |
2 |
Методы вычислений |
2 |
Визуальное программирование |
2 |
Пакет математических вычислений MAPLE |
4 |
Итого |
18 |
Все материалы, необходимые для выполнения практических работ предоставляются студентам в электронном виде на сетевых ресурсах
“stud\share\kaf_ISiT\Яз_прог_бакалавры”
Практическая работа 1 Структуры языка программированиия Pascal
Интегрированная среда Паскаль АВС. Настройки среды. Меню системы. Трансляция и запуск программ. Составление программ обработки массивов.
Цель работы:
Ознакомиться с приемами работы в интегрированной среде Паскаля АВС, с разделами меню, режимами настроек меню, с окнами редактирования, справки, отладки.
Порядок выполнения задания
Установить на рабочем столе ярлык для вызова среды.
Запустить оболочку, ознакомиться с пунктами главного меню.
Изучить элементы окон редактирования: полосы прокрутки, строка статуса и др.
Освоить вызов справки по пунктам меню, по ключевым словам языка Паскаль. Просмотреть примеры программ в справочной системе, выполнить их.
Освоить ввод данных с клавиатуры с помощью оператора READ и вывод информации на экран с помощью оператора WRITE (WRITELN).
Написать программу построения массива целых чисел (посредством датчика RANDOM), расположенных в заданном интервале (A, B).
Подключить к программе консольный модуль CRT, применить его функции для очистки экрана, для ввода символов с клавиатуры.
Написать операторы, переставляющие элементы массива в обратном порядке (за основу программы взять приведенный ниже образец выполнения задания).
Модифицировать построенную программу для выделения из полученного массива массивов отрицательных и положительных чисел.
Образец выполнения задания:
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
Основные структуры. Одномерные и двумерные массивы. Сортировка.
Цель работы:
Ознакомиться с алгоритмами: сортировки по убыванию и возрастанию (для числовых элементов массива) и аналогичных алгоритмов сортировки в алфавитном порядке (для текстовых данных), с алгоритмами поиска элемента в упорядоченном массиве (метод бинарного поиска), с алгоритмами обработки двумерных массивов.
Порядок выполнения задания
На основе учебной программы линейной сортировки массива целых чисел по убыванию построить программы сортировки массива целых чисел по возрастанию, массива строк в алфавитном порядке.
Рассмотреть алгоритм сортировки методом «пузырька». Модифицировать программу для реализации этого метода.
Изучить метод быстрой сортировки (метод Хоара) на примере программы Quick_sort (в папке заданий для работы № 2.
Написать программу вычисления максимальных по строке элементов двумерного массива, используя для этого в качестве заготовки учебную программу “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.
