Урок 34. Контрольная работа №3 — КиберПедия 

Адаптации растений и животных к жизни в горах: Большое значение для жизни организмов в горах имеют степень расчленения, крутизна и экспозиционные различия склонов...

История создания датчика движения: Первый прибор для обнаружения движения был изобретен немецким физиком Генрихом Герцем...

Урок 34. Контрольная работа №3

2017-11-16 377
Урок 34. Контрольная работа №3 0.00 из 5.00 0 оценок
Заказать работу


Урок 35, 36. Массивы

Массив – именованный набор с фиксированным количеством однотипных данных.

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

Если элемент имеет один порядковый номер, то такой массив называется одномерным. Например:

Ai = (a1, a2, …, an).

Если элемент массива имеет два порядковых номера, то такой массив называется двумерным:

Aij= .

Массив имеет три характеристики:

1. Имя (формируется по правилам языка Паскаль);

2. Тип (выбирается программистом в зависимости от типа величин, которые будут храниться в массиве);

3. Размерность (количество элементов в массиве).

Не используйте в программе одинаковые имена для простых переменных и для массивов.

Так как массив – это одна переменная, в ячейках массива может храниться информация только одного типа.

Чтобы получить доступ к любой ячейке массива, необходимо указать имя массива и индекс нужной ячейки в квадратных скобках, например, R[6].

Для описания массива используется зарезервированное слово array (массив). Массив может быть описан как типизированная константа:

Имя массива: array [диапазон изменения индекса] of тип данных = (х1, х2, …, хn);

или как переменная:

Имя массива: array [диапазон изменения индекса] of тип данных;

Пример:

1) const

V: array [1.. 5] of byte=(6, 0, 4, 12, 4);

2) var

A: array [1.. 100] of real;

Если массив описан как переменная, то ввод элементов массива производится поэлементно с помощью оператора read или readln с использованием цикла (удобнее использовать оператор цикла for):

for i:=1 to 5 do readln (a[i]);

или задавая значение каждого элемента результатом случайной функции random:

Randomize;

for i:=1 to 10 do a[i]:=random(n);

Вывод элементов массива выполняется также в цикле, но с использованием операторов write или writeln:

for i:=1 to 5 do writeln (a[i]);

Упражнения:

1. Программа запрашивает элементы массива М(15) и выводит их на экран в обратном порядке в строку.

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

3. Дан массив Е(11, -3, 0, -1, -5, 0, 67, -3, -504, 43, 11). Составьте программу, выводящую на экран только положительные элементы массива.

4. Составьте программу, выводящую на экран абсолютные значения отрицательных элементов.

5. Дан массив из 20 чисел. Расположите элементы массива с 1 по 10 в порядке убывания их мест, а с 11 по 20 в порядке возрастания их мест. Выведите на экран полученный массив.

6. Дан массив А(10). Образуйте массив В, состоящий из утроенных элементов массива А, и массив С, состоящий из увеличенных на 2 элементов массива А.

7. Введите с клавиатуры пять целочисленных элементов массива Х. выведите на экран значения коней и квадратов каждого из элементов массива.


Урок 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)=(2 x 2+3) ,

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

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


Поделиться с друзьями:

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

Двойное оплодотворение у цветковых растений: Оплодотворение - это процесс слияния мужской и женской половых клеток с образованием зиготы...

Типы сооружений для обработки осадков: Септиками называются сооружения, в которых одновременно происходят осветление сточной жидкости...

История развития пистолетов-пулеметов: Предпосылкой для возникновения пистолетов-пулеметов послужила давняя тенденция тяготения винтовок...



© cyberpedia.su 2017-2024 - Не является автором материалов. Исключительное право сохранено за автором текста.
Если вы не хотите, чтобы данный материал был у нас на сайте, перейдите по ссылке: Нарушение авторских прав. Мы поможем в написании вашей работы!

0.03 с.