Extras din notiță
1. Se citeste o data calendaristica sub forma de sir de caractere zz-ll-aa, unde zz,
ll, aa sunt numere. Sa se scrie in fisierul DC.txt ziua care urmeaza acestei date calendaristice
sub forma zz-ll-aa (ziua, luna si anul se memoreaza pe cate 2 cifre) sau mesajul `data
invalida` in cazul in care data calendaristica este eronata. Se considera, in mod
simplificat, an bisect, numarul aa multiplu de 4.
var i,e:integer;
b,bi:boolean;
sa,sl,sz:string[2];
ia,il,iz:byte;
luni:array[1..12]Of 1..31;
dati,dato:string[6];
f:text;
Begin
read(dati);
dato:='';
For i:=1 to 12 do
luni[i]:=31;
luni[2]:=28;
luni[4]:=30;
luni[6]:=30;
luni[9]:=30;
luni[11]:=30;
if length(dati)=6 then
begin
b:=true;
for i:=1 to 6 do
if (dati[i]<'0')or(dati[i]>'9') then
b:=false;
if b then
begin
dato:='0';
sz:=copy(dati,1,2);
sl:=copy(dati,3,2);
sa:=copy(dati,5,2);
val(sz,iz,e);
val(sa,ia,e);
val(sl,il,e);
if iz<luni[il] then
iz:=iz+1
else
if iz=luni[il] then
begin
if il<>2 then
iz:=1
else
if il mod 4 = 0 then
iz:=iz+1
else
iz:=1;
if il<12 then
il:=il+1
else
if il=12 then
begin
il:=1;
if ia<99 then
ia:=ia+1
else
ia:=0;
1
end
else
dato:='data invalida';
end
else
begin
if il=2 then
begin
il:=3;
iz:=1;
end
else
dato:='data invalida';
end;
end
else
dato:='data invalida';
if (dato='0')and(il<13) then
begin
str(iz,sz);
str(il,sl);
str(ia,sa);
if length(sz)=1 then
sz:='0'+sz;
if length(sl)=1 then
sl:='0'+sl;
if length(sa)=1 then
sa:='0'+sa;
dato:=sz+sl+sa;
assign(f,'dc.txt');
rewrite(f);
write(f,datao);
close(f);
end
else
dato:='data invalida';
end;
if dato='data invalida' then
write(dato);
end.
2
2. Se consider_ fi_ierul text FRACTII.IN care con_ine pe fiecare linie c‚te dou_ numere
naturale nenule <= 100, separate printr-un spa_iu, cu semnifica_ia c_ primul num_r reprezint_
num_r_torul, iar al doilea numitorul unei frac_ii.
var f1,f2:text;
a,b,c,d,e:integer;
ir:boolean;
begin
d:=0;
e:=1;
assign(f1,'fractii.in');
assign(f2,'fractii.out');
reset(f1);
rewrite(f2);
while not eof(f1) do
begin
readln(f1,a,b);
if a>b then
c:=b
else
c:=a;
ir:=false;
while (c>1)and (not ir) do
begin
if (a mod c=0)and(b mod c=0) then
begin
a:=a div c;
b:=b div c;
ir;=true;
end;
c:=c-1;
end;
writeln(f2,a,b);
if b<>e then
begin
d:=d*b;
a:=a*e;
e:=e*b;
b:=e;
end;
d:=d+a;
end;
close(f1);
ir:=false;
if d>e then
c:=e
else
c:=d;
while (c>1) and (ir=false) do
begin
if (d mod c=0)and(e mod c=0) then
begin
d:=d div c;
e:=e div c;
ir:=true;
end;
c:=c-1;
end;
write(f2,d,e);
close(f2);
end.
Preview document
Conținut arhivă zip
- Atestat Informatica.doc