Добавил:
ivanov666
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:Решение задач на ЭВМ. Программирование на языке Pascal. Учебное пособие
.pdf
8
1.Напишите программу, которая заполняет с клавиатуры массив А(3,3) словами разного размера и заменяет самое длинное слово главной диагонали на
минимальное по длине слово всего массива. Выведите на экран исходный и полученный массивы.
2. Напишите программу, которая заполняет с клавиатуры первую строку массива размером 3x5 названиями спортивных клубов, вторую — фамилиями
тренеров, а третью — видом спорта, которым они занимаются. Определите и выведите на экран по запросу с клавиатуры названия клубов и фамилии
тренеров, занимающихся данным видом спорта.
9
1.Напишите программу, которая заполняет с клавиатуры массив А(3,3) словами разного размера и заменяет в нем слова, первая буква которых «Е», на слово
«ЗАМЕНА». Выведите на экран исходный и полученный массивы.
2. Напишите программу, которая заполняет с клавиатуры
первую строку массива размером 3x5 названиями
фильмов, вторую — соответствующими фамилиями
режиссеров, а третью — фамилиями актеров, занятых
в главных ролях этих фильмов. Определите и выведите на
экран по запросу с клавиатуры фамилии актера и режиссера интересующего фильма.
10
1.Напишите программу, которая заполняет с клавиатуры массив А(3,3) словами разного размера и заменяет в каждой строке максимальное по длине слово на
«?????». Выведите на экран исходный и полученный
массивы.
2. Напишите программу, которая заполняет с клавиатуры первую строку массива размером 2х10 названиями
вузов, а вторую — их профилем (технический или гуманитарный). Определите и выведите на экран по запросу с клавиатуры все вузы определенного профиля.
181

11
1.Напишите программу, которая заполняет с клавиатуры массив А(3,3) словами разного размера и заменяет в нем максимальное по длине слово на слово
«МАХ». Выведите на экран исходный и полученный
массивы.
2. Напишите программу, которая заполняет с клавиатуры первую строку массива размером 3x5 именами
файлов, вторую — их типом, а третью — фамилией их
автора. Определите и выведите на экран по запросу с
клавиатуры имена и типы файлов определенного автора.
12
1.Напишите программу, которая заполняет с клавиатуры массив А(3,3) словами разного размера и заменяет в нем максимальное по длине слово каждого
столбца на минимальное по длине слово первого
столбца. Выведите на экран исходный и полученный
массивы.
2. Напишите программу, которая заполняет с клавиатуры
первую строку массива размером 3x5 фамилиями авторов, вторую — соответствующим названием произведения, а третью — жанром указанного произведения. Определите и выведите на экран по запросу с клавиатуры фамилии авторов и названия произведений,
принадлежащих определенному жанру.
182

Задания к самостоятельной работе
№
Имя
масси-
Задание
1
А(10)
Вычислить минимальный элемент массива А и его
порядковый номер.
2
В(12)
Вычислить среднее арифметическое значение элементов массива В, при условии В(i)>0.
3
G(16)
Вывести на экран последовательность g1, g9, g2, g10, ...
, g8, g16.
4
H(14)
Вывести на экран последовательность h1, h14, h2, h13, ...
, h7, h8.
5
С(10)
Найти сумму s элементов массива С. Вычислить (s –
c1, s – c2, …, s – c
10)
. Результат вывести в одной стро-
ке.
6
D(10)
Найти произведение p элементов массива D. Вычис-
лить (p + d1, p + d2, …, p + d
10
). Результат вывести в
одной строке.
7
F(12)
Вычислить максимальный элемент массива (f1+ f12, f2
+ f11, ... , f6 + f7 ).
8
K(12)
Вычислить минимальный элемент массива (k1· k7, k2
·
1. Массивы (одномерные)
Задание. Составить алгоритм и программу решения следующей
задачи.
Задан одномерный массив из чисел в диапазоне –20 . . . +20.
Необходимо:
– описать массив;
– ввести элементы массива из заданного диапазона;
– выполнить с элементами массива действия, заданные в таблице
13;
– вывести результаты на экран;
сохранить программу в своей папке на диске С.
Таблица 13.
183

k8, ... , k6 · k12).
9
M(16)
Переписать в массив L подряд положительные эле-
менты массива M.
10
P(12)
Переписать в массив Q подряд отрицательные эле-
менты массива P.
11
F(10)
Вычислить среднее арифметическое значение m эле-
ментов массива F. Вычислить (f1 – m, f 2– m, …, f10 –
m). Результат вывести в одной строке.
12
N(8)
Определить минимальный элемент массива Х и его
порядковый номер.
№
Имя
_асссива
Задание
1
F
Вывести на печать положительные элементы матрицы.
2
D
Вывести на печать отрицательные элементы матрицы.
3
C
Найти сумму элементов второй строки матрицы.
4
B
Найти сумму элементов третьего столбца матрицы.
5
A
Вычислить среднее арифметическое матрицы.
2. Массивы (двумерные)
Задание. Составить блок-схему алгоритма и программу реше-
ния следующей задачи.
Задана квадратная целочисленная матрица размером 4х4,
элементы которой находятся в диапазоне –16 . . . +16. Необходимо:
– описать двумерный массив;
– ввести элементы матрицы из заданного диапазона;
– выполнить с элементами действия, заданные в табл. 14;
– вывести результаты на экран;
– сохранить программу в своей папке на диске С:.
Таблица 14.
184

6
F
Найти сумму элементов главной диагонали матрицы.
7
D
Вычислить сумму элементов второго и третьего
столбца матрицы.
8
C
Вычислить сумму элементов двух первых строк
матрицы.
9
B
Найти сумму элементов побочной диагонали матрицы.
10
A
Вычислить сумму элементов, расположенных по периметру матрицы.
11
Н
Найти сумму элементов первой и третьей строк матрицы
12
Z
Найти сумму элементов первых и последних строк и
столбцов матрицы
3. Комплексная работа по темам: «Операторы условного
перехода», «Операторы цикла», «Массивы», «Графика»
Задание посвящено разработке комплексной программы на
языке Pascal. При его выполнении необходимо:
составить алгоритм решения задачи,
нарисовать блок-схему алгоритма,
составить программу, реализующую алгоритм,
привести пояснения к программе, отразив назначение опе-
раторов, используемых в программе,
подготовить входные данные для проверки всех ветвей ал-
горитма,
отладить программу,
проверить работоспособность программы для всех входных
данных.
Исходные данные выбираются согласно варианту по таблице
15.
185

Таблица 15.
№
вар.
Функция
Аргумент
Условия поиска
1
15* X3 /T
У= { Sin X*Cos X
X*T
T= -2
T= 0
T= 2
X= -1, 15
X=2
Сумма всех чётных
элементов массива
2
Cos X2
Z= { 5*Sin X
X*T
T= -1
T= 0
T= 1
X= 0, 10
X=1
Минимальный
элемент массива
3
T*tg (X-1,5)
D= { (10 – X)/T
T*X
T= 5
T= 1
T= -1
X= -10, 10
X=2
Все положительные элементы массива
4
Cos 2 X
W= { Sin X/8*T
X*T –3,6
T= 0
T= 1
T= -1
X= 0, 30
X=3
Все четные элементы массива
5
Sin 2 T*X
P= { (X-T)/5*T
X+T –3*X
T= 0
T= 1
T= -2
X= 0, 12
X=1.2
Сумма всех элементов массива
6
4*X 2 +X-T
F= { Sin X*T
(X+T)*3
T= -2
T= 1
T= 8
X= -1, 14
X=1.5
Максимальный
элемент массива
7
tg X+1
K= { X
2
/(X-1)*T
X*(T-2)4
T= 1
T= 2
T= -1
X= 10, 12
X=0.2
Все нечетные элементы массива
8
(T+31)/ X
U= { (X-2)
2
/(X+T)
X*CosX2
T= 1
T= 2
T= -1
X= -1, 16
X=1.5
Все отрицательные
элементы массива
9
Sin X+1
S= { T/(X-5)
8*X*T
T= 0
T= 1
T= -1
X= - 14, 4
X=0.4
Сумма всех положительных элементов массива
10
Cos(X+1)
L= { (X-7)
2
/T
X*Sin X
T= 0
T= 2
T= -1
X= 10, 24
X=3.5
Сумма всех отрицательных элементов массива
11
Cos 2 T*X
В= { (X-T)/7*Х
(T+5) –7*X
T= 1
T= 2
T= -1
X= -2, 12
X=1.5
Среднее арифметическое значение
элементов массива
186

12
Cos (X+T)2
N= { 2*Sin X –X*2
X*T
T= -1
T= 0
T= 1
X= 2, 15
X=1.8
Сумма всех элементов массива N
> 0.3
Аргумент Х
Функция
Задание. Вычислить значение функции, заданной по варианту,
в зависимости от аргумента, изменяющегося в диапазоне с указанным шагом. Значение Т ввести с клавиатуры в процессе решения
задачи на ЭВМ по запросу “Введите Т”. Предусмотреть выдачу на
экран сообщения “Повторите ввод. Значение Т введено неверно”,
если введенное значение не соответствует условию (см. таблицу1).
В зависимости от значения переменной Т произвести расчет
значения функции по трем направлениям решения, используя оператор выбора <case of>.
Вывод результатов выполнить в виде таблицы:
Таблица 16.
Полученные значения функции обозначить как элементы одномерного массива и выполнить поиск в массиве данных согласно
варианту. Результат вывести на экран, сопроводив текстовым пояснением.
4. Список задач различной сложности для программирования
на Паскале
Группа А.
1. Вычислить корни квадратного уравнения ax2+bx+c=0 (разо-
брать все значения a, b и c, указать число корней и корни).
187

2. Без использования массивов вычислить ln(1+x) с помощью ря-
( )!
1
1
k k
k
n
x
k
f x dx h f a f a f a f a f a f a f a f a
n n n
a
b
( ) [ ( ) ( ) ( ) ( ) ( ) ... ( ) ( ) ( )]
1
3
4 2 4 2 2 4
0 1 2 3 4 2 1
да с точностью до 0.001.
3. Без использования массивов вычислить сумму ряда
.
4. Без использования массивов вычислить приближенное значе-
ние интеграла с помощью формулы
, где a, b , n и f заданы, n - четное, h=(b-a)/n, a0=a, an=b,
ak=a0+kh. Функция f(x) вычисляется функцией на Паскале с за-
головком function f(x:real): real; .
5. Без использования массивов найти минимальное по абсолют-
ной величине число среди чисел sin1, sin2, ..., sinN (N100) и
определить, при каком N оно достигается.
6. Дан массив А из N элементов. Написать функции вычисления
мах А
7. Дан массив А из N элементов. Написать функции вычисления
sum A.
8. Подсчитать количество нулей в массиве a целых чисел.
9. Дан массив из N чисел. Найти в этом массиве номер 7-го по
счету отрицательного элемента. Если число отрицательных
элементов массива меньше 7, выдать 0. Построить функцию
или фрагмент программы.
10. Генератор случайных чисел выдает числа от 0 до 99 (функция
random (99) ). Выдать седьмое по счету четное число. Постро-
ить функцию или фрагмент программы.
11. Найти минимальное положительное значение в массиве a дли-
ны n.
12. Дано множестве n точек на плоскости, заданных координатны-
ми парами (х,y). Найти две ближайшие.
13. Дан массив a целых чисел, расположенных в возрастающем
порядке (возможны повторения). За один проход по массиву
найти количество различных чисел среди элементов этого
массива.
188

14. Дан массив a целых чисел, расположенных в возрастающем
порядке (возможны повторения). Найти два соседних элемента
с наибольшей разницей.
15. Написать функцию вычисления количества чисел в последова-
тельности из n элементов, которые меньше последующего члена.
16. Написать функцию вычисления максимума модуля разности
между соседними членами последовательности из n элементов
17. Дан массив A целых чисел, расположенных в порядке убыва-
ния (возможны повторения). За один проход по массиву найти
максимальное количество идущих подряд одинаковых чисел.
18. Пусть задан массив записей (объектов типа record), в число по-
лей которой входит поле с именем old. Подсчитать количество
элементов массива, для которых 18old55.
19. Используя только один цикл, определить, делится ли число n
на число вида k2.
20. Найти наибольший общий делитель целых чисел m и n.
Группа B
1. Найти максимальное из чисел, встречающихся в заданной по-
следовательности более одного раза.
2. Найти максимальную по длине монотонную (неубывающую
или невозрастающую) подпоследовательность в массиве a целых чисел.
3. Дан массив A длины n целых чисел, расположенных в возрас-
тающем порядке (повторения невозможны). Для заданного
числа x найти номер j элемента, для которого A[j]x<A[j+1].
Если x<A[1], то j=0, если xA[N] , то j=N.
4. Дан массив a произвольных целых чисел. Найти количество
различных чисел среди элементов этого массива.
5. Двумя вызовами функции random (100) получаем координаты
случайной точки (x,y), лежащей в квадрате со стороной 100.
Сколько точек из N попадут внутрь круга с центром в точке
(50, 50) и радиусом 25. Построить функцию или фрагмент программы.
189

6. Посчитать число счастливых четырехзначных билетов (сумма
первых двух цифр равна сумме двух последних). Построить
функцию или фрагмент программы.
7. Посчитать число чисел, меньших N, не делящихся на 7 и на 11.
Построить функцию или фрагмент программы.
8. Не используя другого массива, заменить каждый элемент мас-
сива на среднее арифметическое своих соседей (первый и последний считаются соседями).
9. Дан массив a целых чисел. Не используя дополнительных мас-
сивов, переставить элементы массива в обратном порядке.
10. Пусть задан массив записей (объектов типа record), в число по-
лей которой входит поле с именем name. Подсчитать количе-
ство элементов массива с данным значением x поля name.
11. Определить, является ли число n простым.
12. Год считается високосным, если он делится на четыре, при
этом надо исключить года, делящиеся на 100 и не делящиеся на
400. Вычислить логическое выражение, принимающее значение true, если данный год является високосным.
13. Определить, делится ли число n на квадрат другого числа.
14. Пусть гостиница состоит из n корпусов с различным числом
номеров, задаваемых массивом a . Нумерация номеров в гостинице сквозная. По номеру определить корпус, в котором находится этот номер.
15. Построить функцию, моделирующую дискретную случайную
величину с заданным распределением p1, p2, ... ,pn.
16. Вычислить номер дня в невисокосном году по числу и месяцу.
17. Вычислить число и месяц в невисокосном году по номеру дня.
18. Определение номера дня недели по дате (день, месяц, год) с
вводом данных и проверкой.
19. Определение месяца и числа по году и номеру дня в году с вво-
дом данных и проверкой.
20. Сортировать массив a длины n в порядке возрастания обме-
ном.
21. Сортировать массив a длины n в порядке возрастания пузырь-
ком.
22. Коэффициенты многочлена a0+a1x+a2x2+...+anxn хранятся в
массиве a длины n+1. Вычислить значение производной этого
многочлена в точке x.
190
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]
