сборник задач по программированию
методическая разработка по информатике и икт на тему
задачи по программированию с краткой разработкой алгоритмов и программ
Скачать:
Вложение | Размер |
---|---|
zadachi_po_informatike.doc | 122.5 КБ |
Предварительный просмотр:
Задача№1
Даны итоги выборов в Думу в городе : по К округам, известно что число голосовавших за представителей М партий, а также число не участвовавших в голосовании по каждому округу. Выборы в округе считаются состоявшимися, если в голосовании приняло участие не менее Р% избирателей. Определить в каких округах состоялись выборы.
Решение
- Анализ исходных данных
Дано:
- К–число избирательных округов;
- М–число партий;
- Число голосов, которые получили представители, каждой из М партий в каждом из К округов города;
- Число не участвовавших голосовании по каждому округу;
- Значение числа Р, при достижении или превышении которого выборы в округе считаются состоявшимися.
- Анализируя условие задачи определяем типовые алгоритмы, которые необходимо использовать в качестве основы программы:
- Алгоритм ввода данных в одномерный массив;
- Алгоритм нахождения суммы;
- Алгоритм ветвления для отбора округов, в которых состоялись выборы;
- Алгоритм вывода данных одномерного массива;
Программа:
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
Дано вещественное число. Определить сумму его цифр.
Решение
- Анализ исходных данных.
Вещественное число – это число , в котором может быть не равна нулю дробная часть (например 123, 654). Чтобы найти сумму. Необходимо выделить каждую цифру из числа. Используем функции
INT(A)- выделение целой части из числа
X MOD Y – остаток от деления числа Х на Y
- Определяем типовые алгоритмы, которые необходимо использовать в качестве основы программы:
- Циклический алгоритм (типа- «пока»)
- Разветвляющийся алгоритм
- Алгоритм нахождения суммы;
Программа:
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
В каждой из геологических проб определено процентное содержание М химических элементов. Для каждого элемента определить пробы с наибольшим его содержанием. Результаты, упорядоченные по убыванию процентного содержания, вывести на экран в виде таблицы.
Решение
- Анализ исходных данных;
Дано:
- М – число химических элементов;
- Р – количество проб;
- Процентное содержание в каждой пробе каждого химического элемента;
- Определяем типовые алгоритмы, которые необходимо использовать в качестве основы программы:
- Алгоритм ввода данных в одномерный массив;
- Алгоритм ввода данных в двухмерный массив;
- Алгоритм нахождения минимального (максимального) числа в двухмерном массиве и нахождения его номера (индекса) строки и столбца;
- Алгоритм сортировки элементов одномерного (двухмерного) массива по возрастанию (убыванию) значений;
Программа:
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. Анализ исходных данных.
Дано:
- Процентное содержание каждого из десяти вредных элементов в воздухе каждого из шести городов (двумерный массив PRS(K,M));
- Названия элементов;( одномерный массив NAZ$(M));
- Типовые алгоритмы, используемые в программе:
- Алгоритм ввода данных в одномерный массив;
- Алгоритм ввода данных в двухмерный массив;
- Алгоритм нахождения минимального (максимального) числа в двухмерном массиве и нахождения его номера (индекса) строки и столбца;
Программа:
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. Определяем типовые алгоритмы, которые необходимо использовать в качестве основы программы:
- Циклический алгоритм (типа- «пока»)
- Разветвляющийся алгоритм
- Алгоритм нахождения суммы;
Программа:
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. Определяем типовые алгоритмы, которые необходимо использовать в качестве основы программы:
- Циклический алгоритм (типа- «пока»)
- Разветвляющийся алгоритм
- Алгоритм нахождения максимального числа и его номера (минимального числа и его номера;
Программа:
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 клас...
Сборник задач для программирования в Паскале
Задания можно использовать на уроках или во время подготовки к ГИА....
Краткий сборник задач (с решением) по теме «Организация линейных, разветвляющихся и циклических алгоритмов на языке программирования Паскаль»
Данный сборник пригодится педагогам, которые преподают в осноыной школе программирование на языке Паскаль, а также для увлекающихся начальным программированием учеников....
Сборник задач по программированию
Данные задачи можно использовать при изучении темы Программирование...
Сборник задач с решением в среде программирования Кумир
Собрана подборка задач для исполнителей Черепашка, Робот и Чертёжник с решением....