Programación gratuita en lenguaje Pascal
La respuesta obtendrá 2 puntos de experiencia. Capítulo 3 Programa de bucle
En programación, a menudo nos encontramos con procesamiento repetido con las mismas reglas muchas veces. Turbo Pascal utiliza diferentes métodos de bucle para implementar. Hay tres bucles de uso común: for, repetir y while
Sección 1 bucle for
El bucle for es un ciclo de tipo conteo automático. .
[Ejemplo 3.1] Intenta imprimir los números naturales del 1 al 20.
Solución: ① Use a para representar los números del 1 al 20, y también use a como contador para controlar el número de ciclos
② Comencemos desde 1; /p>
③ Salida a;
④ a cuenta automáticamente (suma 1), si no excede el rango de ciclo especificado, repita el paso ③; de lo contrario, el ciclo finaliza.
Programa Pascal:
Programa Examen12;
Var a: byte;
Comenzar
para a: =1 a 20 hacer
Writeln (a);
Readln
End.
para a:=1 a 20 en el programa do Writeln (a); es una declaración de bucle for.
La instrucción del bucle for tiene dos formatos:
(1) variable del bucle for:=valor inicial Al valor final sentencia do
(2) bucle for; Variable: = valor inicial hasta valor final do declaración;
El valor inicial del formato (1) es menor o igual que el valor final, y el valor de la variable del bucle cambia en incrementos sumando automáticamente 1;
El primero (2) El valor inicial del formato es mayor o igual que el valor final, y el valor de la variable del bucle disminuye en 1 automáticamente. El bucle for es un bucle de conteo (que aumenta en 1 o disminuye en 1).
Por ejemplo: si el programa [Ejemplo 3.1] se cambia a un ciclo de cuenta regresiva (decreciente), se genera un número natural de 20 a 1:
Programa Examen31; p>
Var a: byte;
Comenzar
para a:=20 hasta 1 hacer
Writeln(a) ;
Readln
Fin.
[Ejemplo 3.2] Imprime números pares del 30 al 60. ]
Solución:
Método 1:
= 1 \* GB3 ① Sea a representar todos los números del 30 al 60, que se pueden enumerar con un for loop;
= 2 \* GB3 ②Utilice la fórmula a mod 2=0 para filtrar los números pares y generarlos.
Programa Pascal:
Programa ex32;
Var a: entero;
Comenzar
Para a: = 30 a 60 hacer
Si (un mod 2=0) entonces writeln(a);
Readln;
End.
En este programa, la declaración de bucle después del bucle for es una declaración de rama condicional.
Método 2: Sabemos que en la fórmula a=2*n, si n toma los números naturales 1, 2, 3,..., entonces a obtendrá los números pares 2, 4, 6 ,... en secuencia. Por lo tanto, si desea obtener un número par de 30 a 60, puede hacer que n en la fórmula anterior sea un número natural de 15 a 30. Por lo tanto, este problema también se puede resolver siguiendo los siguientes pasos:
= 1 \* GB3 ① Supongamos que n representa todos los números naturales del 15 al 30, que se pueden enumerar con un bucle for
= 2 \* GB3 ②Utilice la fórmula a := 2*n para encontrar el número par
= 3 \* GB3 ③Envíe el resultado a la pantalla.
Programa Pascal:
Programa ex32;
Comenzar
Para n := 15 a 30 do
Comienzo
a := 2*n;
Writeln(a);
Fin;
Readln;
Fin.
[Ejemplo 3.3] Suma de números naturales: Escribe un programa para encontrar la suma de números naturales del 1 al 100.
Solución: ① Sea S=0;
② Sea a los números naturales del 1 al 100, enumerados en un bucle.
③ Utilice fórmulas para; estos números naturales S: = S + a se acumulan en S uno por uno
= 4 \* GB3 ④ Una vez finalizado el ciclo, S es la suma de los números naturales del 1 al 100, simplemente envíelo. .
Programa Pascal:
Programa ex33;
var s,a : entero;
Comenzar
S := 0;
Para un := 1 a 100 hacer
S := S+a;
Writeln('S=',S);
Readln;
End.
[Ejemplo 3.4] Para un número x de dos dígitos, intercambie sus dígitos de unidades y decenas para obtener un nuevo número y En este momento, y es exactamente 36 mayor que x. Programe para encontrar todos esos números de dos dígitos.
Solución: ① Utilice un bucle for para enumerar todos los números de dos dígitos, x es la variable del bucle
② Utilice la fórmula a:= x div 10 para separar las decenas; dígitos de x;
③ Usa la fórmula b:= x mod 10 para separar el dígito único de x
④ Usa la fórmula y:= b*1a para sintetizar; un nuevo número y;
= 5 \* GB3 ⑤ Utilice la fórmula y-x=36 para filtrar el número x que cumple las condiciones y generarlo.
Programa Pascal:
Programa ex34;
Comenzar
Para x := 10 a 99 do
Empezar
a := x div 10;
b := x mod 10;
y := b*1a;
si y-x=36 entonces writeln(x);
End;
Readln;
End.
[Ejemplo 3.5] Corte el número entero 3025 en dos números, 30 y 25. En este momento, eleve al cuadrado la suma de estos dos números y el resultado calculado de (325)2=3025 es igual al número original. Encuentra todos los números de cuatro dígitos que cumplan esta condición.
Solución: Sea N el número de cuatro cifras que cumple las condiciones, que debería ser un número cuadrado perfecto, representado por (a*a).
① Para garantizar que N=(a*a) esté dentro del rango de cuatro dígitos (1000 ~ 9999), se puede determinar que a oscila entre 32 y 99
<; p> ② Calcular N=a *a; Dividir el N de cuatro dígitos en dos números n1 y n2③ Si se cumple la condición (n1+n2)*(n1+n2)=N; salida n.
Programa Pascal:
Programa Examen35
Var N, a, x, n1, n2: Entero
Comienzo
p>
p>
para a:=32 a 99 hacer
comenzar
N:=a*a;
n1:= N div 100; {Dividir los dos primeros dígitos del número de cuatro dígitos}
n2:= N-n1*100; {Dividir los dos últimos dígitos del número de cuatro dígitos}
X:=n1 +n2;
si x*x=N entonces writeln (N
fin
Readln
Fin.
p>[Ejemplo 3.6] Utilice el signo “*” para imprimir el siguiente patrón rectangular.
*********
*********
********** p>
*********
Solución: ① La leyenda *** dada arriba tiene 4 líneas, podemos usar un bucle para controlar los cambios de las líneas ; p>
② Hay 9 columnas en cada fila. Podemos agregar otro bucle al bucle anterior controlando las filas para controlar los cambios en las columnas.
Programa Pascal:
Programa ex36;
Comenzar
Para a := 1 a 4 haga {Cambios en la línea de control del bucle exterior }
Comenzar
Para b := 1 a 9 haga {Cambios de columna de controles de bucle interno}
escribir('*');
Writeln; {Emite una línea de "*" seguida de una nueva línea}
Fin;
Readln;
Fin.
Programa El bucle in contiene un bucle interno b = (1 a 9) veces para cada valor de a. El bucle exterior de a contiene el bucle interior de b, que se denomina anidamiento de bucles for.
La forma anidada es la siguiente:
for a:=n1 to n2 do
for b:=m1 to m2 do loop body Statement
[Ejemplo; 3.7] Imprime la tabla de multiplicar:
Solución: Sea a el multiplicando, que va de 1 a 9; b es el multiplicador, que va de 1 a a; , producto de b), entonces
a=1: b=1~a 1*1=1
a=2: b=1~a 2*1=2 2 * 2=4
a=3: b=1~a 3*1=3 3*2=6 3*3=9
a=4: b=1~ a 4*1=4 4*2=8 4*3=13 4*4=16
: :
a=9 b=1~a 9*1=9 9 *2=18 … 9*9=81
⑴ De las filas horizontales descompuestas arriba, podemos ver que hay 9 filas. El cambio en el número de "filas" aquí es el mismo que el de. cambie en a de 1 a 9. Puede usar a para controlar el bucle de "filas";
⑵El número de multiplicaciones en cada "fila" está relacionado con el rango de b, y b controla el " bucle interno" en cada "fila";
⑶El bucle interno se incluye en la capa más interna. Después de ejecutar el bucle interno de cada "fila", vaya a la siguiente "fila" para ejecutar el bucle en la nueva "fila". Cada "fila" tiene la misma forma (b=1~a) bucle interno.
Es decir, cada vez que se llega a una “fila”, se debe ejecutar el bucle interno de la “fila”. La "línea" a la que se hace referencia aquí puede entenderse como una línea abstracta, no necesariamente la línea correspondiente real, pero puede ser un "bloque" de procesamiento.
Programa Pascal:
Programa Examen37;
Var a, b: byte;
Comenzar
para a:=1 a 9 hacer {bucle externo}
comenzar
for b:=1 a hacer {bucle interno}
escribir(a,' * ', b, ' = ', a*b, ' ':3
writeln
fin
Readln
Fin.
También se pueden lograr múltiples niveles de anidamiento de bucles según este formato, por ejemplo:
for a:=n1 to n2 do
for b: =m1 a m2 do
for c:=k1 a k2 do declaración de bucle
[Ejemplo 3.8] Elija tres cartas cualesquiera de siete naipes, existen varios métodos de combinación ? Programe para generar todas las combinaciones.
Solución: Supongamos que se sacan tres cartas cada vez, a saber, a, b y c. Utilice un bucle triple para obtener valores en el rango de 1 a 7 respectivamente; para eliminar números duplicados, utilice (a-b)*(b-c)*(a-c) < >0 para hacer un juicio.
Programa Pascal:
programa Exam38;
const n=7;
var a,b,c,t: entero;
Comenzar
t:=0;
para a:=1 hasta n hacer
para b:=1 hasta n hacer
para c:=1 to n hacer
si (a-b) * (b-c) * (a-c) < >0 entonces
Comenzar
inc (t);
escribir (a:3, b:3, c:3)
Fin;
escribir (total:, t :5);
readln
Fin.
[Ejemplo 3.9] Matemáticamente, excepto 1 y él mismo, ningún otro número puede dividirlo Los números naturales son llamados números primos (o números primos). Ahora ingrese un número natural N desde el teclado y programe para determinar si N es un número primo. Si es así, generará "Sí", de lo contrario, generará "No".
Solución: Según la definición, para un número natural dado N, solo es necesario determinar si existe un tercer número natural además de 1 y él mismo.
① Deje que K pase de 1 a N
② El número de divisores de K se puede contar según si N mod K es 0
③; Si el número de divisores de N excede 2, se determina que N no es un número primo.
Programa Pascal:
Programa Examen39;
Var n, m, k, t: entero
Comienzo
escribir('N=');
LeerLn(N);
t:=0;
para k:=1 a N hacer {Bucle externo}
si N mod k=0 entonces t := t+1; {Si N es un número impar}
si t>2 entonces writeln('No' )
else writeln('Sí');
Readln;
Fin.
La variable yse en el programa es booleana ( o lógico) Tipo (booleano). Solo hay dos valores booleanos:
Verdadero (verdadero) Falso (falso)
El valor booleano tiene el mismo efecto que el resultado del juicio condicional de verdadero (la condición es verdadera) o falso (la condición no es verdadera), se usa a menudo en declaraciones condicionales y declaraciones de bucle.
En el programa anterior, si es así y (t mod 7=0), entonces se usa writeln; para imprimir siete números primos en cada línea y ajustar la línea. La variable booleana sí en el programa es verdadera. lo que lógicamente indica que es un número primo; la expresión relacional Cuando el valor de (t mod 7=0) es verdadero, significa que los números primos de salida de esta fila ya son 7 usando y para conectar estas dos "condiciones"; es una operación booleana (lógica).
Pascal *** tiene cuatro operadores lógicos:
① y (Y) Cuando ambas condiciones son Verdaderas, el valor del resultado es Verdadero, de lo contrario, es Falso
;② o (o) Siempre que una de las dos condiciones sea Verdadera; el valor del resultado es Verdadero; de lo contrario, es Falso
③ xor (O exclusivo) Cuando los valores lógicos; de las dos condiciones son diferentes, el valor del resultado es Verdadero; de lo contrario, es Falso;
④ no (no) Cuando la condición es Verdadera, el valor del resultado es Falso; inversión)
Ejercicio 3.1:
1. Imprime una tabla de números cuadrados del 1 al 20.
2. Imprime los números impares entre 100 y 200.
3. Un pollo y un conejo en la misma jaula (completado con un programa for loop)
4. Un tren expreso y un tren lento van al mismo lugar. El billete de tren cuesta 18 yuanes y el billete de tren lento cuesta 18 yuanes. El precio es 13,5 yuanes. Se vendieron *** 400 billetes y el total *** es 5940 yuanes.
5. Encuentra todos los billetes que se pueden dividir por 5. La suma de cuatro dígitos.
6. Completa los dos □ en la siguiente fórmula con un número apropiado e idéntico para que la ecuación sea verdadera.
□3*6528=3□*8256
7. Hay un número de tres dígitos y 11 veces la suma de sus dígitos es exactamente igual a sí mismo. Encuentra estos tres dígitos.
8. En los números naturales, si un número de tres cifras es igual a la suma de los cubos de sus propias cifras, entonces el número de tres cifras se llama número de narciso. Por ejemplo: 153=13+53+33, entonces 153 es un número de narciso. Encuentra el número de todos los narcisos.
9. Programa para imprimir los siguientes patrones:
Paralelogramo, rombo triangular isósceles
****** * *
****** *** ***
****** ***** *****
***** * * ****** ***
****** ********* *
10. Programa para imprimir el siguiente patrón:
1
222
33333
4444444
555555555
11. tres tipos de postales: el primer tipo, una por juego, se vende por 2 yuanes; el segundo tipo, un juego por juego, se vende por 4 yuanes; el tercer tipo, 9 tarjetas por juego, se vende por 2 yuanes. Ahora quiero comprar 100 postales con 100 yuanes. Es necesario comprar al menos un juego de cada tipo de postal. ¿Cuántos juegos de cada uno de los tres tipos de postales debo comprar? Por favor envíe todos los planes de compra.
12. Alguien quiere cambiar un yuan por cinco centavos, dos centavos y un centavo. Si hay al menos uno de cada uno de estos tres tipos de cambio, *** ¿Cuántas opciones de cambio hay? ? y escriba estos planes.
13.
14. Genere todos los números primos dentro de 100, lo que requiere que se muestren 5 en cada línea.
15. La suma, diferencia, producto y cociente de dos números naturales A y B suman 243. Calcula los dos números A y B.
16. Cien dólares para comprar cien pollos: si hoy tienes 100 yuanes, quieres comprar 100 pollos. Un gallo cuesta 3 yuanes, una gallina cuesta 1 yuan y tres polluelos cuestan 1 yuan. Si hay gallos y gallinas, debe comprar al menos un pollo y un pollito. Programe para encontrar todos los planes de compra de pollo que consumen exactamente 100 yuanes.
, si se acepta la respuesta, el valor de la experiencia y el valor de la riqueza aumentarán simultáneamente