Red de conocimiento informático - Aprendizaje de programación - programación pascal

programación pascal

tabla de programa;

procedimiento tran(fen:integer);

var temp:char;

w,L:integer;

primero:booleano;

comenzar

w:=0;L:=0;

primero:=verdadero; p>

leer(temp);

mientras temp<>'E' comienza

si temp='W' entonces

w := w+1

si no temp='L' entonces

L:=L+1;

si ((w>=fen) o (L >=fen)) y (abs(w-L)>=2) luego comience

writeln(w,':',l);

w:=0;L := 0;

primero:=falso;

fin;

lectura(temp);

fin;

writeln(w,':',L);

fin;

comenzar

tran(11);

writeln;

tran(21);

end.

programa maxmu;

const maxn=40;maxk=6;

escriba arr=matriz[1..50] de número entero;

arr1=matriz[1..maxn,0..maxk,1..50] de número entero;

var f:arr1;

s:string;

a:arr;

n,k,i,j,p,q ,k1 :integer;

x,y,temp:arr;

procedimiento mul(var z:arr;y:arr);

var x: arr; m,n,nx,ny,c:integer;

comenzar

para m:=1 a 50 hacer x[m]:=z[m];

nx:=50;mientras (nx>0) y (x[nx]=0) hacen nx:=nx-1;

ny:=50;mientras (ny>0 ) y (y[ny]=0) hacer ny:=ny-1;

fillchar(z,sizeof(z),0);

c:=0;

para m:=1 a nx comenzar

para n:=1 a ny comenzar

z[m+n-1]:=z[ m+ n-1]+c+x[m]*y[n];

c:=z[m+n-1] div 10;

z[m+ n -1]:=z[m+n-1] mod 10;

end;

n:=ny+m;

mientras c>0 comienza z[n]:=c mod 10;c:=c div 10;n:=n +1;fin;

fin;

fin;

procedimiento max(var x:arr;y:arr);

var nx,ny,i:integer;

comenzar

nx:=50;mientras (nx>0) y (x[nx]=0) hacen nx:=nx- 1;

ny:=50;mientras (ny>0) y (y[ny]=0) hacen ny:=ny-1;

si nx

si no, si ny=nx entonces comienza

while (nx>0) y (x[nx] =y[nx]) haz nx:=nx-1;

si (nx>0) y (y[nx]>x[nx]) entonces para i:=nx hasta 1 haz x[ i]:=y[i];

fin;

fin;

comienzo

readln(n,k);readln (s);

fillchar(a,sizeof(a),0);

fillchar(f,sizeof(f),0);

para i:=1 para n hacer a[i]:=ord(s[i])-ord('0');

para i:=1 para n hacer

para p:=1 a hago f[i,0,p]:=ord(s[i+1-p])-ord('0');

para i:=2 a n comenzar

si (i-1)>k entonces k1:=k else k1:=i-1;

para j:=1 a k1 comenzar

para q:=1 a 50 haga temp[q]:=f[i,j,q];

para p:=j a i-1 comience

para q:=1 a 50 hacer x[q]:=f[p,j-1,q];

fillchar(y,sizeof(y),0);

para q:=1 a i-p hacer y[q]:=a[i+1-q];

mul(x,y);

max(temp ,x);

end;

para q:=1 a 50 haga f[i,j,q]:=temp[q];

fin;

fin;

q:=50;

mientras (f[n,k,q]=0) y

(q>0) hacer q:=q-1;

si q<1 entonces writeln('Error')

else

mientras q>0 comience a escribir (f[n,k,q]);q:=q-1;end;

writeln;

end.

Debido a esto ¡Están bien!