СДЕЛАЙТЕ СВОИ УРОКИ ЕЩЁ ЭФФЕКТИВНЕЕ, А ЖИЗНЬ СВОБОДНЕЕ

Благодаря готовым учебным материалам для работы в классе и дистанционно

Скидки до 50 % на комплекты
только до

Готовые ключевые этапы урока всегда будут у вас под рукой

Организационный момент

Проверка знаний

Объяснение материала

Закрепление изученного

Итоги урока

Решения некоторых олимпиадных задач по информатике муниципального уровня №2

Категория: Информатика

Нажмите, чтобы узнать подробности

Уважаемые посетители сайта, предлагаю Вашему вниманию продолжение описания решений олимпиадных задач.

Просмотр содержимого документа
«Решения некоторых олимпиадных задач по информатике муниципального уровня №2»


Задача 1.


Dim M, N, J, I As Integer

' По числу клеток на каждой стороне шахматной доски, номерам ряда, столбца и цвета клетки определить, клеток какого цвета больше

M = Val(InputBox("Сколько клеток на одной стороне доски?"))

N = Val(InputBox("Сколько клеток на второй стороне доски?"))

I = Val(InputBox("В каком ряду находится клетка?"))

J = Val(InputBox("В каком столбце находится эта клетка"))

C = Val(InputBox("Какой цвет этой клетки? Белый - 1, чёрный - 0"))


M1 = Int(M / 2) * 2

N1 = Int(N / 2) * 2

I1 = Int(I / 2) * 2

J1 = Int(J / 2) * 2

'Если на каждой стороне чётное количество клеток, белых и чёрных клеток поровну

If M = M1 Or N = N1 Then

Print "Белых и чёрных клеток поровну, equal"

Else

'Если номер ряда и номер столбца чётные, такой цвет будет и в первом углу

'Значит, клеток такого цвета будет больше.

If I = I1 And J = J1 Then

If C = 1 Then

Print "Больше белых клеток, white"

Else

Print "Больше чёрных клеток, black"

End If

End If

'Если номер ряда чётный, а столбец нечётный, в углу будет клетка другого цвета

'Значит, клеток другого цвета будет больше.

If I = I1 And J J1 Then

If C = 1 Then

Print "Больше чёрных клеток, black"

Else

Print "Больше белых клеток, white"

End If

End If

'Если номер ряда нечётный, а столбец чётный, в углу будет клетка другого цвета

If I I1 And J = J1 Then

If C = 1 Then

Print "Больше чёрных клеток, black"

Else

Print "Больше белых клеток, white"

End If

End If

'Если номер ряда нечётный, и столбец нечётный, в углу будет клетка этого цвета

If I I1 And J J1 Then

If C = 1 Then

Print "Больше белых клеток, white"

Else

Print "Больше чёрных клеток, black"

End If

End If

End If


Задача 2.


На столе лежат N монеток. Некоторые из них лежат вверх номиналом, другие гербом. Определите число монеток, которые лежат вверх номиналом.


Формат входных данных

В компьютер сначала ввести число всех монеток N, затем ввести для каждой монеты 1, если монетка лежит вверх номиналом или 0, если монетка лежит вверх гербом.


Решение:


Dim A(), S As Integer

' Вводим число монет и задаём массив А() из стольких элементов

N=Val(InputBox(“Сколько всего монет”))

ReDim M(N)

Вводим номиналы

For I = 1 To N

A(I)= Val(InputBox(“Введите 1 или 0 ”))

Next I

' переменной S присваиваем значение 0

S=0

For I=1 To N

If A(I)=1 Then

‘ если элемент массива равен 1, к переменной S прибавляем 1

S=S+1

Next I

Print “Монет номиналом вверх”, S



Задача 3. (Об изобретателе шахмат).


N = Val(InputBox("Введите число клеток на одной стороне доски"))

V = N * N

S = 0

K = 1

For I = 1 To V

S = S + K

K = K * 2

Next I

Print S

End Sub


Пример программы на языке Паскаль:


Задача 4.


Program Falsh;

{Из нескольких монет одна фальшивая. Найти её номер.}

uses crt; {*для удобства ввода данных*}

const n=5; {*переменной n обозначаем количество монет*}


var i: integer;

Min, Max, Raz : real;


var m: array [1..n] of real;


begin

for I:=1 to n do

begin

writeln ('сколько составляет вес',i,'монеты');

read(m[i])

end;

if m[1]=m[2] then begin

for i:=3 to n do

begin

If m[1]m[i] then writeln ('номер фальшивой', i);

If m[i]фальшивая легче остальных');

If m[i]m[1] then writeln ('фальшивая тяжелее остальных')

end

end

else begin

if m[1]=m[3] then begin

writeln ('номер фальшивой 2');

if m[2]фальшивая легче остальных')

else writeln ('фальшивая тяжелее остальных');

end

else begin

writeln ('номер фальшивой 1');

if m[1]

else writeln ('фальшивая тяжелее остальных')

end

end


end.