Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Степан / Информатика / Паскаль (Попов).doc
Скачиваний:
56
Добавлен:
20.04.2015
Размер:
828.93 Кб
Скачать

Var n,I,j:integer; s,y,sr:real; X: array [1..10,1..5] of real;

begin

readln(n); {число вкладов (до 10)}

for i:=1 to n do; for j:=1 to 4 do begin {ввод вкладов}

write('введите остаток по вкладу N', i,'за', j ,'квартал'); readln(x[i,j]);

end;

s:=0;

writeln(' Счет № Остатки по кварталам');

writeln(' I II III IV ВСЕГО');

for i:=1 to n do begin{вычисление годового остатка}

y:=(x[i,1]+x[i,2]+x[i,3]+x[i,4])/4; {средний остаток}

if y<=5000 then y:=1.05*y;

if (y>5000) and (y<=10000) then y:=1.1*y;

if y>10000 then y:=1.2*y;

x[i,5]:=x[i,4]+y; {остаток вклада с начислениями}

writeln(i,x[i,1],x[i,2],x[i,3],x[i,4],x[i,5]);

s:=s+x[i,5];

end;

sr:=s/n;

writeln('Сумма всех вкладов в банке = ',s);

writeln('Средний вклад = ',sr);

end.

Данные о вкладах хранятся в массиве Xиз N строк и пяти столбцов. Первые четыре элемента каждой i-ой строки (X[i,1],X[i,2],X[i,3],X[i,4]), хранят остатки вклада на конец каждого из четырех кварталов года. В последний, пятый элемент строки X[i,5] следует занести вычисленную величину вклада на конец года, который равен остатку вклада на конец последнего кварталаX[i,4], плюс установленный процент от среднего значения вкладаY=(X[i,1]+X[i,2]+X[i,3]+X[i,4])/4 за год. Положим, определено, что на вклад до 5000 предусмотрен процент роста – 5%, на вклад до 10000 – 10%, на вклад свыше 10000 – 20%. Иными словами установлены коэффициенты роста 1.05, 1.1 и 1.2 соответственно. Кроме перечисленного, следует найти сумму всех вкладов в банке S и среднее значение вклада, приходящееся на одного вкладчика (S/N).

Задания для самостоятельного решения

6.1. В вектореXнайти элемент, максимально близкий к некоторому, произвольно заданному числуYи его номер.

6.2. В отсортированный по возрастанию векторXвключить число А. Лишнее число удалить.

6.3. В вектореXсдвинуть по кольцу его содержимое на 1 клетку, на 2, наKклеток. Подсказка. Здесь понадобится вспомогательный массивY, куда и будем заносить уже сдвинутые данные, а затем возвращать их вX.

6.4. Имеется прямоугольная матрицаX[N,M]. Заполнить элементы матрицы числами натурального ряда в последовательности, указанной на рис. 6.1.

6.5. Запол­нить матрицуX[N,M] числами натурального ряда в последо­вательности, указанной на рис. 6.2. Первая строка слева-направо, последняя – справа-налево, вторая строка – слева-направо, предпоследняя– справа-налево и т.д.

6.6. Пусть имеется два вектораX[N] иY[N] координат некоторых населенных пунктов. Найти координаты такого пункта, расстояния от которого до всех остальных будет минимальным (например, чтобы построить там АТС).

6.7. Запрограммировать процесс выбора в детской считалке. Пусть нужно выбрать случайным образом дежурного по кухне из группы вMчеловек. Дети становятся в круг и “считаются” от номера 1 по следующему правилу. Из круга по часовой стрелке удаляется с определенным шагомNкаждый участник. В конце останется только один – дежурный. Для (рис. 6.3) примераM=8,N=3. Тогда последовательно из круга выйдут номера 1,4,7,3,8,6. Наконец останутся только номера 2 и 5 и счет продолжается уже между ними 2→5→2. Таким образом, “повезло” номеру 5. В программе вывести номера всех выбывающих элементов и номер дежурного.

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

Пример 6-3. В вектореXдлинойNрасположить элементы в порядке убывания их значений.Алгоритм реализуется при помощи двух вложенных циклов. В наружном цикле последовательно перебираются числаx[i] массива и во внутреннем сравниваются со всеми оставшимися числамиx[j] справа от данного. Если выясняется, что какое-то изx[i] меньше сравниваемого, они меняются местами – большее число становится на место меньшего. В программе для наглядности в качестве элементов массива взяты их номера i. Здесь будет выполнена следующая последовательность перестановок чисел: 1,2,3,4: приi=1 – 2,1,3,4; 3,1,2,4; 4,1,2,3; приi=2 – 4,2,1,3; 4,3,1,2; приi=3 – 4,3,2,1. Здесь для обмена значений элементовx[i]↔x[j]вводится специальная “транзитная” переменная М для временного хранения данных. Действительно, если использовать только операторыx[i]:=x[j]; x[j]:=x[i]мы получим неверный результат. Хотяx[i] и примет значениеx[j], операторx[j]:=x[i] ничего не изменит, ведь х[i] теперь равен х[j]. С тем, чтобы не потерять исходное значениеx[i], оно запоминается вM.

program P6_3;