Основы алгоритмизации и программирования. Часть 1. Задачи и упражнения. Практикум. Учебно-методическое пособие
.pdf
27. вычислить: |
2) ∑13 ; |
3) ∑1 |
; |
4) ∑ 1 |
2 . |
||||||
1) ∑12 ; |
|||||||||||
100 |
|
|
50 |
|
|
10 |
|
128 |
|
|
|
|
|
|
|
i =1 i! |
|
|
|
|
|||
i =1 |
i |
|
i =1 |
i |
|
i =1 |
(2i) |
|
|
||
28. в окружность радиуса R вписан квадрат. последовательным удвоением числа сторон многоугольника получен правильный вписанный в окружность 128-угольник. определить его периметр, если сторона многоугольника при удвоении определяется по формуле
a2 N = 
2R2 −2R
aN2
4.
29.даны натуральные числа m и n. найти такие натуральные p и q, не имеющие общих делителей, что p/q=m/n.
30.дано целое n > 2. напечатать простые числа из диапазона
[2, n].
31.вычислить
|
b |
1,8 |
|
ex |
|
|
|
|
|
S = ∫ f (x)dx = ∫ |
|
|
|
|
dx |
||||
|
|
|
|
||||||
1+ x +0,4x |
2 |
||||||||
|
a |
0 |
|
|
|
|
|||
по формуле правых прямоугольников с разбиением на N частей: |
|||||||||
|
N |
h = b −a , xi = a +ih. |
|||||||
S ≈ h∑ f (xi ), |
|||||||||
|
i =1 |
|
|
|
N |
|
|
|
|
32. вычислить |
|
|
|
|
|
|
|
|
|
b |
1,8 |
|
|
|
|
|
|
|
|
S = ∫ f (x)dx = ∫ |
1+ x2 +0,4sin (x)dx |
||||||||
a |
0 |
|
|
|
|
|
|
|
|
по формуле левых прямоугольников с разбиением на N частей:
S ≈ h∑ f (xi ), h = b −a |
, xi = a +ih. |
|
N −1 |
|
|
i =0 |
N |
|
41
33. вычислить
b |
1,8 |
|
|
S = ∫ f (x)dx = ∫lg |
1+0,2x + x2 |
dx |
|
a |
0 |
|
|
по формуле средних прямоугольников с разбиением на N частей:
S ≈ h∑ f (xi ), h = b −a |
, xi = a +ih − h . |
|
N |
|
|
i =1 |
N |
2 |
34.даны натуральные числа m, n. получить сумму m последних цифр числа n.
35.дано натуральное число n. проверить, является ли оно совершенным (число называется совершенным, если оно равно сумме всех своих делителей).
36.получить таблицу температур по цельсию от 0 до 100 градусов и их эквивалентов по шкале Фаренгейта, используя формулу перевода
tF = 95tC +32.
37. вычислить
30
∑(ai −bi )2 ,
i =1
где
5.ПрОгрАммирОвАние циКлОв
СиСПОльЗОвАнием мАССивОв
Массив – это упорядоченная последовательность фиксированного количества данных одного типа, имеющая общее имя. сами эти данные называются элементами массива, а их номера – индексами.
размерность массива – это количество индексов, необходимое для однозначного доступа к элементу массива. количество используемых индексов массива может быть различным. Массивы с одним индексом называют одномерными, с двумя – двумерными и т. д. одномерный массив (колонка, столбец) в математике нестрого соответствует вектору, двумерный – матрице.
Чтобы обратиться к элементу массива, надо указать: имя массива (общее имя всего набора величин) и индекс (номер) элемента.
обработка массивов в программах производится покомпонентно. для этого используется цикл со счетчиком, где параметр цикла совпадает с номером обрабатываемого элемента массива.
Пример типовой задачи
задан массив А из n целых чисел. найти сумму положительных элементов этого массива.
Блок-схема алгоритма
приведена на рис. 6.
текст программы на языке Паскаль
program prim6; const n = 10;
var A: array [1..n] of integer; i, S: integer;
begin
43
writeln('введите', n, 'элементов массива'); for i := 1 to n do readln(A[i]);
S := 0;
for i := 1 to n do
if A[i] > 0 then S := S + A[i]; writeln('S=', S);
end.
Начало |
|
i = 1, n |
|
A[i] |
|
S = 0 |
|
i = 1, n |
|
A[i] > 0 |
+ |
|
|
S = S + A [i] |
|
S |
|
Конец |
|
рис. 6. блок-схема алгоритма обработки одномерного массива
текст программы на языке С#
using System;
namespace ConsoleApplication24
{
class Program
{
44
static void Main(string[] args)
{
const int n = 10;
Console.WriteLine("введите {0} элементов массива:", n);
int[] A = new int[n]; for(int i = 0; i < n; ++i)
A[i] = int.Parse(Console.ReadLine()); int S = 0;
for(int i = 0; i < n; ++i) { if (A[i] > 0)
S += A[i];
}
Console.WriteLine("S={0}", S); Console.ReadLine();
}
}
}
Задачи
1. задан массив Х = (х1, х2, …, хn). найти суммы положительных, отрицательных элементов массива и их количество.
2. задан массив оценок, полученных студентами одной группы за экзамен. найти:
1) количество пятерок, четверок, троек, двоек; 2) процент успеваемости группы; 3) процент повышенных оценок.
3. задан массив из N натуральных чисел. найти среднее арифметическое и среднее геометрическое нечетных чисел.
4. ввести массив A = (a1, a2, …, an). просматривая его элементы слева направо, заменить в нем каждый нулевой элемент полусуммой последующего и предыдущего. если a1 = 0, заменить
его на a2, если an = 0, заменить его на an −1.
5. определить количество перемен знака у элементов заданного массива из М элементов.
6. заменить на единицу минимальный по абсолютной величине элемент заданного массива Х = (х1, х2, …, хn). если минимальных компонентов несколько, заменить их все.
45
7. задан массив Х = (х1, х2, …, хn). вычислить элементы нового массива Y по правилу:
n |
|
yi = ∑ xj , |
i =1,2,..., n. |
j=i
8.задан целочисленный массив из 150 элементов. выделить
вотдельный массив все его элементы, кратные 5.
9. на прямой в порядке возрастания заданы координаты n точек: х1, х2, …, хn. найти наибольшее расстояние междусоседними точками, напечатать номера этих точек.
10.даны натуральные числа х1, х2, …, xn. определить произведение членов последовательности, являющихся нечетными числами.
11.задан массив А из n элементов и вещественное число с. переписать в новый массив В все элементы из А, которые больше с.
12.даны натуральные числа х1, х2, …, xn. найти наименьшее из четных чисел, входящих в последовательность х1, х2, …, xn.
13.задана последовательность из n целых чисел и целое число р. найти сумму элементов, кратных р.
14.даны целые числа х1, х2, …, xn (в этой последовательности могут быть повторяющиеся члены). получить все числа, которые входят в последовательность по одному разу.
15.даны натуральные х1, х2, …, xn (все числа попарно различны). поменять в этой последовательности наибольший и наименьший члены.
16.даны целые х1, х2, …, xn. получить новую последовательность, которая отличается от исходной тем, что все нечетные члены удвоены.
17.даны целые а, х1, х2, …, xn. определить, каким по счету идет
впоследовательности х1, х2, …, xn член, равный а. если такого члена нет, то ответом должно быть число 0.
18.найдите число ненулевых элементов в заданном целочисленном массиве А, состоящем из N элементов.
46
19. составить программу, дающую ответ «да» или «нет»
взависимости от того, встречается ли число 7 в заданном целочисленном массиве А, состоящем из N элементов.
20.дан массив вещественных чисел А из N элементов. найдите количество элементов, больших среднего арифметического всех элементов массива.
21.дан целочисленный массив А из N элементов. подсчитайте, сколько раз встречается в этом массиве максимальное по величине число.
22.дан целочисленный массив А из N элементов. проверьте, есть ли в нем элементы, равные нулю. если есть, найдите номер первого из них, т. е. наименьшее i, при котором элемент ai = 0.
23.дан целочисленный массив Аиз N элементов. подсчитайте наибольшее число одинаковых элементов, идущих в нем подряд.
24.подсчитайте количество различных чисел, встречающихся
вмассиве целых чисел А из N элементов. повторяющиеся числа учитывайте только один раз.
25.дан массив целых чисел А из N элементов. составить программу для построения массива, в котором все отрицательные элементы массива А предшествуют всем неотрицательным.
26.даны целочисленные массивы А и В, состоящие из N эле-
ментов, причем a1 ≤ a2 ≤, …, ≤ aN и b1 ≤ b2 ≤, …, ≤ bN. постройте массив целых чисел С, содержащий все элементы массивов А и В,
вкотором c1 ≤ c2 ≤, …, ≤ c2N.
27.даны три целочисленных массива А, В и С, каждый из которых состоит из N элементов. известно, что существуют целые числа, встречающиеся во всех трех массивах. найдите одно из таких чисел.
28.дан целочисленный массив А из N элементов. составить программу, которая упорядочивает его элементы по возрастанию.
29.организовать поиск в массиве А из N целых чисел элемента, равного заданному числу x (найти номер i первого вхождения числа x в массив).
47
30. задан целочисленный массив А из N элементов. найти максимальный элемент. построить массив В:
0, |
1 ≤ i ≤ imax , |
bi = |
imax < i ≤ N, |
2ai , |
где imax – номер первого входящего в массив максимального элемента.
31. дан массив А из N элементов. найти массив В из N элементов, где
1) bi = |
ai |
, |
i = 1, ,N ; |
|
1+(a +a |
+...+a )2 |
|||
|
1 2 |
i |
|
|
2) b1 = a1, bN = aN , bi = ai +13−ai , i = 2, , N −1. 32. пусть x1 = y1 = 1, x2 = y2 = 2,
|
y |
− y |
|
x2 |
+ x |
+ y |
|
|
xi = |
i −1 |
i −2 |
, yi = |
i −1 |
i −2 |
i −1 |
, |
i =3,4, . |
|
i |
|
i! |
|
||||
|
|
|
|
|
|
|
||
получить
1)x1, y1, x2, y2, …, x25, y25;
2)y1/2, y2/3, …, y25/26.
33.вычислить
30
∑(ai −bi )2 ,
i =1
где
48
34. даны два массива А и В. каждый массив состоит из N элементов. посчитать количество тех элементов массива, для которых:
1)ai > bi;
2)ai = bi;
3)ai < bi.
35.дана последовательность из 100 целых чисел. определить количество чисел в наиболее длинной подпоследовательности из подряд идущих нулей.
36.дано 200 вещественных чисел. определить, сколько из них больше своих «соседей», т. е. предыдущего и последующего числа.
37.дан целочисленный массив А из N элементов и натуральное число k < N. определить номер и значение минимального из последних k элементов массива А.
38.дан целочисленный массив А из N элементов и число натуральное k < N. определить номер и значение максимального из первых k элементов массива А.
39.дан целочисленный массив А из N элементов и число натуральное k ≤ N. исключить из массива а элемент с номером k.
40.дан целочисленный массив А из N элементов. определить номер и значение максимального из четных элементов этого массива.
41.дан целочисленный массив А из N элементов. определить номер и значение максимального из нечетных элементов этого массива.
42.дан целочисленный массив А из N элементов. определить номер и значение минимального из элементов этого массива, кратных 5.
43.дан целочисленный массив А из N элементов. упорядочить его по убыванию.
44.дан целочисленный массив Аиз N элементов. упорядочить его по убыванию количества цифр в записи каждого элемента.
45.дан целочисленный массив Аиз N элементов. упорядочить его по возрастанию первой цифры в записи каждого элемента.
СПиСОК реКОмендуемОй литерАтуры
Алексеев Е. Р. Free Pascal и Lazarus. учебник по программированию / е. р. алексеев, о. в. Чеснокова, е. в. кучерa. – М. : ALT Linux, 2010. – 438 с.
Задачи по программированию / с. а. абрамов, г. г. гнездилова, е. н. капустина, М. и. селюн. – М. : наука, 1988. – 224 с.
Коврижных А. Ю. информатика. основы программирования на паскале. курс лекций : учеб. пособие / а. Ю. коврижных, е. а. конончук, г. е. лузина. – екатеринбург : изд-во урал. ун-та, 2001. – 30 с.
Колдаев В. Д. основы алгоритмизации и программирования : учеб. пособие / в. д. колдаев ; под ред. проф. л. г. гагариной. – М. : ФоруМ ;
инФра-М, 2006. – 416 с.
Некрасов В. П. основы алгоритмизации : учеб. пособие / в. п. некрасов, е. а. конончук. – екатеринбург : изд-во урал. ин-та экономики, управления и права, 2010. – 118 с.
Немнюгин С. А. Turbo Pascal : практикум : учеб. пособие для вузов / с. а. немнюгин. – 2-е изд. – спб. : питер, 2007. – 268 с.
Немнюгин С. А. Turbo Pascal. программирование на языке высокого уровня : учеб. для вузов / с. а. немнюгин. – 2-е изд. – спб. : питер, 2007. – 544 с.
Окулов С. М. основы программирования : учебник / с. М. окулов. – 5-е изд., испр. – М. : биноМ ; лаборатория знаний, 2010. – 440 с.
Павловская Т. А. с#. программирование на языке высокого уровня : учеб. для вузов / т. а. павловская. – спб. : питер пресс, 2009. – 432 с.
Пильщиков В. Н. сборник упражнений по языку паскаль : учеб. пособие для вузов / в. н. пильщиков. – М. : наука, 1989. – 160 с.
Фаронов В. В. Turbo Pascal 7.0. практика программирования : учеб. пособие / в. в. Фаронов. – М. : кнорус, 2012. – 414 с.
Фаронов В. В. программирование на языке C#. учебный курс / в. в. Фаронов. – спб. : питер, 2007. – 240 с.
