Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ЛР_ИНФОРМАТИКА_Паскаль_ч.1.doc
Скачиваний:
1
Добавлен:
16.08.2019
Размер:
1.09 Mб
Скачать
  1. Практическая часть

2.1. Ознакомиться с описанием лабораторной работы и по указанию преподавателя запустить систему программирования Turbo Pascal.

2.2. Для каждого из заданий составить блок-схему алгоритма решения и текст программы в рабочей тетради и предъявить их преподавателю. Для пояснения исходных данных, результатов и основных операций текст программы сопровождать комментариями.

2.3. Набрать текст программы, сохранить его в рабочем каталоге и выполнить компиляцию программы.

2.4. Устранить синтаксические ошибки, подобрать исходные данные и запустить программу на выполнение. Результаты зафиксировать в отчете в рабочей тетради.

2.5. Аккуратно оформить отчет по лабораторной работе и предъявить его преподавателю. В отчете по каждому заданию должны быть отражены следующие пункты:

  1. БСА алгоритма.

  2. Исходный текст программы с комментариями.

  3. Результаты отладки.

  4. Результаты решения.

Задания к лабораторной работе.

  1. Составить программу, которая выводит таблицу значений функции y=-2,4x2+5x-3 в диапазоне значений аргумента от -2 до 2 с шагом 0,5.

  2. Составить программу, которая выводит на экран числовые последовательности следующего вида:

2*4*…*N, если N – четное,

S =

1*3*…*N, если N – нечетное, N > 2.

  1. Составить программу, в которой вычисляется сумма ряда

y = 1+x/2 + x2/3 + x3/4 + … при |x|<1.

Расчет продолжать до тех пор, пока очередное приращение |y| будет больше заданной точности e, e<=|x|.

  1. Составить программу, в которой вводится последовательность из n целых чисел (положительных и отрицательных) и находится наибольшее и наименьшее число.

  2. Составить программу, которая выводит на экран таблицу умножения десятичных чисел.

  3. Составить программу, которая выводит на экран изображение шахматной доски. Черные клетки отображать символом «*», белые – пробелом.

Лабораторная работа № 4 Программирование с использованием массивов и строк

  1. Теоретическая часть

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.

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