Архитектура Аудит Военная наука Иностранные языки Медицина Металлургия Метрология Образование Политология Производство Психология Стандартизация Технологии |
Алгоритмы поиска и присвоения значений элементам массива
Задача 1. Составить программу обработки массива размерностью n, заполненного целыми числами, введенными с клавиатуры. Вывести индексы и значения положительных элементов массива. USES Crt; CONST N=10; VAR A: ARRAY[0..N] OF INTEGER; I: BYTE; BEGIN ClrScr; { Заполнение массива } FOR I: =1 TO N DO Begin Write('Введите ', I, ' элемент массива '); ReadLn(A[I]); End; { Обработка элементов массива } FOR I: =1 TO N DO IF A[I]> 0 THEN WriteLn('Положительный элемент = ', A[I], ' его индекс = ', I); END. Задача 2. Составить программу обработки массива K, состоящего из 20 элементов. Заполнить массив случайными числами в диапазоне от -5 до 25. Все элементы массива К, значения которых находятся в интервале от -2 до 20 возвести в квадрат. Измененный массив вывести на экран. USES Crt; VAR K: ARRAY[0..20] OF INTEGER; I: BYTE; BEGIN ClrScr; Randomize; { Заполнение массива случайными числами } FOR I: =1 TO 20 DO Begin K[I]: =Random(30)-5; Write(K[I]: 3); End; WriteLn; FOR I: =1 TO 20 DO IF (K[I]< 20) AND (K[I]> -2) THEN K[I]: =K[I]*K[I]; WriteLn('Измененный массив'); FOR I: =1 TO 20 DO Write(K[I]: 4); END. Задача 3. Составить программу вычисления и печати значений функции Y=sin(x-1)/2x. Значения аргументов задать в массиве X, состоящего из 6 элементов. Значения функции записать в массив Y. USES Crt; VAR X, Y: ARRAY[0..6] OF REAL; I: BYTE; BEGIN ClrScr; FOR I: =1 TO 6 DO Begin Write('Введите ', I, ' значение аргумента '); ReadLn(X[I]); End; FOR I: =1 TO 6 DO Begin Y[I]: =SIN(X[I]-1)/(2*X[I]); WriteLn(' X= ', X[I]: 4: 1, ' Y=', Y[I]: 5: 2); End; END. Задача 4. Дан массив M, состоящий из 30 элементов. Элементы массива - произвольные целые числа. Выдать на экран значение каждого пятого и положительного элемента. Указанные элементы выдать в строку. USES Crt; VAR M: ARRAY[0..30] OF INTEGER; I: BYTE; BEGIN ClrScr; Randomize; WriteLn(' Значения элементов массива'); FOR I: =1 TO 30 DO Begin M[I]: =Random(20)-4; Write(M[I]: 3); End; WriteLn; I: =5; WriteLn(' Значения каждого пятого и положительного элемента массива'); While I< =30 DO Begin IF M[I] > 0 THEN Write(M[I]: 3); I: =I+5; End; END. Задача 5. Из элементов массива Р сформировать массив М той же размерности по правилу: если номер четный, то М[I]=I*P[I], если нечетный, то M[I]=-P[I]. USES Crt; CONST N=15; VAR P, M: ARRAY[0..N] OF INTEGER; I: BYTE; BEGIN ClrScr; Randomize; WriteLn(' Значения элементов массива '); FOR I: =1 TO N DO Begin P[I]: =Random(70); Write(P[I]: 3); End; WriteLn; WriteLn(' Значения элементов сформированного массива M'); FOR I: =1 TO N DO Begin IF I mod 2 =0 Then M[I]: =P[I]*I Else M[I]: =-P[I]; Write(M[I]: 4); End; END. ..................................................................................................................................... Практические задания ..................................................................................................................................... 1. Дан одномерный массив размерностью 10, заполненный целыми числами, введенными с клавиатуры, и величина N. Отрицательные элементы заменить на N. Измененный массив вывести на экран одной строкой. 2. Дан одномерный массив размерностью N, заполненный случайными числами в интервале от -15 до 20. Вывести на экран значения элементов массива, абсолютное значение которых > 10. 3. Дан одномерный массив размерностью N, заполненный случайными числами. Каждый третий элемент массива возвести в квадрат, если элемент отрицательный. Измененный массив вывести на экран. 4. Составить программу вычисления и печати значений функции Y=(sinx+1)Ö cos4x. Значения аргументов задать в массиве X, состоящего из 10 элементов. Значения функции записать в массив Y. 5. Заменить первые К элементов массива на противоположные по знаку. 6. Из элементов массива А, состоящего из 25 элементов, сформировать массив D той же размерности по правилу: первые 10 элементов находятся по формуле Di=Ai+i, остальные - по формуле Di=Ai-i.
Алгоритмы нахождения суммы, произведения и количества элементов массива. Работа с индексами элементов массива Задача 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. В очереди за билетами стоят мужчины и женщины. Какое количество мужчин стоит в начале очереди до первой женщины. Популярное:
|
Последнее изменение этой страницы: 2016-05-30; Просмотров: 1373; Нарушение авторского права страницы