Партнерка на США и Канаду по недвижимости, выплаты в крипто
- 30% recurring commission
- Выплаты в USDT
- Вывод каждую неделю
- Комиссия до 5 лет за каждого referral
ниже линии
, откуда следует третье условие y <= 1
выше линии
, что дает четвертое условие y >= sinx
4 итак, точка находится в заданной области, если все эти четыре условия выполняются одновременно; можно предположить, что в программе нужно использовать четыре вложенных условных оператора или один условный оператор, в котором четыре простых условия (отношения
,
,
и
) связаны с помощью логической операции and («И», одновременное выполнение всех условий)
5 теперь смотрим на программу: здесь три (а не четыре!) вложенных условных оператора с простыми отношениями, поэтому явно какое-то условие не учтено; легко найти, что «забыли» условие ![]()
12 по схеме видим, что при
(первое условие ложно),
а также при
(второе условие ложно) программа
вообще не выдает никакого сообщения, то есть,
работает неправильно; таким образом, координаты любой точки, для которой
или
, могут быть указаны в ответе как пример
набора входных данных, при которых программа работает
неправильно
15 решение формулируется так: «точка принадлежит области, если выполняются одновременно 4 приведенных выше условия, а иначе – не принадлежит»; а вот реализация на Паскале (приведем программу-ответ целиком):
var x, y: real;
begin
readln(x, y);
pi:= 3.14
if (x >= 0) and (x <= pi/2) and (y <= 1) and (y >= sin(x)) then
write('принадлежит')
else write('не принадлежит');
end.
здесь использовано сложное условие, в котором 4 отношения связаны операциями and («И», требуется одновременное выполнение всех условий)
С2 Дан целочисленный массив из 20 элементов. Элементы массива могут принимать целые значения от 0 до 1000. Опишите на русском языке или на одном из языков программирования алгоритм, позволяющий найти и вывести минимальное значение среди элементов массива, которые имеют чётное значение и не делятся на три. Гарантируется, что в исходном массиве есть хотя бы один элемент, значение которого чётно и не кратно трем. Исходные данные объявлены так, как показано ниже. Запрещается использовать переменные, не описанные ниже, но использовать все описанные переменные не обязательно.
Паскаль | Бейсик |
N = 20; var a: array [1..N] of integer; i, j, min: integer; begin for i := 1 to N do readln(a[i]); … end. | N = 20 DIM A(N) AS INTEGER DIM I, J, MIN AS INTEGER FOR I = 1 TO N INPUT A(I) NEXT I … END |
В качестве ответа вам необходимо привести фрагмент программы (или описание алгоритма на естественном языке), который должен находиться на месте многоточия. Вы можете записать решение также на другом языке программирования (укажите название и используемую версию языка программирования, например Borland Pascal 7.0) или в виде блок-схемы. В этом случае вы должны использовать те же самые исходные данные и переменные, какие были предложены в условии (например, в образце, записанном на естественном языке).
Краткая теория. в условных операторах можно использовать сложные условия, которые строятся из простых отношений (<, <=, >, >=, =, (<> - не равно)) с помощью логических операций not («НЕ», отрицание), and («И», одновременное выполнение всех условий) и or («ИЛИ», выполнение хотя бы одного из двух условий). В сложном условии сначала выполняются действия в скобках, потом – not, затем – and, затем – or и, наконец, отношения.
Содержание верного ответа
На языке Паскаль | На языке Бейсик |
N = 20; var a: array [1..N] of integer; i, j, min: integer; begin for i := 1 to N do readln(a[i]); min := 1000; for i:=1 to N do if (a[i] mod 2=0) and (a[i] mod 3<>0) and (a[i]<min) then min := a[i]; writeln(min); end. | N = 20 DIM A(N) AS INTEGER DIM I, J, MIN AS INTEGER FOR I = 1 TO N INPUT A(I) NEXT I MIN = 1000 FOR I = 1 TO N IF (A(I) MOD 2 = 0) AND (A(I) MOD 3 <> 0) AND (A(I) < MIN) THEN MIN = A(I) END IF NEXT I PRINT MIN END |
Задачи ЕГЭ C2
Краткая теория. в условных операторах можно использовать сложные условия, которые строятся из простых отношений (<, <=, >, >=, =, (<> - не равно)) с помощью логических операций not («НЕ», отрицание), and («И», одновременное выполнение всех условий) и or («ИЛИ», выполнение хотя бы одного из двух условий). В сложном условии сначала выполняются действия в скобках, потом – not, затем – and, затем – or и, наконец, отношения.
Задача 1. Поиск максимального элемента массива a[i]. Заполнение массива a[i] генератором случайных чисел от 0 до 50
QBasic | Pascal |
CLS RANDOMIZE TIMER N = 10 DIM A(1 TO N) AS INTEGER REM Заполнение массива А(10) FOR i = 1 TO N A(i) = INT(RND(1) * 50 + 1) PRINT "A("; i; ")="; A(i) NEXT i REM Поиск max max = A(1) FOR i = 2 TO N IF A(i) > max THEN max = A(i) END IF NEXT i PRINT "max = "; max END | var i, max: integer; a: array[1..10] of integer; Begin {Заполнение массива a[i] генератором случайных чисел от 0 до 50 } Randomize; for i:=1 to 10 do a[i]:=Random(50); for i:=1 to 10 do write(a[i]:5); writeln; max:=a[1]; for i:=2 to 10 do if a[i]>max then max:=a[i]; writeln(max); readln; End. |
Задача 2. Поиск минимального элемента массива a[i] и его номера
CLS INPUT "N="; N DIM A(1 TO N) AS INTEGER REM Заполнение массива А(10) FOR i = 1 TO N PRINT "A("; i; ")="; INPUT A(i) NEXT i REM Поиск min min = A(1) k = 1 FOR i = 2 TO N IF A(i) < min THEN min = A(i) k = i END IF NEXT i PRINT "min = "; min PRINT "номер элемента = "; k END | var i, min: integer; a: array[1..10] of integer; Begin {Заполнение массива a[i] генератором случайных чисел от 0 до 50 } Randomize; for i:=1 to 10 do a[i]:=Random(50); for i:=1 to 10 do write(a[i]:5); writeln; min:=a[1]; k=1; for i:=2 to 10 do begin if a[i]<min then begin min:=a[i]; k:=i; end; end; writeln(min, k); readln; End. |
Задача 3. Напишите программу, которая в последовательности целых чисел определяет количество чётных чисел, кратных 7. Программа получает на вход целые числа, количество введённых чисел неизвестно, последовательность чисел заканчивается числом 0 (0 – признак окончания ввода, не входит в последовательность). Количество чисел не превышает 1000. Введённые числа по модулю не превышаютПрограмма должна вывести одно число: количество чётных чисел, кратных 7.
Пример работы программы:
Входные данные | Выходные данные |
–32 14 17 0 | 1 |
QBasic | Pascal |
CLS REM A – введенное с клавиатуры число; REM k - количество чётных чисел, кратных 7 DIM k, A AS INTEGER k = 0 INPUT A REM Выполняются операторы, пока условие A<>0 верно WHILE A <> 0 IF (A MOD 2 = 0) AND (A MOD 7 = 0) THEN k = k + 1 END IF INPUT A WEND PRINT k END | { A – введенное с клавиатуры число; k - количество чётных чисел, кратных 7} var a, answer: integer; begin answer:=0; readln(a); {Выполняются операторы, пока условие A<>0 верно} while a<>0 do begin if (a mod 2 = 0) and (a mod 7 = 0) then answer := answer + 1; readln(a); end; writeln(answer) end. |
Задача 4. Напишите эффективную программу, которая по двум данным натуральным числам a и b, не превосходящим 30000, подсчитывает количество четных натуральных чисел на отрезке [a, b] (включая концы отрезка). Программа получает на вход два натуральных числа a и b, при этом гарантируется, что 1 ≤ a ≤ b ≤ 30000. Проверять входные данные на корректность не нужно. Программа должна вывести одно число: количество четных чисел на отрезке [a, b]. Пример работы программы:
Входные данные | Выходные данные |
10 20 | 6 |
REM A,B – введенные с клавиатуры числа; k - количество чётных чисел DIM A, B AS INTEGER DIM i, k AS INTEGER INPUT A, B k = (B - A) \ 2 IF (B mod 2 = 0) or (A mod 2 = 0) then k = k + 1 END IF PRINT k END | Var a, b, answer: integer; begin read(a, b); answer := (b - a) div 2; if (b mod 2 = 0) or (a mod 2 = 0) then answer := answer + 1; writeln(answer) end. |
|
Из за большого объема этот материал размещен на нескольких страницах:
1 2 3 4 5 6 |


