Урок 37-49. Решение задач

  • docx
  • 10.11.2021
Публикация на сайте для учителей

Публикация педагогических разработок

Бесплатное участие. Свидетельство автора сразу.
Мгновенные 10 документов в портфолио.

Иконка файла материала Л2-00246.docx

Урок 37-49. Решение задач

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

Пример 1: Вычисление суммы элементов массива.

program SummaElementov;

const n=7;

var A: array [1..n] of integer;

S, i: integer;

begin

writeln (‘Введите элементы массива А’);

for i:=1 to n do readln {a[i]);

s:=0;

for i:=1 to n do s:=s+a[i];

write (‘Сумма элементов массива =’,s)

end.

Если требуется выполнить какое-либо действие над всеми элементами массива, то это действие выполняется со всеми элементами массива по очереди, т. е. в цикле.

Пример 2: Программа формирует одномерный массив случайными числами, выполняет поиск наибольшего элемента массива, а затем выводит на экран его значение и порядковый номер.

program Max_Element;

var M: array [1..20] of byte;

max, i, n: byte;

begin

randomize;

for i:=1 to 20 do

begin

m[i]:=random(40);

write (m[i],’ ‘);

end;

writeln;

max:=m[1]; {считать 1-й элемент максимальным}

n:=1; {запомнить номер максимального элемента}

for i:=2 to 20 do {проверить все элементы, начиная со второго}

begin

if m[i]>max then {если очередной (i-й) элемент массива больше чем max}

begin

max:=m[i]; {то считать максимальным i-й элемент}

n:=i; {и запомнить его порядковый номер}

end;

end;

writeln (‘Максимальный элемент: ‘,max);

writeln (‘Он расположен на ‘,n,’ месте‘)

end.

Пример 3: Упорядочивание массива.

Имеется последовательность чисел, которую надо упорядочить по возрастанию. Зафиксируем первый элемент и будем последовательно сравнивать его со стоящим справа. Если какой-то из элементов справа окажется меньше первого, то этот элемент меняется местами с первым и т. д. В результате такого перебора на первом месте окажется минимальный элемент. Далее фиксируем второй элемент последовательности и просмотр повторяется.

i – индекс фиксируемого элемента; изменяется от 1 до (n-1);

j – индекс элементов, стоящих справа от фиксируемого и их всегда на 1 больше; изменяется от (i+1) до n;

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

program Sortirovka;

const n=30;

var T: array [1..n] of integer;

c, i, j: integer;

begin

randomize;

for i:=1 to n do

begin

t[i]:=random(50);

write (t[i],’ ‘);

end;

writeln;

for i:=1 to n-1 do

for j:=i+1 to n do

if t[i]>t[j] then

begin

c:=t[i];

t[i]:=t[j];

t[j]:=c;

end;

write (‘Упорядоченный массив: ‘);

for i:=1 to n do write (t[i],’ ‘);

end.

Пример 4: В баскетбольную команду могут быть приняты ученики, рост которых превышает 170 см. Вывести на экран список учеников, принятых в команду.

program Bascetball;

var Name: array [1..30] of string;

h: array [1..30] of word;

Cand: array [1..30] of string;

i, k: integer;

begin

writeln (‘Введите фамилии и рост учеников‘);

for i:=1 to 30 do

begin

write (i,’. ‘);readln (Name[i]);

write (‘Рост: ‘); readln (h[i]);

end;

k:=0;

for i:=1 to 30 do

if h[i]>170 then

begin

k:=k+1;

Cand[k]:=Name[i];

end;

if k=0 then writeln (‘Кандидатов нет‘)

else

begin

writeln (‘Кандидаты в команду:‘);

for k:=1 to k do writeln (Cand[k])

end

end.

  1. В массиве С(14) найти сумму отрицательных и среднее арифметическое положительных элементов.

2. В массиве Т(15) найти количество положительных, отрицательных и нулевых элементов.

3. Определите, есть ли в массиве элементы с одинаковыми значениями.

4. В массиве Х(13) положительные элементы уменьшить вдвое, а отрицательные увеличить на 5. Вывести на экран полученный массив. В полученном массиве найти наименьший элемент.

5. В массиве А(20) найти сумму наибольшего и наименьшего элементов.

6. В массиве У(n) найдите количество элементов кратных 6 и их произведение.

7. Даны два массива: А(10) и В(10). Образуйте массив С, состоящий из сумм корней соответствующих элементов массивов А и В.

8. В одномерном массиве найти количество четных  и нечетных элементов.

9. Вычислите сумму квадратов всех элементов массива, исключая элементы кратные 5.

10.         Программа находит количество элементов одномерного массива, больших числа х (вводится с клавиатуры), и вычисляет среднее арифметическое найденных элементов.

11.         Массив R состоит из 20 целых положительных чисел. Образуйте массив R1 из четных элементов массива R, а массив R2 из нечетных элементов массива R.

12.         Дан массив Х(15). Образуйте массив У, в котором сначала идут отрицательные элементы, затем нулевые и затем положительные элементы из массива Х.

13.         Даны два массива А(10) и В(10). Создать массив С, в котором элементы из массива А стоят на четных местах, а элементы из массива В на нечетных местах.

14.         Вычислите сумму элементов массива, индексы которых составляют в сумме заданное число К.

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

16.         Дан список из 15 футбольных команд и количество очков, набранных каждой командой. Нет команд с равным количеством очков. Требуется:

а) вывести список команд, набравших более 15 очков;

б) вывести название команды-чемпиона;

в) вывести название команды-аутсайдера.

17.         Дан список класса и отметки каждого за контрольную работу. Требуется:

а) подсчитать количество работ, выполненных на «5», и вывести список этих учащихся;

б) подсчитать количество работ, выполненных на «4», и вывести список этих учащихся;

в) подсчитать количество работ, выполненных на «3», и вывести список этих учащихся;

г) подсчитать количество работ, выполненных на «2», и вывести список этих учащихся;

д) подсчитать успеваемость по формуле: .

18.         Найти и напечатать номера элементов и элементы массива М(12), большие переменной R, вводимой с клавиатуры. Массив заполнить числами 33, 45, 12, 47, 21, 78, 43, 67, 26, 94, 80, 16

19.         Заполнить массив Р(15) с клавиатуры. Составить программу, которая:

а) печатает положительные элементы массива;

б) печатает номера положительных элементов массива;

в) заменит все отрицательные элементы нулями;

г) разделит на 5 все элементы массива;

д) удвоит элементы, меньшие 7.

20.         Имеется два массива: X и Y. Упорядочить их по убыванию и объединить в один массив Z.

21.         Сортировать массив: список участников соревнований ранятся в двух массивах FIO(10), REZ(10). Расположить участников в соответствии с занятыми местами.

22.         Вводится массив – список участников конференции. Расположить фамилии участников в алфавитном порядке.

23.         Результаты переписи населения хранятся в массивах F и GR. Составьте программу для вывода на экран фамилий людей, старше 50 лет. Для проверки работоспособности программы использовать 10 вымышленных фамилий. Годы рождения указать следующие: 1989, 1978, 1955, 1976, 1951, 1990, 1980, 1974, 1953, 1960.

24.         Составьте программу для вычисления функции:

z (x, y)=(2x2+3),

если ряду значений х: 0,003; 0,51; 1,39; 2,99; 3,05 соответствует ряд значений у: 0,63; 5,81; 4,79; 0,55; 1,01. Результат вывести на экран в виде таблицы соответствия значений переменных значению функции.

25.         Составьте программу, которая формирует одномерный массив вводом с клавиатуры, находит в массиве элементы, заданные пользователем, подсчитывает их количество и выводит на экран номер первого найденного элемента.


 

Скачано с www.znanio.ru