Вариант 1
1. Составить циклический алгоритм вычисления произведения всех чисел от 25 до 40.
2.Определить значение переменной n после выполнения следующих элементов программы:
y:=0;
x:=10;
while x>0 do
Begin
x:=x+2;
y:=y+x;
end;
Вариант 2
1. Составить циклический алгоритм вычисления среднеарифметического значения всех четных чисел от 0 до 20.
2.Определить значение переменной n после выполнения следующих элементов программы:
x:=0;
y:=5;
repeat
y:=2*y;
x:=x+y
until y>5;
Подпрограммы. Процедуры и функции
Задания
1. Какое из следующих описаний процедуры, выводящей строку символов (*), свободно от ошибок:
Procedure Stars; Var s:integer; Begin For s:=1 to 78 do Writeln(‘*’); End; | Procedure Stars; Var s:integer; For s:=1 to 78 do Write(‘*’); | Procedure Stars; Var s:integer; Begin For s:=1 to 78 do Write(‘*’); End; |
2. Ниже представлены заголовки процедуры и функции, а также обращения к процедуре и функции.
Procedure Proc(x, y:integer; var z:real);
Function Func1(a, b:integer);
Proc(k, l, m);
H:=Func1(I, j);
Укажите соответствие между представленными ниже наборами параметров этих подпрограмм(слева) и названиями разновидностей параметров(справа).
|
|
a) X, y, a, b | 1.Параметры-переменные | |
b) X, y, z, a, b | 2.Параметры-значения | |
c) K, l, m, I, j | 3.Формальные параметры | |
d) z | 4.Фактические параметры |
3. Какое определение верно, либо ложно:
1.Вложение подпрограмм не допускается. | |
2.После раздела описаний процедуры следует ее тело, содержащее последовательность операторов, заключенных в операторные скобки. | |
3.Передача информации из тела программы в процедуру осуществляется с помощью механизма параметров. | |
4.Имена, объявленные в основной программе, доступны во всех описанных в ней подпрограммах. | |
5. Параметр-значение просто передает некоторое значение в подпрограмму. | |
6. Передача значений из процедуры в программу осуществляется с помощью параметров-переменных. | |
7. В Turbo Pascal наличие в теле подпрограммы оператора вызова самой себя не допускается. |
4. Напишите, что выведет на экран следующая программа:
Program V1_Z1;
Var A,B: Integer;
Procedure F1 (X,Y:Integer);
Begin
Y:=2*X+3;
End;
Procedure F2 (Var X,Y:Integer);
Begin
Y:=3*X+1;
End;
Begin
A:=1;
B:=3;
F1(A,B);
WriteLn('A=',A,'B=',B);
F2(A,B);
WriteLn('A=',A,'B=',B);
End.
5. Напишите, что напечатает следующие программы:
Program V1
var a,b,c,d:integer;
function func (x,y,z:integer):integer;
var w:integer;
begin
w:=x+y;
if y<z+1 then w:=w+1;
func:=w
end;
begin
a:=5;
b:=4;
c:=2;
d:=func(a,b,c); writeln('func от ',a,',',b,' и ',c,' дает ',d);
a:=func(b,c,d); writeln('func от ',a,',',b,' и ',c, ' дает ',a);
end.
Самостоятельная работа
Вариант 1
1. Напишите программу, которая по значениям двух катетов вычисляет гипотенузу, площадь, прямоугольного треугольника (используя подпрограмму).
2. Напишите, что выведет на экран следующая программа:
|
|
Program V2_Z1;
Var A,B:Integer;
Procedure F1(Var X,Y:Integer);
Begin
Y:=SQR(X);
X:=SQR(X)+X;
End;
Procedure F2(Var X:Integer; Y:Integer);
Begin
Y:=SQR(X);
X:=SQR(X)+X;
End;
Begin
A:=1;B:=3;
F1(A,B); WriteLn('A=',A,'B=',B);
F2(A,B); WriteLn('A=',A,'B=',B);
End.
Вариант 2
1. Написать программу сравнения площадей и периметров двух прямоугольных треугольников, если заданы их катеты (используя подпрограмму).
2. Напишите, что выведет на экран следующая программа:
Program V1_Z2;
Var A,B,A1,B1:Real;
Procedure SD(X,Y:Real; Var P,Q:Real);
Begin
P:=(X+Y)/2; Q:=(X-Y)/2;
End;
Begin
A:=2; B:=-4;
SD(A,B,A1,B1); WriteLn('A=',A:4:0,'B=',B:4:0,'A1=',A1:4:0,'B1=',B1:4:0);
SD(A,B,B1,A1); WriteLn('A=',A:4:0,'B=',B:4:0,'A1=',A1:4:0,'B1=',B1:4:0);
SD(B,A,A1,B1); WriteLn('A=',A:4:0,'B=',B:4:0,'A1=',A1:4:0,'B1=',B1:4:0);
End.
Массивы одномерные
Задания
1. Определите количество элементов в массиве:
Var A: array [6..7] of integer; | ____________ |
Var C: array [5..13] of real; | ____________ |
Var K: array [0..19] of integer; | ____________ |
Var A: array [1..8] of real; | ____________ |
Var D: array [-8..15] of integer; | ____________ |
2. Какие из приведенных описаний массивов являются правильными?
1) Var A: array [1..20] of real;
2) Type Mas=array [‘A’..’D’];
Var A:Mas;
3) Type Город=(Киев, Москва, Сочи, Адлер);
Var A:array[Город] of real;
4) Var MM:array [false..true] of char.
3. Укажите числовой диапазон:
a) A[i]:=random(61)____________________
b) B[j]:=random(35)____________________
c) C[5]:=random(14)___________________
d) B[z]:=random(45)___________________
e) A[k]:=random(28)___________________
4. Используя оператор RANDOM запишите правильно команды:
a) Элемент массива А с номером 7 находится в интервале [32..45] ______________
_________________________________________________________________
b) Элемент массива D с номером c находится в интервале [219..270] _____________
_________________________________________________________________
c) Элемент массива E с номером i находится в интервале [17..37] _____________
_________________________________________________________________
d) Элемент с номером s массива К находится в интервале[138..175] ____________
_________________________________________________________________
e) Элемент с номером к массива С находится в интервале[122..124] _____________
_________________________________________________________________
4. Записать циклы для решения следующей задачи:
1. Ввод 112 элементов массива Вс клавиатуры. Параметром цикла является переменная h. Нумерация начинается с 1. _______________________________________________________________ |
2. Ввод 96 элементов массива Ав столбец. Параметром цикла является переменная h. Нумерация начинается с 1. _______________________________________________________________ |
3. Формирует массив Еиз162случайных чисел, принадлежащих промежутку [15;30]. Параметром цикла является переменная Х.Нумерация начинается с 1 _______________________________________________________________ |
4. Формирует массив Dиз179случайных чисел, принадлежащих промежутку [16;24]. Параметром цикла является переменная f. Нумерация начинается с 1 _______________________________________________________________ |
6. Напишите пропущенные команды. Ввести массив В, из 18 элементов целого типа, заданных случайным образом на промежутке [12;65], нумерация начинается с 1 и вывести элементы массива с 1-го по 7-й в столбец.
Program Primer;
___________________;
j: integer;
BEGIN
For J:=1 to ______ do
_________________________
For j:=1 to _____ do
_________________________
End.
7. Дан массив К. Индексы начинаются с 1.
К | 5 | 18 | 26 | 12 | 11 | 21 |
Чему равно?
1) K[6]=______
2) R[4]+K[1]=_______
3) 2+K[6]=________
4) K[1+2]=________
5) K[5]+10=________
6) 10*K[4]=________