1. b)2.7 si 16 care returneaza 0
10 si 11 care returneaza 1
3. a)function verif (a, b, c : word) : byte;
begin
if (a < b + c) and (a > abs (b - c)) and
(b < a + c) and (b > abs (a - c)) and
(c < a + b) and (c > abs (a - b))
then verif := 1
else verif := 0;
end;
3. b)var a1, b1, c1, a2, b2, c2 : word;
begin
WriteLn('Dati 6 valori nenule :');
ReadLn(a1, b1, c1, a2, b2, c2);
if (verif(a1, b1, c1) = 1) and (verif(a2, b2, c2) = 1)
then
if (verif (abs(a1-a2), abs(b1-b2), abs(c1-c2)) = 1) or
(verif (abs(a1-b2), abs(b1-c2), abs(c1-a2)) = 1)
(verif (abs(a1-c2), abs(b1-a2), abs(c1-b2)) = 1)
then WriteLn('Necongruente')
else WriteLn('Congruente')
else Writeln('NU');
ReadLn;
end.
4.a)Parcurg lista de intervale, apoi caut in lista de numere cele care incadreaza in interval, incrementand o valoare temporara cu 1 la fiecare numar gasit. Daca numarul din lista e deja mai mare decat limita maxima a intervalului ies din bucla de cautare, continuand la fel pentru urmatorul interval.
La parcurgerea fiecarui interval, verific cate numere se incadreaza in interval, valoarea calculata astfel comparand-o cu valoarea maxima deja gasita. Daca valoarea curenta este mai mare decat fosta valoare maxima, atunci valoarea maxima va lua noua valoare si setez noile limite de interval.
4.b)var f : Text;
n, m, i, j, l1, l2, p, ptemp : Integer;
lista, limite : array[1..1000] of integer;
begin
Assign(f, 'bac.dat');
Reset(f);
Readln(f, n, m);
for i := 1 to n do
read(f, lista[i]);
readln(f);
for i := 1 to m do
readln(f, limite[i]);
Close(f);
p := 0;
for i := 1 to m - 1 do
begin
pTemp := 0;
for j := 1 to n do
if (lista[j] >= limite[i])
then
if (lista[j] <= limite[i + 1])
then inc(pTemp)
else break;
if pTemp > p
then
begin
p := pTemp;
l1 := limite[i];
l2 := limite[i + 1];
end;
end;
Writeln(l1, ' ', l2);
ReadLn;
end.