Главная страница Случайная страница КАТЕГОРИИ: АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника |
Алгоритмы нахождения суммы, произведения и количества элементов массива. Работа с индексами элементов массива
Задача 1. Определить сумму элементов массива Р(n), значения которых > заданного Т USES Crt; CONST N=30; VAR P: ARRAY[0..N] OF INTEGER; I, T: BYTE; S: INTEGER; BEGIN ClrScr; Randomize; { Заполнение массива случайными числами } WriteLn(' Значения элементов массива'); FOR I: =1 TO N DO Begin P[I]: =Random(30); Write(P[I]: 3); End; WriteLn; Write(' Введите значение переменной '); ReadLn(T); S: =0; FOR I: =1 TO N DO IF P[I]> T THEN S: =S+P[I]; { сумма элементов массива > T } WriteLn(' Сумма элементов массива > заданного значения = ', S); END. Задача 2. Дан массив целых чисел, состоящий из 25 элементов. Подсчитать сумму элементов массива, произведение положительных и количество нулевых элементов. Результат вычисления вывести на экран. USES Crt; VAR A: ARRAY[0..25] OF INTEGER; I: BYTE; S, K: INTEGER; P: REAL; BEGIN ClrScr; Randomize; { Заполнение массива случайными числами } WriteLn(' Значения элементов массива'); FOR I: =1 TO 25 DO Begin A[I]: =Random(10)-3; Write(A[I]: 3); End; WriteLn; S: =0; K: =0; P: =1; FOR I: =1 TO 25 DO Begin S: =S+A[I]; { сумма элементов массива } IF A[I]> 0 THEN P: =P*A[I]; { произведение положительных элементов массива } IF A[I]=0 THEN K: =K+1; { количество нулевых элементов массива } End; WriteLn(' Сумма элементов массива = ', S); WriteLn(' Произведение положительных элементов массива = ', P: 0: 0); WriteLn(' Количество нулевых элементов массива = ', K); END. Задача 3. Дан массив четных чисел, состоящий из 15 элементов. Заполнить его с клавиатуры. Найти: · сумму элементов, имеющих нечетные индексы; · подсчитать количество элементов массива, значения которых больше заданного числа T и кратны 5; · номер первого отрицательного элемента, делящегося на 5 с остатком 2. USES Crt; CONST T=11; VAR A: ARRAY[0..15] OF INTEGER; I, NP, FL: BYTE; S, K: INTEGER; BEGIN ClrScr; Randomize; { Заполнение массива с клавиатуры } FOR I: =1 TO 15 DO Begin Write('Введите ', I, ' злемент массива '); ReadLn(A[I]); End; WriteLn; S: =0; K: =0; FL: =0; FOR I: =1 TO 15 DO Begin IF I mod 2 =0 THEN S: =S+A[I]; { сумма элементов, имеющих четные индексы } IF (A[I]> T) AND (A[I] mod 5 =0) THEN K: =K+1; { количество } IF (A[I]< 0) AND (A[I] mod 5 =-2) AND (FL=0) THEN Begin NP: =I; FL: =1; End; End; WriteLn(' Сумма элементов, имеющих четные индексы = ', S); WriteLn(' Количество элементов, значения которых > ', T, ' и кратны 5 = ', K); WriteLn(' Номер первого отрицательного элемента, делящегося на 5 с остатком 2 = ', NP); END. Задача 4. Дан массив четных чисел, состоящий из 10 элементов. Заполнить его с клавиатуры. Найти: · сумму положительных элементов, значения которых меньше 10; · вывести индексы тех элементов, значения которых кратны 5 и 3; · количество пар соседних элементов с суммой равной заданному числу. USES Crt; CONST T=21; VAR A: ARRAY[0..10] OF INTEGER; I: BYTE; S, K: INTEGER; BEGIN ClrScr; Randomize; { Заполнение массива с клавиатуры } FOR I: =1 TO 10 DO Begin Write('Введите ', I, ' злемент массива '); ReadLn(A[I]); End; WriteLn; S: =0; K: =0; WriteLn(' Индексы элементов, значения которых кратны 3 и 5'); FOR I: =1 TO 10 DO Begin IF (A[I]> 0) AND (A[I]< 10) THEN S: =S+A[I]; IF (A[I] mod 3 =0) AND (A[I] mod 5 =0) THEN Write(I: 3); IF I< > 10 THEN IF A[I]+A[I+1]=T THEN K: =K+1; End; WriteLn; WriteLn(' Сумма положительных элементов, значения которых < 10 = ', S); WriteLn(' Количество пар соседних элементов с суммой равной ', T, ' = ', K); END. Задача 5. Дан массив целых чисел, состоящий из 10 элементов. Заполнить его с клавиатуры. Найти: · удвоенную сумму положительных элементов; · вывести индексы тех элементов, значения которых больше значения предыдущего элемента (начиная со второго); · количество пар соседних элементов с одинаковыми знаками. USES Crt; VAR A: ARRAY[0..10] OF INTEGER; I: BYTE; S, K: INTEGER; BEGIN ClrScr; Randomize; { Заполнение массива с клавиатуры } FOR I: =1 TO 10 DO Begin Write('Введите ', I, ' злемент массива '); ReadLn(A[I]); End; WriteLn; S: =0; K: =0; WriteLn(' Индексы элементов, значения которых > значения предыдущего элемента'); FOR I: =1 TO 10 DO Begin IF (A[I]> 0) THEN S: =S+A[I]; IF I< > 1 THEN IF A[I] > A[I-1] THEN Write(I: 3); IF I< > 10 THEN IF (A[I] * A[I+1])> 0 THEN K: =K+1; End; WriteLn; WriteLn(' Удвоенная сумма положительных элементов = ', S*2); WriteLn(' Количество пар соседних элементов с одинаковыми знаками = ', K); END. Задача 6. Дан массив C, состоящий из N элементов. Элементы массива - произвольные целые числа. Вывести на экран элементы массива в обратном порядке. USES Crt; CONST N=20; VAR C: ARRAY[0..N] OF INTEGER; I: BYTE; BEGIN ClrScr; Randomize; WriteLn(' Значения элементов массива'); FOR I: =1 TO N DO Begin C[I]: =Random(20); Write(C[I]: 3); End; WriteLn; WriteLn(' Значения элементов массива в обратном порядке'); FOR I: =N DOWNTO 1 DO Write(C[I]: 3); END. Задача 7. Дан массив A, состоящий из N элементов. Элементы массива - произвольные целые числа. Распечатать элементы в две строки: в первой строке элементы с нечетными индексами, а во второй - элементы с четными индексами. USES Crt; CONST N=25; VAR A: ARRAY[0..N] OF INTEGER; I: BYTE; BEGIN ClrScr; Randomize; WriteLn(' Значения элементов массива'); FOR I: =1 TO N DO Begin A[I]: =Random(20); Write(A[I]: 3); end; WriteLn; I: =1; WriteLn(' Элементы с нечетными индексами'); WHILE I< =N DO Begin Write(A[I]: 3); I: =I+2; End; WriteLn; I: =2; WriteLn(' Элементы с четными индексами'); WHILE I< =N DO Begin Write(A[I]: 3); I: =I+2; End; END.
..................................................................................................................................... Практические задания ..................................................................................................................................... 1. Дан массив целых чисел, состоящий из 10 элементов. Заполнить его с клавиатуры. Найти: · сумму отрицательных элементов; · количество тех элементов, значения которых положительны и не превосходят заданного числа А; · номер последней пары соседних элементов с разными знаками. 2. Дан массив целых чисел, состоящий из 10 элементов. Заполнить его с клавиатуры. Найти: · сумму элементов, имеющих нечетное значение; · вывести индексы тех элементов, значения которых больше заданного числа А; · количество положительных элементов, кратных К. (К вводится с клавиатуры). 3. Дан массив целых чисел, состоящий из N элементов. Определить среднее арифметическое положительных элементов. 4. Дан массив чисел. Найти, сколько в нем пар одинаковых соседних элементов. 5. Оценки, полученные учащимися за урок, занесены в массив. Подсчитать количество «5» и «2», полученных учащимися за урок и средний балл. 6. В очереди за билетами стоят мужчины и женщины. Какое количество мужчин стоит в начале очереди до первой женщины.
|