» Utilizator
LAMP
» Parteneri» De citit» Recomandari» Taskuri securitate » Statistici
  • 65486 de mesaje.
  • 7732 de topicuri.
  • 1231 de utilizatori.
  •  
  • Kopotosa e ultimul utilizator inregistrat.
[Detalii]

 

| |
Pagini: [1]
Print

[BAC 2008][Pascal]Varianta nr. 96 [955 afisari]

Archangel
*


Mesaje: 1392
OfflineOffline

WWW

Logged

Archangel on deviantART | Archangel on Flickr |
"Daca voi nu ma vreti, eu va vreu!"
03-04-2008, 11:35 Twitt ::
DarkByte



Mesaje:

1. b)

2.

7 si 16 care returneaza 0
10 si 11 care returneaza 1

3. a)

Code:
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)

Code:
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)
Code:
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.
Logged
09-05-2008, 17:29 Twitt ::
Pagini: [1]
Print
SkullBox Forum  |  Development  |  Programe facute de userii forumului  |  Topic: [BAC 2008][Pascal]Varianta nr. 96