Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ответы на билеты 2012.doc
Скачиваний:
59
Добавлен:
22.09.2019
Размер:
866.82 Кб
Скачать

Билет № 12

  1. Массивы. Одномерные массивы в Pascale: способы заполнения. Примеры.

В практической деятельности человека часто используются таблицы и списки.

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

Массив - набор конечного числа элементов одинакового типа, объединенных общим именем. Каждое значение в массиве называется элементом. Номер элемента в списке называется индексом.

Массивы бывают одномерными или двумерными. Мы изучали одномерные массивы.

Для того, чтобы использовать массив в программе, его нужно описать в разделе описаний:

Var имя_массива : array [размер ] of тип_элементов;

Например,

Var N: array [1..30] of string;

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

В этом примере описаны два массива: массив N из 30 элементов строкового типа и массив Temp из 100 действительных чисел.

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

Способы ввода данных в массив.

  1. С помощью генератора случайных чисел:

program primer_1;

var i: integer;

r : array [1..10] of integer;

begin

for i:=1 to 10 do begin

r[i]:=random(100);

writeln(r[i]);

end;

end.

В этом примере массив из 10 элементов заполнен случайными числами из интервала [0 ; 99] и выведен на экран компьютера.

  1. По формуле:

program primer_2;

var i:integer;

a : array [1..10] of real;

begin

for i:=1 to 10 do

begin

a[i]:=sin(i)*sqr(i);

writeln(a[i]);

end;

end.

В этом примере массив из 10 чисел заполнен значениями, вычисляемыми по формуле a[i]:=sin i *i2 и все элементы массива выведены на экран компьютера.

3) С клавиатуры:

program primer_3;

var i:integer;

a : array [1..10] of real;

begin

for i:=1 to 10 do

begin

write (‘введи’, i , ‘элемент массива’);

readln (a[i]);

end;

end.

В этом примере исходные данные вводятся в массив из 10 элементов во время работы программы.

Билет № 13

  1. Массивы. Одномерные массивы в Pascale: поиск суммы и количества элементов, удовлетворяющих данному условию. Примеры.

Массив - набор конечного числа элементов одинакового типа, объединенных общим именем. Каждое значение в массиве называется элементом. Номер элемента в списке называется индексом. Если индекс один, то массив одномерный. Размер – количество элементов в массиве.

При работе с массивами придерживаются следующей схемы:

  1. Объявление массива

  2. Задание исходных элементов массива.

  3. Обработка элементов массива.

  4. Вывод результатов.

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

Рассмотрим задачи поиска суммы и количества элементов, удовлетворяющих данному условию.

Пусть a – данный массив, n – его размер, k – счётчик индексов.

Нахождение количества элементов по условию:

Общий вид: z:=0;

for k:=1 to n do

if <условие> then z:=z+1;

Вычисление суммы всех элементов массива:

Общий вид: s:=0;

for k:=1 to n do

s:=s+a[k];

Вычисление суммы элементов массива, удовлетворяющих условию:

Общий вид: s:=0;

for k:=1 to n do

if <условие> then s:=s+a[k];

Пример: найти сумму и количество чётных элементов массива.

program primer_1;

var i, s, z: integer;

a : array [1..100] of integer; {объявление массива a из 100 чисел};

begin

{заполнение массива случайными числами от 0 до 499 и вывод его на экран};

for i:=1 to 100 do begin

a[i]:=random(500); write (a[i], ‘ ‘);

end;

writeln;

{нахождение s – суммы чётных элементов и z – количества чётных элементов};

z:=0; s:=0;

for i:=1 to 10 do

if a[i] mod 2 =0 then begin z:=z+1; s:=s+a[i]; end;

{вывод результатов};

write (‘в массиве’, z, ‘чётных чисел. Их сумма равна’,s)

end.