задачи для экзамена на поступление, уровень ниже среднего

За вознаграждение или нахаляву (если повезёт)

Модераторы: Хыиуду, MOTOCoder, Medved, dr.Jekill

Ответить
HEKPOMAHCER
Сообщения: 3
Зарегистрирован: 24 июл 2008, 02:43

В Паскале не шуруплю, но поступить хочется. 25 экзамен. Помоги плиз.
Часть задач:

1) Определить значение переменной s после выполнения следующих операторов:
var i : byte; s : real;
begin s:=0; i:=1; while i>1 do begin s:=s+1/i; i:=i-1; end; writeln(s); end.

2) . Запишите заголовок процедуры имеющей 3 аргумента имеющих тип byte (i,j,k). Изменение значения j в процедуре должно влиять на значение фактического параметра, i,j,k – вещественные переменные удвоенной точности.

3) Имеется следующее описание переменных: var a,b,c: ^integer;
Указать значение c^ после выполнения операторов:
new(a); new(b); new©; a^:=15; a:=b; b^:=6; c^:=a^+b^-4;

4) Определить значение переменной s после выполнения следующих операторов:
var i : byte; s : real;
begin . . . s:=0; i:=1; repeat s:=s+1/i; i:=i-1; until i<=1; . . . end.

5) Запишите значение которое будет выведено на экран в фрагменте программы языке Паскаль:
var s : string[25];
begin s:=’Язык Паскаль’; writeln(Ord(s[0])); end.
6) Запишите правильно те операторы, в которых допущена синтаксическая ошибка?
if b=0 then Write('В');
if (a>b and b>0) then c:=a+b;
if a>b then a:=a+b else b:=a;
if a<b then с:=a; else с:=b;

7) Определить значение переменной s после выполнения следующих операторов:
var i, n : byte; s : real;
s:=1; n:=1; for i:=2 to n do s:=s+1/i;

8) Чему равны значения переменных i и s после окончания цикла в фрагменте 1 2 3 4
программы (язык Паскаль) прохода по матрице mas: array[1..4,1..4] of integer: 2 3 4 1
s:=0; i:=1; while i<4 do begin i:=i+1; s:=s+mas; end; 8 4 7 1
5 1 7 9

9) Определить значение переменной s после выполнения следующих операторов:
var i, j, s : integer;
s:=-5; for i:=0 to 20 do for j:=i to 4 do if i = j then s:=s+i;
10) Задан двумерный массив X[1..n, 1..m]. Процедура к элементам четных столбцов прибавляет элементы первого столбца соответствующей строки. Запишите оператор for, который должен быть вставлен на место символов ?.
Procedure Sub (Var X: Myarray);
Var i, j: Integer;
begin for i := 1 to n do ?????????????????????? X[i, 2 * j]:= X[i, 2 * j] + X[i, 1];
end;

Заранее благодарен.
С уважением, HEKPOMAHCER.
Хыиуду
Сообщения: 2442
Зарегистрирован: 06 мар 2005, 21:03
Откуда: Москва
Контактная информация:

Уууу, как все запущено...
>>1) Определить значение переменной s после выполнения следующих операторов:
Скопировать в редактор Паскаля и запустить.
>>2) . Запишите заголовок процедуры имеющей 3 аргумента имеющих тип byte (i,j,k). Изменение значения j в процедуре должно влиять на значение фактического параметра, i,j,k – вещественные переменные удвоенной точности.
Бред. Условие противоречит само себе. i,j,k - это все-таки тип byte или вещественные переменные удвоенной точности?
procedure a(var j: byte; i,k: byte);
3, 4, 5 - см. п. 1
6) if (a>b) and (b>0) then c:=a+b;
if a<b then с:=a else с:=b;
7, 8, 9 - см. п. 1
10) for j:=1 to m div 2 do
Искусство программирования - заставить компьютер делать все то, что вам делать лень.
Для "спасибо" есть кнопка "Спасибо" в виде звездочки внизу под ником автора поста.
HEKPOMAHCER
Сообщения: 3
Зарегистрирован: 24 июл 2008, 02:43

Хыиуду, спасиб тебе.


Оставшиеся задачи:
1) В программе вводится строка символов (цифр и букв). Фрагмент алгоритма подсчитывает сумму цифр в строке. Запишите оператор, который должен быть вставлен на место символов ?.
Var St : string; s,i,d,k : integer;
begin
readln(St); s := 0; for i := 1 to Length (St) do
begin val(St, d, k); ?????????????????????? end; writeln(s);
end.
2) Что будет выведено на экран монитора в результате выполнения данного фрагмент кода:
var i,a: byte;
ms: array[1..6] of byte:
содержимое массива ms: 2 3 4 1 8 3.
a:=ms[1]; for i:=2 to 5 do if ms<a then a:=ms; writeln('a=',a)
3) Определить значение переменной s после выполнения следующих операторов:
var i, j, s : integer;
s:=0; for i:=0 to 20 do for j:=0 downto i do s:=s+1;
4) Вычислите значение R после выполнения операции присваивания при
A:= False; B:= False; X:= 3; Y:= 2; R := Not (A Or B Or (X > 2) And (Y < 0));
5) Что будет выведено на экран монитора в результате выполнения данного фрагмент кода:
var a,b: integer; begin a=25; b=52; a:=a+b; b:=a-b; a:=a-b; writeln('a=',a,' b=',b); end;
6) Вычислить результат вызова функции fun(4) описанной ниже:
function fun(n:byte):byte;
begin if n<=1 then fun:=1 else fun:=fun(n-1)+fun(n-2); end;

7) Для приведенного ниже описания в динамической памяти построен двунаправленный список (nach – указатель на начало списка; kon -указатель на конец списка): Type ptr=^element;
element=record
info : integer; right,left : ptr;
end;
Var nach,kon,tek : ptr;
i:integer;
Что будет выведено на экран в результате выполнения оператора:
writeln(nach^.right^.right^.right^.info);

Изображение


8) Имеется следующее описание типов переменных. Для данного описания в динамической памяти построен двунаправленный список (nach – указатель на начало списка; kon -указатель на конец списка).
Type ptr=^element;
element=record info : char; right, left : ptr; end;
Var nach,kon,tek: ptr;
i:integer;
Что будет выведено на экран в результате выполнения оператора: writeln(kon^.left^.left^.right^.left^.info);

Изображение

9) Пусть имеется следующее описание типов переменных. Для данного описания в динамической памяти построен линейный связанный список (nach – указатель на начало списка; последний элемент списка в адресной части имеет значение nil):
Type ptr1=^element1;
element1=record info : char; link : ptr1; end;
Var nach,tek : ptr1; i : integer;
Что будет выведено на экран в результате выполнения следующего фрагмента программы:
tek:=nach; while tek^.info<>'c' do tek:=tek^.link; writeln(tek^.link^.info);

Изображение
HEKPOMAHCER
Сообщения: 3
Зарегистрирован: 24 июл 2008, 02:43

10) Что будет выведено на экран в приведенном фрагменте программы, где F — ссылка на первый элемент списка (на рисунке это nach). Список объявлен следующим образом:
Type Uk = ^EL; EL = Record X : Char; N : Uk End;
Var F,P,B,M : Uk; S : Char;
Begin P := F;
While P^.N <> Nil Do Begin B := P; M := P;
While B <> Nil Do Begin If B^.X < M^.X Then M := B; B := B^.N End;
S := P^.X; P^.X := M^.X; M^.X := S; P := P^.N
End; P := F; While P^.N <> Nil Do Begin P := P^.N; Write(P^.X); End;
End.

Изображение

11) В приведенном фрагменте программы nach — ссылка на первый элемент списка. Список объявлен следующим образом:
Type SS = ^List; List = record a : char; next : SS; end;
Var nach, P : SS; S : integer;
P := nach; S := 0; while Not(P = Nil) do begin S := S + 1; P := P^.next; end; writeln(S);
Что выведет программа на экран монитора?

Изображение

12) Имеется следующее описание типов переменных. Для данного описания в динамической памяти построен двунаправленный список (nach – указатель на начало списка; kon -указатель на конец списка).
Type ptr=^elem;
elem=record
info : integer; right, left : ptr;
end;
Var nach, kon, tek : ptr;
i : integer;
Что будет выведено на экран в результате выполнения оператора:
writeln(nach^.right^.left^.right^.info);

Изображение

13) Для следующего описания типов переменных в динамической памяти построен линейный связан-ный список (nach – указатель на начало списка; последний элемент списка в адресной части имеет значение nil).
Type ptr1=^element1;
element1=record
info : char; link : ptr1;
end;
Var nach, tek : ptr1; i : integer;
Что будет выведено на экран для данного фрагмента:
tek:=nach; for i:=1 to 3 do tek:=tek^.link; writeln(tek^.info);

Изображение

С уважением, HEKPOMAHCER.
Хыиуду
Сообщения: 2442
Зарегистрирован: 06 мар 2005, 21:03
Откуда: Москва
Контактная информация:

1. if k=0 then inc(s,d);
2. Запустить и посмотреть
3. Добавить в конце writeln(s), запустить и посмотреть.
4. См. п. 3
5. См. п. 2
6. См. п. 3
7. 5
8. О
9. Либо ошибку, либо ничего, потому что 'C'<>'c', и условие tek^.info<>'c' всегда будет истинным.
Все остальные - влом думать. Вручную строишь списки в памяти, дальше см. п. 2
Искусство программирования - заставить компьютер делать все то, что вам делать лень.
Для "спасибо" есть кнопка "Спасибо" в виде звездочки внизу под ником автора поста.
Ответить