Minimul dintr-un şir

February 11th, 2007

Cea mai mică valoare

var n,min:integer;
begin
write(’n=’); readln(n);
min:=maxint;
while n<>0 do
 begin
  if n<min then min:=n;
  write(’n=’); readln(n);
 end;
write(’minimul: ‘,min);
readln; end.

Maximul dintr-un şir

February 11th, 2007

Cea mai mare valoare

var n,max:integer;
begin
write(’n=’); readln(n);
max:=-maxint;
while n<>0 do
 begin
  if n>max then max:=n;
  write(’n=’); readln(n);
 end;
write(’maximul: ‘,max);
readln; end.

Numărul de cifre al unui număr

February 11th, 2007

var n,nr:integer;
begin
write(’n=’); readln(n);
while n<>0 do
 begin
  nr:=nr+1;
  n:=n div 10;
 end;
write(n,’ are ‘,nr,’ cifre’);
readln; end.

Generarea pătratului magic

February 11th, 2007

Pătratul magic = pătratul în care adunând elementele de pe orice diagonală sau latură obţinem mereu aceeaşi sumă
Numărul de linii şi coloane n este impar

var a:array[1..100,1..100] of integer;
      n,x,y,k,i,j:integer;
begin
write(’n=’);readln(n);
x:=n div 2+1; y:=n; a[x,y]:=1; k:=1;
repeat
 if y+1>n then begin x:=x+1; y:=1; end else
 if x+1>n then begin x:=1; y:=y+1; end else
  begin x:=x+1; y:=y+1 end;
 k:=k+1; a[x,y]:=k;
 if k mod n=0 then begin y:=y-1; k:=k+1; a[x,y]:=k; end;
until k=sqr(n);
for i:=1 to n do
  begin
   for j:=1 to n do write(a[i,j],’ ‘);
   writeln;
  end;
readln;end.

Frecvenţa valorilor în vector

February 11th, 2007

De câte ori apare fiecare valoare

type sir=record
        nr,fr:integer;
       end;
var a:array[1..100,1..100] of integer;
      v:array[1..100] of sir;
      n,m,i,j,p,x,l,k,na:integer;
      g:boolean;
begin
write(’n=’);readln(n);
for i:=1 to n do
for j:=1 to m do
  begin write(’a[’,i,’,',j,’]=’); readln(a[i,j]); end;
p:=0;
for i:=1 to n do
for j:=1 to m do
 begin
  g:=false;
  for x:=1 to p do if a[i,j]=v[x].nr then g:=true;
  if not g then begin
                     na:=0;
                     for k:=1 to n do
                     for l:=1 to m do
                      if a[i,j]=a[k,l] then na:=na+1;
                      p:=p+1; v[p].nr:=a[i,j]; v[p].fr:=na;
                    end;
  end;
for i:=1 to n do
for j:=1 to n do
 begin
  g:=false;
  for x:=1 to p do if a[i,j]=v[x].nr then
   begin g:=true; v[x].fr:=v[x].fr+1; end;
  if not g then begin p:=p+1; v[p].nr:=a[i,j]; v[p].fr:=1; end;
end;
for i:=1 to p do writeln(v[i].nr,’ - ‘,v[i].fr);
readln; end.

Verifică dacă două cuvinte rimează

February 11th, 2007

var s,t,ss,tt:string;
      i,p:integer;
begin
write(’s=’); readln(s);
write(’t=’); readln(t);
write(’p=’); readln(p);
ss:=”; tt:=”;
for i:=1 to p do
 begin
  ss:=ss+s[length(s)];
  delete(s,length(s),1);
 end;
for i:=1 to p do
 begin
  tt:=tt+length(t);
  delete(t,length(t),1);
 end;
if ss=tt then write(’Cele doua cuvinte rimeaza’)
           else write(’Cele doua cuvinte nu rimeaza’);
readln; end.

Transformarea literelor mari în litere mici

February 11th, 2007

var s:string;
      i:integer;
begin
write(’s=’); readln(s);
for i:=1 to length(s) do
 if (s[i]>=’A') and (s[i]<=’Z') then
  s[i]:=char(ord(s[i])+32);
write(s);
readln; end.

Poziţiile calului pe tabla de şah

February 11th, 2007

var i,c,x,y:integer;
begin
write(’x=’); readln(x);
write(’y=’); readln(y);
for i:=1 to 8 do
 case i of
  1:begin if (x-2>0) and (y+1>0) then writeln(’(',x-2,’,',y+1,’)'); end;
  2:begin if (x-1>0) and (y+2>0) then writeln(’(',x-1,’,',y+2,’)'); end;
  3:begin if (x+1>0) and (y+2>0) then writeln(’(',x+1,’,',y+2,’)'); end;
  4:begin if (x+2>0) and (y+1>0) then writeln(’(',x+2,’,',y+1,’)'); end;
  5:begin if (x+2>0) and (y-1>0) then writeln(’(',x+2,’,',y-1,’)'); end;
  6:begin if (x+1>0) and (y-2>0) then writeln(’(',x+1,’,',y-2,’)'); end;
  7:begin if (x-1>0) and (y-2>0) then writeln(’(',x-1,’,',y-2,’)'); end;
  8:begin if (x-2>0) and (y-1>0) then writeln(’(',x-2,’,',y-1,’)'); end;
 end;
readln; end.

Sumele obţinute de pe conturul unui pătrat din matrice

February 11th, 2007

var a:array[1..100,1..100] of integer;
      n,i,j,k,s:integer;
begin
write(’n=’); readln(n);
for i:=1 to m do
for j:=1 to n do
 begin write(’a[’,i,’,',j,’]=’); readln(a[i,j]); end;
for k:=1 to n div 2 do
 begin
  s:=0;
  for j:=k to n-k+1 do s:=s+a[k,j];
  for i:=k+1 to n-k+1 do s:=s+a[i,n-k+1];
  for j:=n-k downto k do s:=s+a[n-k+1,j];
  for i:=n-k downto k+1 do s:=s+a[i,k];
  writeln(’suma patratului ‘,k,’ =’,s);
 end;
if n mod 2<>0 then write(n div 2+1,’ ‘,n div 2+1);
readln; end.

Transpusa matricii

February 11th, 2007

var a,b:array[1..100] of integer;
      i,j,m,n:integer;
begin
write(’n=’); readln(n);
write(’m=’); readln(m);
for i:=1 to m do
for j:=1 to n do
 begin write(’a[’,i,’,',j,’]=’); readln(a[i,j]); end;
for i:=1 to m do
for j:=1 to n do
 b[i,j]:=a[m-i+1,j];
for j:=1 to n-1 do
 begin
  for i:=1 to m do write(a[i,j],’ ‘);
  writeln;
 end;
readln; end.