Felhasználói eszközök

Eszközök a webhelyen


inf-prog-fszi:ipv6

Különbségek

A kiválasztott változat és az aktuális verzió közötti különbségek a következők.

Összehasonlító nézet linkje

inf-prog-fszi:ipv6 [2017/06/19 10:03]
beistvan létrehozva
inf-prog-fszi:ipv6 [2017/06/19 10:03] (aktuális)
beistvan létrehozva
Sor 1: Sor 1:
 +====== Ipv6 ======
  
 +<code pascal ipv6.pas>
 +program ipv6;
 +var i,j,k,n,dok,glob,helyi,nulla,sorsz,maxind:integer;
 +    min,anullanelkul,megrovidebbip:string[39]; v:string[4];
 +    van:boolean;
 +    a:array[1..500] of string[39];
 +    ipk:array[1..8] of string[4];
 +    db:array[1..8] of integer;
 +    f:text;
 +begin
 +   assign(f,'ip.txt');
 +   reset(f);
 +   i:=0;
 +   while not eof(f) do
 +   begin
 +     inc(i);
 +     readln(f,a[i]);
 +   end;
 +   n:=i;
 +   close(f);
 +   {for i:=1 to n do
 +   writeln(a[i]);   }
 +   writeln('1. feladat');
 +   writeln('Az adatok beolvasva az "ip.txt"-bol.');
 +   writeln('2. feladat');
 +   writeln(n,' adatsor van a fajlban');
 +   writeln('3. feladat');
 +   min:=a[1];
 +   for i:=1 to n do
 +     if a[i]<min then min:=a[i];
 +   writeln('a legalacsonyabb tarolt ip cim: ');
 +   writeln(min);
 +   writeln('4. feladat');
 +   dok:=0; glob:=0; helyi:=0;
 +   for i:=1 to n do
 +   begin
 +     if (a[i][1]='2') and (a[i][1+1]='0') and (a[i][1+2]='0') and (a[i][1+3]='1')
 +       and (a[i][1+4]=':') and (a[i][1+5]='0') and (a[i][1+6]='d') and (a[i][1+7]='b')
 +       and (a[i][1+8]='8')
 +       then
 +         inc(dok);
 +     if (a[i][1]='2') and (a[i][1+1]='0') and (a[i][1+2]='0') and (a[i][1+3]='1')
 +       and (a[i][1+4]=':') and (a[i][1+5]='0') and (a[i][1+6]='e')
 +       then
 +         inc(glob);
 +     if (a[i][1]='f') and (a[i][1+1]='c') or (a[i][1]='f') and (a[i][1+1]='d')
 +       then
 +         inc(helyi);
 +   end;
 +   writeln('globalis=  ',glob);
 +   writeln('dokumentacios= ',dok);
 +   writeln('helyi= ',helyi);
 +   writeln('5. feladat');
 +   Assign(f,'sok.txt');
 +   rewrite(f);
 +   for i:=1 to n do
 +   begin
 +     nulla:=0;
 +     for j:=1 to length(a[i]) do
 +       if a[i][j]='0' then inc(nulla);
 +     if nulla>=18 then writeln(f,i,' ',a[i]);
 +   end;
 +   close(f);
 +   writeln('A "sok.txt"-be kiirva a 18 db es tobb nullat tartalmazo ip-k.');
 +   writeln('6. feladat');
 +   writeln('kerek egy sorszamot: '); readln(sorsz);
 +   writeln(a[sorsz]);
 +   anullanelkul:='';
 +   for i:=1 to 8 do
 +   begin
 +     v:=''; van:=false;
 +     for j:=5*i-4 to 5*i-1 do
 +     begin
 +       if (a[sorsz][j]<>'0')then van:=true;
 +       if van then  v:=v+a[sorsz][j];
 +     end;
 +     if v='' then v:='0';
 +     anullanelkul:=anullanelkul+v;
 +     if i<8 then anullanelkul:=anullanelkul+':';
 +   end;
 +   writeln(anullanelkul);
 +   writeln('7. feladat');
 +   //szetbontas ":" elvalasztoval --- stplit
 +   i:=1;
 +   j:=1;
 +   repeat
 +     k:=0;
 +     while (i<=length(anullanelkul))and(anullanelkul[i]<>':') do
 +     begin
 +       inc(i);
 +       inc(k);
 +     end;
 +     ipk[j]:=copy(anullanelkul,i-k,k);
 +     inc(i);
 +     inc(j);
 +   until i > length(anullanelkul);
 +   //hany darab 0-as sorozat van?
 +   for i:=1 to 8 do
 +     if ipk[i]='0' then
 +     begin
 +       j:=i;
 +       while ipk[j]='0' do
 +       begin
 +         inc(db[i]);
 +         inc(j);
 +       end;
 +     end;
 +   for i:=1 to 8 do
 +     write(db[i],' ');
 +   //az elso leghosszabb kezdete az maxind indexu
 +   van:=false;
 +   maxind:=1;
 +   for i:=2 to 7 do
 +     if db[i]>db[maxind] then
 +     begin
 +       maxind:=i;
 +       van:=true;
 +     end;
 +   writeln('maxind=',maxind);
 +   if van then
 +   begin
 +     //a rovidites elott
 +     for i:=1 to maxind-1 do
 +       megrovidebbip:=megrovidebbip+ipk[i]+':';
 +     //a plusz egy ":" a nullak helyett
 +     megrovidebbip:=megrovidebbip+':';
 +     //a rovidites utan
 +     for i:=maxind+db[maxind] to 8 do
 +     begin
 +       megrovidebbip:=megrovidebbip+ipk[i];
 +       if i < 8 then
 +         megrovidebbip:=megrovidebbip+':';
 +     end;
 +     writeln(megrovidebbip);
 +   end
 +   else
 +     writeln('Nem roviditheto tovabb.');
 +readln;
 +end.
 +</code>
inf-prog-fszi/ipv6.txt · Utolsó módosítás: 2017/06/19 10:03 szerkesztette: beistvan