Решенные задачи по Паскалю: логический тип Boolean
Содержание:
Тип boolean в Паскале
Примеры программ на Паскале с использованием логического типа Boolean
Boolean 1: Дано целое положительное число. Проверить истинность высказывания: «Данное число является четным двузначным».
Проверить:
1 2 3 4 5 6 7 8 9 | const a=98; var flag:boolean; begin flag:=false; if (a div 100 =0) and (a div 10 <>0) and (a mod 2=0) then flag:=true; writeln(flag); end. |
Boolean 2: Дано целое положительное число. Проверить истинность высказывания: «Данное число является нечетным трехзначным».
Проверить:
1 2 3 4 5 6 7 8 9 10 | const a=888; var f_n, s_n, t_n: integer; flag:boolean; begin flag:=false; if (a div 100 <>0) and(a div 10 <>0) and (a div 1000=0) and (a mod 2<>0) then flag:=true; writeln(flag); end. |
Boolean 3: Дано трехзначное число. Проверить истинность высказывания: «Все цифры данного числа различны».
Проверить:
1 2 3 4 5 6 7 8 9 10 11 12 13 | const a=348; var f_n, s_n, t_n: integer; flag:boolean; begin flag:=false; f_n:=a div 100; s_n:=(a mod 100)div 10; t_n:=a mod 10; if (f_n<>s_n) and (f_n<>t_n) and (s_n<>t_n) then flag:=true; writeln(flag); end. |
Boolean 4: Дано трехзначное число. Проверить истинность высказывания: «Цифры данного числа образуют возрастающую последовательность».
Проверить:
1 2 3 4 5 6 7 8 9 10 11 12 | const a=318; var f_n, s_n, t_n: integer; flag:boolean; begin flag:=false; f_n:=a div 100; s_n:=((a mod 100)div 10); t_n:=a mod 10; if (f_n<s_n) and (s_n<t_n) then flag:=true; writeln(flag); end. |
Boolean 5: Даны координаты поля шахматной доски
x
, y
(целые числа, лежащие в диапазоне 1–8). Учитывая, что левое нижнее поле доски (1, 1)
является черным, проверить истинность высказывания: «Данное поле является белым».Проверить:
1 2 3 4 5 6 7 8 9 10 | var x,y:integer; flag:boolean; begin flag:=false; writeln('введите координаты(числа в диапазоне 1-8)'); readln(x,y); if ((x+y) mod 2)<>0 then flag:=true; writeln(flag); end. |
Boolean 6: Даны координаты двух различных полей шахматной доски
x1
, y1
, x2
, y2
(целые числа, лежащие в диапазоне 1–8). Проверить истинность высказывания: «Король за один ход может перейти с одного поля на другое».Проверить:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | var x1,x2,y1,y2:integer; flag:boolean; begin flag:=false; writeln(' введите координаты двух различных полей шахматной доски (целые числа, лежащие в диапазоне 1–8). '); writeln( 'x1='); readln(x1); writeln( 'y1='); readln(y1); writeln( 'x2='); readln(x2); writeln( 'y2='); readln(y2); if (abs(x1-x2)+ abs(y1-y2)=1) or (abs(x1-x2)+ abs(y1-y2)=2) then flag:=true; writeln(flag); end. |
В Pascal max и min
Проверьте свои знания в решении задач поиска максимального и минимального элементов заданного числового ряда.
Pascal max 1: Дано целое число N и набор из N прямоугольников, заданных своими сторонами — парами чисел (a,b). Найти минимальную площадь прямоугольника из данного набора. (Не использовать массивы)
* Из задачника М. Э. Абрамян (Minmax2)
Проверить:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | var S,a,b,Min,Max: Real; i,N:Integer; begin Write('N:'); Readln(N); for i:=1 to N do begin Write('a b:'); Readln(a,b); S:=a*b; if i=1 then begin Min:=S; Max:=S; end; if S<Min then Min:=S; if S>Max then Max:=S; end; Writeln(Min,' ',Max); end. |
Pascal max 2: Дано целое число N и набор из N пар чисел (m,v) — данные о массе m и объеме v деталей, изготовленных из различных материалов. Вывести номер детали, изготовленной из материала максимальной плотности, а также величину этой максимальной плотности. Плотность P вычисляется по формуле P=m/v.
* Из задачника М. Э. Абрамян (Minmax5)
Проверить:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 | var m,v,p,pMax:Real; i,N,MaxNum:Integer; begin Write('N:'); Readln(N); for i:=1 to N do begin Write(i,') m v:'); Readln(m,v); p:=m/v; if i=1 then begin pMax:=p; MaxNum:=i; end; if p>pMax then begin pMax:=p; MaxNum:=i; end; end; Writeln(MaxNum,' - ',pMax); end. |
Pascal max 3: Дано целое число N и набор из N целых чисел. Найти номера первого минимального и последнего максимального элемента из данного набора и вывести их в указанном порядке.
* Из задачника М. Э. Абрамян (Minmax6)
Проверить:
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 26 27 28 29 30 | var R,Min,Max:Real; i,N,MinNum,MaxNum:Integer; begin Write('N:'); Readln(N); for i:=1 to N do begin Write(i,' число:'); Readln(R); if i=1 then begin Min:=R; Max:=R; MaxNum:=i; MinNum:=i; end; if R<Min then begin Min:=R; MinNum:=i; end; if R>=Max then begin Max:=R; MaxNum:=i; end; end; Writeln(MinNum,' ',MaxNum); end. |