Студопедия — Обработка массивов
Студопедия Главная Случайная страница Обратная связь

Разделы: Автомобили Астрономия Биология География Дом и сад Другие языки Другое Информатика История Культура Литература Логика Математика Медицина Металлургия Механика Образование Охрана труда Педагогика Политика Право Психология Религия Риторика Социология Спорт Строительство Технология Туризм Физика Философия Финансы Химия Черчение Экология Экономика Электроника

Обработка массивов






Одномерные массивы

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

Задача 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. В очереди за билетами стоят мужчины и женщины. Какое количество мужчин стоит в начале очереди до первой женщины.







Дата добавления: 2015-09-19; просмотров: 1454. Нарушение авторских прав; Мы поможем в написании вашей работы!



Шрифт зодчего Шрифт зодчего состоит из прописных (заглавных), строчных букв и цифр...

Картограммы и картодиаграммы Картограммы и картодиаграммы применяются для изображения географической характеристики изучаемых явлений...

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

Функция спроса населения на данный товар Функция спроса населения на данный товар: Qd=7-Р. Функция предложения: Qs= -5+2Р,где...

Меры безопасности при обращении с оружием и боеприпасами 64. Получение (сдача) оружия и боеприпасов для проведения стрельб осуществляется в установленном порядке[1]. 65. Безопасность при проведении стрельб обеспечивается...

Весы настольные циферблатные Весы настольные циферблатные РН-10Ц13 (рис.3.1) выпускаются с наибольшими пределами взвешивания 2...

Хронометражно-табличная методика определения суточного расхода энергии студента Цель: познакомиться с хронометражно-табличным методом опреде­ления суточного расхода энергии...

Принципы и методы управления в таможенных органах Под принципами управления понимаются идеи, правила, основные положения и нормы поведения, которыми руководствуются общие, частные и организационно-технологические принципы...

ПРОФЕССИОНАЛЬНОЕ САМОВОСПИТАНИЕ И САМООБРАЗОВАНИЕ ПЕДАГОГА Воспитывать сегодня подрастающее поколение на со­временном уровне требований общества нельзя без по­стоянного обновления и обогащения своего профессио­нального педагогического потенциала...

Эффективность управления. Общие понятия о сущности и критериях эффективности. Эффективность управления – это экономическая категория, отражающая вклад управленческой деятельности в конечный результат работы организации...

Studopedia.info - Студопедия - 2014-2024 год . (0.008 сек.) русская версия | украинская версия