Учебное пособие_Алгоритмизация
.pdfwriteln('Исходный массив');
for i:=1 to 4 do
begin
for j:=1 to 4 do
write(a[i,j]:3);
writeln;
end;
{Замена единиц на нули} for i:=1 to 4 do
for j:=1 to 4 do
if a[i,j]=1 then a[i,j]:=0; {Вывод нового массива} writeln('Новый массив');
for i:=1 to 4 do
begin
for j:=1 to 4 do
write(a[i,j]:3);
writeln;
end;
readln;
end.
5. Тестирование программы
№ |
|
Введенные числа |
Результат выполнения |
Ожидаемый |
||||||
п/п |
|
|
|
программы |
|
результат |
||||
|
|
|
|
|
||||||
1 |
|
2 |
|
|
|
3 |
|
|
|
4 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
0 |
2 |
3 |
8 |
0 |
2 |
3 |
8 |
1 |
1 |
2 3 8 0 9 1 4 1 7 1 3 2 1 1 4 |
0 |
9 |
0 |
4 |
0 |
9 |
0 |
4 |
|
|
|
|
0 |
7 |
0 |
3 |
|||
|
|
|
0 |
7 |
0 |
3 |
||||
|
|
|
2 |
0 |
0 |
4 |
2 |
0 |
0 |
4 |
|
|
|
|
|
|
|
|
|
|
|
80
1 |
2 |
|
|
|
3 |
|
|
|
4 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
3 |
9 |
0 |
0 |
3 |
9 |
0 |
0 |
|
2 |
3 9 0 1 1 0 2 5 7 1 1 2 0 2 1 1 |
0 |
0 |
2 |
5 |
0 |
0 |
2 |
5 |
|
7 |
0 |
0 |
2 |
7 |
0 |
0 |
2 |
|||
|
|
|||||||||
|
|
0 |
2 |
0 |
0 |
0 |
2 |
0 |
0 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2 |
8 |
9 |
7 |
2 |
8 |
9 |
7 |
|
3 |
2 8 9 7 6 5 4 9 1 1 0 3 1 3 7 3 |
6 |
5 |
4 |
9 |
6 |
5 |
4 |
9 |
|
0 |
0 |
0 |
3 |
0 |
0 |
0 |
3 |
|||
|
|
|||||||||
|
|
0 |
3 |
7 |
3 |
0 |
3 |
7 |
3 |
|
|
|
|
|
|
|
|
|
|
|
6. Результат выполнения программы
81
ВАРИАНТЫ ЗАДАНИЙ РАСЧЕТНО-ГРАФИЧЕСКОЙ РАБОТЫ
К предложенным задачам разработайте псевдокод, блок-схему и
программу на языке Паскаль; выполните тестирование программы.
Линейная алгоритмическая структура
1.Разработайте алгоритм линейной структуры для вычисления площади
ромба.
2.Разработайте структурную схему линейного алгоритма для вычисления длины гипотенузы и площади прямоугольного треугольника, зная длины двух катетов.
3.Разработайте алгоритм линейной структуры для вычисления проекции
|
|
|
a t 2 |
|
перемещения тела, движущегося равноускоренно S V |
|
t |
|
. |
|
|
|||
|
0 |
|
2 |
|
|
|
|
|
|
4. Разработайте алгоритм для вычисления объема цилиндра, если известны его высота и радиус основания.
5. Разработайте алгоритм решения уравнения вида Y |
2 cos x |
|
|
. |
|
sin3 x |
||
6.Разработайте алгоритм решения уравнения вида Y x5 5.879 e x .
7.Разработайте алгоритм решения уравнения вида Y x lnx3x .
8.Разработайте алгоритм решения уравнения вида Y cos x 2 sin 2 x .
9.Разработайте алгоритм решения уравнения вида Y 
sin x2 cos x2 .
10.Разработайте алгоритм решения уравнения вида Y 
ln x5 a cos x2 .
11.Разработайте алгоритм для нахождения суммы n первых членов
|
|
|
|
a1 an |
n |
|||
арифметической прогрессии Sn |
|
|
|
|
|
. |
||
|
|
|
|
|
||||
|
|
|
|
|
2 |
|
|
|
12. Разработайте алгоритм |
|
для |
нахождения суммы n первых членов |
|||||
|
|
|
a |
q a |
|
|||
геометрической прогрессии S |
n |
|
n |
|
1 |
. |
||
|
|
|
q 1 |
|
|
|||
|
|
|
|
|
|
|||
82
13. Разработайте алгоритм для вычисления длины биссектрисы
произвольного треугольника la 2bc cos / 2 .
b c
14.Разработайте алгоритм для вычисления длины медианы произвольного треугольника ma 12 
2b2 2c2 a 2 .
15.Разработайте алгоритм линейной структуры для вычисления проекции
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
at 2 |
|
|
перемещения тела, движущегося равнозамедленно S |
V t |
|
. |
|
|||||||||||||
|
|
||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
0 |
2 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
16. Разработайте |
алгоритм для нахождения максимальной высоты |
|||||||||||||||
подъема |
|
|
тела, |
|
брошенного |
под |
углом |
|
к |
горизонту |
|||||||
|
|
2 |
sin |
2 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
V0 |
|
|
9,8 |
|
2 |
|
|
|
|
|
|
|
|||
hmax |
|
|
|
|
|
, g |
м/с |
|
. |
|
|
|
|
|
|
||
|
2g |
|
|
|
|
|
|
|
|
|
|||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
17. Разработайте |
алгоритм |
линейной структуры для вычисления |
|||||||
|
|
|
|
|
|
at 2 |
|
|
|
координаты тела, движущегося равноускоренно x x |
|
V t |
|
|
. |
|
|||
|
|
|
|
||||||
|
|
|
|
0 |
0 |
2 |
|
|
|
|
|
|
|
|
|
|
|
|
|
18. Разработайте |
алгоритм |
для |
вычисления |
|
производной |
функции |
|||
y x5 ln x в точке x0. |
|
|
|
|
|
|
|
|
|
19. Разработайте |
алгоритм |
для |
вычисления |
|
производной |
функции |
|||
y 10x3 sin x в точке x0. |
|
|
|
|
|
|
|
|
|
20. Разработайте |
алгоритм |
для |
вычисления |
|
производной |
функции |
|||
y 5x5 cos(2x) в точке x0.
Разветвляющаяся алгоритмическая конструкция
1. Разработать алгоритм программы, которая запрашивает у пользователя номер дня недели и выводит одно из сообщений: "Рабочий день", "Суббота"
или "Воскресенье". В случае, если пользователь укажет недопустимое число,
программа должна вывести сообщение "Ошибка ввода данных".
2. Разработать алгоритм программы, которая запрашивает у пользователя номер месяца и выводит соответствующее название времени года. В случае,
83
если пользователь укажет недопустимое число, программа должна вывести
сообщение "Ошибка ввода данных".
3.Разработать алгоритм фрагмента обучающей программы со следующим сюжетом: предъявляется вопрос и пять вариантов ответа. В
зависимости от ответа выставляется оценка.
4.Разработать алгоритм программы, которая для заданных номеров трамваев выводит маршрут.
5.Разработать алгоритм программы, которая запрашивает у пользователя номер дня недели и выводит его название или сообщает "Ошибка ввода данных".
6.Разработать алгоритм для вычисления значений функции
at ln t, |
2 t |
5, |
|
t 2, |
|
y 0,5, |
||
sin t, |
t 5. |
|
|
|
|
7. Разработать алгоритм для вычисления значений функции
сos(ax), |
1 x 7, |
|
|
|
x 1, |
y ax , |
|
|
sin x2 |
, |
x 7. |
|
|
|
8. Разработать алгоритм для вычисления значений функции
|
|
3 |
, |
|
1 |
x 10, |
|||
|
ln x |
|
|||||||
y 1 , |
|
|
|
|
|
x 1, |
|
||
|
sin x, |
|
|
x 10. |
|
||||
|
|
|
|
|
|
|
|
|
|
9. Разработать алгоритм для вычисления значений функции |
|||||||||
|
sin x, |
|
|
|
|
x 1, |
|||
|
|
|
|
|
|
|
|
x 1, |
|
y a / x, |
|
|
|
|
|||||
|
|
cos |
2 |
x, |
x 1. |
||||
|
2 |
|
|||||||
10. Разработать алгоритм для вычисления значений функции |
|||||||||
|
|
t) |
2 |
, |
|
|
t |
3, |
|
|
(a |
|
|
|
|||||
y |
1/(t 1), |
|
t 3, |
||||||
|
|
|
|
|
|
3 |
|
t 3, |
|
|
2 сosx |
, |
|||||||
11. Разработать алгоритм |
программы, |
которая запрашивает номер |
|||||||
студента по списку и выводит его Ф.И.О.
84
12.Разработать алгоритм программы, которая запрашивает символ операции (+, –, *, / ) и выводит название этой операции.
13.Разработать алгоритм программы, которая расшифровывает римские цифры: М = 1000, D = 500, C = 100, L = 50, X = 10, V = 5, I = 1.
14.Разработать алгоритм программы, которая вычисляет стоимость покупки с учетом скидки. Скидка 5 % предоставляется, если сумма покупки больше 1500 рублей.
15.Разработать алгоритм программы, которая вычисляет сопротивление электрической цепи, состоящей из трех резисторов. Резисторы могут быть соединены последовательно или параллельно.
16.Разработать алгоритм программы, которая вычисляет оптимальный вес пользователя, сравнивает его с реальным и выдает рекомендацию о необходимости поправиться или похудеть. Оптимальный вес вычисляется по следующей формуле: рост (в см) – 110.
17.Разработать алгоритм программы, которая запрашивает у пользователя название дня недели и выводит его номер или сообщает "Ошибка ввода данных".
18.Разработать алгоритм программы, которая запрашивает у пользователя номер месяца и выводит количество дней в этом месяце.
19.Разработать алгоритм программы, которая запрашивает у пользователя номер песни на диске и выводит ее название.
20.Разработать алгоритм программы, которая запрашивает у пользователя год рождения и выводит название периода, в который он родился
(1941...1945 – Великая Отечественная война; 1946...1980 – холодная война;
1981...1991 – перестройка; 1992...2000 - правление Б.Н. Ельцина; 2001...2006 -
правление В.В. Путина).
Циклы
1. Разработать алгоритм программы, которая выводит на экран таблицу умножения на 7.
85
2.Написать программу, которая вводит с клавиатуры последовательность из 5 вещественных чисел, считает сумму и среднее арифметическое этих чисел.
3.Написать программу, определяющую минимум в последовательности вводимых с клавиатуры положительных чисел. Как только введено отрицательное число или 0, программа завершается.
4.Написать программу, которая выводит на экран слово с пропущенной буквой и предлагает пользователю ввести эту букву. Процедура повторяется до тех пор, пока не будет введена нужная буква.
5.Написать программу, выводящую на экран таблицу степеней числа 5
от нулевой до n-й.
6. Написать программу, которая выводит таблицу степеней двойки ( от нулевой до десятой).
7. Написать программу, которая вычисляет сумму первых n членов ряда
1 + 3 + 5 + 7 +…
8. Вычислить значения Y, соответствующие каждому значению Х
(Хn ≤ X ≤ Xk, шаг изменения Х равен dX) по формуле Y ecos(x) 1. Вычислить сумму положительных значений Y, произведение ненулевых Y, количество отрицательных Y.
9.Написать программу, которая вычисляет сумму первых n членов ряда
1+ 4 + 9 + 16 +…
10.Написать программу, которая проверяет, является ли целое число,
введенное пользователем, простым.
11.Написать программу, которая вычисляет сумму первых n членов ряда
1- 1/3 + 1/5 - 1/7 + …
12.Разработать алгоритм программы, которая выводит таблицу квадратов первых пяти целых положительных нечетных чисел.
13.Написать программу, которая вычисляет наибольший общий делитель двух натуральных чисел.
86
14. Вычислить значение y, которое соответствует каждому значению x
(x = 1, dx = 0,5), по формуле y |
|
x 2 |
|
. Считать y до тех пор, пока подкоренное |
|
x3 |
|||||
|
|
|
|
выражение больше или равно 0,05. Определить k – количество вычисленных y.
15.Написать программу, которая запрашивает у пользователя положительные числа и считает их сумму. Как только введено отрицательное число или ноль, программа завершается.
16.Написать программу, которая запрашивает у пользователя отрицательные числа и считает их сумму. Как только введено положительное число или ноль, программа завершается.
17.Написать программу, выводящую на экран таблицу степеней числа 3
от нулевой до n-й.
18. Написать программу, которая выводит на экран таблицу умножения
на 4. |
|
|
|
19. Написать программу, |
которая |
выводит таблицу значений |
функции |
y = 5x2 - 10 в диапазоне от -5 до 5 с шагом 1. |
|
||
20. Написать программу, |
которая |
выводит таблицу значений |
функции |
y = x3 - x - 1 в диапазоне от -2 до 2 с шагом 0,5. |
|
||
Одномерные массивы
1. Разработать алгоритм программы, которая в последовательности N
целых чисел находит максимальный и минимальный элементы, и считает их произведение.
2.Разработать алгоритм программы, которая проверяет, сколько раз в массиве встречается введенное с клавиатуры число.
3.Разработать алгоритм программы, которая вычисляет среднее арифметическое положительных элементов массива и выводит номера этих элементов.
4.Разработать алгоритм программы, которая вводит последовательность из N чисел, считает количество ненулевых элементов и выводит номера этих элементов.
87
5.Разработать алгоритм программы, которая проверяет, является ли введенный с клавиатуры массив убывающей последовательностью чисел.
6.Задан массив А[N]. Расположить элементы массива в порядке убывания их значений.
7.Из массива А[N] удалить m-й по номеру элемент.
8.Сформировать массив чисел А[N], а затем из него получить новый массив В[N] таким образом, чтобы в начале шли положительные элементы,
потом нулевые и, наконец, отрицательные.
9.Сформируйте из массива X[N] массив Y[K], состоящий только из положительных элементов. Посчитайте количество этих элементов. Вычислите произведение элементов массива Х[N] и сумму элементов массива Y[N].
10.Написать программу, которая вводит с клавиатуры одномерный массив из 5 целых чисел и выводит количество ненулевых элементов. Перед вводом каждого элемента на экране должна появляться подсказка с его номером.
11.Написать программу, которая выводит минимальный элемент введенного с клавиатуры массива целых чисел.
12.Написать программу, которая вычисляет среднее арифметическое ненулевых элементов введенного с клавиатуры массива целых чисел.
13.Дан массив вещественных чисел. Найти максимальный элемент массива и его номер.
14.Дан массив вещественных чисел. Найти произведение отрицательных элементов.
15.В заданном массиве вещественных чисел определить количество элементов меньших среднего арифметического значения.
16.Вычислить количество четных и нечетных элементов массива целых
чисел.
17.Дан массив из N вещественных чисел. Определите отдельно сумму положительных и отрицательных элементов массива.
88
18.Дан массив X(N). Переписать пять первых положительных элементов массива подряд в массив Y(N).
19.Написать программу, которая проверяет, есть ли во введенном с клавиатуры массиве элементы с одинаковым значением.
20.Дан массив из N чисел. Определить количество чисел, превышающих число 5. Найти сумму этих чисел.
Двумерные массивы
1.Определить номера строки и столбца максимального элемента прямоугольной матрицы. Подсчитать количество нулевых элементов матрицы
ивывести их индексы.
2.Написать программу, которая вводит по строкам с клавиатуры двумерный массив и вычисляет сумму его элементов по столбцам.
3.Написать программу, которая вводит по строкам с клавиатуры двумерный массив и вычисляет сумму его элементов по строкам.
4.Написать программу, которая вводит двумерный массив и вычисляет среднее арифметическое элементов.
5.Написать программу, которая вычисляет сумму элементов выше главной диагонали матрицы.
6.Написать программу, которая вычисляет произведение элементов на главной диагонали матрицы.
7.Задана матрица А (NxN). Определить максимальный элемент среди элементов матрицы, расположенных выше главной диагонали. Указать его индексы.
8.Задана матрица А (NxN). Определить минимальный элемент среди элементов матрицы, расположенных ниже главной диагонали. Указать его индексы.
9.Задана матрица А (NxN). Отсортировать каждый столбец матрицы по возрастанию.
89
