Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
PASСAL_a4_2007.doc
Скачиваний:
31
Добавлен:
13.09.2019
Размер:
2.51 Mб
Скачать

Вопросы для контроля

  1. Как описать переменные для хранения следующей информации:

а) места в кинотеатре определяются номером ряда, номером места в ряду и признаком, указывающим, продан ли билет на данное место (хотелось бы все это хранить в одном массиве!);

б) экзаменационная ведомость, содержащая фамилии и оценки студентов по одному предмету; по трем предметам; по пяти предметам;

в) количество осадков за каждый день года в течение 5 лет (хотелось бы быстро находить количество осадков в любой день любого года. Например, 15 июля 1988 года...).

(2) Дан двумерный массив y из целочисленных элементов, структура и начальные значения которого показаны ниже:

var y : array [1..3,1..4] of integer;

i,j : integer;

y

1

5

11

6

0

2

91

3

-12

2

3

14

1

219

7

1

2

3

4

Укажите, какими станут эти значения после выполнения каждого из приведенных фрагментов программы:

a)

y[2,3]:=y[1,4]+y[2,2];

y[1,4]:=y[3,1]+y[3,2];

y[2,4]:=y[1,2]+y[2,4];

б)

i:=1; y[i+1,1]:=y[i+2,i+3];

i:=2; y[1,4]:=y[3,i-1];

в)

i:=2; j:=3;

y[3,2]:=y[3,1]+y[2,3];

y[i,j]:=i+j+y[3,4];

г)

for i:=1 to 3 do

for j:=1 to 4 do

y[i,j]:=i+j;

Лабораторная работа 33. Шахматный турнир

Задание 1

В программу обслуживания шахматного турнира целесообразно включить процедуры ввода данных после каждой встречи и печати турнирной таблицы. Напишите эти процедуры, используя "заготовки", рассмотренные на теоретическом занятии. Напишите и отладьте головную программу, вызывающую эти процедуры.

Задание 2

Добавьте в программу ввод и печать фамилий участников турнира.

Задание 3

Обеспечьте выдачу турнирной таблицы, упорядоченной по количеству набранных очков (так удобнее отыскивать призеров).

Задание 4

Предусмотрите также возможность упорядочить таблицу так, чтобы фамилии участников стояли в алфавитном порядке.

Лабораторная работа 34. Подпрограммы - функции

1. Теория

Подпрограммы-функции предназначены преимущественно для вычисления какого-либо значения (чис­ло­во­го или текстового). У них три основных отличия от процедур.

Первое отличие - в записи заголовка. Заголовок функции имеет следующую структуру:

function <имя>[(<список параметров>)]:<тип результата>;

Функция может и не иметь параметров.

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

Третье отличие заключается в том, что результат функции должен быть использован либо в арифмети­­ческом, либо в логическом выражении.

Рассмотрим пример вычисления факториала числа N. Известно, что N! = N*(N-1)*(N-2)*(N-3)*...*2*1

Подпрограмма-функция для вычисления факториала может иметь следующий вид:

Function Factorial(N:Byte):Longint;

var Fact:Longint;

i:Byte;

begin

Fact:=N;

for i:=N-1 downto 2 do

Fact:=Fact*i;

Factorial:=Fact

end;

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

Так вызов вышеописанной функции Factorial может иметь следующий вид:

Part:=Factorial(20)/b;

Вызывается функция Factorial с фактическим параметром 20 (параметр-значение)

Part:=Factorial(M)+c/2;

Вызывается функция Factorial с фактическим параметром М (параметр-переменная)

Part:=Factorial(M+L);

В качестве параметра передается выражение, значение которого должно иметь тот же тип, что и описанный в функции формальный параметр.

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