Примеры выполнения заданий
Пример 1. Вычислить сумму а) С использованием цикла For; б) С использованием цикла While; в) С использованием оператора цикла Repeat. PROGRAM Primer_1a;var n: Integer; s: Real; BEGIN S:=0; For n:=1 to 50 do S:=S+1/n; WriteLn ('Сумма равна: ',S) END. PROGRAM Primer_1b; var S: Real; N: Integer; BEGIN S:=0; N:=1; While N<=50 do begin S:=S+1/N; N:=N+1 end; WriteLn ('Сумма равна: ',S)END.
PROGRAM Primer_1c; var N: Integer; S: Real; { Результат суммирования }BEGIN S:=0; N:=1; Repeat { Повторить... } S:=S+1/N; N:=N+1 until N>50; { пока значение N не превзойдет 50 } WriteLn ('Результат суммирования... ',S)END.
Пример 2. Программа, моделирующая микрокалькулятор. После нажатия знака «=» на экране отображается значение выражения. PROGRAM Primer_2; var Operator: Char; { Символ арифметической операции } n: Real; Answer: Real; { Результат вычисления }BEGIN Answer:=0; { Вначале обнулим результат... } Operator:='+'; { Присвоить '-', '*' или '/' нельзя } WriteLn ('Вводите арифметическое выражение'); WriteLn ('(каждый символ - с новой строки)...'); Repeat ReadLn (n); Case Operator of '+': Answer:=Answer + n; '-': Answer:=Answer - n; '*': Answer:=Answer * n; '/': Answer:=Answer / n end; ReadLn (Operator) until Operator='='; WriteLn (Answer:5:4)END.
Пример 3. Пусть A и B - положительные вещественные числа и A>B. Найти такое натуральное m, что m·B>A. PROGRAM Primer_3; var A,B: Real; m: Integer;BEGIN Write ('Введите числа A и B... '); Read (A); Write (' '); ReadLn (B); m:=1; While m*B<=A do m:=m+1; WriteLn ('Результат... ',m:3,'*',B:3:2,' > ',A:6:2)END.
Пример 4. Определение для используемого компилятора TURBO Pascal наименьшего положительного числа Eps такого, что 1+Eps>1. PROGRAM Primer_4; const C1 = 1.0; C2 = 2.0; var Eps,Eps1: Real;BEGIN Eps:=C1; Eps1:=C2; While Eps1>1.0 do begin Eps:=Eps/2; Eps1:=Eps+1 end; Eps:=Eps*2; WriteLn ('Приближенное значение Eps равно: ',Eps)END.
Пример 5. Разложение целого числа на простые множители. PROGRAM Primer_5; var x,m: Integer;BEGIN Write ('Введите целое число... '); ReadLn (x); WriteLn ('Разложение числа ',x,' на простые множители'); m:=2; While m<=x do If (x MOD m)=0 then begin Write (' * ',m); x:=x DIV m end else m:=m+1END.
Пример 6. Программа, позволяющая угадать целое число из отрезка [1,100]. PROGRAM Primer_6; var x,z: Integer; ugadal: Boolean;BEGIN WriteLn ('Угадай число'); WriteLn ('от 1 до 100'); Randomize; z:=Random (100)+1; ugadal:=FALSE; While NOT ugadal do begin Write ('число='); Read (x); If x=z then begin ugadal:=TRUE; WriteLn ('Правильно') end else If x<z then WriteLn ('Мало...') else If x>z then WriteLn ('Много...') endEND.
Пример 7. Вычисление целой части корня квадратного из положительного числа. Идея алгоритма заключается в том, что сумма К первых нечетных чисел равна, например, , и т.д. PROGRAM Primer_7; var i,j: Integer; x: Real; { Результат }BEGIN Write ('Введите положительное число, из которого '); Write ('хотите извлечь корень: '); ReadLn (x); i:=-1; j:=0; While j<=x do begin i:=i+2; j:=j+i end; Write ('Результат: ',(i-1) DIV 2)END.
Пример 8. Найти все простые числа на заданном отрезке (использовать цикл с параметром) PROGRAM Primer_8; var M: Integer; { Нижняя граница отрезка } N: Integer; { Верхняя граница отрезка } i,j: Integer; { Параметры циклов } kl: Integer;BEGIN Write ('Введите нижнюю границу отрезка... '); ReadLn (M); Write ('Введите верхнюю границу отрезка... '); ReadLn (N); WriteLn ('Все простые числа из отрезка [',M,',',N,']'); For i:=M to N do begin kl:=0; For j:=2 to Round (Sqrt(i)) do If (i MOD j)=0 then kl:=kl+1; If kl=0 then Write (i,' ') endEND.
Пример 9. Подсчитайте, сколько палиндромических чисел лежат в промежутке от 100 до 1000 (число M называется палиндромическим, если оно равно своему обращенному). Выведите их на экран дисплея. PROGRAM Primer_9; var d: Integer; { Результат работы программы } x,y,z: Integer; { Параметры циклов } n: Integer; { Палиндром m: Integer; { Вспомогательная переменная }BEGIN d:=0; For x:=1 to 9 do For y:=0 to 9 do For z:=0 to 9 do begin n:=100*x+10*y+z; m:=100*z+10*y+x; If n=m then begin d:=d+1; Write (n,' ') end end; WriteLn; WriteLn ('Результат: ',d)END.
|