Введение

Линейные алгоритмы

Алгоритмы с ветвлением

Алгоритмы с повторением

Одномерный массив (вектор)

Двумерный массив (матрица)

Пользовательские процедуры и функции

маркированный список

справочные материалы

маркированный список

теоретические вопросы

маркированный список

задачи,  решения, программы

Строки

Множества

Записи

Файлы

Графика

На главную
              

Задания.

 

Раздаточный материал

1. Перечислить локальные (в том числе формальные параметры) и глобальные имена, используемые в следующей процедуре.

Procedure P(x:vest; var y:integer);

                  const z='*';

                  var c:index;

             begin y:=0;

                    for c:=a to b do

                        if  x[c]>z then y:=y+1;

             end;         

 

2.  Что будет напечатано следующей программой:

a) Program print (output);

         var x,y:char;

         procedure P(x:integer);

                const y=true;

                 begin

                    writeln(x,'  ',y); end;

         procedure Q;

               var x:char;

                  begin

                   x:=succ(y); y:='*'; writeln(x,'  ',y); end;

         begin  x:='a'; y:='5';

                     P(8); writeln(x,'  ',y);

                      Q;   writeln(x,'  ',y);

         end.

 

б) Program print (output);

         Type string=packed array [1..5] of char;

           var i:integer; t:string;

         procedure P(var s:string);

                const y=true;

                 begin i:=1;

                    While s[i]<'9' do begin

                           s[i]:=succ(s[i]); i:=i+1; end;

                  end;

                begin

                   i:=1; t:='12945'; P(t);

                   writeln(t[i]); end.

 

в) Program print (output);

         var a,b,c,d:integer;

         procedure P(var b:integer; c:integer);

                var d:integer;

                 begin

                   a:=5; b:=6; c:=7; d:=8;

                    writeln(a,b,c,d); end;

                 begin

                   a:=1; b:=2; c:=3 d:=4; P(a,b);

                   writeln(a,b,c,d); end.

 

3.  Определить, что будет выдано на печать:

      c:=2; d:=0; P(sqr(c)+c,d); writeln(d);

      c:=2; d:=0; Q(sqr(c)+c,d); writeln(d);

 

4. Допустимы ли обращения

        R(sqr(c)+c,d) и R(c,d)?

 

5. Какие из следующих описаний функции f(n), которая должна вычислять факториал числа n, правильны:

а) function f(n:integer):integer;

        begin f:=n*f(n-1); end;

 

б) function f(n:integer):integer;

        begin

         if n=0 then f:=1 else f:=f(n+1)/(n+1); end;

 

в) function f(n:integer):integer;

        begin if  n=0 then f:=1 else f:=n*(n-1)*f(n-2); end;

 

г) function f(n:integer):integer;

        begin if  n=0 then f:=1 else f:=n*f(n-1); end;

 

6. Вычислить f(106), f(99), f(85).

 function f(n:integer):integer;

        begin if  n>100 then f:=n-10 else f:=f(f(n+11)); end;

 

Решения (ответы)

 

1. Локальные: х, у, z, c.    Глобальные: vest,  index, a, b.

 

2. a) 8 true; a 5; 6 *; a*.

б) 9.

в) 6 6 7 8; 6 2 3 4.

 

3. 0 и 7.

 

4. обращение R(sqr(c)+c,d) - недопустимо

 

5. Все неверны, кроме г).

 

6. При n>100 ----- f(n)=n-10,  иначе 91

 

Сайт создан в системе uCoz