Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Методические указания к выполнению РГР. Алгорит...doc
Скачиваний:
9
Добавлен:
27.11.2019
Размер:
265.73 Кб
Скачать

9 Ограниченные типы данных

Отрезок значений любого скалярного типа (исключая тип REAL) может быть определен как ограниченный (интервальный) тип.

Общий вид:

TYPE T=MIN...MAX;

Здесь Т – идентификатор; MIN,MAX – левая и правая границы диапазона. Тип MIN и MAX задает множество, определяющее базовый тип переменной.

10 Регулярные типы данных

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

Общий вид регулярного типа:

TYPE T=ARRAY[T1,T2,...,TN] OF TC;

Здесь Т – идентификатор типа; Т1,Т2,...,ТN – типы индексов; ТС – тип компонентов (базовый тип). Количество индексов определяет размерность массива. Индексы могут быть любых простых типов, кроме REAL и INTEGER.

Массивы можно описать в разделе описания переменных или констант:

VAR A:ARRAY[1..N] OF INTEGER;

СONST A:ARRAY[1..N] OF INTEGER=(N чисел через запятую).

Описание двумерных массивов имеет вид:

VAR A:ARRAY[1..N,1..M] OF INTEGER;

CONST A:ARRAY[1..N,1..M] OF INTEGER=

( (M чисел через запятую),(...),...,(...));

N скобок

11 Оператор выбора варианта

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

Общий вид:

CASE N OF

M1:P1;

............

MN:PN

ELSE P

END;

Здесь N – селектор; М1,М2,...,МN – метки; Р1,Р2,...,РN,Р – операторы. Селектор и метки должны быть одного и того же скалярного типа.

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

Используя программу ASNIRS, получите индивидуальное задание. Составьте блок-схемы к задачам, напишите программы на языке Pascal, реализуйте их на ЭВМ, оформите отчет о выполненной работе.

Контрольные вопросы

1 Какие типы данных используются в Паскале?

2 Какие операторы цикла используются в Паскале?

3 Как описываются массивы?

4 Запишите следующие числа по правилам записи чисел в языке Паскаль:

1) 0,00237∙105; 6) 257;

2) -125,87; 7) 200 000;

3) +79; 8) 0,1;

4) 87∙1010; 9) 0,4∙10-5;

5) 103; 10) -10-10.

5 Какое значение получит переменная Z в результате выполнения следующего оператора присваивания?

z:=-a*b/c*a/b*c; если a=1,2; b=10; c=4.

6 Опишите переменные действительного типа z, g и переменные целого типа h, k, l.

7 Найдите ошибки в записи операторов присваивания, исходя из следующего описания:

var

i,k:integer; x,y:real; b1:boolean;

1) x:=i mod (i+y);

2) 2:=sin(x*y)/k;

3) b1:=(i+k)/2;

8 В каких случаях ставятся операторные скобки?. Приведите примеры.

9 Напишите оператор вывода, в результате выполнения которого будет получено значение функции, равное 12.56 при значении аргумента -6.

10 Чему равно булевское значение

a:=b>g, если b=5,7; g=-8,6?

11 Чему равно значение s?

i:=15; s:=0;

for k:=1 to i do f:=2; s:=s+f;

12 Чем отличаются циклы FOR, WHILE и REPEAT?

13 Найдите ошибки:

const x:=7;

var b.real; k=6:integer; x:integer;

14 Что такое "размерность массива" ?

15 Массив должен быть описан до его первого использования. Почему?

16 Как создать тип пользователя? Приведите примеры.

17 Как можно ввести массив X(25)?

18 Как вывести этот же массив в строчку?

19 Как определить кратно ли число x[i] трем?

20 Найдите и объясните ошибки

1) var x:array(1..5) real;

2) program g;

var x:array[1..10] of real;

begin

for i:=1 to 10 do

begin

read(x[i]);

if x[i] mod 2 := 0 then writeln('число четно');

else writeln('число не четно');

end

end.

21 Как определить, является ли элемент массива x[i] нечетным?

22 Как определить принадлежность элемента массива интервалу [-2,4]?

23 Что такое матрица?

24 Как изменяются индексы матрицы?

25 Как вводится матрица?

26 Как обратиться к элементу матрицы?

27 Как обрабатывать последовательно все элементы матрицы?

28 Организуйте построчный перебор элементов матрицы.

29 Организуйте перебор элементов матрицы по столбцам.

30 Как определить, лежит ли элемент на главной диагонали? А на побочной?

31 Как поменять два столбца местами?

32 Как описать размер матрицы?