Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Программирование на ЯВУ.doc
Скачиваний:
3
Добавлен:
11.11.2018
Размер:
1.17 Mб
Скачать

10. Примеры программ обработки массивов

Пример 1. Ввести в ЭВМ массив, содержащий не более 100 чисел вещественных чисел. Вывести числа, стоящие на четных местах в массиве.

Рrogram Wtr;

Const

Nmax=100;

Var

X : Array[1..Nmax] Of Real;

i, n : Integer;

Begin

Writeln('Введите количество чисел');

Readln(n);

Writeln('Введите массив');

For i:= 1 To n Do

Read (X[i]);

For I:= 1 To n div 2 Do

Write (X[2*i]);

End.

Пример 2. Ввести в ЭВМ массив (последовательность) из n чисел (n<=100). Подсчитать количество положительных и отрицательных чисел, их суммы и средние значения.

Алгоритм (общий подход).

1. Ввести числа.

2. Положить количества положительных, отрицательных чисел и суммы = 0

3. Для номера числа от 1 до n выполнить

вычислить соответствующие суммы и количества

4. Вывести суммы, количества и средние.

5. Закончить.

Уточним этот алгоритм.

1.1. Ввести количество чисел n

1.2. Для номера числа (i) от 1 до n выполнить

ввести числоi

2. Положить количества положительных, отрицательных чисел и их сумм =0

3. Для номера числа от 1 до n выполнить

3.1. Если числоi >0, то

а) Количество_Пол_Чисел = Количество_Пол_Чисел +1 и

б) Сумма_Пол_Чисел = Сумма_Пол_Чисел + числоi

иначе

если числоi >0, то

а) Количество_Отр_Чисел = Количество_Отр_Чисел+1 и

б) Сумма_Отр_Чисел = Сумма_Отр_Чисел + числоi

4.1 Если Количество_Пол_Чисел. > 0, то

Среднее_Пол_Чисел = Сумма_Пол_Чисел / Количество_Пол_Чисел

4.2 Если Количество_Отр_Чисел > 0, то

Среднее_Отр_Чисел = Сумма_Отр_Чисел / Количество_Отр_Чисел

Программа для этого алгоритма будет иметь вид

Program Count_sred;

Const

Nmax = 100;

Var

X : Array[1..Nmax] Of Real;

N, I, Ko, Kp : Integer;

So, Sp, Sro, Srp : Real;

Begin

Writeln('Введите количество чисел');

Readln(n);

Writeln('Вводите элементы массива');

For i:=1 To n Do

Read(X[i]);

Ko:=0;

Kp:=0;

So:=0;

Sp:=0;

For i:=1 To N Do

If X[i]>0 Then

Begin

Kp:=Kp+1;

Sp:=Sp+X[i]

End

Else

If X[i]>0 Then

Begin

Ko:=Ko+1;

So:=So+ X[i]

End;

If Ko<>0 Then

Begin

Sro:= So/Ko;

Writeln('Количество отрицательных чисел = ', Ko);

Writeln('Сумма отрицательных чисел = ', So:8:2);

Writeln('Среднее отрицательных чисел = ',Sro:8:2);

End

Else

Writeln('В массиве нет отрицательных чисел.');

If Kp<>0 Then

Begin

Srp:= Sp/Kp;

Writeln('Количество положительных чисел = ', Kp);

Writeln('Сумма положительных чисел = ', Sp:8:2);

Writeln('Среднее положительных чисел = ', Srp:8:2);

End

Else

Writeln('В массиве нет положительных чисел.');

End.

11. Особенности алгоритмов и программ с накапливанием

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

1) Сумма вычисляется по формуле

сумма := cумма + очередное слагаемое;

Перед вычислениями начальному значению суммы нужно присвоить ноль.

2) Произведение вычисляется по формуле

произведение := произведение * очередной сомножитель

Перед вычислениями начальному значению произведения нужно присвоить 1.

3) Подсчет количества выполняется по формуле, подобной формуле для вычисления суммы:

количество := количество + 1

Начальное значение количества должно быть = 0.