Подбор задач для подготовки к олимпиаде по информатике

 

Задача1 Определить порядковый номер даты с начала года

Задача2 распечатать двумерный массив и найти сумму его элементов

Задача3 распечатать все делители данного натурального числа

Задача4 Дана таблица. Подсчитать наиб.число одинаковых идущих в ней подряд элементов

Задача5 подсчитайте количество различных чисел, встречающихся в табл. Повторяющиеся числа  учитывать один раз.

Задача6 Задача о магическом квадрате

Задача7 Найти все положительные четырехзначные числа abcd(а<=3), для которых выполняются следующие условия: a,b,c,d -  разные цифры; ac-cd=a+b+c+d(здесь ab,cd - двузначные числа

Задача8 В таблице N x N,где N<13 клетки заполнены некоторым образом цифрами

   ' от 0 до 9.Написать программу поиска маршрута  из клетки А(1,1) в клетку

   ' А(N,N). Маршрут должен удовлетворять следующим требованиям:1)он  состоит

   ' из отрезков;2)длина маршрута минимально возможна;3)сумма  чисел в клетках

   ' максимальна

Задача9 Программа нахождения наименьшего (наибольшего) элемента массива

Задача10 программа вычисления наибольшего общего делителя двух натуральных чисел

ЗАДАЧА11 Проверить является ли данное слово "ПЕРЕВЕРТЫШЕМ"

Задача12 Программа определяет простое или составное натуральное число

Задача13 распечатать все простые числа  от 5000 до 6000, чтобы они все размещались  на экране

Задача14 программа перевода  чисел из одной системы счисления в другую

Задача15 программа вычисления совершенных чисел: натуральное число называют совершенным, если оно равно сумме своих делителей, не считая его самого, например,число 6 совершенное,т.к 6=1+2=3

Задача16 программа: сумма цифр данного  числа

Задача17 упорядочение элементов массива по возрастанию(убыванию)

Задача18  составить программу вычисления факториала: n!=1*2*3*...*(n-1)*n

Задача19 Определить, является ли данное число ДРУЖЕСТВЕННЫМ

Задача20 Число Армстронга

Задача21 Сумма чисел Фибоначчи

Задача22 Составить программу вычисления факториала: n!=1*2*3*...*(n-1)*n

Задача23 Приближенное решение уравнения

Задача24 Какая цифра на k – ом  месте

Задача25 Программа рисования звезды  вписанной в окружность

Задача26 В данном натуральном числе переставить цифры таким образом, чтобы получилось наибольшее число, записанное теми же цифрами (например, если N=10513, то ОТВЕТ: 53110)

 

REM Задача1 Определить порядковый номер даты с начала года

          DIM A(31)

1  INPUT "введите число: "; N1: IF N1 > 31 THEN 1

2  INPUT "введите номер месяца: "; N2:  IF N2 > 12 THEN 2

   INPUT "введите год: "; N3

    DATA 31,28,31,30,31,30,31,31,30,31,30,31

     FOR I = 1 TO N2

      READ A(I)

      IF N3 = INT(N3 / 4) * 4 THEN A(2) = 29

     NEXT

    FOR I = 1 TO N2 - 1

     s = s + A(I)

    NEXT

    PRINT "порядковый номер ="; s + N1

REM Задача2 распечатать двумерный массив и найти сумму его элементов

RANDOMIZE TIMER

DIM a(9, 6)

FOR x = 1 TO 9

  FOR y = 1 TO 6

     a(x, y) = INT(RND(1) * 10)

     LOCATE x, y * 3

     PRINT a(x, y)

     s = s + a(x, y)

  NEXT

NEXT

 PRINT "сумма всех элементов таблицы равна"; s

 END

REM Задача3 распечатать все делители данного натурального числа

CLS

INPUT "введите натуральное число"; m

i = 1

1 IF i <= m THEN 3 ELSE END

3  IF m / i = m \ i THEN PRINT i;  ELSE 5

5 i = i + 1

GOTO 1

REM  Задача4 Дана таблица. Подсчитать наиб.число одинаковых идущих в ней подряд элементов

INPUT "длина  массива"; N

 RANDOMIZE TIMER

 DIM A(N)

 FOR I = 1 TO N

 A(I) = INT(RND(1) * 10)

 PRINT A(I);

 NEXT

  S = 1: K = 1

  FOR I = 2 TO N

  IF A(I) <> A(I - 1) THEN 1 ELSE 2

1 IF K > S THEN S = K

 K = 1

2 K = K + 1

NEXT

PRINT " S="; S - 1

REM Задача5 подсчитайте количество различных чисел, встречающихся в табл. Повторяющиеся числа  учитывать один раз.

INPUT "длина  массива"; n

 RANDOMIZE TIMER

 DIM a(n * 2)

 FOR i = 1 TO n

 a(i) = INT(RND(1) * 10)

 PRINT a(i);

 NEXT

 FOR i = 2 TO n

 d$ = "нет повторения"

 j = 1

   WHILE j <= i - 1 AND d$ = "нет повторения"

    IF a(j) = a(i) THEN d$ = "есть повторения" ELSE j = j + 1

   WEND

 IF d$ = "нет повторения" THEN s = s + 1

 NEXT

 PRINT "таких элементов"; s + 1

 Задача6 Задача о магическом квадрате

   CLS 

  LOCATE 14, 1: INPUT "размеры таблицы"; n:  LOCATE 14, 1: PRINT "          "

  DIM a(n, n)

  FOR i = 1 TO n

    LOCATE 13, 1: PRINT "ввод "; i; " - ой строки "

  FOR j = 1 TO n

      LOCATE 14, 1:  INPUT a(i, j):  LOCATE 14, 1: PRINT "                     "

  LOCATE i, j * 3: PRINT a(i, j)

  NEXT j

  NEXT i

  FOR i = 1 TO n

  FOR j = 1 TO n

    s(i) = s(i) + a(i, j)

 NEXT

 IF s(i) <> s(1) THEN PRINT "это не магический квадрат" ELSE 11

  GOTO 500

11  NEXT

   PRINT

   FOR j = 1 TO n

   FOR i = 1 TO n

      q(j) = q(j) + a(i, j)

   NEXT

    IF q(j) <> s(1) THEN PRINT "это не магический квадрат" ELSE 22

      GOTO 500

22 NEXT

     PRINT

    FOR i = 1 TO n

   FOR j = 1 TO n

     NEXT

     IF i = j THEN r = r + a(i, j) ELSE 1

1  NEXT

     FOR j = 1 TO n

   FOR i = 1 TO n

     IF j = n + 1 - i THEN t = t + a(i, j) ELSE 21

21 NEXT

   NEXT

  IF r <> s(1) AND t <> s(1) THEN PRINT "это не магический квадрат" ELSE PRINT "магический"

500  END

REM Задача7 Найти все положительные четырехзначные числа abcd(а<=3), для которых выполняются следующие условия: a,b,c,d -  разные цифры; ac-cd=a+b+c+d(здесь ab,cd - двузначные числа)

CLS

FOR a = 1 TO 3

  FOR b = 0 TO 9

   FOR c = 0 TO 9

    FOR d = 0 TO 9

     IF a <> b AND a <> c AND a <> d AND b <> d AND b <> c AND c <> d AND a * 10 + b - (c * 10 + d) = a + b + c + d THEN PRINT a, b, c, d

    NEXT

   NEXT

 NEXT

NEXT

END

   REM Задача8 В таблице N x N,где N<13 клетки заполнены некоторым образом цифрами

   ' от 0 до 9.Написать программу поиска маршрута  из клетки А(1,1) в клетку

   ' А(N,N). Маршрут должен удовлетворять следующим требованиям:1)он  состоит

   ' из отрезков;2)длина маршрута минимально возможна;3)сумма  чисел в клетках

   ' максимальна

     CLS

  LOCATE 14, 1: INPUT "размеры таблицы"; N:  LOCATE 14, 1: PRINT "                  "

  DIM a(N, N)

  FOR i = 1 TO N

  FOR j = 1 TO N

     LOCATE 14, 1:  a(i, j) = INT(RND(1) * 10)

     LOCATE i, j * 2: PRINT a(i, j)

  NEXT j

  NEXT i

  PRINT

  i = 1: j = 1: s = a(1, 1)

  LOCATE 1, 3: PRINT " "

16  IF a(i + 1, j) > a(i, j + 1) THEN 17 ELSE 19

17  i = i + 1

GOTO 20

19 j = j + 1

20 s = s + a(i, j)

   LOCATE i, j * 2 + 1: PRINT " "

   FOR g = 1 TO 990000: NEXT                                'задержка

   k = k + 1: IF k = N * 2 - 2 THEN PRINT "s="; s ELSE 27

   END

27  IF i = N THEN 19

   IF j = N THEN 17 ELSE 16

REM Задача9 Программа нахождения наименьшего (наибольшего) элемента массива

  CLS

  INPUT "введите количество элементов массива"; n

  DIM a(n)

  RANDOMIZE TIMER

  FOR i = 1 TO n

  a(i) = INT(RND(1) * 1000) / 10

  PRINT a(i);

  NEXT

  min = a(1)

  FOR i = 1 TO n

  IF a(i) <= min THEN min = a(i) ELSE 1

  nom = i

1 NEXT

  PRINT

  PRINT "минимальный элемент этого массива"; min

  PRINT "его номер"; nom

  END

REM Задача10 программа вычисления наибольшего общего делителя двух натуральных чисел

20 INPUT "введите два натуральных числа(через запятую)"; X, Y

30 a = X: b = Y

40 IF a = b THEN 70

50 IF a > b THEN a = a - b ELSE b = b - a

60 GOTO 40

70 PRINT "НОД("; X; ","; Y; ")="; a

80 END

REM ЗАДАЧА11 Проверить, является ли данное слово "ПЕРЕВЕРТЫШЕМ"

INPUT "введите Ваше слово"; d$

  FOR i = 1 TO LEN(d$)

   k$ = MID$(d$, i, 1) + k$

  NEXT

IF k$ = d$ THEN PRINT "данное слово является ПЕРЕВЕРТЫШЕМ" ELSE PRINT "данное слово HE является ПЕРЕВЕРТЫШЕМ"

END

CLS

    REM Задача12 Программа определяет простое или составное натуральное число

    INPUT "введите нат.число"; n

    IF n = 1 THEN PRINT "разделение натуральных чисел на простые и составные начинается с числа 2" ELSE 1

     END

1 f = 0

      FOR i = 2 TO n / 2

     IF n MOD i = 0 THEN f = 1

    NEXT

     IF f = 0 THEN PRINT "простое" ELSE PRINT "не простое т.е.составное"

    END

REM Задача13 распечатать все простые числа  от 5000 до 6000, чтобы они все размещались  на экране

CLS

FOR n = 5000 TO 6000

s = 0

FOR i = 1 TO n

IF n / i = n \ i THEN s = s + 1

NEXT

IF s = 2 THEN PRINT n;

NEXT

REM ********  ДОПОЛНИТЕЛЬНЫЕ ЗАДАНИЯ: **********

REM 1.подсчитать их количество

REM 2.сколько чисел оканчивается на цифру 7

REM 3.образовать массив из всех таких чисел,чтобы сумма квадратов его цифр равнялась 500

REM Задача14 программа перевода  чисел из одной системы счисления в другую

20 INPUT "введите число"; n$

30 INPUT "введите входную систему счисления-"; si

40 INPUT "введите выходную систему счисления-"; so

50 IF si = 10 THEN d = VAL(n$): GOTO 130

60  d = 0: k$ = ""

70  FOR i = 1 TO LEN(n$)

80  q = ASC(MID$(n$, i, 1))

90  IF q > 64 THEN r = q - 55: GOTO 110

100 r = VAL(MID$(n$, i, 1))

110  d = d + r * si ^ (LEN(n$) - 1)

120  NEXT

125  IF so = 10 THEN k$ = STR$(d): GOTO 180

130 IF d = 0 THEN PRINT "ошибка": GOTO 180

140 r = d - INT(d / so) * so + .5

150 IF INT(r) > 9 THEN q = INT(r) + 55: k$ = CHR$(q) + k$: GOTO 170

160 k$ = STR$(INT(r)) + k$

170 IF d >= so THEN d = INT(d / so): GOTO 140

180 PRINT "результат :  "; k$

190 END

   REM Задача15 программа вычисления совершенных чисел: натуральное число называют совершенным, если оно равно сумме своих делителей, не считая его самого, например,число 6 совершенное,т.к 6=1+2=3

    CLS

1   FOR n = 1 TO 1000

2   M = n

3   i = 1

4  IF i < M THEN 5 ELSE 9

5  IF M / i = M \ i THEN  ELSE 7

6  s = s + i

7  i = i + 1

8   GOTO 4

9  IF s = n THEN PRINT n; "данное число совершенное"

10  s = 0

11  NEXT

12  END

REM Задача16 программа: сумма цифр данного  числа

CLS

INPUT "введите число"; z

h$ = STR$(z)   '*************переведит введенное число в литерную величину***

n = LEN(h$)    'определяет длину лит.величины,т.е.кол-во цифр

s = 0

FOR i = 2 TO n

b$ = MID$(h$, i, 1)  'вырезает из литерной величины i-ый символ

r = VAL(b$)          'переводит из литерной величины в целый тип

PRINT r

s = s + r

NEXT

PRINT "сумма цифр"; s

  REM Задача17 упорядочение элементов массива по возрастанию(убыванию)

   INPUT "введите длину одномерного массива(таблицы)"; N

  DIM A(N)

  CLS : RANDOMIZE TIMER

              PRINT "данный массив:"

 FOR I = 1 TO N

  A(I) = INT(RND(1) * 100)

  PRINT A(I);

 NEXT

   FOR J = 1 TO N

    MIN = A(J)

     FOR I = J TO N

      IF A(I) < MIN THEN MIN = A(I) ELSE 1

        R = A(I)

        A(I) = A(J)

        A(J) = R

1    NEXT

   NEXT

 PRINT

  PRINT " упорядоченный по возрастанию"

 FOR I = 1 TO N

   PRINT A(I);

 NEXT

REM Задача18  составить программу вычисления факториала: n!=1*2*3*...*(n-1)*n

INPUT " введите натуральное число"; n

k = 1

FOR i = 1 TO n

k = k * i

NEXT

PRINT "факториал равен "; k

END

Задача19 Определить, является ли данное число ДРУЖЕСТВЕННЫМ

INPUT n

INPUT m

i = 2

3 IF i <= n THEN 4 ELSE 7

4 IF n / i = n \ i THEN s1 = s1 + n / i ELSE 5

PRINT "делители первого числа"; n \ i

5 i = i + 1

GOTO 3

PRINT "                                "

7 i = 2

8 IF i <= m THEN 9 ELSE 12

9  IF m / i = m \ i THEN s2 = s2 + m / i ELSE 10

PRINT "делители второо числа"; m \ i

10 i = i + 1

GOTO 8

12   IF s1 = m AND s2 = n THEN PRINT дружественные" ELSE PRINT "недружественные"

PRINT s1, s2

REM Задача20 Число Армстронга

FOR z = 1 TO 10000

h$ = STR$(z)

n = LEN(h$)

s = 0

FOR i = 2 TO n

b$ = MID$(h$, i, 1)

r = VAL(b$)

s = s + r ^ 4

IF s = z THEN PRINT "============"; z

IF s = z THEN t = t + 1

 NEXT i

NEXT z

  PRINT " таких чисел в указанном промежутке"; t

REM Задача21 Сумма чисел Фибоначчи

DIM x(20)

x(1) = 1

x(2) = 1

 FOR n = 3 TO 20

x(n) = x(n - 1) + x(n - 2)

NEXT

 FOR n = 1 TO 10

s = s + x(n)

NEXT n

 PRINT " Сумма равна:"; s

END

REM Задача22 Составить программу вычисления факториала: n!=1*2*3*...*(n-1)*n

INPUT " введите натуральное число"; n

k = 1

FOR i = 1 TO n

k = k * i

NEXT

PRINT "факториал равен "; k

END

Задача23 приближенное решение уравнения

 CLS

INPUT "задать х1"; x1

 INPUT "задать х2"; x2

 INPUT "укажите точность"; pogr

 PRINT

1 x0 = (x1 + x2) / 2

 f1 = (LOG(x1)) ^ 2 / (x1) - 3 * x1

 f0 = (LOG(x0)) ^ 2 / (x0) - 3 * x0

 PRINT x0

 IF x2 - x1 < pogr THEN PRINT "корень уравнения с указанной точностью равен "; x0 ELSE 2

 END

2 IF f1 * f0 < 0 THEN x2 = x0 ELSE x1 = x0

 GOTO 1

Задача24 Какая цифра на k – ом  месте

Input k

Dim a(9)

f = ""

For i = 1 To 9

a(i) = i

Next

For i = 1 To 9

f = f + f + Str(a(i))

Print f, Len(f)

Next

 For i = 1 To Len(f)

If Mid(f, i, 1) <> " " Then ff = ff + Mid(f, i, 1)

Next

 Print Mid(ff, k, 1)

Задача25      Программа рисования звезды  вписанной в окружность

  pi = 3.141592

  k = 2.5

input x0, y0,r     ‘ x0,y0 – центр окружности, к – радиус окружности

  for i = 0 To 2 * pi Step pi / k

    line (x0 + r * cos(i), y0 + r * sin(i))-(x0 + r * cos(i + k), y0 + r * sin(i + k))

    circle (x0, y0), r

  next

Задача26 В данном натуральном числе переставить цифры таким образом, чтобы получилось наибольшее число, записанное теми же цифрами (например, если N=10513, то ОТВЕТ: 53110)

Input n

f$ = Str$(n)

d = Len(f$) – 1 

Dim  A(d)  

For i = d To 1 Step -1

A(i) = Int(n / 10 ^ (i - 1))                         

n = n - A(i) * 10 ^ (i - 1)

Next

   For i = 1 To d

   For j = i + 1 To d

     If a(j) > a(i)    Then t = a(j)     Else GoTo 1

                                   a(j) = a(i)

                                    a(i) = t           

1  Next

    Next

For i = 1 To d

Print a(i);

Next

 

Сайт управляется системой uCoz