- •Методические указания к лабораторным работам для студентов очной и заочной форм обучения
- •Часть 1
- •Рязань 2008
- •Лабораторная работа № 1 Знакомство с системой программирования Turbo Pascal 7.0. Программирование линейных вычислительных процессов
- •1. Теоретическая часть
- •Начало работы в Turbo Pascal. Основные элементы системы программирования
- •1.2. Подготовка текста программы
- •1. 3. Сохранение текста программы
- •1. 4. Компиляция программы
- •1. 5. Пробный запуск программы на выполнение
- •1. 6. Завершение работы
- •1. 7 Программирование линейных вычислительных процессов
- •Практическая часть
- •Лабораторная работа № 2 Программирование разветвляющихся вычислительных процессов
- •1. Теоретическая часть
- •Практическая часть
- •Лабораторная работа № 3 Программирование циклических вычислительных процессов
- •1. Теоретическая часть
- •Практическая часть
- •Лабораторная работа № 4 Программирование с использованием массивов и строк
- •Теоретическая часть
- •1.1. Массивы
- •Практическая часть
Практическая часть
2.1. Ознакомиться с описанием лабораторной работы и по указанию преподавателя запустить систему программирования Turbo Pascal.
2.2. Для каждого из заданий составить блок-схему алгоритма решения и текст программы в рабочей тетради и предъявить их преподавателю. Для пояснения исходных данных, результатов и основных операций текст программы сопровождать комментариями.
2.3. Набрать текст программы, сохранить его в рабочем каталоге и выполнить компиляцию программы.
2.4. Устранить синтаксические ошибки, подобрать исходные данные и запустить программу на выполнение. Результаты зафиксировать в отчете в рабочей тетради.
2.5. Аккуратно оформить отчет по лабораторной работе и предъявить его преподавателю. В отчете по каждому заданию должны быть отражены следующие пункты:
БСА алгоритма.
Исходный текст программы с комментариями.
Результаты отладки.
Результаты решения.
Задания к лабораторной работе.
Составить программу, которая выводит таблицу значений функции y=-2,4x2+5x-3 в диапазоне значений аргумента от -2 до 2 с шагом 0,5.
Составить программу, которая выводит на экран числовые последовательности следующего вида:
2*4*…*N, если N – четное,
S =
1*3*…*N, если N – нечетное, N > 2.
Составить программу, в которой вычисляется сумма ряда
y = 1+x/2 + x2/3 + x3/4 + … при |x|<1.
Расчет продолжать до тех пор, пока очередное приращение |y| будет больше заданной точности e, e<=|x|.
Составить программу, в которой вводится последовательность из n целых чисел (положительных и отрицательных) и находится наибольшее и наименьшее число.
Составить программу, которая выводит на экран таблицу умножения десятичных чисел.
Составить программу, которая выводит на экран изображение шахматной доски. Черные клетки отображать символом «*», белые – пробелом.
Лабораторная работа № 4 Программирование с использованием массивов и строк
Теоретическая часть
1.1. Массивы
Массив — это структура данных, которую можно рассматривать как набор переменных одинакового типа, имеющих общее имя. Массивы удобно использовать для хранения однородной по составу информации, например, элементов таблиц, коэффициентов уравнений, матриц и т. д.
Перед использованием в программе массив, как и любая переменная, должен быть объявлен в разделе объявления переменных. В общем виде объявление массива выглядит так:
Имя: array [нижний_индекс..верхний_индекс] of тип;
где
Имя — имя переменной-массива;
array — ключевое слово, обозначающее, что переменная является массивом;
нижний_индекс и верхний_индекс — целые числа, определяющие диапазон изменения индексов (номеров) элементов массива и, неявно, количество элементов (размер) массива;
тип — тип элементов массива.
Примеры объявления массивов:
temp: array[1..31] of real;
koef: array[0..2] of integer;
name: array[1..30] of string[25];
Здесь string — строковая переменная, которая будет рассматриваться в п. 1.2.
При объявлении массива удобно использовать именованные константы, которые объявляются в разделе описания констант. Например, информацию о размерности массива можно объявить так:
const
NT=18; SN=25;
var
team: array[1..NT] of string[SN];
Чтобы в программе использовать элемент массива, надо указать имя массива и номер элемента (индекс), заключив его в квадратные скобки. Индекс может быть константой или выражением целого типа. Например: temp[i], koef[2], name[n+l] и т. д.
Если элементы массива являются исходными данными, то перед обработкой они должны быть введены в программу. Ввод удобно реализовать при помощи оператора цикла for, параметр которого может быть использован как индекс элемента массива. Чтобы пользователь программы знал, какой элемент массива вводится в данный момент, следует организовать вывод подсказок перед вводом очередного элемента массива. В подсказке обычно указывают индекс элемента массива. Например:
Var
massiv: array[1..10] of integer;
begin
for i:=1 to 10 do
begin
write(‘Введите элемент ‘,i);
readln(massiv[i]);
end;
Для вывода значений элементов массива, также может использоваться оператор for.
Помимо одномерных массивов в программах могут использоваться двумерные массивы.
В общем виде описание двумерного массива выглядит так:
Имя: array[НижняяГраницаИндекса1..ВерхняяГраницаИндекса1,
НижняяГраницаИндекса2..ВерхняяГраницаИндекса2] of Тип;
где НижняяГраницаИндекса1, ВерхняяГраницаИндекса1, НижняяГраницаИндекса2, ВерхняяГраницаИндекса2 — целые константы, определяющие диапазоны изменения индексов и, следовательно, число элементов массива. Остальные элементы описания имеют тот же смысл, что и для одномерных массивов.
Двумерные массивы удобно интерпретировать в виде прямоугольных матриц размерностью N x M, где N – число строк матрицы, а M – число столбцов. Например, описание двумерного массива натуральных чисел размера N х М может быть задано следующей строкой:
Var massiv: array[1..N, 1..M] of integer;
Положение каждого элемента массива massiv[i,j] определяется значением строки i и столбца j соответствующей матрицы.
П р и м е р 1. Дана матрица N x M, состоящая из натуральных чисел. Найти в ней наименьший элемент и определить его местоположение в матрице. Если таких элементов несколько, то определить их количество.
Блок-схема алгоритма решения представлена на рис. 1.
Рис. 1
Текст программы:
Program matrica;
const t=20; s=20;
var A: array [1..t, 1..s] of integer; {двумерный массив для матрицы}
n, m : integer; {число строк и столбцов матрицы}
min : integer; {значение минимального элемента}
im, jm : integer; {индексы минимального элемента}
i, j : integer; {индексы текущего элемента}
k : integer; {количество минимальных элементов}
begin
write(‘Число строк n=’); readln(n);
write(‘Число столбцов m=’); readln(m);
for i:=1 to n do
begin
write(‘Введите через пробел ‘,m,’чисел’);
for j:=1 to m do
read(A[i,j])
end;
min:=A[1,1]; im:=1; jm:=1; k:=0;
for i:=1 to n do
for j:=1 to m do
if min>A[i,j] then
begin
k:=1; im:=i; jm:=j;
min:=A[i,j]
end
else
if min=A[i,j] then k:=k+1;
if k=1 then writeln(‘В матрице 1 мин. элемент ‘,min, ‘в строке’,im,’и
столбце’,jm)
else writeln(‘В матрице ‘,k,’минимальных элементов ‘,min)
end.