Архитектура Аудит Военная наука Иностранные языки Медицина Металлургия Метрология
Образование Политология Производство Психология Стандартизация Технологии


Алгоритмы поиска и присвоения значений элементам массива



Задача 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; Просмотров: 1315; Нарушение авторского права страницы


lektsia.com 2007 - 2024 год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! (0.044 с.)
Главная | Случайная страница | Обратная связь