Fişiere text


1. Sa se scrie un program care calculeaza elementele multimilor AUB si A\B.
Program P1; 
var a,b,c:set of byte;
    f:text;
    i:byte;
begin
  assign(f,'in.txt');
  reset(f);
  a:=[];
  while not eoln(f) do
   begin
    read(f,i);
    a:=a+[i]; 
   end;
  readln(f);
  b:=[];
  while not eoln(f) do
   begin
    read(f,i);
    b:=b+[i];
    end;
  close(f);
  c:=a+b;
  for i:=0 to 255 do
  if i in c then write(i,' ');
  writeln;
  c:=a-b;
  for i:=0 to 255 do
  if i in c then write(i,' ');
end.   

          
2. De scris un subprogram care afiseaza modalitatea 
de plata, folosind un numar minim de bancnote, 
unei class="style35">sume S de lei. Numarul de 
bancnote si valoarealor se citeste in fisierul text 
bani.in, care contine pe fiecare linie cite 2 valori: 
prima indica valoarea bancnotei si a doua 
numarul de bancnote cu valoarea data..
Program P2;
 var a,b,num:array[1..7] of integer;
     s,i:integer;                   
     f:text;                        
begin                               
 assign(f,'bani.in');reset(f);
 for i:=1 to 7 do readln(f,a[i],b[i]);
 close(f);
 write('s=');readln(s);
 for i:=7 downto 1 do
 begin
 num[i]:=s div a[i];s:=s mod a[i];
 if num[i]>b[i] then begin s:=s+(num[i]-b[i])*a[i];num[i]:=b[i]; 
  end;
 end;
 if s<>0 then  
 writeln('Nu este posibil de efectuat plata cu bancnotele 
                                         respective!')
         else begin
       writeln('Suma este achitata cu urmatoarele bancnote:');
       for i:=7 downto 1 do if num[i]<>0 then 
                                    writeln(a[i],'-',num[i]);
      end;
end.
3. Sa se scrie un program care contine cuvintele textuluiin ordine alfabetica si numarul lor de aparitii.
Program P3;
var   f:text; 
      a:array[1..100] of string; 
      s:string;                      
      i,k,n:byte;                    
begin
assign(f,'Intrare.txt');reset(f);
i:=1;
while not eof(f) do
begin
  readln(f,s);s:=s+' ';
  while pos(' ',s)<>0 do
   begin
    a[i]:=copy(s,1,pos(' ',s)-1);delete(s,1,pos(' ',s));
    i:=i+1;
   end;
  end;
  close(f);
  n:=i-1;
  {Sortarea cuvintelor in ordine alfabetica}
  for k:=1 to n-1 do
   for i:=1 to n-1 do
     if a[i]>a[i+1] then 
                begin 
                 s:=a[i];a[i]:=a[i+1];a[i+1]:=s;
                end;
  {Determinarea numarului de aparitii al fiecarui cuvint}
  assign(f,'Iesire.txt');rewrite(f);
  k:=1;
  for i:=1 to n-1 do
   if a[i]=a[i+1] then k:=k+1
                  else 
          begin 
           writeln(f,a[i],' ',k);
           k:=1;
          end;
  writeln(f,a[n],' ',k);
  close(f);
end.