Habilidades del programa de lectura NOIP (Pascal)
Creo que hacer más es la mejor técnica, y te daré 30 consejos
1. Escriba la fórmula de cálculo representada por el siguiente segmento del programa (suponiendo que el valor de 10 DO
BEGIN
A:=A*X/N;
E:=E A;
ENDFOR;
Escribe la fórmula representada.
2. Lea el siguiente segmento del programa y escriba el valor de la variable X después de ejecutar el segmento del programa.
100 X1=3
COMENZAR la estructura del bucle, aplicar el método de rotación de datos, encontrar
X: = (X1 X2) * 2; 2 veces la suma de los dos números.
X1:=X2; Lea el siguiente segmento del programa y escriba los valores en los elementos de la matriz A1, A2,...,A11 después de ejecutar el programa.
A[1]: =1;
A[2]: =1; K: =1; A[K 2]:=1;
FOR I:=K 1 DOWNTO 2 DO
A[I]:=A[I] A[I-1];
K:=K 1;
HASTA Kgt;=10;
4. programa exp1 (entrada, salida);
var i, s, max: entero
a: matriz [1..10] de entero
comenzar
para i:=1 a 10 hacer read(a[i]);
max:=a[1]; >
para i:=2 a 10
comenzar
si slt;0 entonces s:=0;
s:=s a[i ];
if sgt; max entonces max:=s
end
writeln('max=', max)
fin
Entrada: -2 13 -1 4 7 8 -1 -18 24 6
Salida: max=
Entrada: 8 9 -1 24. 6 5 11 15 -28 9
Salida: max=
5. programa exp2 (entrada, salida);
const n=5;
var i, j, k: entero
a: matriz[1.. 2*n, 1..2*n] de entero;
comenzar
k:=1
para i:=1 a 2*n; -1 hacer
si ilt; =n entonces
si es impar(i) entonces para j: =i hasta 1 comenzar a[i-j 1, j]: =k; :=k 1 fin
else for j: =1 para empezar a[i-j 1, j]:=k; k:=k 1; (i) luego para j:=n hasta i-n 1
comenzar a[i-j 1,j]:=k; k:=k 1; terminar
else para j: =i-n 1 a n hacer
comenzar a[i-j 1, j]:=k; k:=k 1; finalizar;
for i:=1 to n do
comenzar
for j:=1 to n escribir(a[i, j]:3
writeln
end
end.
6. programa exp3 (entrada, salida);
const n=10;
var s, i: entero
función co(i1: entero): entero; ;
var j1, s1: entero;
comenzar
s1:=n para j1:=(n-1) abajo a (n-i1 1; ) hacer s1:=s1*j1 div (n-j1 1
co:=s1
fin
comenzar
s:=n 1; para i:=2 a n hacer s:=s co(i);
writeln('s=', s;
fin.
7. programa exp4(entrada, salida);
const n=3;
var i, j, s, x: entero
p: matriz [0] ..n 1] de número entero;
g: matriz [0..100] de número entero
comenzar
para i := 0 a 100 g[i]:=0;
p[0]:=0; p[n 1]:=100; para i:= 1 an leer (p[i]);
para i:= 0 a n hacer
para j:= i 1 a n 1 hacer g[abs(p[j]-p[i])]:=g [abs(p[j]-p[i])] 1;
s:=0; para i:=0 a 100 hazlo si g[i]gt; :4); s:=s 1; fin;
escribirln('s=', s); escribirln('datos de entrada:'); p> writeln(g[x])
end.
Entrada: 10 20 65
datos de entrada: 10
Salida:
8. programa excpl;
var x, y, y1, jk, j1, g, e: integcr;
a: matriz [l..20] de 0..9;
comenzar
x:=346
5; y:=264; jk:=20; para j1:=1 a 20 haga a[j1]:=0;
mientras que <>0 haga
comenzar
y1:=y mod 10; y:=y div 10;
mientras que y1<>0
comienza
g: =x;
para e:=jk downto 1 comenzar g:=g a[e]; a[e]:=g mod 10; g:=g div 10 end;
y1:=y1-1
fin;
jk:=jk-1
fin;
j1:=1 ; mientras que a[j1]=0 haz j1:=j1 1;
para jk:=j1 a 20 escribe(a[jk]:4);
9. programa excp2
var i, j: entero;
a: matriz [1..14] de entero
procedimiento sw(i1, j1: entero;
var k1: entero;
comenzar
para k1:=1 a (j1-i1 1) div 2 do
comenzar
a[i1+k1-1]:=a[i1+k1-1]+a[j1-k1 1]
a[j1-k1+1]:=a; [i1+k1- 1]-a[j1-k1 1];
a[i1 k1-1]:=a[i1-k1 1]-a[j1-k1 1]; p>
fin;
fin;
comienzo
j:=211; para i:=1 a 14 comienza a[i]: =i; j: =j-i fin;
sw(1,4); sw(5,10); sw(11,14); > para i: = 1 a 14 comience si j mod i=1 luego escriba (a[i]:3); j:=j-a[i]; end;
writeln
fin.
10. programa noi_002;
var i, j, l, n, k, s, t: entero
b: matriz [1..10] de 0..9; /p>
comenzar
readln(l, n); s:=l; k:=1; t:=l;
mientras que n comienza k :=k 1;t:=t*l;
:=s t end;
s:=s-t; n:=n-s-1; para i:=1 a 10 hacer b[i]:=0;
j:= 11; mientras que ngt; 0 comienza j:=j-1; b[j]:=n mod l; n:=n div l end;
for i:=10-k 1 a 10 escribir(chr(ord('a') b[i]));
end.
Entrada: 4 167
Salida:
11. programa noi_004;
var i, j, j1, j2, p, q: entero
p1: booleano
b, c: matriz [1] ..100] de entero;
comenzar
readln(q, p); j:=1; p1:=true; 0;
while (qgt; 0) y p1 hacen
comenzar
j1:=j1 1; ; q:=q*10-c[j1]*p;
si qgt; entonces comienza
j2:=1; q) y (j2lt;=j) hacen j2:=j2 1;
si b[j2]=q
entonces comienza
p1:=false ; escribir('0.');
para i:=1 a j2-1 escribir(c[i]:1
escribir('{');
para i:=j2 a j1 escribir(c[i]:1
writeln('}')
end
else start j:=j 1; b[j]:=q end
end
end;
si q=0 entonces comienza
write('0.');
para i:=1 a j1 escriba(c[i]:1);
writeln
end;
readln
end.
Entrada① 1 8 Salida
Entrada② 2 7 Salida
12. programa chu7_1;
función divertida(x: entero): entero;
comenzar
si (x=0) o (x=1) luego diversión:=3
else diversión:=x-fun(x-2)
fin;
comenzar p>
writeln(fun(9));
readln;
fin.
13.program chu7_2
var i; , j, f: entero;
a: matriz [1..8] de entero
comenzar
para i: =1 a 8 hacer
comenzar
f:=i mod 2;
si f=0 entonces a[i]:=0
si no a[ i]:=1;
for j:=1 que hago
si f=0 entonces a[i]:=a[i] j
else a[i]:=a[i]*j
end;
for i:=1 a 8 escribe(a[i]:5); p>
fin.
14.program chu7_3;
var p, q, s, t: entero
comienzo
<; p> readln(p);para q:=p 1 a 2*p hacer
comenzar
t:=0; *q)mod(q-p);
si s=0 entonces comienza t:=p q (p*q)div(q-p); write(t: 4 end;
fin;
readln
fin.
Entrada: 12
Salida:
15. ;
var n, k, i: entero;
a: matriz [1..40] de entero
procedimiento buscar(x: entero) ;
var s, i1, j1: entero;
p: booleano
comenzar
i1:=0; =true;
mientras p do
comienza
i1:=i1 1;
f
o j1:=1 to n hazlo si a[j1]gt;a[i1]entonces s:=s 1;
si(s=x-1)entonces comienza a escribirln(a[i1]) ; p: = fin falso;
fin
fin
comienzo
readln(n, k);
para i:=1 a n hacer read(a[i]);
buscar(k); buscar
fin.
Entrada: 10 4
12 34 5 65 67 87 7 90 120 13
Salida:
16.program exp1;
var i, j, k, n,, l0, l1, lk: entero
a: matriz [0..20] de entero
comienzo
readln(n, k);
para i:=0 a n-1 hacer a[i]:=i 1
a[n]:=a; [n-1]; l0:=n-1; lk:=n-1;
para i:=1 a n-1
comenzar
l1:=l0-k; si (l1lt; 0) entonces l1:=l1 n;
si (l1=lk) entonces comienza a[l0]:=a[n]; =lk-1; a[n]:=a[lk]; l0:=lk fin;
si no comienza a[l0]:=a[l1]; /p>
end;
a[l0]:=a[n]; para i:=0 a n-1 escriba(a[i]:40); p> p>
fin.
Entrada: 10 4
Salida:
17.program exp2;
var n , jr , jw, jb: entero;
ch1: char;
ch: matriz [1..20] de char
comenzar
readln(n); para i:=1 an hacer read(ch[i]); jr:=1; jb:=n;:
while ( jrlt; =jw)
comenzar
si (ch[jw]='R')
entonces comenzar
ch1: =ch[jr]; ch[jr]:=ch[jw]; ch[jw]:=ch1; jr:=jr 13
fin
si no ]= 'W' entonces jw:=jw-1
si no comienza
c
h1:=ch[jw]; ch[jw]:=ch[jb]; ch[jb]:=ch1;
jw:=jw-1; p>
p>
fin
fin
para i:=1 an escribir(ch[i]); writeln;
end.
Entrada: 10
RBRBWWRBBR
Salida:
18.pmgram exp3;
var i, j, p, n, q, s: entero;
a: matriz [1..20] de entero
comenzar<; /p>
readln(p, n, q); j: = 21;
mientras (ngt; 0) comienza j: = j-1; 10; n: = n div 10; fin;
s:=0; para i:=j t0 20 hacer s:=s*p a[i]; ;
mientras (sgt; o)comienza j:=j-1; a[j]:=s mod q; s:=s div q; fin;
para i:=j a 20 escribir(a[i]); readln;
end.
Entrada: 7 3051 8
Salida:
19 . programa programal;
var a, x, y, okl, ok2: entero;
comenzar
a: =100; =20; okl:=5; ok2:=0;
si ((xgt;y) o ((ylt;gt;20) y (okl=0)) y (ok2lt;gt;0 )) entonces a:=1
más si ((okllt;gt;0) y (ok2=、0)) entonces a:=-1 más a:=0;
writeln(a);
fin.
20. programa Programa2;
var a, t: cadena;
i, j: entero
comenzar
a:=mañana; j:=l; para i:=2 a 7 hazlo si (a[j]lt;a[i]) entonces j:=i;
j:=j-1; para i:= 1 a j escribir(a[i]);
end.
21. programa programa3;
var a, b, c, d, suma: entero largo
comenzar
leer (a, b, c, d); /p>
a:=a mod 23; b:=b mod 28; c:=c mod 33; suma:=a*5544 b* 14421 c*1288-d;
suma: = suma 21252; suma: = suma mod 21252; si (suma = 0) entonces suma: = 21252;
writeln(suma);
Entrada: 283 102 23 320
Salida:
22. programa programa4;
var a: matriz [0..5] de entero
suma, n, max, i, j, k: entero
portada: matriz [0..22000] de booleano;
comenzar
leer(a[5], a[4], a[3], a[2], a[1], a[0]);
si ((a[5]=0) y (a[3]=0) y (a[1]=0))
luego comienza a[5]:=a[4]; a[4]:=a[2]; a[3]:=a[0]; ]:=0; fin;
para i:=0 a 5 haz si (a[i]gt;10) entonces a[i]:=10 (a[i] mod 2);
suma:=0;
para i:=0 a 5 hacer suma:=sum a[i]*(6-i); (sum mod 2)lt; gt; 0) luego comience writeln('No se puede dividir.'); fin; 0]:=True;
para i:=1 para sumar*2 hacer cover[i]:=False;
para i:=0 para 5 hacer;
comenzar
j:=0
mientras (jlt; a[i]) hacer
comenzar
para k:=max hasta 0 hacer
comenzar si (cover[k]) luego cubrir[k 6-i]:=True; end;
max:=max 6-I ; j:=j 1;
fin
fin
if (cover[sum]) then writeln('Se puede dividir.')
else writeln('no se puede dividir.');
end.
Entrada: 4 7 9 20 56 48 Entrada: 1000 7 101 20 55 1 Entrada: 2000 5 l 1 0 0
Salida: Salida: Salida:
23. programa programa1;
var
a, b, c, d, e: entero;
p>
comenzar
a:=79; b:=34; c:=57; e:=-1;
if (alt; c) o (bgt; c) entonces d:=d e
else if (d 10lt; e) then d:=e 10
else d:=e-a;
escrito(d);
fin.
24. programa programa2;
var
i, j: entero
str1, str2: cadena
comenzar
str1:='cerdo-es-estúpido'; str2:='inteligente';
str1[1]:='d'; str1[2]:='o'; 8;
para j:=1 a 6 comience str1[i]:=str2[j]; inc(i);
writeln(str1); p> p>
fin.
25. programa programa3;
var u: matriz [0..3] de entero
a, b, c, x, y, z: entero
comenzar
leer(u[0], u[1], u[2], u[3]); a:=u[0] u[1] u[2] u[3); ]-5;
b:=u[0]*(u[1]-u[2] div u[3] 8); u[2]*u[3];
x:=(a b 2)*3-u[(c 3) mod 4]; (u[b mod 3]*5);
si((x y) mod 2=0) entonces z:=(a b c x y) div 2;
z:=(a b c –x-y)*2; writeln(x y-z);
end.
Entrada: 2 5 7 4
Salida: .
26. programa programa4;
var c: matriz [1..3] de cadena[200];
s: matriz [1..10] de número entero;
m, n, i: entero;
procedimiento numara;
var cod: booleano;
i, j, nr: entero
comenzar
para j:=1 a n comenzar
nr:=0; cod:=true;
para i:=1 to m do
if c[i, j]='1'
entonces comience si no cod
entonces comience cod:=true; [nr]); nr:=0; fin
fin
si no comienza
si cod entonces comienza nr:=1;
else inc(nr);
fin;
si no es bacalao entonces inc(s[nr]);
fin;
comenzar
readln(m, n); para i:=1 a m hacer readln(c[i]); >
numara; para i:=1 to m hazlo si s[i]lt;gt;0 entonces escribe(i,'',s[i],'');
end.
Entrada: 3 10
1110000111
1100001111
1000000011
Salida: .
27. programa cup_1;
var n, i, j, k, di, dj: entero
a: matriz [1..20, 1..20] de entero; /p>
comenzar
n:=7;i:=1;j:=n;k:=1;di:=1;dj:=1;
mientras (klt;=n*n)
comenzar
a[i, j]:=k; =j dj;
si (i=n 1)
entonces comienza i:=n;j:=j-2;di:=-1;dj:=-1 fin
si no (j=n 1)
entonces comience j:=n;di:=-1;dj:=-1 fin
si no si (j=0)
entonces comienza i:=i 2;j:=1;di:=1;dj:=1 final
si no (i=0) comenzar j:=1;di:=1;dj:=1 finalizar
finalizar;
para j:=1 hasta n escribir(a[n div 2,j] :4);
escribir
fin.
28. programa cup_2;
var s: cadena; i, j, m, w: entero; c: char
a: matriz [0..127] de entero; p> p>
comenzar
para i:=0 a 127 hacer
comenzar
c:=chr(i);
if (('0'lt;=c) and (clt;='9'))
entonces a[i]:=1
else
if ((('A'lt;=c) y (clt;='Z')) o (('a'lt;=c) y (clt;='z'))) p>
entonces a[i]:=2
else a[i]:=0
end
readln(s); := longitud(s);
for i:=1 to m do
comenzar
j:=ord(s[i]); p>
if (a[j]gt; 0) entonces comienza a escribir(s[i]); a[j]:=a[j]-1 end
end;
escribir
fin.
Entrada: 123 1234a 12abc-aaABB*ABC
Salida:
29. programa copa_3;
<p> función f(m, n, k: entero): entero;
comenzar
si ((m=0) y (n=0) y (k=0) )
entonces f:=1
si no ((0lt;=m) y (mlt;=n) y (nlt;=k))
entonces f:=f(m-1,n,k) f(m,n-1,k) f(m,n,k-1)
más f:=0; p>
fin;
comienzo
writeln(f(3, 3, 3));
fin.
30. programa cup_4;
var s: cadena; wc, lcs, i: entero
comenzar
readln(s); 1;
para i:=1 a longitud(es) hacer
si ((lcs=0) y ((s[i]='') o (s[i ]=chr(9))))
entonces lcs:=1
else if ((lcs=0) y (s[i]lt;gt;'') y (s[i]lt; gt; chr(9)))
luego comienza wc:=wc 1;lcs:=0 end;
writeln(wc); p> p>
end
Entrada: ¡Este es un programa de prueba!
Salida: