pascal ingresa n números de un dígito en el teclado y genera su disposición completa
1. Introducción:
fpc-2.0.0.i386-win32
Programa 1: Dado el largo y ancho del rectángulo, encuentra el perímetro de el rectángulo
círculo del programa El encabezado del programa, programa es una palabra reservada
var chang, kuan, zhouchang: real Defina variables: establezca la longitud, el ancho y el perímetro en; tipos de números reales
comenzar declaración de inicio
readln(chang Lea la declaración, lea la longitud (chang) y el ancho (kuan)
readln(kuan);
zhouchang: =2*(chang kuan); Declaración de asignación, asigna el resultado del cálculo a zhouchang
escritura (zhouchang)
end.Instrucción final, que aparece en pares con inicio
Programa 2: Dada la longitud y el ancho del rectángulo, encuentre el perímetro del rectángulo y encuentre el área del rectángulo. .
círculo del programa;
var chang, kuan, zhouchang, mianji: real;
comenzar
readln(chang); p>
p>
readln(kuan);
zhouchang:=2*(chang kuan);
mianji:=chang*kuan;
escribir( zhouchang, mianji);
fin.
Resumen: una estructura completa del programa Pascal
Nombre del programa (lista de parámetros del programa);
var
Descripción de la variable;
Inicio
declaración
; …… p>
Fin.
Compilar: Alt F9
Ejecutar Ctrl F9
Volver para ver los resultados Alt F5
Ejercicio de pensamiento:
1. Dada la longitud, el ancho y la altura del cuboide, encuentre el área de superficie y el volumen del cuboide.
2. Dada la longitud del lado del cubo, encuentra el área de la superficie y el volumen del cubo.
3. Dado el radio del círculo, encuentra la circunferencia y el área del círculo.
Tarea
Dado el radio del círculo, encuentra la circunferencia y el área del círculo. Si 3.14 se cambia a 3.14159
La primera oración es el encabezado del programa y cada programa Pascal debe comenzar con él.
Aumente la legibilidad del programa y use pi para expresarlo
1. Descripción constante
Const pi=3.14159
Descripción de variable
p>
VAR variable única o múltiples variables separadas por comas
lt; tabla de variables gt; tipo gt; tipos de datos
(1), tipo real (real)
1. Dos métodos de representación: representación decimal y representación exponencial
Representación decimal: 1,25, 0,0025, 258.2 , 253.0
Notación científica: 1.25e0, 1.3654e 2, 2.5e-3,
0e0, 1e2
2.
const k=1.26
var m, n: real;
3. Operaciones: (suma), - (resta), * (multiplicación), / (división)
Funciones estándar:
abs (valor absoluto), sqr (cuadrado), sqrt (raíz cuadrada),
trunc (redondeo), round (redondeo) Ingrese redondeo)
(2), tipo entero (entero)
1 Método de representación: 25, -456, 0
2. /p>
const long=150;
ancho=65;
var I, j, k: entero
3. operaciones:
(suma), - (resta), * (multiplicación), div (división)
El valor obtenido por / (división) es de tipo real, mod (tomar 4. Funciones estándar para números enteros
abs (valor absoluto), sqr (cuadrado), pred (principal)
succ (posterior),
3. /p>
Leer declaración uno: leer
Se utiliza para ingresar datos desde el exterior a las variables cuando se ejecuta el programa
Forma general: leer (tabla de variables) La la tabla de variables es una cantidad de variables separadas por comas
Programa 1. Lea 2 números enteros y 1 número real, y genere estos tres números.
Programa shu;
Var
x, y: entero
z: real
comenzar;
leer(x);
leer(y);
leer(z);
escribir(x);
leer(z); p>
leer(y); p>
escribir(y);
escribir(z
fin. >Var
x , y: entero;
z: real
comenzar
leer(x, y, z);
write(x, y, z);
end.
Las declaraciones de lectura y escritura se pueden combinar en una sola oración.
Nota: Los datos ingresados desde el teclado deben ser del mismo tipo que la variable de entrada configurada en el programa. Por ejemplo, en la pregunta anterior, xey son números enteros cuando los ingresamos desde el teclado, deben ser números enteros, como 14, -6, pero no números reales, como 1,9, 98,0 y z es a; número real. La entrada puede ser un decimal o un número entero, por ejemplo: 2,36666 o 10.
Leer declaración dos: readln
Después de completar la entrada del último valor variable de esta declaración, la línea de entrada que incluye este valor de datos finalizará, haciendo que la siguiente declaración de lectura (o readln declaración) datos de entrada a partir de la siguiente nueva línea.
Ejemplo:
Programa shu2;
Var a, b: real
comenzar
Leer( a, b);
Leer(c, d, e, f);
Leer(g, h
Escribir(a, b,); c, d, e, f, g, h);
Fin del programa shu2;
Var a, b: real;
comenzar
Readln(a, b);
Readln(c, d, e, f);
Readln(g, h);
Writeln(a, b, c, d, e, f, g, h);
Fin.
Introduce los siguientes datos desde el teclado:
1,5 3,7 2,4
5,7 2,1 8,9
9,2 1,7 5,3
2,8 3,4 2,9
Los resultados obtenidos:
a=1.5 b=3.7
c=2.4 d=5.7 e=2.1 f=8.9
g=9.2 h=1.7 El resultado obtenido:
a =1.5 b=3.7
c=5.7 d=2.1 e=8.9 f=9.2
g=2.8 h=3.4
4. Declaración
Forma general: lt; variable gt; = lt; expresión gt; operaciones lógicas, operaciones relacionales, etc.
Por ejemplo: 2 3x
1.25×10-5
Al escribir expresiones, preste atención a los siguientes puntos:
1. Todas las expresiones deben escribirse en forma lineal.
2. Sólo se pueden utilizar identificadores legales
3. El signo de multiplicación debe señalarse claramente con el símbolo "*" y no puede omitirse
4 La función El argumento puede ser cualquier expresión.
Nota: En la declaración de asignación, el tipo de expresión debe ser compatible con la asignación de tipo de la variable de la izquierda.
(1) El tipo de la expresión es el mismo que el tipo de la variable de la izquierda
(2) La expresión es de tipo entero y la variable de la izquierda es de tipo real
var I, j, k: entero
k: =I/j
X: =x 1 I: =I 1 p>
Escribir declaración uno: Escribir declaración
Muestra los resultados del cálculo a través de la pantalla o la salida de la máquina de escribir.
Por ejemplo: escribir(aa, bb);
Forma general: escribir(lt; tabla de salida gt;: ancho de campo: número de decimales)
Salida Una tabla es una lista de elementos de salida separados por comas.
El elemento de salida puede ser una variable o expresión, o una cadena entre comillas.
Si es una variable, genera el valor de la variable.
Si es una expresión, el valor de la expresión se calcula primero y luego se genera el valor.
Si es una cadena, se genera la cadena misma.
Si se utiliza el símbolo ' x y= ', el valor entre comillas simples se generará tal cual.
Por ejemplo: entrada: x=5, y=6
escribir(x, y, x y, x*y)
Resultados de salida: 5, 6, 11, 30
escribir('x=', x , 'y=', y, 'x y=', x y, 'x*y=', x*y);
Resultado de salida: x=5y=6x y=11x*y=30
Escribir declaración 2: Escribir declaración
Los resultados se mostrarán en diferentes líneas.
Después de imprimir el último elemento de salida de la tabla de salida, finalice la línea de salida actual para que la siguiente declaración de escritura (o writeln) se genere desde el principio de la siguiente línea nueva. Es decir: después de imprimir el elemento de salida, presione Entrar y avance de línea, y mueva el cursor a la primera posición de la siguiente línea.
Por ejemplo:
Writeln se puede usar solo para finalizar la línea de salida actual y señalar el comienzo de la siguiente línea
writeln('x=' ,x,' y=', y);
Escribir('x y=', x y, 'x*y=', x*y);
Ejemplo: p>
1. Escriba un programa para leer los tres lados a, b y c del triángulo, calcule y genere el área S del triángulo. Se puede calcular usando la siguiente fórmula: S= , donde p= .
2. Ingrese un número entero de tres dígitos y envíelo a la inversa. Por ejemplo, si ingresa 127, el resultado debería ser 721.
No es necesaria una descripción constante
3. Tipo de carácter
1. Método de representación: 'A', 'B', 'C,', .. 'a', 'b', 'c', ... '0', '1', '2', '3', ... ' ', '-', '*', ... ' representar carácter de espacio
2. Método de descripción
const black='' star='*' var ch1, ch2: char;
3. Funciones estándar
ord (número de serie), pred (principal), succ (sucesor)
chr(65)='A' chr(97)='a' ord(' A')=65 ord('a')=97
4. Tipo booleano (booleano)
1. Descripción
const f=false;
t=true;
var b1, b2, flag: boolean;
2. Función estándar
impar (obtener el número de serie ), pred (predecesor), succ (sucesor),
odd(false)=0 odd(true)=
pred(true)= succ(false)=
3. Hay operaciones lógicas booleanas (es decir, operaciones lógicas) que se utilizan para operaciones booleanas
Y (y) O (o) NOT (not)
B1 B2 NOT B1. B1 Y B2 B1 O B2
FALSO FALSO
FALSO VERDADERO
VERDAD FALSO
VERDADERO VERDADERO
4 Operación de relación
lt; (menor que), lt; = (menor o igual a), = (igual a)
gt; (mayor o igual que), lt; gt ; (No igual a)
Las operaciones relacionales se pueden utilizar para tipos enteros, reales, de caracteres y booleanos.
Los resultados son todos booleanos
Ejemplo: 3lt; 6=
3lt;
falselt;
>'a'gt;='b'=
Juzga si (x, y) está en el primer cuadrante
6. La expresión se calcula de acuerdo con lo siguiente. reglas de precedencia de operación
(1). Todas las subexpresiones incluidas deben calcularse primero y las subexpresiones deben calcularse de adentro hacia afuera.
(2). Los operadores en la misma expresión se calculan en el siguiente orden:
①Función
②not
③AND, *, /, DIV, MOD
④OR, , -
⑤lt;,lt;=,=,gt;,gt;=,lt;gt;
(3) En la misma expresión, la misma prioridad es de izquierda a derecha. Nota: En la declaración de asignación, el tipo de expresión debe ser compatible con la asignación de tipo de la variable del extremo izquierdo.
a. El tipo de la expresión es el mismo que el tipo de la variable de la izquierda
b. tipo real
var I, j , k: entero
k:=I/j
X:=x 1 I:=I 1 p>
Escribir declaración
Muestra los resultados del cálculo a través de la pantalla o la salida de la máquina de escribir.
Por ejemplo: escribir(aa, bb);
Forma general: escribir(lt; tabla de salida gt;: ancho de campo: número de decimales)
Salida Una tabla es una lista de elementos de salida separados por comas.
El elemento de salida puede ser una variable o expresión, o una cadena entre comillas.
Si es una variable, genera el valor de la variable.
Si es una expresión, el valor de la expresión se calcula primero y luego se genera el valor.
Si es una cadena, se genera la cadena misma.
Si se utiliza el símbolo ' x y= ', el valor entre comillas simples se generará tal cual.
Por ejemplo: entrada: x=5, y=6
escribir(x, y, x y, x*y)
Resultados de salida: 5, 6, 11, 30
escribir('x=', x , 'y=', y, 'x y=', x y, 'x*y=', x*y);
Resultado de salida: x=5y=6x y=11x*y=30
1. Ingrese tres caracteres, luego genere estos tres caracteres en el orden de los caracteres de entrada, luego genere el número de serie de cada carácter y finalmente genere estos tres caracteres en el orden inverso de los caracteres de entrada.
2. Ingrese dos conjuntos de valores xey, y el programa generará valores diferentes según si están dentro del área de barra diagonal. Si está dentro del área de barra diagonal, generará verdadero; de lo contrario, generará falso.
3. Selección de programación estructural
Procedimiento 1: Puntaje final, si el puntaje es superior a 60 puntos se califica, y si el puntaje es inferior a 60 puntos se suspende. ¿Cómo expresarlo?
programa pd;
var
x: real;
comenzar
. read(x); leer los resultados
if xgt;=60 then write('pass')
else write('not pass'); Utilice la declaración if para juzgar, if. gt;=60 imprimir "aprobar" en caso contrario Imprimir "no aprobar"
Fin.
Seleccione estructura de declaración 1: formato de declaración IF
Formato de declaración IF 1: IF 〈condición〉THEN 〈declaración 1〉
ELSE 〈Declaración 2〉
Formato de declaración IF 2: IF〈Condición〉THEN 〈Declaración 1〉
Programa 2: El equipaje facturado en el tren debe facturarse según el peso y cobrarse según diferentes normas. Por ejemplo, si no supera los 50 kg, se cobrará a 0,35 yuanes por kilogramo. Si supera los 50.000, se cobrará a 0,35 yuanes por kilogramo y el exceso restante se cobrará a 0,50 yuanes por kilogramo. Ahora ingrese el peso del equipaje facturado y solicite calcular y generar la tarifa por equipaje facturado.
Programa empresa;
var
peso, pago: real
comenzar
readln(peso) ; Lea el peso del equipaje
si pesolt;=50 entonces pague:=peso*0.35 declaración de juicio
de lo contrario pague:=50*0.35 (peso-50)*0.5; p> p>
Writeln('pay=', pay); Imprimir resultados de pago
end.
Nota: En la declaración If, if lt; o lt; Declaración 2>, el contenido de la ejecución no se puede implementar en una declaración, puede usar una declaración compuesta y usar comenzar y finalizar para fusionar las declaraciones ejecutadas en una declaración compuesta.
Formato de declaración compuesta: BEGIN
〈Declaración 1〉;
〈Declaración 2〉
……;
FIN;
Programa 3: Ingrese un número si el número es mayor que 100, luego genere el número primero, reste 100 del número y genere el resultado después de restar 100; de lo contrario, genere ". No".
Número de programa;
Var x, y: real;
Comenzar
leer(x); p>
Si xgt; 100 entonces juzgue x
Comenzar Utilice comenzar y finalizar para combinar las tres declaraciones en una declaración compuesta
writeln(x);
p >x:=x-100;
writeln(x);
fin
else writeln(“no”);
Fin.
Declaración condicional de juicio compuesto: cuando lt; condition gt; contiene no solo una declaración, sino varias condiciones, puede usar y\o\no la condición de juicio compuesto
Y: Y, Y, verdadero cuando ambas condiciones son verdaderas
O: O, verdadero cuando solo una condición es verdadera
NOT: No,
p >
Programa 4: Ingrese una puntuación si la puntuación es inferior a 90 y mayor o igual a 70, genere "ok"
Programa: puntuación del programa;
var. k: real ;
comenzar
leer(k);
si (kgt;=70) y (klt;90) entonces escribir('ok' );
fin.
Declaración IF compuesta
Programa 5. Ingrese la puntuación de un estudiante si la puntuación es superior a 85 puntos, genere "A". Si la puntuación es superior a 60 puntos, entre 60 y 85 puntos, genera "B". Si la puntuación es inferior a 60 puntos, genera "C".
Esta pregunta tiene tres juicios. ¿Cómo lograrlo?
Utilice una declaración IF compuesta:
lea(puntuación)
puntuación IF>85 y luego escriba('A') primero IF
De lo contrario, si la puntuación>=59, entonces escriba ('B') Segundo IF
De lo contrario, escriba('C');
Formato de declaración IF compuesto:
p >
SI〈Condición 1〉 ENTONCES 〈Declaración 1〉
ELSE IF〈Condición 2〉 ENTONCES〈Declaración 2〉
ELSE〈Declaración 3〉
Ejercicios de declaración If:
1. Ingrese un número entero positivo desde el teclado para determinar si es par o impar. Si es un número impar, envíe "SÍ", si es un número par, envíe "NO".
2. Lea dos números, encuentre el número más grande y envíelo.
3. Ingrese un número y determine si el número es positivo, negativo o cero. Si es un número positivo, generará "zheng", si es un número negativo, generará "fu". ", y si es cero, generará "0".
Círculo del programa;
Var num: entero;
Comenzar
Leer(num);
Si numgt; 0 entonces writeln('zheng')
De lo contrario, si numlt; 0, entonces writeln('fu')
De lo contrario writeln('0');
Fin.
4. Gravar impuestos a un lote de mercancías. Los bienes con un precio de más de 10.000 yuanes están gravados 5, los bienes con un precio de más de 5.000 yuanes y menos de 10.000 yuanes están gravados 3, los bienes con un precio de menos de 5.000 yuanes están gravados 2 y los bienes con un precio de menos de 1.000 yuanes están libres de impuestos. Escriba un programa para leer los precios de los bienes, calcular y generar impuestos.
Prueba del programa;
Precio var, impuesto: real;
Comenzar
Leer(precio);
Si preciogt;=10000 entonces impuesto:=precio*0.05
De lo contrario, si preciogt;=5000 entonces impuesto:=precio*0.03
De lo contrario, si preciogt;=1000
entonces impuesto:=precio*0.02
De lo contrario impuesto:=0;
Writeln('tax=',tax);
Fin.
5. Ingrese un número si este número puede satisfacer simultáneamente todos los números enteros que se dividen por 3 con resto 2, se dividen por 5 con resto 3 y se dividen por 7 con resto 2, entonces "sí" será. producción.
Suma del programa;
Var a: entero;
Comenzar
Si (un mod 3=2) y (un mod 5 =3) y (un mod 7=2) luego escribe('yes');
Fin.
6. Ingresa 3 letras y escríbelas en orden alfabético de pequeña a grande. . Estas 3 letras.
7. Lee dos números y almacena el número grande en X y el número decimal en Y.
8. Ingrese un año para determinar si es un año bisiesto. Si es así, envíe "sí"; de lo contrario, envíe "no".
El algoritmo de determinación de año bisiesto reconocido actualmente satisface uno. de los dos siguientes 1. Es un año bisiesto:
① Es divisible por 4, pero no divisible por 100
② Es divisible por 4, pero no es divisible por 400
9, ingrese una expresión de suma y resta, juzgue el signo de la operación de acuerdo con la expresión ingresada y obtenga el resultado. Por ejemplo, si ingresa: , 5, 3 desde el teclado, la salida es 8; por ejemplo, si ingresa: -, 10, 6, la salida es 5;
10. Ingrese cualquier número dentro de 1000. Si al menos un dígito del número es 5, escriba "sí"; de lo contrario, escriba "no".
11. Ingrese un número de tres dígitos y determine si el número es un número de narciso. Si es así, genere "flor". (Número de narciso: si el número de tres dígitos abc, a^3 b^3 c^3=abc, entonces el número se llama número de narciso)
12. Ingrese un número dentro de 1000 y determine el. número Si el número es un número conservador (si el dígito bajo del cuadrado de un número es el mismo que el número mismo, entonces el número se llama número conservador. Por ejemplo, 25, 252 = 625, 62 = 36, el dígito bajo del valor del cuadrado es el mismo que el número original, 25, 6 es el número de líneas de mantenimiento).
Declaración de estructura de selección 2: Declaración CASE: Es otra declaración que implementa la programación de la estructura de selección.
Procedimiento 1: Ingrese el número de clase y genere el número de estudiantes en la clase.
Número de clase: 1 2 3 4 5 6
Número de personas: 50 52 50 50 52 55
Usar declaración IF:
Número de programa;
Var x: entero;
Comenzar
Leer(x);
Si (x=1) o (x =3) o (x=4) entonces escribe(50)
De lo contrario, si x=6 entonces escribe(55)
De lo contrario, escribe(52);
Fin.
Usar sentencia CASE:
Número de programa;
Var x: entero;
Comenzar
Leer(x);
Caso x de
1, 3, 4: escribir(50);
6: escribir(55);
p>2, 5: write(52);
end
end.
La forma general de la declaración CASE es :
CASE lt; expresión gt; OF expresión: debe ser un tipo ordenado (entero, carácter, booleano)
lt tabla de valores 1gt;: lt; tabla 1: Es una lista de valores específica, separada por comas
lt; lista de valores 2gt; declaración 2gt;; lt; Tabla de valores ngt;:lt; Declaración ngt;
FIN
Ejercicio:
1. en el mes. (Cada mes de enero, marzo, mayo, julio, agosto, octubre y diciembre tiene 31 días; en abril, junio, septiembre y noviembre, cada mes tiene 30 días; en febrero, hay 29 días en los años bisiestos, y en años normales, hay 28 días. El número del año puede ser divisible por 4, pero no divisible por 100, o los años que pueden dividirse por 400 son años bisiestos)
2. cantidades de cálculo y un operador (, -, *, /), generan el resultado de la operación.
Por ejemplo: entrada 6 9
salida 15
3. Si se sabe que x está entre 1 y 8, calcule y de acuerdo con la siguiente fórmula.
y=
4. Ingrese el número real x (conocido como 0lt; =xlt; =10), calcule y y envíelo.
2x2 3x 5 xlt; 3
y= (x-3)2 3lt; =xlt; p>Programación utilizando dos métodos:
(1) Programación con declaración IF;
(2) Programación con declaración CASE
lt cuerpo del bucle gt; /p>
Proceso de bucle: primero asigne el valor inicial a la variable de bucle y luego compare la variable de bucle con el valor final. Cuando el valor de la variable de bucle es menor o igual que el valor final, el cuerpo del bucle. se ejecuta. Después de cada ejecución del cuerpo del bucle, la variable del bucle se incrementa automáticamente en 1 (es decir, el valor posterior) y se asigna a la variable del bucle, y luego se compara con el valor final si es igual al valor de (valor final 1). ), salga del bucle y finalice la instrucción For; de lo contrario, ejecútelo nuevamente. Cuerpo del bucle, repita este proceso hasta que el valor de la variable del bucle sea igual a (valor final 1).
Nota:
1. La variable del bucle debe ser de tipo ordenado, y debe ser del mismo tipo que el valor inicial y el valor final, por ejemplo: entero, carácter, pero. No es un tipo real.
2. El valor inicial y el valor final de la variable del bucle pueden ser expresiones.
3. El cuerpo del bucle puede ser cualquier declaración única o una declaración compuesta de múltiples declaraciones (comienzo...fin).
4. No cambie el valor de la variable del bucle a voluntad en el cuerpo del bucle, de lo contrario puede causar un bucle muerto en el programa.
3. En el cuerpo del bucle, los cambios en los valores de expresión del valor inicial y final no afectarán el número de bucles ni los valores de las variables del bucle.
FOR lt; variable de bucle gt;=lt; valor inicial gt; Proceso de bucle: primero asigne el valor inicial a la variable de bucle y luego compare la variable de bucle con el valor final. Cuando el valor de la variable de bucle es mayor o igual que el valor final, se ejecuta el cuerpo del bucle. Después de cada ejecución del cuerpo del bucle, la variable del bucle se reduce automáticamente en 1 (es decir, el valor principal) y se asigna a la variable del bucle, y luego se compara con el valor final si es igual al valor de (valor final -). 1), salga del bucle y finalice la instrucción For; de lo contrario, continúe nuevamente. Ejecute el cuerpo del bucle y repita el proceso hasta que el valor de la variable del bucle sea igual a (valor final - 1).
Ejemplo 2: Entre 1-500, encuentre todos los divisores que puedan satisfacer simultáneamente la divisibilidad de 3 con resto 2, 5 con resto 3 y 7 con resto 2, e imprímalos.
Programa 2:
programa sunzi;
var I: entero; solo se requiere una variable i
comenzar
para I:=1 a 500 use directamente la variable de bucle para juzgarlo
si (I mod 3=2) y (I mod 5=3) y (I mod 7=2) luego escribe (I);
fin.
Ejemplo 3: Mejora del Ejemplo 2: Encuentra los números que cumplen las condiciones e imprímelos, cuenta sus números y finalmente imprime el sale el número total.
Programa 3: programa sunzi;
var I, num: entero
comenzar
num:=0; Cuente el número de elementos calificados, inicialice num=0
para I: =1 a 500 do
si (I mod 3=2) y (I mod 5=3) y (I mod 7=2) luego
comienza a escribir (I);
num:=num 1; cuando se cumplan las condiciones, el recuento acumulará automáticamente 1
.end;
writeln(num); Imprime los resultados del cálculo después de 500 juicios
end.
Concepto de bucle múltiple:
Si el interior (cuerpo del bucle) de una estructura de bucle también contiene una estructura de bucle, se denomina estructura de bucle múltiple.
Nota: Se pueden anidar varios bucles tantas veces como desee. Según el número de niveles de anidamiento, se les puede llamar bucles dobles, bucles triples, etc. El bucle interior se llama bucle interior y el bucle exterior se llama bucle exterior.
Ejercicio:
1. Imprime los siguientes gráficos:
* * * * *
* * * * *
* * * * * *
* * * * * * * * * *
* * * * *
* * * * *
* * * * * * * * * *
* * * * *
* * * * *
* * * * * *
* *
* * *
* * * * *
* *
* * *
* * * *
(1) (2) (3) (4) (5)
* * * *
* * *
* *
* * * * *
* * *
* *
* *
* * *
* * * * *
* * * * * * * *
* *
* * *
* * * * * * * * * * *
* * * * *
* * *
*
(6) (7) (8) (9) (10)
2. /p>
1
12
123
1234
12345 1
2 2 2
3 3 3 3 3
4 4 4 4 4 4 4 1
2 3 4
5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23 24 25
A
AB
ABC
ABCD
ABCDE A
A B
A B C
A B C D
……
A B C …… Z 1
1 2 1
1 2 3 2 1
1 2 3 4 3 2 1
p>1 2 3 4 5 4 3 2 1
3. Imprimir el triángulo Yang Hui
1. El bucle for a veces se denomina Para contar bucles. Cuando se desconoce el número de bucles y solo se puede decidir si realizar un bucle en función de una determinada condición, es más conveniente utilizar una instrucción while o una instrucción de repetición para implementar el bucle.
La forma de la declaración while es:
mientras lt; expresión booleana gt; do lt; declaración gt;; Cuando el valor de es verdadero, se ejecuta la siguiente declaración do.
El proceso de ejecución de la declaración while es:
① Juzgue el valor de la expresión booleana. Si el valor es verdadero, realice el paso 2; de lo contrario, realice el paso 4. >
②Ejecute la instrucción del cuerpo del bucle (la instrucción después de do);
③Regrese al paso 1;
④Termine el bucle y ejecute la siguiente instrucción de while.
Nota: while y do son palabras reservadas aquí. La característica de la declaración while es juzgar primero y luego ejecutar.
Cuando la expresión booleana es verdadera, la instrucción (cuerpo del bucle) que sigue a do se ejecuta repetidamente.
Ejemplo 1. Encuentra el valor de n cuando el valor de s=1 1/2 1/3... 1/n es mayor que 10.
Análisis: "Simplemente hacer que el valor de s sea mayor que 10" significa que cuando la suma de los primeros n-1 términos de la expresión s es menor o igual a 10, y el valor de s después sumar el enésimo término es mayor que 10 . Desde un punto de vista matemático, nos resulta difícil calcular el valor de n. Por lo tanto, a partir del primer elemento, cuando el valor de s sea menor o igual a 10, continúe acumulando el valor del siguiente elemento. Cuando el valor de s excede 10, el número de elementos en el último elemento es el n requerido.
El programa es el siguiente:
var
s: real
n: entero; {n representa el número de elementos }
begin
s:=0.0; n:=0;
while slt;=10 do{Cuando el valor de s no haya excedido 10}
comenzar
n:=n 1;{agregar 1 al número de elementos}
s:=s 1/n;{acumular el siguiente elemento valor a s}
fin
writlen('n=', n); {resultado de salida}
fin.
Ejemplo 2, encuentre dos positivos El máximo común divisor de los números enteros myn.
Análisis: Encuentra el máximo común divisor de dos números enteros positivos utilizando el método de división euclidiana. El siguiente es el algoritmo de lanzamiento:
Utilice m, n, r para representar el dividendo, el divisor y el resto respectivamente.
①Encuentra el resto r de m/n.
②Si r=0, entonces n es el máximo común divisor. Si r≠0, realiza el paso ③.
<. p>③Ponga el valor de n en my el valor de r en n.④Regrese al paso ① nuevamente.
El programa es el siguiente:
programa ex4_4;
var m, n, a, b, r: integer; comenzar
p>escribir('Entrada m, n:');
readln(m, n
a:=m; n; r:= a mod b;
mientras rlt;gt;0
comienza
a:=b;b:=r; p>
r:=a mod b;
end;
writeln('La mayor división común es: ', b: 8); >end. p>
2. Bucle hasta (instrucción REPEAT-hasta)
La instrucción while se puede utilizar para implementar el "bucle de tipo when", y la instrucción repetir hasta se puede se utiliza para implementar el "bucle de tipo hasta". El significado de la declaración repetir hasta es: "Repita el ciclo hasta que la condición especificada sea verdadera".
La forma general de la declaración de bucle hasta:
Repetir
lt; declaración 1gt;; p> lt; declaración ngt;;
hasta lt; expresión booleana gt;;
Entre ellas, repetir y hasta son palabras reservadas de Pascal, y se llaman todas las declaraciones entre repetición y hasta. cuerpos de bucle.
Nota:
①Las características de la declaración de repetición son: ejecutar el bucle primero y luego determinar la condición final, por lo que el cuerpo del bucle debe ejecutarse al menos una vez.
②repeat-hasta es un todo, es una declaración (constructiva) No pienses erróneamente que repetir es una declaración y hasta es otra declaración.
③La declaración de repetición ya no ejecutará el cuerpo del bucle cuando el valor de la expresión booleana sea verdadero, y el cuerpo del bucle puede contener varias declaraciones. No es necesario envolverlas con repetición y fin. hasta que ya se hayan utilizado el papel de inicio y fin. Los bucles while y los bucles repetidos se pueden transformar entre sí.
Para encontrar el máximo común divisor de dos enteros positivos en el Ejemplo 2, el programa se puede implementar con un bucle repetir hasta de la siguiente manera:
var
m, n, a, b, r: entero;
comenzar
escribir('Entrada m, n=');
a:=m;b:=n;
repetir
r:=a mod b;
a: =b;b: =r;
hasta r=0;
writeln('La máxima división común es', a);
end.
Hemos introducido tres tipos de declaraciones de bucle arriba. En términos generales, es más sencillo utilizar el bucle for. Siempre que se pueda utilizar el bucle for, intente utilizar el bucle for. Utilice los bucles while y los bucles de repetición hasta sólo cuando no se pueda utilizar un bucle for, y los bucles while y los bucles de repetición hasta son intercambiables. El bucle for también se puede reemplazar por bucles while y repetir hasta en la mayoría de las situaciones.
Generalmente, el bucle for se utiliza para bucles con un número determinado de bucles, mientras que los bucles while y repetir-hasta se utilizan para bucles con un número indeterminado de bucles.
Cuando el cuerpo de un bucle contiene un programa de estructura de bucle, lo llamamos anidamiento de bucle.
3. Programación de estructura de bucle
Ejemplo 3 ¡Encuentra el valor de 1!
Análisis: Este problema consiste en encontrar la suma de factoriales de 10 números naturales, lo cual se puede lograr usando un bucle for. La estructura del programa es la siguiente:
para n: =1 a 10 hacer
comenzar
①El valor de N!àt
②Acumular N! El valor de t
end
Obviamente, 1!, 2!..., 10! se puede obtener a través de 10 ciclos, y acumularlo al mismo tiempo, el Se puede obtener el valor de S. Para encontrar T=N!, puedes usar un bucle for para lograrlo:
t=1;
for j:=1 to n do
t :=t*j;
Por lo tanto, el programa completo es:
programa ex4_5;
var t, s: real;
i, j, n: entero;
comenzar
S: =0
para n: =1 a 10 hacer
comenzar
t:=1;
para j:=1 a n hacer
t:=t*j;
S :=S t;
end;
writeln('s=', s: 0:0);
El programa anterior es un bucle for doblemente anidado. Esta es una mejor manera de pensarlo, pero de hecho, para encontrar n!, podemos obtenerlo multiplicando el (n-1) calculado por n sin tener que multiplicar de 1 a n nuevamente.
El programa se puede cambiar a:
programa ex4_5;
var t, s: real
i, j, n; : entero ;
comenzar
S:=0;t:=1;
para n:=1 a 10 hacer
comenzar
t:=t*n
S:=S t
fin
writeln('s=' , s :0:0);
end.
Obviamente el segundo programa es mucho más eficiente que el primero. El primer programa realiza 1 2...10 = 55 ciclos, mientras que el segundo programa realiza 10 ciclos. Si la pregunta pide 1! +2! +…+1000! , la diferencia de eficiencia entre los dos programas es más obvia.