сборник задач по программированию
методическая разработка по информатике и икт на тему

Расюкевич Джаннетта Валентиновна

задачи по программированию с краткой разработкой алгоритмов и программ

 

Скачать:

ВложениеРазмер
Microsoft Office document icon zadachi_po_informatike.doc122.5 КБ

Предварительный просмотр:

Задача№1

Даны итоги выборов в Думу в городе : по К округам, известно что число голосовавших за представителей М партий, а также число не участвовавших в голосовании по каждому округу. Выборы в округе считаются состоявшимися, если в голосовании приняло участие не менее Р% избирателей. Определить в каких округах состоялись выборы.

Решение

  1. Анализ исходных данных

Дано:

  1. К–число избирательных округов;
  2. М–число партий;
  3. Число голосов,  которые получили представители, каждой из М партий  в каждом из К округов города;
  4. Число не  участвовавших голосовании по каждому округу;
  5. Значение числа Р, при достижении или превышении которого выборы в округе считаются состоявшимися.
  1. Анализируя условие задачи определяем типовые алгоритмы, которые необходимо использовать в качестве основы программы:
  1. Алгоритм ввода данных в одномерный массив;
  2. Алгоритм нахождения суммы;
  3. Алгоритм ветвления для отбора округов, в которых состоялись выборы;
  4. Алгоритм вывода данных одномерного массива;

Программа:

CLS

INPUT « ВВЕДИТЕ КОЛИЧЕСТВО ОКРУГОВ», K

INPUT « ВВЕДИТЕ НЕОБХОДИМЫЙ ПРОЦЕНТ», Р

INPUT « ВВЕДИТЕ КОЛИЧЕСТВО ПАРТИЙ», М

DIM PARTII$(M)

DIM OKR$(K)

PRINT «ПАРТИИ ПРИНИМАВШИЕ УЧАСТИЕ В ВЫБОРАХ»

FOR I=1 TO M

INPUT «ПАРТИЯ?», PARTII$(I)

NEXT I

FOR I=1 TO K

INPUT «НАЗВАНИЕ ОКРУГА», O$

FOR J=1 TO M

PRINT «НАЗВАНИЕ ПАРТИИ », PARTII$(J)

INPUT «ЧИСЛО ГОЛOСОВ», N

S=S+N

NEXT J

INPUT «ЧИСЛО НЕ ПРИНЯВШИХ В ГОЛОСОВАНИИ », Т

Q=(S/(S+T))*100

IF Q>=P THEN OKR$(I)=O$

NEXT I

CLS

PRINT «ВЫБОРЫ  СОСТОЯЛИСЬ :»

FOR I=1 TO K

PRINT OKR$(I)

NEXT I

END

Задача №2

Дано вещественное число. Определить сумму его цифр.

Решение

  1. Анализ исходных данных.

Вещественное число – это число , в котором может быть не равна нулю дробная часть (например 123, 654). Чтобы найти сумму. Необходимо выделить каждую  цифру из числа. Используем функции  

INT(A)- выделение целой части из числа

X MOD Y – остаток от деления числа Х на  Y

  1. Определяем типовые алгоритмы, которые необходимо использовать в качестве основы программы:
  1. Циклический алгоритм (типа- «пока»)
  2. Разветвляющийся алгоритм
  3. Алгоритм нахождения суммы;

Программа:

CLS

INPUT « ВВЕДИТЕ ЧИСЛО», А

Z= INT(A)

WHILE (Z<>0)

R=Z MOD 10

S1=S1+R

Z=Z/10

Z=INT(Z)

WEND

IF Z=0 THEN

                     P=Z*10

                     S2=S1+P

END IF

I=10

T=A*10

N=INT(T)

K=N MOD 10

S2=S2+K

WHILE (K<>0)

I=I*10

T= A*I

N=INT(T)

K=N MOD 10

S3=S3+K

WEND

CUMMA=S2+S3

PRINT «СУММА ЦИФР», CUMMA

Задача №3

В каждой из геологических проб определено процентное содержание М химических элементов. Для каждого элемента определить пробы с наибольшим его содержанием. Результаты, упорядоченные по убыванию процентного содержания, вывести на экран в виде таблицы.

Решение

  1.  Анализ исходных данных;

       Дано:

  1. М – число химических элементов;
  2. Р –  количество проб;
  3. Процентное содержание в каждой пробе каждого химического элемента;

  1. Определяем типовые алгоритмы, которые необходимо использовать в качестве основы программы:
  1. Алгоритм ввода данных в одномерный массив;
  2. Алгоритм ввода данных в двухмерный массив;
  3. Алгоритм нахождения минимального (максимального) числа в  двухмерном массиве и нахождения его номера (индекса) строки и столбца;
  4. Алгоритм сортировки элементов одномерного (двухмерного) массива по возрастанию (убыванию) значений;

          Программа:

CLS

INPUT « ВВЕДИТЕ КОЛИЧЕСТВО ПРОБ», Р

INPUT « ВВЕДИТЕ КОЛИЧЕСТВО ЭЛЕМЕНТОВ», М

DIM Е$(M)

DIM A(M, P)

DIM N(M)

FOR I=1 TO M

INPUT « ВВЕДИТЕ НАЗВАНИЕ ЭЛЕМЕНТА», Е$

NEXT I

FOR J=1 TO M

PRINT Е$(J)

FOR I=1 TO P

PRINT I «-АЯ ПРОЬА»

INPUT A(J,I)

NEXT I

NEXT J

FOR J=1 TO M

PRINT  «МАКСИМАЛЬНАЯ ПРОЬА», J, «ЭЛЕМЕНТА»

MAX=A(J,1)

FOR I=2 TO P

IF A(J,I)> MAX THEN MAX= A(J,I)

NEXT I

N(J)=MAX

PRINT Е$(J), N(J)

NEXT J

FOR J=1 TO M-1

FOR I=J+1 TO M

IF N(J)>N(I) THEN SWAP N(I),N(J)

NEXT I

NEXT J

PRINT «ЭЛЕМЕНТЫ И ИХ ПРОЦЕНТНОЕ СОДЕРЖАНИЕ»

FOR J=1 TO M

R=N(J)

FOR I=1 TO P

IF A(J,I)=R THEN PRINT E$(J), N(J)

NEXT I

NEXT J

END

Задача №4

В шести городах взяты пробы воздуха и определено процентное содержание в нём десяти вредных элементов. Определить элементы, имеющие нулевой показатель, хотя бы в одном городе.

Решение

1.     Анализ исходных данных.

       Дано:

  1. Процентное содержание каждого из десяти вредных элементов в воздухе каждого из шести городов (двумерный массив PRS(K,M));
  2. Названия элементов;( одномерный массив NAZ$(M));

  1. Типовые алгоритмы, используемые в программе:
  1. Алгоритм ввода данных в одномерный массив;
  2. Алгоритм ввода данных в двухмерный массив;
  3. Алгоритм нахождения минимального (максимального) числа в  двухмерном массиве и нахождения его номера (индекса) строки и столбца;

          Программа:

CLS

DIM

DIM NAZ$(M)

FOR I=1 TO 10

PRINT «УКАЖИТЕ НАЗВАНИЕ»,I, «-ГО ЭЛЕМЕНТА »

INPUT NAZ$(I)

FOR J=1 TO 6

PRINT «УКАЖИТЕ СОДЕРЖАНИЕ»,I, «-ГО ЭЛЕМЕНТА В»,J, «-М  ГОРОДЕ»

INPUT PRS(I,J)

NEXT I

NEXT J

PRINT «ЭЛЕМЕНТЫ ИМЕЮЩИЕ НУЛЕВОЙ ПОКАЗАТЕЛЬ:»

FOR I=1 TO 10

FOR J=1 TO 6

IF PRS(I,J)=0 THEN PRINT NAZ$(I)

J=6

NEXT I

NEXT J

END

Задача №5

Ввести текст длиной до 254 символов. Удалить из текста все цифры,  подсчитать их количество. Вывести на экран новый текст.

Решение

1.    Анализ исходных данных.

     Строковая переменная Т$ содержит исходный текст. Необходимо определить её длину и

Выделить из неё символы. Символ, который не является цифрой, нужно отправить на формирование нового текста, а символ, который является цифрой,– не отправлять. Значит необходимо сравнение символа с цифрой. Однако сравнивать можно только переменные одного типа, поэтому необходимо создать массив символов из цифр.

Используемые функции:

MID$(T$,I, J)- выделяет из строкиT$ J символов начиная с I-го;

LEN(Т$)- определяет длину строкиT$;

          Программа:

 

CLS

DIM Z$(10)

DATA 0,1,2,3,4,5,6,7,8,9

INPUT «ВВЕДИТЕ ТЕКСТ  НЕ БОЛЕЕ  254 СИМВОЛОВ», T$

K= LEN(Т$)

IF K>254 THEN PRINT  «ПОВТОРИТЕ ВВОД!»

FOR J=1 TO 10

READ Z$(I)

FOR I=1 TO 254

V$= MID$(T$,I, 1)

IF V$=Z$(J) THEN

                               MID$(T$,I, 1)= “  “

                               S=S+1

END IF

NEXT I

NEXT J

PRINT «КОЛИЧЕСТВО УДАЛЁННЫХ СИМВОЛОВ», S

PRINT «НОВЫЙ ТЕКСТ»,

PRINT T$

END

Задача №6

Ввести натуральное число А. Определить все его делители или выдать сообщение, что делителей нет.

Решение

1.    Анализ исходных данных.

Делителями натурального числа являются натуральные числа (кроме единицы и самого числа), на которые делится без остатка данное число. Чтобы найти делители числа нужно проверить все натуральные числа, начиная с 2, (1 не является  делителем), до целой половины числа, так как число, большее полвины ( исключая само число), не может делиться на данное число без остатка.

     Для определения делимости следует применить функцию  X MOD Y – остаток от деления числа Х на  Y.

Программа:

CLS

INPUT « ВВЕДИТЕ ЧИСЛО», А

B=A/2

DIM D(B)

PRINT «ДЕЛИТЕЛИ ЧИСЛА»,А

FOR I=2 TO B

K= A MOD I

IF K=0 THEN

              PRINT I

END IF

NEXT I

FOR I=2 TO B

K= A MOD I

IF K=0 THEN D(I)=I  ELSE D(I)=O

NEXT I

FOR J=1 TO B

C=C+D(I)

NEXT J

IF K=0 THEN   ELSE PRINT «ДЕЛИТЕЛЕЙ НЕТ»

END

Задача №7

В  одну и ту же переменную последовательно вводятся действительные числа. Количество вводимых чисел заранее неизвестно. Подсчитать и вывести на экран сумму и количество введённых чисел после введения отрицательного числа.

Решение

1.  Анализ исходных данных.

Исходными данными являются числа, вводимые последовательно в одну и ту же переменную, причём количество чисел заранее неизвестно. Поэтому следует применить типовой алгоритм  ввода последовательности с неизвестным заранее числом элементов. Кроме этого нужно вывести сумму всех, введённых  положительных чисел, сразу после введения отрицательного числа.

2.  Определяем типовые алгоритмы, которые необходимо использовать в качестве основы программы:

  1. Циклический алгоритм (типа- «пока»)
  2. Разветвляющийся алгоритм
  3. Алгоритм нахождения суммы;

Программа:

CLS

               SUM1=0

               SUM2=0

INPUT « ВВЕДИТЕ ЧИСЛО», X

WHILE (X>0)

INPUT « ВВЕДИТЕ  ЧИСЛО», X

     SUM1= SUM1+X

     SUM2= SUM1+1

WEND

IF X<0 THEN

              PRINT «СУММА ЧИСЕЛ», SUM1

              PRINT «КОЛИЧЕСТВО ПРОСУММИРОВАННЫХ ЧИСЕЛ», SUM2

END IF

END

Задача №8

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

Решение

1.  Анализ исходных данных.

    Исходными данными являются числа, вводимые последовательно в одну и ту же переменную, причём количество чисел заранее неизвестно. Поэтому следует применить типовой алгоритм  ввода последовательности с неизвестным заранее числом элементов.

    Для нахождения первого минимального числа и его номера необходимо запомнить первое число из последовательности и его номер, а затем применить блок сравнения: если следующее число меньше минимального, то значению минимального  и его номеру присваиваются новые значения. Для нахождения последнего максимального  следует применить  аналогичную структуру, изменив знак  «<» на « >=»

2.  Определяем типовые алгоритмы, которые необходимо использовать в качестве основы программы:

  1. Циклический алгоритм (типа- «пока»)
  2. Разветвляющийся алгоритм
  3. Алгоритм нахождения максимального числа и его номера (минимального числа  и его номера;

Программа:

CLS

            PRINT  «ВВОДИТЕ  ДЕЙСТВИТЕЛЬНЫЕ ЧИСЛА»

            INPUT « ВВЕДИТЕ ЧИСЛО», K

            MAX=K

            MIN=K

               K=K+1

                Z=1

WHILE (Z<>0)

CLS

             INPUT « ВВЕДИТЕ ЧИСЛО», K

               N=N+1

IF K> MAX  THEN

                               MAX =K

                                M=N

END IF

IF K< MIN THEN

                               MIN =K

                                I=N

END IF

            T=N MOD 5

            IF T=0 THEN INPUT « ДЛЯ ПРОДОЛЖЕНИЯ ЦИКЛА ВВЕДИТЕ–1, ДЛЯ    

            ПРЕКРАЩЕНИЯ -0», Z

WEND

           PRINT «МАКСИМАЛЬНЫЙ ЭЛЕМЕНТ», MAX, «№», М

           PRINT «МИНИМАЛЬНЫЙ ЭЛЕМЕНТ», MIN, «№»,I

END

Задача №9

В числовую переменную последовательно вводятся положительные числа и нули. Количество вводимых чисел заранее неизвестно. Определить сумму и количество введённых положительных чисел, и максимальное количество подряд введённых нулей.

Решение

1.  Анализ исходных данных.

    Исходными данными являются числа, вводимые последовательно в одну и ту же переменную, причём количество чисел заранее неизвестно. Поэтому следует применить типовой алгоритм  ввода последовательности с неизвестным заранее числом элементов.

     Для определения количества и суммы положительных чисел достаточно после проверки условия X>0 увеличить переменную–счётчик положительных чисел на 1 и прибавить это число к  другой переменной – сумме положительных чисел.

     Определить максимальное количество подряд введённых нулей можно, проверяя условие X=0. В случае положительного ответа следует увеличивать  переменную – счётчик нулей на 1 и применить алгоритм нахождения максимального числа. Также необходимо обнулять этот счётчик при появлении положительного числа, в противном случае будет считаться общее количество нулей.

 Программа:

CLS

N=0

SUM=0

K=0

MAX=0

PS=1

WHILE (PS=1)

            INPUT « ВВЕДИТЕ ЧИСЛО», X

IF X=0 THEN

                      K=0

                      K=K+1

END IF

IF X=0  AND K>MAX THEN MAX=K

IF X<>0   THEN

                          N=N+1

                          SUM=SUM+X

                         

END IF

         INPUT « ДЛЯ ПРОДОЛЖЕНИЯ ЦИКЛА ВВЕДИТЕ–1, ДЛЯ ПРЕКРАЩЕНИЯ -0», PS

WEND

PRINT «КОЛИЧЕСТВО ПОЛОЖИТЕЛЬНЫХ ЧИСЕЛ =», N

PRINT « СУММА ПОЛОЖИТЕЛЬНЫХ ЧИСЕЛ =», SUM

         PRINT « МАКСИМАЛЬНОЕ КОЛИЧЕСТВО ПОДРЯД ВВЕДЁННЫХ НУЛЕЙ=», MAX

END

Задача №10

Дан ряд: 

               1                   1*2            1*2*3               1*2*3*4

     1+            +                 +                  +                   +…

                    2                  4                    8                    16                    

     Определить и вывести на экран  последнюю сумму членов ряда, при которой модуль разности  между текущим и предыдущим членами ряда остаётся меньше заданного числа Е. Кроме суммы вывести на экран значение последнего члена ряда и его номер.

Решение

Каждый элемент ряда представляет собой дробь, его можно записать в виде дроби

 Числитель равен A=A*N, где  N=1,2,3,..

Знаменатель :Z=2N

Определяем условие завершения цикла суммирования. Цикл выполняется до тех пор, пока  значение модуля разности  текущего элемента ряда С и предыдущего элемента ряда Y меньше Е, т.е. ABS(C-Y)

 

                    Программа:

CLS

                 INPUT « ВВЕДИТЕ ЧИСЛО E», E

                  A=1

                  N=0

                  S=0

                  C=1

                  Y=1

      WHILE (ABS(C-Y)

                  S=S+C

                  Y=C

                  N=N+1

                  A=A*N

                  Z=2^N

                  C=A/Z

      WEND

    PRINT « СУММА ЭЛЕМЕНТОВ РЯДА =», S

    PRINT«НОМЕР ПОСЛЕДНЕГО ПРОСУММИРОВАННОГО ЭЛЕМЕНТА РЯДА =», N

            PRINT«ЗНАЧЕНИЕ ПОСЛЕДНЕГО ПРОСУММИРОВАННОГО ЭЛЕМЕНТА РЯДА=», Y

    END

Задача №11

Дан ряд: 

               1                   1                    1                          1                     1

     1 +             +                       +                     +                   +                         +…

               2                   4                   12                        32                    80    

                       

     Суммирование продолжать, пока разность между  текущим и предыдущим членами ряда не будет меньше заданной величины Е. Вывести на экран количество просуммированных элементов, сумму ряда, значение последнего члена ряда и его номер.

Решение

Каждый элемент ряда представляет собой дробь, его можно записать в виде дроби

 Числитель равен 1

Знаменатель :Z=2N

Определяем условие завершения цикла суммирования. Цикл выполняется до тех пор, пока  значение модуля разности  текущего элемента ряда С и предыдущего элемента ряда Y меньше Е, т.е. ABS(C-Y)=

                    Программа:

CLS

                 INPUT « ВВЕДИТЕ ЧИСЛО E», E

                  N=0

                  S=1

                  C=0

                  Y=1

WHILE (ABS(C-Y)=

                  S=S+C

                  Y=C

                  N=N+1

                  Z=2^N*(N+1)

                  C=1/Z

    WEND

   PRINT « СУММА  РЯДА =», S

   PRINT«НОМЕР ПОСЛЕДНЕГО ПРОСУММИРОВАННОГО ЭЛЕМЕНТА РЯДА =», N

                  PRINT«ЗНАЧЕНИЕ ПОСЛЕДНЕГО ПРОСУММИРОВАННОГО ЭЛЕМЕНТА РЯДА=», Y

    END

Задача №12

Дан ряд: 

               X                   X2                    X3                    X4                     1

     X –             +                    –                          +                       –                            +   …

               5                  5*4                  5*4*8             5*4*8*7            5*4*8*7*11                   

                       

         Определить и вывести на экран  количество просуммированных элементов, сумму ряда, значение последнего просуммированного члена ряда. Суммирование продолжать, пока разность между  текущим и предыдущим членами ряда не будет больше заданной величины Е.

Решение

     Каждый элемент ряда представляет собой дробь, его можно записать в виде дроби

 Числитель равен A=XN

Знаменатель :Z=Z*Z1

     Ряд является знакопеременным. Если N чётное, то элемент ряда положительный, если N нечётное, то элемент ряда отрицательный. Эта зависимость отображается алгоритмической структурой ветвление.

        Определяем условие завершения цикла суммирования. Цикл выполняется до тех пор, пока  значение модуля разности  текущего элемента ряда С и предыдущего элемента ряда Y меньше Е, т.е. ABS(C-Y)> E. Как только это значение станет больше или равно Е, программа выйдет из цикла разработки.

                    Программа:

CLS

                 INPUT « ВВЕДИТЕ ЧИСЛО E», E

                  INPUT « ВВЕДИТЕ ЧИСЛО Х», Х

                  N=0

                  S=Х

                  C=0

                  Y=1

                  Z=1

                  Z1=-5

WHILE (ABS(C-Y)>E)

                  S=S+C

                  Y=C

                  N=N+1

                  A=X^N

                   IF N MOD 2=0 THEN Z1= Z1-1 ELSE  Z1= Z1+4

                  Z=Z* Z1

                  C=A/Z

                  IF N MOD 2<>0 THEN Z1= Z1-1 ELSE C=-C

   WEND

   PRINT « СУММА  РЯДА =», S

   PRINT«НОМЕР ПОСЛЕДНЕГО ПРОСУММИРОВАННОГО ЭЛЕМЕНТА РЯДА =», N

                  PRINT«ЗНАЧЕНИЕ ПОСЛЕДНЕГО ПРОСУММИРОВАННОГО ЭЛЕМЕНТА РЯДА=», Y

END

Задача №13

Составить схему расчёта сопротивления проводников.

Решение

Сопротивление вычисляется по формуле:

 

                   I          

       R= ρ                                                                                        

                    S                                                                                                          Ом .мм2

            ρ   –удельное      сопротивление проводника, единица измерения

                                                                                                                                      м

I – длина провода

 S – площадь сечения

        π . d2

S=     4       , где d – диаметр провода

Таблица удельных сопротивлений некоторых материалов

материал


Удельное сопротивление         Ом .мм2

                                                        м

серебро

0.016

медь

0.017

алюминий

0.026

вольфрам

0.055

цинк

0.06

сталь

0.1

свинец

0.21

           

        Программа:

      CLS

DIM M$(7)

DATA серебро, медь, алюминий, вольфрам, цинк, сталь, свинец

INPUT «ДИАМЕТР  ПРОВОДНИКА  В ММ?», D

INPUT «ДЛИНА ПРОВОДНИКА  В М?», L

INPUT «  НАИМЕНОВАНИЕ МАТЕРИАЛА?», A$

FOR I=1 TO 7

READ M$(I)

 IF A$= M$(I) THEN K=I

NEXT I

DIM P(7)

DATA 0.016, 0.017, 0.026, 0.055, 0.06, 0.1, 0.21

FOR J=1 TO 7

READ P(J)

IF J= 1 THEN  B=P(K)

NEXT J

S=(3.14*D^2)/4

R=(B*L)/S

PRINT «СОПРОТИВЛЕНИЕ ПРОВОДНИКА= », R, «ОМ»


По теме: методические разработки, презентации и конспекты

Сборник задач по прикладной математике (задачи физического содержания) 5 класс

 Предлагаемый «Сборник задач по прикладной математике. (Физика)» содержит задачи и примеры по темам, которые предусмотрены в школьном курсе математики, применим как для учителя, так и для ученика....

Сборник задач по программированию

Здесь собраны задачи, которые я использую на уроках  программирования.Задачи собраны по темам. Ученики пользуются электронным задачником и дома и на занятиях.Задачник используется для 7 - 11 клас...

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

Задания можно использовать на уроках или во время подготовки к ГИА....

Краткий сборник задач (с решением) по теме «Организация линейных, разветвляющихся и циклических алгоритмов на языке программирования Паскаль»

Данный сборник пригодится педагогам, которые преподают в осноыной школе программирование на языке Паскаль, а также для увлекающихся начальным программированием учеников....

Сборник задач по программированию

Данные задачи можно использовать при изучении темы Программирование...

Сборник задач с решением в среде программирования Кумир

Собрана подборка задач для исполнителей Черепашка, Робот и Чертёжник с решением....