ПРИМЕР 1.1
Необходимо вычислить сумму длин сторон прямоугольника (периметр прямоугольника). C клавиатуры вводятся значения двух соседних сторон рассматриваемого прямоугольника. Результат вычисления периметра следует вывести на экран. Текст необходимой программной разработки для решения данной задачи приведен в листинге Ll 8. Здесь используются два оператора ввода, в диалоге с которыми мы должны ввести два числа, обозначающие соседние стороны прямоугольника (для них в программе отводятся переменные а и в). После этого вычисляется удвоенная сумма сторон, которая и выводится на экран. Для того чтобы после вычисления результат оставался на экране, мы воспользовались дополнительно функцией readln.
Прямоугольника^-r’*T’iJy√i’⅞⅛»∣
Program listing_l_18; var *
А, В, S:real;
Begin
Write (,Ввод А =1);
Readln (А);
Writein(’ Ввод В =,);
Readln(В);
S:=2* (А+В) ;
Write (, S = ’, S);
Readln end.
Учитывая, что в представленной программе используются вещественные числа, вывод удобнее выполнить не в экспоненциальной, а в обычной форме:
Write(,S=,,Sz4:!).
ПРИМЕР 1.2
Необходимо вычислить синус и косинус угла, введенного с клавиатуры. Будем считать, что вводимое с клавиатуры значение угла измеряется в градусах. Однако стандартные тригонометрические функции системы Turbo Pascal требуют указания аргумента в радианах. В листинге 1. 19 представлена необходимая программа, где мы воспользовались уже знакомой функцией, которая в качестве своего значения выдает константу — число π. Далее производится пересчет угла из градусов в радианы и выполняются вычисления тригонометрических функций. program listing_l_19;
Var
Y, С, S: real;
Begin
Write (’ Ввод Y =’);
Read(Y);
Y:=Y*pi/180;
C:=cos(Y);
Writein (‘Косинус равен =,, С);
Sι=sin(Y);
Writein (,Синус равен =’t S);
End.
ПРИМЕР 1,3
Требуется написать программу, которая будет вычислять стоимость покупки в магазине канцтоваров. Для определенности будем считать, что в покупаемый набор входят тетради и ручки (и тетради и ручки одного вида). C клавиатуры вводятся:
□ стоимость одной тетради;
□ стоимость одной ручки;
□ количество тетрадей и количество ручек.
После ввода необходимой информации в программе (листинг 1.20) выполняются арифметические действия, а результат отображается на экране.
Program listing_l_20;
Var
Ct, Cr, Sum:real;
Nt, Nr: integer;
Begin
Write (‘Ввод цены тетради =’);
Readl n (Ct);
Write(tВвод цены ручки =,);
Readln(Cr);
Write (,Ввод числа тетрадей =,);
Readln(Nt);
Write (‘ Ввод числа ручек =’);
Readln (Nr);
Sum:=Nt*Ct+Nr*Cr;
Writeln(‘Сумма покупки =’,Sum:5:2); end.
ПРИМЕР 1.4
Необходимо выполнить вычисление площади прямоугольного треугольника. При этом два катета треугольника вводятся с клавиатуры.
Здесь мы должны вспомнить формулу для вычисления площади прямоугольного треугольника:
S=~, (1.1)
Где А и BОбозначают длины катетов. В листинге 1.21 представлена необходимая программа, в которой после ввода двух параметров вычисляется площадь треугольника.
Листинг 1.21. Вычисление площади прямоугольного треугольника Z;
Program listing_l_21;
Var
А, В, S: real;
Begin
Write(,Ввод значения 1-го катета ‘);
Readln (А);
Write(’ Ввод значения 2-го катета ‘);
Read(В);
S:=A*B/2;
Write (‘ Площадь равна =’,S:5:2);
End.
ПРИМЕР 1.5
Требуется написать программу, которая должна рассчитать время поездки из пункта Л в пункт С. При этом необходимо сначала доехать по шоссе из А в В. а затем по грунтовой дороге из Б в пункт С. Длины путей (в километрах) из А в Б и из Б в C Вводятся с клавиатуры. Также с клавиатуры вводятся скорости по шоссе и по грунтовой дороге (единица измерения для скоростей — км/час). Время в пути необходимо вычислить с точностью до часа (следует округлить вычисленное значение).
Программа должна выполнить арифметические действия и отобразить результат (время в пути из А в Q на экране. В листинге 1.22 представлена необходимая программа.
Program listing_l_22;
Var
Dab, Dbc, Vab, Vbcireal;
T: integer;
Begin
Write (* Ввод пути из А в В 1) ;
Readln (Dab);
Write(‘ Ввод пути из В в C ’);
Readln(Dbc);
Write(1Ввод скорости по шоссе ’);
Readln(Vab);
Write (,Ввод скорости по грунтовой дороге ‘);
Readln(Vbc);
Tz=round(Dab∕Vab+Dbc∕Vbc);
Writein(’ Время в пути =,,T);
End.
ПРИМЕР 1.6
Необходимо написать программу, которая должна выполнить преобразование времени, выраженного в секундах, в соответствующее значение, представленное в минутах и секундах. После выполнения необходимых преобразований результат следует отобразить на экране. В листинге 1.23 ‘представлена программа, решающая поставленную задачу. Для получения количества минут мы воспользовались целочисленным делением исходного значения на 60. В данном случае остаток от целочисленного деления является числом секунд, добавляемым к вычисленным минутам.
Листинг 1.23. Преобразованиезначениявременивминутыисекунды
Program listing_l_23;
Var
VremyazMin, Sec: integer;
Begin
Write (‘Ввод значения времени в секундах =’);
Readln(Vremya);
Minz=Vremya div 60;
Secz=Vremya mod 60;
Write (Min, 1мин ’);
Write(Sec,’ Сек’);
End.
ПРИМЕР 1.7
Требуется написать программу, которая должна выполнить преобразование времени, выраженного в секундах, в соответствующее значение, только представленное в часах, минутах и секундах. Программа (листинг 1.24) получается лишь немного сложнее предыдущего примера.
ГЛистинг 1.24гГ}йобразрЪание значенйявремДнив часы, минутымрекунды l Ltbtri∏ rrlΛv,<*bV>tM
Read3n(А);
В:= A mod 10;
C:= (A mod 100) div 10;
D:= A div 100;
W:= (B=C) or (B=D) or (C=D);
Writein(W)
End.
ПРИМЕР 1.21
C клавиатуры вводятся три различных числа. Необходимо сделать вывод о том, какое из чисел является максимальным. В листинге 1.38 приведена программа, решающая поставленную задачу. •
![]() |
Program listing_l_38;
Var
Ar Br C: integer;
Wlr W2 r W3 zboolean;
Begin
Write (,Введите три числа ‘);
Readin (ArBrC);
Wlz= (A>B) |
And (A>C) ; |
W2z= (B>A) W3z= (OA) writein (‘А |
And (B>C); And (OB); Максимальное — ,rWl); |
Writein (,В |
Максимальное — ‘r W2); |
Writein (, C |
Максимальное — ’rW3); |
End.
Если не включать условие единственности максимального числа, то фрагмент листинга 1.38 изменится наследующий:
![]() w2z= (b>=a) w3z= (o=a) » width=»80″ height=»55″ class=»»/> |
![]() and (b>=c); and (o=b); » width=»88″ height=»58″ class=»»/> |
ПРИМЕР 1.22
C клавиатуры вводятся три числа. Необходимо сделать вывод о том, все ли они равны между собой или нет. В листинге 1.39 приведена программа, решающая поставленную задачу.
Листинг 1.39. Проверка чисел на равенстеф’г?
Program listing_l_39; var
А, В, C: integer;
Wzboolean;
Begin
Write (,Введите три числа ’);
Readln(А, В,С);
W:= (A=B) and (A=C);
Writein(‘ Все числа одинаковые — ‘,W); end.
Типовые задачи и задания из ЕГЭ за 2008 — 2010 годы
В этом разделе приведены готовые листинги программ, которые вам необходимо проанализировать. Создания каких-либо программных разработок здесь не требуется. В задачах желательно найти правильные ответы без использования компьютера. В последнем разделе главы приведены правильные ответы.
ЗАДАЧА 1,1
В листинге 1.40 приведена программа с использованием действий над целыми числами. Необходимо определить значения переменных айв, которые будут выведены на экран.
Листинг 1.40. Программа «задаче 1.>1 √,’.4 X
44W44*4r*⅜4√^V4 4 4^∙∙⅜W4i∣⅛∙W√∙⅜>*∙i‰Y-∙ I **V⅞T∙W∙O∙⅛*∙*I ∣ζ⅛4 l’tfrv*44⅞*,θit*l∕t4^444 w4∙k
Program listing_l_40; var
ArВ:integer; begin A:= 3 + 8*4;
B:= (A mod 10) + 14;
A:= (B mod 10) + 2; writein (’ A = ’ f A); writein(, B =,rB); end.
ЗАДАЧА 1.2
В листинге 1.41 приведена программа с использованием действий над целыми числами. Необходимо определить значения переменных айв.
Program listing_l_41; var
AzBzinteger; begin
А:= 1819;
В:= (A div 100)*10 ÷ 9;
A:= (10*B — A) mod 100;
Writein (,А =,, А) ; writein(,В ≡’zB); end.
ЗАДАЧА 1,3
В листинге 1.42 приведена программа с использованием действий над целыми числами. Необходимо без выполнения ее на компьютере определить значение переменной А.
Program listing__l_42; var А, В: integer;
Begin
А:= 1;
В:= 9;
А:== -А + В*2;
A:= 4*A mod 10;
Writein (, A ≈’zА); end.
ЗАДАЧА 1.4
В листинге 1.43 приведен фрагмент программы. Необходимо определить, что появится на экране после ее выполнения.
Program listing_l_43;
Var A:intec;er;
Begin
А:= 1;
A:= A*200; • writein (* А ’);
Writein (А, А, А) ; end.
ЗАДАЧА 1.5
В листинге 1.44 приведен фрагмент программы. Необходимо определить, что появится на экране после ее выполнения.
Листинг 1.44. Программам задаче 1,5 t
……….. …… ……………………………………………………………………………… ‘…. :……… :..
Program listing_l_44;
Var Azinteger;
Begin
А:= 1;
A:= A*200;
Writein (, A,,, ,,,A,);
Writein(А:5,А:7, А:1);
End.
ЗАДАЧА 1,6
В листинге 1.45 приведен фрагмент программы. Необходимо без выполнения ее на компьютере определить, что появится на экране после ее выполнения.
В данной программе используется стандартная процедура Turbo Pascal inc, которая увеличивает значение целочисленной переменной, задаваемой в качестве первого параметра. Это увеличение производится на единицу, если второй параметр отсутствует, или на значение, указанное в качестве второго параметра.
-Листинг 1,45. ,Программа к задаче 1.6 ‘
T¾⅜⅛⅛Λ^⅛⅛∙∙. *: ⅛>f, V J. > ∙:. z> ..>√.V⅛s/∖ . ,s
Program listing_l_45; var
A:integer;
Begin
А:= 100;
Inc (А) ;
Inc (А, 4);
Writeln(A) ;
End.
ЗАДАЧА 1.7
В листинге 1.46 приведен фрагмент программы. Необходимо определить, что появится на экране после ее выполнения.
Процедура dec уменьшает значение целочисленной переменной, задаваемой в качестве первого параметра. Это уменьшение производится на единицу, если второй параметр отсутствует, или на значение, указанное в качестве второго параметра.
Program listing_l_46; var
A: integer;
Begin
А: = 100;
Dec (А, А) ;
Inc (А, 5);
Writein (А);
End.
ЗАДАЧА 1.8
В листинге 1.47 приведена программа. Необходимо определить, что появится на экране после ее выполнения.
Program listing_l_47;
Var
N: integer;
Begin
N:=2;
N:=N*N*N;
N:= Sqr(N) *Sqr(N) ;
Write (, N= ,,N) end.
ЗАДАЧА 1.9
В листинге 1.48 приведен фрагмент программы с использованием вещественных чисел. Необходимо определить, что появится на экране после ее выполнения.
Program listing_l_48;
Var
Z, W,X:real;
Begin
Wz=2*2.54;
Zz=I.15;
Xz=W-2*Z;
Write (‘ Summa =,,X:4:1) end.
ЗАДАЧА 1.10
В листинге 1.49 приведен пример программы, которая касается вычислительных действий над целыми числами. Необходимо определить результат, который мы увидим на экране после выполнения программы.
……………………………………………………………………. ,.,.jf……………………………… „-..у…
Листинг 1.49. Программа к задачеЛЛО «
‘ » ‘ ‘»‘. «> л»’
Program listing_l_49;
Var
NzMzWzinteger;
Begin
Nz=7;
Mz=12;
Inc(N);
Wz=N;
Nz=M;
Mz=W;
Writeln(‘N равняется’zN);
Writein (‘M равняется’zM) end.
ЗАДАЧА 1.11
В листинге 1.50 приведен пример программы, которая касается использования стандартных функций системы Turbo Pascal. Необходимо определить число, которое мы увидим на экране в результате выполнения программы.
Program listing_l_50;
Var
Mzinteger;
Begin
M:= -6;
Mz = Sqr (-abs (M)+round(pi) ) ;
Writein (M)
End.
ЗАДАЧА 1,12
В листинге 1.51 приведена программа, которая реализует использование уже знакомых функций для преобразования вещественных чисел в целые. Необходимо определить, что будет выведено на экран.
Program listing_l_51;
Var
N: integer;
S:real;
Begin
S.∙=-2.4;
N:= trunc(2*S)+ round(abs(S));
Writein (N)
End.
ЗАДАЧА 1.13
В листинге 1.52 приведена программа, которая реализует использование знакомой функции, предназначенной для работы с символами. Необходимо определить, что будет выведено на экран.
Листинг 1.52. Программа К задаче 1.13 |
Program listing_l_52;
Var
W: char;
X: integer;
Begin
Wz=,5′;
Xz=ord(W)-ord(’0’);
Wz=≈’2′;
X: =10*X+ord (W) — ord (, 0,); write (X)
End.
ЗАДАЧА 1.14
В листинге 1.53 приведена программа, в которой используется уже знакомая функция для работы с символами. Необходимо определить, что будет выведено на экран.
Program listing_l_53; var W: char;
Xzinteger;
Begin
Wι=’4′;
X:=ord(W)-ord(’ 9,);
W:=’5′;
X:=10*X+ord(W)-ord(‘7’);
Write (X)
End.
ЗАДАЧА 1.15
В листинге 1.54 приведена программа, которая использует две уже знакомые функции для работы с символами. Необходимо определить, что будет выведено на экран в конце программы.
[ Листинг 1.54; Программа ^задаче 1Л5⅛ j⅛⅞ √ J «v’ -∖’V-4″1
Program listing_l_54;
Var
W: char; X: integer; begin W:= ,5,; X:= ord(W)-l; W:= chr(X+l); X:=10*(ord(W)-ord (,4,)); writein (W,1 ’,X) end.
ЗАДАЧА 1.16
В листинге 1.55 приведена программа с использованием действий над целыми числами. Необходимо определить значение переменной с, которое будет выведено на экран в конце программы.
?Листинг1.55.Программакзадаче1.16’г4 ∣ / ч — ; x
U⅛∙∙*4k∙.l*k∙∕**∙**<*.∙∙∙*<∙∙*∙<∙*.∙∙*∙⅛∙∙∙∙∙H∙∙4⅞∙k. Ala√∙∙∙b∙C∙b⅛∙ib^4∙∙*∙^∙*./*.............................. Ub...v.√∙⅜∙*.U∙∙.% A*.∙Uibu∖*brU*k∕U∙¼VU. V.∙. •«*« ««4 ⅜∙*k⅜ •••••••»«»• VU U *∙.n∙∙4ι .kιU∙.∙∙⅛*kaU. .>i∙∙Λ⅜.∙∙∙∖∙f4⅛U∙∙re∙t *b∙UlVU4.k∙t W∙∙Uk∙V4U∙∙∙U. V∙√t1⅛Ul∙rt∙**VM∙k*’*∙f
Program listing_l_55;
Var
А, В, C: integer;
Begin
А:= 7;
А:= А — 4;
В:= — А;
С:=-А+2*В;
Writein (‘C =,,C);
End.
ЗАДАЧА 1,17
В листинге 1.56 приведена программа с использованием действий над целыми числами. Необходимо определить значения переменных х и Y9которые в конце программы будут выведены на экран.
Program listing_l_56;
Var
X, Y: integer;
Begin
X:= 8+2*5;
Y:= (X mod 10) + 14;
X:= (Y div 10) + 3;
Writein(‘X =,,X, ‘ Y =’,X ); end.
ЗАДАЧА 1,18
В листинге 1.57 приведена программа с использованием действий над целыми числами. Необходимо определить значения переменных х и Y9которые в конце программы будут выведены на экран.
Program listing_l_57;
Var
X, Y: integer;
Begin
X:= 4+8*3;
Y:= (X mod 10) + 15;
X:= (Y div 10) + 3;
Writein(‘X =’,X, ‘ Y =,,X ); end.
ЗАДАЧА 1,19
В листинге 1.58 приведена программа с использованием действий над целыми числами. Необходимо определить значение переменной C5которое будет выведено на экран.
Program listing_l_58; var
А, В, C: integer;
3 Зак. 733
Begin
А:= 3;
В:= А + 3;
В:= 1 — В;
С:=-В+3*А;
Writein(‘C =’,С); end.
Ответы к задачам и заданиям из ЕГЭ
Задача 1,1
Первый вычислительный оператор в программе листинга 1.40 приводит к результату: А:=35. Остаток от деления 35 на IO равен 5. Далее это число складывается с 14 и результат (19) записывается в переменную в. Таким образом, ответ на один вопрос — значение переменной в равно 19. Остаток от деления 19 на 10 равен 9. Далее это число складывается с числом 2 и результат (11) записывается в переменную а. В результате значение переменной а равняется 11.
Ответ: 11 и 19.
Задача 1.2
Результат целочисленного деления 1819 на IOO равен 18. Это значение умножается на 10, а результат складывается с числом 9 (в итоге получается 189). Такум образом, значение в после выполнения второго оператора равно 189. В третьем операторе выражение в скобках дает результат 71 (189 умножается на Ю, а из результата вычитается 1819). Остаток от деления 71 на 100 равен 71. Таким образом, значение переменной а равняется 71, а переменной в равняется 189.
Задача 1,3
Первый вычислительный оператор в программе листинга 1.3 приводит к занесению в переменную а числа 17 (из 18 вычитается I). Далее в следующем операторе порядок приоритетности операций говорит о том, что сначала будет выполнена операция умножения, а затем вычисление остатка от деления IO (точнее, приоритет операций одинаков, но первым в выражении стоит знак умножения). В результате в процессе вычисления мы получим число 8.
Задача 1.4
В программе листинга 1.43 приведены два оператора вывода информации на экран. При этом первый оператор выводит пробел и букву а, после чего выполняется перевод строки. В следующей строке три раза подряд выводится значение переменной а. В результате мы увидим:
А
200200200
Задача 1.5
В программе листинга 1.44 приведены два операторы вывода информации на экран. При этом первый оператор выводит набор символов, после чего выполняется перевод строки. В следующей строке три раза подряд выводится значение переменной а с определенным форматированием. В результате мы увидим:
А А
200 200200
Задача 1.6
В связи с приведенным комментарием при постановке задачи значение переменной а сначала увеличится на I, а затем еще на 4. В результате на экране мы увидим:
105.
Задача 1.7
Учитывая комментарий, приведенный при постановке задачи, значение переменной а сначала уменьшается на I00, а затем увеличивается на 5. В результате на экране мы увидим число 5.
Задача 1,8
Здесь сначала 2 возводится в куб (результат равен 8). После этого выполняется вычисление квадрата числа 8, который умножается сам на себя. В результате получим 4096.
Задача 1.9
Здесь выполняются действия с вещественными числами. Вывод результата представлен в обычном формате с ограничением числа разрядов дробной части.
Вычисления вручную дают:
5.08 — 2.3 = 2.78.
Округление до одного разряда дробной части приводит к числу 2.8.
Задача 1.10
Фактически в тексте программы листинга I.49 осуществляется обмен значений. При этом предварительно исходное значение переменной N увеличивается на единицу. В результате мы увидим на экране, что N равняется 12, а м примет значение 8.
Задача 1.11
Здесь выполняется вычисление модуля числа м, а затем округление числа π. Далее сумма этих составляющих возводится в квадрат. В результате мы получим число 9.
Задача 1.12
В программе осуществляется вычисление выражения из двух слагаемых. Первое слагаемое представляет целую часть от произведения 2 на -2.4, что дает -4. В результате вычисления второго слагаемого получим ответ: 2. И в конечном итоге ответ равен -2.
Задача 1.13
Первое вычисление х представляет вычитание кодов двух символов. Учитывая, что коды цифр расположены плотно, вычисление приводит к ответу: х=5. Второе действие формирует ответ, равный 52.
Задача 1.14
Здесь первая вычислительная операция дает ответ: -5. Второе действие формирует ответ: -52.
Задача 1.15
Вычисление х во второй строке исполнительной части программы приводит к коду числа 4 (из ASCII-кода числа 5 вычитается единица). В следующей строке получаем символ 5. Это значение будет первым выведено на экран. Второй результат— это число Ю. Таким образом, на экране мы увидим:
5 10
Задача 1.16
Первый вычислительный оператор (после присвоения переменной а значения 7) в программе листинга I.55 приводит к результату: А:=з. Далее вычисляется значение переменной в, что приводит к значению — з. После этого вычисляется значение переменной с, что дает значение -9. Это результат сложения — з и -6.
Ответ: -9.
Задача 1.17
В первой строке с вычислением рассчитывается значение переменной х, которое равно 18. Далее в следующей строке число 14 складывается с остатком отделения 18 на 10. В результате этого действия переменная Y принимает значение 22. В последней вычислительной строке производится целочисленное деление 22 на Ю, что дает 2. К этому значению добавляется 3 и результат заносится в переменную х. Таким образом, х=5.
Ответ: x=5 γ=22.
Задача 1.18
В первой строке с вычислением рассчитывается значение переменной х, которое равно 16. Далее в следующей строке число 15 складывается с остатком от деления 16 на Ю. В результате этого действия переменная γ принимает значение 21. В последней вычислительной строке производится целочисленное деление 21 на Ю, что дает 2. К этому значению добавляется 3 и результат заносится в переменную х.
Ответ: x=5 γ=2i.
Задача 1.19
Первый вычислительный оператор (после присвоения переменной а значения 3) в программе листинга 1.58 приводит к результату: В:=6. Далее вычисляется новое значение переменной в, что приводит к значению -5. После этого вычисляется значение переменной с, что дает значение 14.
Ответ: 14.
ГЛАВА 2