Самостоятельная работа

Вариант 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]=________



Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: