Сумма элементов массива по условию 


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Сумма элементов массива по условию



 

 

ПОСТАНОВКА ЗАДАЧИ: Заполнить и вывести массив на экран.

Ввести условие суммирования (а[i]<u).

Найти сумму и вывести на экран результат.

 

Program SumUsl; uses crt;

const a: array[1..10] of integer=(3,5,2,1,6,3,8,7,5,9);

var i, s, u: integer;

procedure Su;

Begin

s:=0;

for i:=1 to 10 do if a[i]<u then s:=s+a[i]

write('Сумма элементов меньших ',u,' равна ',s);

end;

Begin

ClrScr;

Print; { смотри занятие 32 }

writeln; writeln;

write('Введите условие суммирования: '); readln(u);

Su;

Readkey;

End.

З А Д А Н И Я:

1. Изменить условие суммирования.

 

2. Написать процедуру Input.

 

3. Найти произведение элементов по условию.

 

ПРАКТИЧЕСКОЕ ЗАНЯТИЕ № 34

# 3. ОБРАБОТКА ОДНОМЕРНЫХ МАССИВОВ

ОПРЕДЕЛЕНИЕ ЧИСЛА ЭЛЕМЕНТОВ МАССИВА ПО УСЛОВИЮ

 

ПОСТАНОВКА ЗАДАЧИ:

Заполнить массив и вывести его на экран.

Ввести с клавиатуры условие.

Подсчитать количество элементов удовлетворяющих условию.

 

Program KolUsl; uses crt;

const m=1; { min индекс }

n=10; { max индекс }

var i, k, usl: integer;

a: array[m..n] of integer;

... { процедуры Input и Print см. занятие 32 }

procedure Kol_po_Usl;

Begin

write('Введите ограничение:'); readln(usl);

k:=0;

for i:=m to n do if a[i]>usl then k:=k+1

write('Кoличество элементов больших ',usl, ' равно ', k);

end;

Begin

ClrScr;

Input;

ClrScr;

Print;

writeln; writeln;

Kol_po_Usl;

Readkey;

End.

 

З А Д А Н И Я:

 

1. Самостоятельно написать процедуры Input, Print и исполнить программу.

 

2. Изменить условие подсчета элементов.

 

3. Подсчитать сумму элементов по условию.

 

ПРАКТИЧЕСКОЕ ЗАНЯТИЕ № 35

 

# 4. ОБРАБОТКА ОДНОМЕРНЫХ ЧИСЛОВЫХ МАССИВОВ

СУММА ДВУХ ОДИНАКОВЫХ ПО РАЗМЕРУ МАССИВОВ

 

В языке Pascal программист может описывать свои собственные типы и объекты, относящиеся к этому типу. Тип массив относится к структурированным типам.

Описание типа помещают в раздел определения типов после раздела описания констант и до раздела описания переменных (var).

 

Например: TYPE massiv=array[1..100] of integer;

var a, b, c: massiv;

Описание типа позволяет применить формальный параметр типа massiv.

 

ПОСТАНОВКА ЗАДАЧИ:

Заполнить и вывести на экран два одинаковых по размеру массива: А и B.

Найти массив C,каждый элемент которого равен сумме

соответствующих элементов массивов А и В: C[i]=A[i]+B[i].

Program Summa_Mass; uses crt;

Type mas= array[1..100] of integer;

var a, b, c: mas;

I, n: integer;

procedure Input(var x: mas);

Begin

for i:=1 to n do begin write('Элемент [',i,']='); readln(x[i]); end

end;

procedure Print(x: mas); begin for i:=1 to n do write(' ',x[i]); end;

procedure SumMass; begin for i:=1 to n do c[i]:=a[i]+b[i]; end;

Begin

ClrScr; n:=20;

writeln('Ввoд массива А:); Input(a);

writeln('Ввод массива В:); Input(b);

ClrScr;

write(' A: '); Print(a);

write(' B: '); Print(b);

SumMass;

write(' C: '); Print(c);

readkey;

End.

З А Д А Н И Я:

 

1. Набрать и исполнить программу.

2. Найти сумму элементов, стоящих на четных местах в массиве С.

3. Найти сумму четных элементов в массиве С.


 

ПРАКТИЧЕСКОЕ ЗАНЯТИЕ № 36

 

# 5. ОБРАБОТКА ОДНОМЕРНЫХ МАССИВОВ

ОБЪЕДИНЕНИЕ ДВУХ МАССИВОВ С ЧЕРЕДОВАНИЕМ ЭЛЕМЕНТОВ

 

ПОСТАНОВКА ЗАДАЧИ:

Объединить два массива A и B,содержащих по N элементов в один массив c, который будет содержать 2*N элементов, т.е. получить массив C=(а1,b1,a2,b2,..,an,bn).

 

Program Ob_Mass; uses crt;

type massiv=array[1..20] of integer;

var a,b,c: massiv;

I, n: integer;

procedure Input(var x: massiv; n: integer);

Begin

for i:=1 to n do

Begin

write('Элемент [',i,']='); readln(x[i]);

End

end;

procedure Print(x: massiv; n: integer);

...

procedure Ob(n: integer);

Begin

for i:=1 to n do

Begin

c[2*i-1]:=a[i];

c[2*i]:=b[i]

End

end;

 

Begin

ClrScr; n:=10;

Input(a,n); writeln;

Input(b,n);

ClrScr;

write('Массив А: '); Print(a, n); writeln;

write('Массив B: '); Print(b, n); writeln;

Ob(n);

write('Массив C: '); Print(c, 2*n);

readkey;

End.

З А Д А Н И Я:

 

1. Набрать и исполнить программу.

2. Изменить количество элементов в массивов.

3. Объединить массивы так, чтобы элементы одного массива следовали

за элементами другого: c=(а1,а2,а3,..,аn,b1,b2,b3,..,bn).

ПРАКТИЧЕСКОЕ ЗАНЯТИЕ № 37

 

# 6. ОБРАБОТКА ОДНОМЕРНЫХ МАССИВОВ

И Н В Е Р Т И Р О В А Н И Е МАССИВА

ПОСТАНОВКА ЗАДАЧИ:

Требуется изменить порядок следования элементов массива C, состоящего из n элементов, на обратный, используя вспомогательную переменную p.

Исходный массив C: 1 2 3 4 5

Конечный массив C: 5 4 3 2 1

Перестановка производится по одному элементу через промежуточную переменную:

1) 1-ый элемент передается в ячейку p;

2) последний элемент ставится на место 1-го;

3) элемент из ячейки p ставится на последнее место.

Количество таких перестановок равно trunc(n/2) или (n div 2) – деление нацело.

 

Program Inwert; uses crt;

{ описание переменных и массива }

{ описание процедуры ввода массива }

{ описание процедуры вывода массива }

procedure Inw;

var m: integer; p: real;

Begin

m:=trunc(n/2); { определение числа циклов }

for i:=1 to m do

Begin

p:=c[i]; { перестановка i элемента в p }

c[i]:=c[n-i+1]; { перестановка на i место элемента n-i+1 }

c[n-i+1]:=p; { перестановка элемента из p нa n-i+1 место }

End

end;

Begin

ClrScr; n:=20;

Input;

ClrScr;

Print; writeln;

Inw;

Print; writeln;

Inw;

Print; writeln;

Readkey;

End.

З А Д А Н И Я:

 

1. Набрать и исполнить программу.

2. Увеличить число элементов.

3. Заменить числовой массив на символьный.

Получить из слова ГОРОД слово ДОРОГ и другие перевертыши.

4. Произвести инвертирование с сохранением исходного массива.

Подсказка: используйте новый массив.

ПРАКТИЧЕСКОЕ ЗАНЯТИЕ № 38

 

# 7. ОБРАБОТКА ОДНОМЕРНЫХ МАССИВОВ

ФОРМИРОВАНИЕ МАССИВА ИЗ ЭЛЕМЕНТОВ ДРУГОГО

МАССИВА УДОВЛЕТВОРЯЮЩИХ ЗАДАННОМУ УСЛОВИЮ

ПОСТАНОВКА ЗАДАЧИ: Требуется из данного массива А, состоящего из N элементов, выбрать элементы, удовлетворяющие заданному (пусть А(i)>T), и сформировать из них массив B.

Исходный массив А: 4 6 8 2 23 1 9 Условие: A(i)>=8

Новый массив B: 8 23 9

 

Особенность решения: Индексы элементов массивов A и B не совпадают,

так как не все элементы массива A включаются в массив B.

Введем переменную, формирующую индексы и являющуюся счетчиком

элементов нового массива.

 

Program Massiv_po_Uslowiu; Uses crt;

...

 

procedure Mass_Usl;

Begin

write('Введите параметр условия: '); readln(t);

k:=0; {k- счетчик найденых элементов }

for i:=1 to n do if a[i]>=t then begin k:=k+1; b[k]:=a[i]; end;

end;

Begin

ClrScr; n:=20;

Input; { заполнение исходного массива A }

ClrScr;

Print(а, n); writeln; { печать исходного массива A }

Mass_Usl; { формирование массива по условию }

Print(b, k); writeln; { вывод на экран нового массива B }

Readkey;

End.

 

З А Д А Н И Я:

 

1. Набрать и исполнить программу.

 

2. Изменить условие.

 

3. Вывести на экран сообщение о количестве найденных элементов.

 

4. Найти среднее арифметическое элементов нового массива.

 

ПРАКТИЧЕСКОЕ ЗАНЯТИЕ № 39

 

# 8. ОБРАБОТКА ОДНОМЕРНЫХ МАССИВОВ

ПОИСК МАКСИМАЛЬНОГО ЭЛЕМЕНТА В МАССИВЕ

С ЗАПОМИНАНИЕМ ЕГО ПОЛОЖЕНИЯ (ИНДЕКСА)

 

ПОСТАНОВКА ЗАДАЧИ: Найти в массиве A, состоящем из n элементов, наибольший

элемент и запомнить его индекс (K).

 

Program MaxElMassiva; uses crt;

{ описание массива и переменных }

{ процедура ввода массива }

{ процедура вывода массива }

 

procedure MaxEl;

Begin

max:=a[1]; k:=1;

for i:=1 to n do if max<a[i] then begin max:=a[i]; k:=i; end;

writeln('Максимальный элемент массива А равен ',max);

writeln('Максимальный элемент массива стоит на ',k, ' месте);

end;

 

Begin

ClrScr; n:=20;

Input;

ClrScr;

Print; writeln;

MaxEl;

Readkey;;

End.

З А Д А Н И Я:

 

1. Набрать и исполнить программу.

 

2. Найти минимальный элемент и его индекс.

 

3. Найти минимальный и максимальный элементы, и их индексы.

 

4. Заменить найденный минимальный элемент числом 100 и показать

на экране массив с этой заменой.

 

ПРАКТИЧЕСКОЕ ЗАНЯТИЕ № 40

 

# 9. ОБРАБОТКА ОДНОМЕРНЫХ МАССИВОВ

ПОИСК ЗАДАННОГО ЭЛЕМЕНТА В МАССИВЕ

 

ПОСТАНОВКА ЗАДАЧИ: Определить, есть ли в заданном массиве элемент равный L.

Имеется массив А: 3 1 2 5 3 4 8 L=5

В массиве А имеется элемент равный 5

 

В данной программе можно использовать "флажок" - специальную переменную, которая принимает значения "истина" или "ложь" в зависимости от того найден элемент или нет.

 

Program Poisk_El_Massiva; uses crt;

 

...

 

procedure Poisk(L: integer);

var fl: boolean;

Begin

fl:=false;

for i:=1 to n do if a[i]=L then fl:=true;

If fl then write(' Элемент равный ',L,' имеется ')

else write(' Элемент равный ',L,' отсутствует');

end;

 

Begin

ClrScr; n:=20;

Input;

ClrScr;

Print; writeln; writeln;

write('Введите значение искомого элемента: '); readln(L);

Poisk(L);

Readkey;

End.

 

 

З А Д А Н И Я:

 

1. Набрать и исполнить программу, т. е. найти 3-4 элемента.

 

2. Если в массиве несколько одинаковых элементов, то найти первый из них и указать его индекс.

 

3. Подсчитать количество одинаковых элементов в массиве.

 

ПРАКТИЧЕСКОЕ ЗАНЯТИЕ № 41

 

#10. ОБРАБОТКА ОДНОМЕРНЫХ МАССИВОВ



Поделиться:


Последнее изменение этой страницы: 2016-08-12; просмотров: 156; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.144.172.115 (0.049 с.)