Домашнее задание 9
1. Составить программу машины Тьюринга для вычисления функции F(x)=x+y в алфавите {λ,1}:’x единицу’ λ’ у единиц ‘ →‘ x единиц” ‘ y единиц’.
2. Считая, что существует машина Тьюринга, удваивающая слова, доказать, что проблема применимости к начальному слову алгоритмически неразрешима (т.е. не существует машины Тьюринга, применимой ко всем словам #(mT) λX и приходящей в конфигурацию …1(q0 )… в противном случае ). Домашнее задание 10 (Delphi)
1. Найти описание алгоритма Евклида (нахождение наибольшего общего делителя). Написать программу, реализующую этот алгоритм (по возможности , наиболее компактно ).
2. Найти как можно больше ошибок:
Const char=0; Case=1; st:=char+1;
Type a=(true,false); b=(‘a’/’b’);
Var c: char;
Var x: Boolean;
Begin if x then x:=(ord(true)=char) and false; end;
3. Может ли в корректно составленной программе быть следующий оператор:
y:=x[y] + y/2;
4. Заменить данный фрагмент программы на Паскале эквивалентной последовательностью операторов, не используя циклы с параметром (for) и опрераторы перехода (goto):
Var i: char; j: integer;
For i:=succ(i) to chr(ord(i) + j div 2) do j:=(j+ord(i)) div 5;
Домашнее задание 11
1. Составить программу, которая для заданного числа M находит наибольшее n, такое что 2n≤M (Delphi или LabVIEW).
2. Как следует передавать в процедуру длинные массивы при недостатке памяти: как параметры-значения или как параметры-переменные?
3. Какие значения будут выведены при выполнении программы? Реализовать вызов этой процедуры в Delphi.
Program parameters(…);
Var a,b:integer;
Procedure h (x: integer; var y: integer);
Begin x:=x+1; y:y+1; writeln(x,y); end;
Begin a:=0; b:=0; h(a,b); writeln(a,b); end.
4. Что будет выведено на печать? Ответ обосновать.
Program A;
Var x, y, z: integer;
Procedure P(var x: integer);
Var z: integer;
Begin z:=x; x:=y; y:=z end;
Begin x:=1; y:=2; z:= 3; P(z); writeln(x,y,z) end.
Домашнее задание 12
1. Что будет выведено на печать? Ответ обосновать.
Program Print;
Var i: integer; t: string;
Procedure P(var s: string);
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.
2. Найти ошибки:
Program Error;
Type Digit= ‘0’..’9’;
Var d: digit; t:Boolean;
Begin read(d);
Case d of 2, 3, 4, 5: t: = true; d:= succ(d);
0, 1, 9: t:= false; writeln (t;d) end.
Домашнее задание 13
1. Что будет выведено на печать? Ответ обосновать.
p→[5], q→[3] (начальное состояние).
P^:= q^;
If p = q then p:= nil else if p^= q^ then q:= p;
If p = q then q^:= 4;
Writeln(p^);…
2. Написать фрагмент программы, вставляющий в конец списка новый элемент, равный последнему элементу.
3. Написать фрагмент программы, удаляющий из списка последний элемент, освобождая занимаемую этим элементом память.
Домашнее задание 14
1. Написать рекурсивную программу для вычисления наибольшего общего делителя.
2. Указать на плоскости все точки, для которых функция
((sqr(x) + sqr(y)) <2) and (trunc(x)=round(x)) принимает значение true.
Домашнее задание 15
Оценить временную сложность заданных алгоритмов.
1. Procedure triple(N:integer);
Begin if N<=0 then exit else
Triple (N-1); Triple (N-1); triple (N-1); end;
2. Procedure Mult (A,B,C: matrix; N: integer);
Var i, j, k: integer;
Begin
For i:=1 to N do
For j:=1 to N do
Begin
C[I,j]:=0;
For k:= 1 to N do C[I,j]+A[I,k]*B[k,i];
End;
End;
Добавлено (13.04.2009, 02:57)
---------------------------------------------
апчик..( помогите кто чем сможет..=\
Добавлено (19.04.2009, 17:59)
---------------------------------------------
апик..помогите(
Добавлено (21.04.2009, 21:04)
---------------------------------------------
up...
Добавлено (23.04.2009, 15:06)
---------------------------------------------
ну помогите же..((