- •Министерство образования Российской Федерации Ярославский государственный педагогический университет имени к.Д. Ушинского Лабораторный практикум по языку программирования Pascal Ярославль 2004
- •Лабораторные работы Лабораторная работа №1Знакомство с клавиатурой. Организация работы в среде Турбопаскаль.
- •Задание 1
- •Задание 2
- •Задание 3
- •Задание 4
- •Задание 5
- •Лабораторная работа №2Команды присваивания, ввода и вывода. Составление простейших программ на языке Турбопаскаль.
- •Задание 1
- •Задание 2
- •Задание 3
- •Задание 4
- •Задание 5
- •Лабораторная работа №3Команды ветвления и выбора на языке Турбопаскаль
- •Задание 1
- •Задание 2
- •Задание 3
- •Задание 4
- •Задание 5
- •Лабораторная работа №4Команды ветвления и повторения на языке Паскаль
- •Задание 1
- •Задание 2
- •Задание 3
- •Задание 3
- •Задание 4
- •Задание 5
- •Лабораторная работа №6Циклы
- •Задание 1
- •Задание 2
- •Задание 3
- •Задание 4
- •Задание 5
- •Дополнительные задания
- •Лабораторная работа №7Одномерные массивы
- •Задание 1
- •Задание 2
- •Задание 3
- •Задание 4
- •Задание 5
- •Дополнительные задачи.
- •Лабораторная работа №8Двумерные массивы
- •Задание 1
- •Задание 2
- •Задание 3
- •Задание 4
- •Задание 5
- •Дополнительные задачи.
- •Лабораторная работа №9Работа со строковыми величинами
- •Задание 1
- •Задание 2
- •Задание 3
- •Задание 4
- •Задание 5
- •Дополнительные задания
- •Лабораторная работа №10Обработка литерных величин на языке Турбопаскаль
- •Дополнительные задания
- •Задание 5
- •Лабораторная работа №12Работа с одномерными и двумерными массивами
- •Задание 1
- •Задание 2
- •Лабораторная работа №13Многочлены
- •Задание 1
- •Задание 2
- •Задание 3
- •Задание 4
- •Задание 5
- •Лабораторная работа №14Линейная комбинация векторов
- •Задание 1
- •Задания повышенной трудности
- •Лабораторная работа №15Скалярное произведение векторов
- •Лабораторная работа №16 Простейшие графические операторы
- •Задание 5
- •Задание 6
- •Дополнительные задания.
- •Лабораторная работа n 19 Работа с множествами Задание 1
- •Задание 2-3
- •Задание 4
- •Задание 5
- •Лабораторная работа № 20 Работа с записями
- •Дополнительные залания
- •Задание 3
- •Задание 5
- •Задание 6 (дополнительный балл)
- •Дополнительное задание (до 3 баллов)
- •Задание 5
- •Примерные вопросы к собеседованиям Величина. Команды присваивания, ветвления и выбора.
- •Массивы
- •Литерные переменные
- •Процедуры и функции
- •Графика
- •Датчик случайных величин
- •Множества
- •Динамическая память
- •Деревья
- •Тексты программ для выполнения лабораторных работ Файл primer1.Pas
- •Файл lab10.Pas
- •Файл lab11.Pas
- •Файл List1.Pas
- •Файл List2.Pas
- •Файл lab5.Pas
- •Файл lab6.Pas
- •Примерный список индивидуальных задач
Файл List1.Pas
program upr1;
type vector = array[1..20] of real;
var m,g,s,f,a,b,c,d,p,q:vector;i,j,k,n:integer;l,w,v,x,y,z:real;
function det2(a,b,c,d:real):real;
function det3(a,b,c:vector):real;
procedure input(n:integer;var a:vector);
procedure output(n:integer;var a:vector);
procedure sum(n:integer;a,b:vector; var s:vector);
procedure subtract(n:integer;a,b:vector;var c:vector);
procedure multiply(n:integer;l:real;a:vector;var q:vector);
procedure system2 ( A,B,C:vector;var x,y:real);
procedure system3 ( A,B,C,P:vector;var x,y,z:real);
Файл List2.Pas
program upr1;
type vector = array[1..20] of real;
var a,b,c,d,p,q,m,g,f,h:vector;i,j,k,n:integer;s,l,u,w,v,x,y,z:real;
function det2(a,b,c,d:real):real;
function det3(a,b,c:vector):real;
function scalar(n:integer;a,b:vector):real;
function modulus(n:integer;a:vector):real;
procedure input(n:integer;var a:vector);
procedure output(n:integer;var a:vector);
procedure sum(n:integer;a,b:vector; var s:vector);
procedure subtract(n:integer;a,b:vector;var c:vector);
procedure multiply(n:integer;l:real;a:vector;var q:vector);
procedure angle(n:integer;a,b:vector;var u:real);
procedure vectormult(a,b:vector;var c:vector);
Файл lab5.Pas
program upr; uses crt;
{-----------------описание типов-----------------------}
type st=string[20]; str=string[8];
ocenka=record ekz:array[1..6] of integer; zach1,zach2:str; end;
student=record fam,im,ot:st; end;
vedomost=record ocen:ocenka; stud:student; end;
A=array [1..20] of vedomost;
{-------------конец описания типов---------------------}
var X:A;i,j,k,l,n:integer; S,S1,S2:st;t,c,v,d:real;
{---------------процедура вывода-------------------}
procedure wywod(n:integer;h:A);
{------------------процедура присваивания--------------}
procedure priswaiwanie(var h:A);
Файл lab6.Pas
program upr; uses crt;
{-----------------описание типов-----------------------}
type st=string[20];
data=record
day:1..31; month:st; year:integer; end;
adress=record
index,town,street:st; hause,flat:integer; end;
pasp=record
fam,im,ot:st; d:data; ad:adress; end;
anketa=record
pas:pasp; p,nat:st; end;
A=array [1..20] of anketa;
{-------------конец описания типов---------------------}
var X:A;i,j,k,l,n:integer; S,S1,S2:st;t,c,v,d:real;
{---------------процедура вывода-------------------}
procedure wywod(n:integer;h:A);
{------------------процедура присваивания--------------}
procedure priswaiwanie(var h:A);
begin priswaiwanie(X); wywod(n,X); end.
Примерный список индивидуальных задач
Составление программы решения задачи о назначениях.
Программа обхода конем шахматной доски произвольных размеров.
Программа превращения связного неориентированного графа в связный смешанный граф с максимальным количеством ориентированных ребер.
Программа нахождения эйлерова цикла в связном ориентированном графе, заданном матрицей смежности вершин.
Программа нахождения эйлерова цикла в связном неориентированном графе, заданном матрицей смежности.
Проверка условия разнообразия для задачи о назначениях, где двудольный граф задан матрицей смежности вершин.
Граф задан перечнем ребер с указанием весов. Написать программу построения остовного дерева с помощью алгоритма Краскала.
Граф задан матрицей весов. Написать программу построения остовного дерева с помощью алгоритма Прима.
Построение остовного графа с помощью «жадного» алгоритма (вершины графа заданы своими координатами на плоскости).
Определение изоморфности двух графов по их матрицам смежности (вершин).
Определение изоморфности двух графов по их матрицам инцидентности.
Определение системы ребер, которые надо удалить из графа, заданного матрицей смежности вершин, чтобы осталось дерево.
Программа нахождения максимального количества ребер в связном неориентированном графе, которые можно сделать ориентированными с сохранением связности графа.
На плоскости собрали некий механизм, состоящий из шестеренок с одинаковым шагом (т.е. расстоянием между соседними зубьями). Все шестеренки пронумерованы и для каждой из них известны номера шестеренок, с которыми она зацеплена. Составить программу, определяющую, можно ли привести весь механизм в движение, вращая какую-нибудь из шестеренок.
Определение двудольности графа по его матрице смежности вершин.
Построение максимального разреза в графе.
Нахождение цикла в графе, заданном матрицей смежности вершин.
Даны три пробирки по 100 мл. На двух из них имеются одинаковые метки, помечающие некоторые целые количества мл. Первоначально непомеченная пробирка заполнена жидкостью, а две другие – пустые. Составить программу, которая по количеству меток и их расположению определяет, можно ли отмерить с помощью переливаний 1 мл жидкости в одной из пробирок, и если да, то привести пример минимальной цепочки переливаний. Например. для 1 метки 33 цепочка состоит из 4 переливаний.
Нахождение кратчайшего пути в графе, заданном матрицей смежности вершин.
Определить по матрице смежности вершин графа, является ли он деревом.
Построение гамильтонова пути на полном ориентированном графе.
Определение возможности построения гамильтонова цикла на полном ор. графе.
Построение гамильтонова цикла на полном ориентированном графе.
Граф задан матрицей смежности. Написать программу, перечисляющую его вершины в порядке обхода в глубину; в ширину.
Граф задан матрицей смежности. Написать программу, формирующую его матрицу достижимостей.
Граф задан матрицей смежности. Написать программу, выделяющую компоненты связности графа.
Граф задан матрицей смежности. Написать программу, которая определяет является ли граф эйлеровым и в случае, если является строит эйлеров цикл. В противном случае, указывает минимальное семейство путей, которые в совокупности содержат все ребра графа по одному разу.
Дан взвешенный граф, в котором нет циклов отрицательного веса. Найти путь минимального веса из одной заданной вершины в другую. (Алг. Форда - Белмана)
Дан взвешенный граф, в котором нет ребер отрицательного веса. Найти путь минимального веса из одной заданной вершины в другую.
Дан взвешенный граф. Найти кратчайшие пути между всеми парами вершин. (Алг. Флойда)
Пролетающие время от времени в опасной близости от нашего спутника Луны астероиды захватываются ее гравитационным полем и, будучи никем не задерживаемы, врезаются с огромной скоростью в лунную поверхность, оставляя в память о себе порядочных размеров кратеры приблизительно круглой формы. Увлекающийся астрономией профессор З. В. Ездочетов занялся изучением современной карты участка лунной поверхности. Он решил найти на ней максимально длинную цепочку вложенных друг в друга кратеров. Зная о Ваших недюжинных способностях в области построения алгоритмов, за помощью в решении этой непростой задачи он обратился к Вам.
Дан ориентированный граф с N вершинами (N<50). Вершины и дуги окрашены в цвета с номерами от 1 до M (M6). Указаны две вершины, в которых находятся фишки игрока и конечная вершина. Правило перемещения фишек: игрок может передвигать фишку по дуге, если ее цвет совпадает с цветом вершины, в которой находится другая фишка; ходы можно делать только в направлении дуг графа; поочередность ходов необязательна. Игра заканчивается если одна из фишек достигает конечной вершины. Написать программу поиска кратчайшего пути до конечной вершины, если он существует.
Заданы два числа N и M (20MN150), где N - количество точек на плоскости. Требуется построить дерево из M точек так, чтобы оно было оптимальным. Дерево называется оптимальным, если сумма всех его ребер минимальна. Все ребра - это расстояния между вершинами, заданными координатами точек на плоскости.
Даны два числа N и M. Построить граф из N вершин и M ребер. Каждой вершине ставится в соответствие число ребер, входящих в нее. Граф должен быть таким, чтобы сумма квадратов этих чисел была минимальна.
Быкова Ирина Альбертовна
Жохова Елена Юрьевна
Кокорева Ирина Евгеньевна
Корнилов Петр Анатольевич
Московская Лина Яковлевна
Плясунова Ульяна Валерьевна
Лабораторный практикум по языку программирования Pascal
Редактор Иванова Н.А.
Подписано в печать 18.06.04 Формат бумаги 80х64 1/16
Печ. л. 6 Тираж 100
Заказ 124
Ярославский государственный педагогический университет имени К.Д. Ушинского
150000, Ярославль, Республиканская ул., 108
Отпечатано на ризографе.
ООО «РА «Вандейк», 150054, ул. Чкалова, д. 2, оф. 1106