Партнерка на США и Канаду по недвижимости, выплаты в крипто

  • 30% recurring commission
  • Выплаты в USDT
  • Вывод каждую неделю
  • Комиссия до 5 лет за каждого referral

Задание 1.

Эту задачу легко решить с помощью диаграммы Венна.

Так как в Испании и Франции были три ученика, то учеников, побывавших во всех странах, не больше трех.

Шаг

Область диаграммы

Страны

Вариант 1

Вариант 2

Вариант 3

Вариант 4

1

1

Все три

0

1

2

3

2

2

Испания, Швеция

4 – 0 = 4

4 – 1 = 3

4 – 2 = 2

4 – 3 = 1

3

3

Испания, Франция

3 – 0 = 3

3 – 1 = 2

3 – 2 = 1

3 – 3 = 0

4

4

Швеция, Франция

4 – 0 = 4

4 – 1 = 3

4 – 2 = 2

4 – 3 = 1

5

5

Испания

10 -0-4-3=3

=4

=5

=6

6

6

Франция

=4

=5

=6

=7

7

7

Швеция

=5

=6

=7

=8

8

1+2+3+4+

+5+6+7

Всего

4+3+4+3+

+4+5=23

1+3+2+3+

+4+5+6=23

2+2+1+2+

5+6+7=25

3+1+0+1+

6+7+8=26

25 учеников – это третий вариант.

Только во Франции побывали 6 учеников.

Задание 3.

Поскольку по условию задачи первая и шестая цифры должны быть различны и в сумме давать 10, то на первом месте не может стоять ни 0, ни 5. Следовательно, на этом месте может стоять любая из восьми оставшихся цифр. Тогда шестое место следует занять единственным способом. Таким образом, две цифры из восьми уже заняты, и на третьем месте может стоять любая из оставшихся шести цифр. Продолжая рассуждать аналогично, получаем 8 * 6 * 4 * 1 *1 *1 = 192 возможных «особых» билета.

Задача 7.

Четверо друзей - Андрей, Борис, Сергей и Дмитрий - решили пойти на рыбалку. Но Дмитрий в последний момент отказался и высказал следующие предположения:

1) Андрей не пойдет на рыбалку, но Борис обязательно пойдет.

НЕ нашли? Не то? Что вы ищете?

2) Не верно, что пойдут Андрей или Сергей.

3) Борис пойдет на рыбалку или не пойдет Сергей.

4) Если пойдет Борис, то пойдет на рыбалку и Сeргeй

Если предположить, что все высказывания Дмитрия оказались истинными, то кто пошел на рыбалку?

Введем следующие обозначения: А - «Андрей пойдет на рыбалку,»; В - «Борис пойдет на рыбалку»; С - «Сергей пойдет на рыбалку»; D - «Дмитрий пойдет на рыбалку».

1. Запишем логические формулы, соответствующие высказываниям:

1) А. В == 1, (1)

2) А+С == А. С, (2)

3)В+С==1, (3)

4) В -:, С == В + С (4)

2. Умножив уравнение (1) на (2), получим (5):

А. В.А. С == А. В.С.

3. Умножив уравнение (5) на (3), получим формулу (6):

А. В.С.(В+С) == А. В.С. В+А. В.С. С== А. В.С+А. В.С== А. В.С.

4. Умножив уравнение (6) на (4), получим формулу:

А. В. С. (В + С) == А. В. С. В + А. В. С. С == о.

Ответ: никто не пошел на рыбалку

Задание 10.

Идея решения. Заполнить 1 строку квадратного массива (N x N) числами от 1 до N. Вторая строка массива получается путем цик­лического сдвига элементов первой строки, и т. д. Циклический сдвиг можно реализовать, используя типовой алгоритм вставки-­удаления (в зависимости от направления циклического сдвига).

При м е р л а т и н с к о г о к в а д р а т а:

1

2

3

4

5

5

1

2

3

4

4

5

1

2

3

3

4

5

1

2

2

3

4

5

1


Решение на Паскале:

program pr;

var а: array [1..10,1..10] of integer;

n, i,j,х: integer;

begin

writeln ('размерность='); readln (n);

for j:=l to n do

а[1, j]:=j; {==сдвиг=--} for i:=2 to n do

begin

for j:=1 to n do

a[i, j]:=a[i-l, j]; x:=a[i, n];

for j :=n downto 2 do

a[i, j]:=a[i, j-l]; a[i,1]:=x;

end;

{==--==вывод--}

for i:=1 to n do

begin

for j:=1 to n do

write( a[i, j]); writeln;

end;

end.

Входные данные

Результат

5036

в замке

8060

в замке

3010

вне замка

5084

вне замка

4067

вне замка

8085

застрял в стене

4028

застрял в стене

5035

застрял в стене

Задание 11.

П а с к а л ь

program poter(input, output);

uses crt;

var Х, у: real;

begin

clrscr;

writе('Введите Х: '); readln(x);

writе('Введите у: '); readln(y);

if (у=10/6*х) or (у= -3/4*Х+145) or (у=О.7*Х)

then writеln('застрял в стене')

еlsе if (у<10/6*Х) and (у< -3/4*х+145) and (у>О.7*х)

then writeln('B замке')

еlsе writeln('Bнe замка');

readln

end.

Задание 12. Считалка. Напишите программу, реализующую считалку: числа от 1 до N расставляют 1

кругу и вычеркивают каждое второе число, начиная считать от 1. Требуется определить, какое число останется последним.

На входе - натуральное число N (1 ::; N ::; 1 , на выходе - последнее число.

Решенuе. Паскаль.

program sch(input, output);

var

n, i, j, t: longint;

р: byte;

s: string;

begin

writеln('Введите число: '); readln(n);

р:=2;

repeat

саsе n mod 2 of

0: саsе р of

1: begin n:=n div 2; р:=l; s:=s+' (*2)' end;

2: begin n:=n div 2; р:=2; s:=s+'(*2-1)' end;

end;

1: саsе р of

1: begin n:=n div 2; р:=2; s:=s+' (*2)' end;

2: begin n:=(n div 2)+1; р:=l; s:=s+' (*2-1)' end;

end;

end

until n=l;

i:=length(s)+1;

t:=l;

repeat

i:=i-1;

if s[i]=')' then

begin

j:=i;

repeat

j:=j-1

until s[j]=' (';

if i-j<4 then t:=t*2 еlsе t:=t*2-1; i:=j

end;

until i=l; .

writeln(t);

readln

end.


Входные

Результат

10

5

1024

1

5000

1809

33 000

465


Задание 12. 3аметим, что задача не всегда имеет решение: например, если мальчиков слишком много, а дево­чек мало (или, и того хуже, нет вовсе!), то поса­дить каждого мальчика рядом с девочкой не удаст­ся. Поскольку рядом с каждой девочкой могут си­деть не более двух мальчиков, то количество маль­чиков не может превосходить количества девочек более чем вдвое. То есть, если Х > 2У, то задача решения не имеет. Также задача не имеет реше­ния и в случае У> 2Х.

Покажем, что в остальных случаях школьников можно рассадить требуемым образом. Если мальчи­ков и девочек поровну, то одна из искомых рассадок очевидна: BGBG...BG.

Пусть мальчиков больше, чем девочек, на k чело­век: Х = У + k. Тогда можно рассадить школьников

Так BGB BGB...BGB BG BG...BG

К - троек y-k пар

В тройках 2k мальчиков и k девочек, в парах ­- k) мальчиков и - k) девочек. Итого:

2 k + - k) = У + k = Х мальчиков, k + - k) = У девочек. Поскольку Х <= 2У, то k <= у, то есть У - k >= О. Таким образом, предложенная рассадка всегда возможна. Случай, когда девочек больше, чем маль­чиков, разбирается аналогично. Остается написать программу.

read(X, У);

if (Х > 2 * У) or (У > 2 * Х) then

write ('NO SOLUTION').

else if Х >= У then begin

k := Х - У;

for i := 1 to k do

wr i te ( ‘ BGB ‘ ) ;

for i := 1 to У - k do

write ('BG')

end

else begin

k := У - Х;

for i := 1 to k do

write ('GBG');

for i := 1 to Х - k do

write ('GB')

end;

Обратим внимание на некоторые особенности работы этой npограммы. Если У = Х, то k = О и первый цикл for не выполняется ни разу: все школь­ники рассаживаются парами "мальчик - девочка". Если же Х = (или У = 2Х), не выполняется второй цикл, поскольку У - k (Х - k, соответствен­но) равно нулю. В этом случае все школьники рас­саживаются тройками.

Задание 13.

В каждом слове есть первая буква. Поэтому вмес­то того, чтобы считать слова, можно считать первые буквы слов. Какая буква является первой буквой слова? Любая, слева от которой стоит не буква. Исключение составляет буква, слева от которой стоит символ "-", а перед ним - буква. осталось написать программу, которая перебирает все символы строки и считает, сколько среди них первых букв.

read(s);

for i := 1 to 1ength(s) do

{s[i] – буква}

if (s [i ] in [' а ‘ . . ‘z ‘ , 'А' . . ' Z ' ] )

{s[i - 1] - не буква}

and not (s[i - 1] in [' а ' . . ' z ‘ , 'А' . . ' Z ' ] ) {s[i - 1] - не дефис}

and not ((s[i - 1] = '-') and

(s [i - 2] in [' а ‘ . . ‘z' , ‘А' .. 'Z'] ))

then n := n + 1;

write(n);

у этой программы есть небольшой дефект. Когда мы проверяем, например, символ s [ 1] , нам прихо­дится обращаться к несуществующим символам s [ 0 ] и s [ -1]. Чтобы избежать этого, можно изначально добавить в начало строки два символа, которые не ПОВЛИЯЮТ на количество слов в строке, например,

s : =' ! !’ + S, и начинать искать первые буквы слов, начиная с третьего символа строки.

for i := 3 to 1ength(s) do ..