Сдам Сам

ПОЛЕЗНОЕ


КАТЕГОРИИ







Действия над элементами массива





 

По индексу определяется положение элемента в массиве. Индекс заключается в квадратные скобки и может быть целым числом

Например:

А[4] - элемент массива А находится на 4 позиции;

А[I] - элемент массива А находится на I позиции.

Индекс элемента массива можно задать выражением целого типа.

Пример:

А[2i+3]

Такое задание номера элемента используют при описании некоторой последовательности.

1. Инициализация - присвоение начальных значений, причем это значение одинаково для всех элементов массива. Присвоить каждому элементу массива одно и тоже значение вручную или при помощи оператора цикла с известным числом повтора for:

a[1]:= 1; a[2]:= 1; a[3]:=1;

for i:=1 to 3 do a[i]:=1;

2. Ввод и вывод элементов массива. Ввод/вывод элементов массива осуществляется при помощи цикла for.

Ввод:

for i:= 1 to 10 do Read (a[i]);

Вывод:

for i:=1 to 10 do Write(a[i]);

3. Копирование массивов - присвоение значений всех элементов одного массива соответствующим элементам другого массива.

for i:= 1 to 10 do a[i]:=b[i];

4. Перестановка элементов массива осуществляется при помощи дополнительной переменной.

Пример: В массиве A нужно поменять местами второй и пятый элементами.

buffer:= a[2];

a[2]:= a[5];

a[5]:= buffer;

Переменной buffer присваивается значение второго элемента массива А. Затем второму элементу присваивается значение пятого элемента массива А. Последняя операция присваивает пятому элементу значение второго элемента, который мы записали в переменную buffer.

Пример 8. Найти сумму и количество положительных элементов массива

Рис. 2 Блок- схема программы summa_massiv.

program summa_massiv;

var

a: array [1..10] of integer;

I: byte; S: integer;

begin

Write('Введите массив');

for i:= 1 to 10 do Read(a[i]); // ввод элементов массива

S:=0;n:=0; // переменной S и n присваивается значение 0

for i:=1 to 10 do if a[i]>0 then

begin

S:=S+ a[i];

n:=n+1;

End;

WriteLn ('S =', S:6:3, ' n =', n);

end.

 

 

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

Рис.3. Блок – схема программы max-min.

program max-min;

var

a: array [1..10] of integer;

i: byte; max, min: integer;

begin

write('введите массив');

for i:= 1 to 10 do read(a[i]); // ввод элементов массива

max:=a[1]; // переменной max присваивается значение первого элемента массива

for i:=2 to 10 do if a[i]> max then max:= a[i];

min:= a[1]; // переменной min присваивается значение

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

for i:=2 to 10 do if a[i]< min then min:= a[i];

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

writeln ('минимальный элемент массива =', min);

end.

Двумерный массив отличается от одномерного массива тем, что для доступа к его элементам используется два индекса. Для того, чтобы задать какую-либо ячейку двумерной таблицы указывают номер строки и номер столбца.

Двухмерный массив описывается в разделе переменных:

а: array [1..5] of array [1..4] of integer;

Этот массив можно представить в качестве двумерной матрицы с 20 элементами (4×5). Возможна сокращенная запись приведенного выше описания массива:

a: array [1..5,1..4] of integer;

Полный вид двухмерного массива (матрицы):

a[1,1] a[1,2] a[1,3] a[1,4]

a[2,1] a[2,2] a[2,3] a[2,4]

a[3,1] a[3,2] a[3,3] a[3,4]

a[4,1] a[4,2] a[4,3] a[4,4]

a[5,1] a[5,2] a[5,3] a[5,4]

Ввод элементов матрицы осуществляют с помощью вложенных циклов for:

for i:=1 to 5 do

for j:=1 to 4 do Read(а[i,j]);

Вывод элементов матрицы осуществляется аналогично:

for i:=1 to 5 do

for j:=1 to 4 do Write(а[i,j]);

 

Данные будут выводиться сплошным неразделимым потоком в одну строчку. Чтобы вывести данные как в таблице нужно после каждого элемента вставить пробел и после каждой выведенной строки сделать переход на новую строку с помощью оператора WriteLn. Тело внешнего цикла заключается в операторные скобки begin и end.

for i:=1 to 5 do begin

for j:=1 to 4 do Write(a[i,j],’ ‘);

WriteLn;

end;

Пример 10. Найдите максимальные элементы каждой строки матрицы и выведите их на экран.

program max_strok;

var i,j,m,n,imax,jmax: byte;

a: array[1..10,1..10] of integer;

begin

Read(n,m);

for i:=1 to n do

for j:=1 to m do Read(a[i,j]);

for i:=1 to n do

begin

imax:=i; jmax:=1;

for j:=2 to m do

begin

if a[imax,jmax]<a[i,j] then

begin

imax:=i;

jmax:=j;

end;

end;

Writeln (‘ max[’,I,’]=’,a[imax,jmax]);

end;

end.

Минимальные элементы строк массива находятся аналогично, только в условии меняется знак a[imin,jmin]>a[i,j].

Пример 11. Найдите суммы элементов строк матрицы и выведите их на экран в виде одномерного массива.

program sum_strok;

var i,j,m,n: byte;

a: array[1..10,1..10] of integer;

s: array[1..10] of integer;

begin

Read(m,n);

for i:=1 to n do

for j:=1 to m do Read(a[i,j]);

for i:=1 to n do

begin

s[i]:=o;

for j:=1 to m do s[i]:= s[i]+ a[i,j];

end;

for i:=1 to n do Write(‘ ‘,s[i]);

end.

Произведение элементов строк матрицы находится аналогично, только начальным значениям произведений присваивается p[i]:=1.

Пример12. Т ранспонируйте матрицу (n,m) и выведите ее на экран:

program transport;

var i,j,n,m: byte;

a: array[1..3,1..3] of integer;

begin

for i:=1 to n do

for j:=1 to m do Read(a[i,j]);

for j:=1 to m do

begin

for i:=1 to n do Write(a[i,j],’ ‘);

WriteLn;

end;

end.

 

СОДЕРЖАНИЕ И ОФОРМЛЕНИЕ ОТЧЕТА

 

Отчет оформляется в текстовом редакторе Word на бумаге формата А4 и содержит:

1. Название лабораторной работы.

2. Цель работы.

3. Задание.

4. Графическую схему алгоритма с учетом требований ГОСТ 19.002 – 80 и ГОСТ 19.003 – 80.

5. Программу на языках Turbo Pascal и Си/С++.

6. Результаты вычисления.

 

ВАРИАНТЫ ЗАДАНИЙ

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

1. Составьте программу заполнения одномерного массива так, чтобы его n-ый элемент был равен (n2+1) и найдите сумму его элементов.

2. Найдите сумму и количество положительных, отрицательных элементов массива, попавших в интервал [a;b].

3. Найдите количество элементов массива с четными и нечетными значениями.

4. Найдите количество элементов массива с целыми и дробными значениями.

5. Найдите суммы элементов массива четных и нечетных позиций.

6. Найдите произведения элементов массива четных и нечетных позиций.

7. В массиве найдите элементы, корни квадратные из которых, являлись бы целыми числами, и выведите эти элементы на экран.

8. В массиве найдите элементы, корни кубические из которых, являлись бы целыми числами, и выведите эти элементы на экран.

9. Создайте массив В из простых элементов массива А.

10. Создайте массив В из преобразованных по формуле cos(a[i]) элементов массива А.

11. Дан массив X, создайте массив Y, состоящий из элементов, имеющих четные номера и массив Z, состоящий из элементов, имеющих нечетные номера. Выведите массивы Y и Z на экран.

12. Создайте массив Y из отрицательных элементов массива Х и массив Z, из положительных элементов массива Х. Выведите новые массивы на экран.

13. В массиве X поменяйте местами соседние элементы каждой пары и выведите новый массив.

14. В массиве С поменяйте местами первый и последний, второй и предпоследний и т.д. элементы. Выведите новый массив на экран.

15. Найдите сумму первого и последнего, второго и предпоследнего и т.д. элементов массива С. Выведите суммы на экран.

16. Сравните элементы 2-х массивов между собой, определите количество равных элементов массивов. Выведите эти элементы на экран.

17. Найдите среднее арифметическое и геометрическое значение соответствующих элементов массивов М и N. Выведите результаты на экран в виде одномерных массивов.

18. Найдите сумму соответствующих элементов массивов X и Y и запишите результат в новый массив Z.

19. Выведите отдельно целые и дробные части элементов массива В.

20. Определите количество и сумму элементов одномерного массива, попавших в заданный интервал [a,b].

21. Определите есть ли в массиве А элементы с одинаковыми значениями. Выведите их на экран.

22. В массиве А поменяйте местами максимальный и минимальный элементы массива.

23. Создайте массив С из элементов массива А кратных 3. Найдите сумму и количество элементов нового массива.

24. Найдите сумму максимального и минимального элементов массива.

25. Найдите максимальный и минимальный элементы массива, в заданном интервале [a,b].

26. Выведите на экран значения квадратов и квадратных корней каждого элемента массива.

27. Найдите максимальный и минимальный элементы массива. Максимальный элемент массива поместите в конце массива, минимальный элемент массива в начале массива.

28. Составить программу, которая формирует одномерный массив из 10 целых случайных чисел. Найдите произведение всех элементов массив и выведите на экран индекс минимального элемента массива.

29. Составить программу, которая формирует одномерный массив из 15 вещественных случайных чисел. Проведите сортировку массива по убыванию.

30. Дан массив, состоящий из 9 элементов. Программа берет первые три элемента и подставляет их в квадратное уравнение вида ax2+bx+c=0, вместо коэффициентов а, b, с соответственно и решает это уравнение. Затем со второй и третьей тройками чисел. На экран должны выводиться корни уравнения всех трех случаев.

 

Двумерные массивы

1. Найдите минимальные элементы в каждой строке матрицы (n,m) и выведите их в виде одномерного массива.

2.Найдите максимальные элементы в каждом столбце матрицы (n,m) и выведите их в виде одномерного массива.

3.Найдите минимальные элементы в каждом столбце матрицы (n,m) и выведите их в виде одномерного массива.

4.Замените элементы главной диагонали матрицы (n, n) на 0, а все остальные элементы матрицы на 1.

5.Замените элементы побочной диагонали матрицы (n, n) на 1, а все остальные элементы матрицы на 0.

6.Найдите сумму элементов главной диагонали матрицы (n, n).

7.Найдите произведение элементов побочной диагонали матрицы (n,n).

8.Найдите сумму элементов находящихся выше главной диагонали матрицы (n, n).

9.Найдите сумму элементов находящихся ниже главной диагонали матрицы (n,n).

10. Найдите максимальную сумму элементов строк матрицы (n,m).

11. Найдите минимальную сумму элементов столбцов матрицы (n,m).

12. Найдите минимальное произведение элементов строк матрицы (n,m).

13. Найдите максимальное произведения элементов столбцов матрицы (n,m).

14. Напишите программу, увеличивающую каждый элемент матрицы (n,m) в 3 раза и сохраняющую результат в виде второй матрицы.

15. Сложите соответствующие элементы двух матриц (n,m) и выведите результирующую матрицу.

16. Напишите программу, меняющую знак каждого элемента матрицы (n,m) на противоположный знак.

17. Найдите отрицательные элементы в матрице (n,m) и сохраните их в виде отдельного одномерного массива.

18. Найдите все элементы матрице (n,m) меньше единицы и сохраните их индексы в виде отдельного одномерного массива.

19. Найдите в матрице (n,m) максимальный и минимальный элемент и поменяйте их местами.

20. Определите, каких положительных или отрицательных элементов в матрице (n,m) больше.

21. Найдите сумму элементов четных и сумму нечетных строк матрицы (n,m).

22. Найдите произведения элементов четных и нечетных столбцов матрицы (n,m).

23. Найдите все элементы матрицы (n,m) кратные 5 и сохраните их в одномерном массиве.

24. Найдите все элементы матрицы (n,m), значения которых находятся в интервале (а, в) и сохраните их в одномерном массиве.

25. Находите произведения соответствующих элементов двух матриц (n,m) и выведите результирующую матрицу на экран.

26. Найдите средние значения элементов каждой строки матрицы (n,m) и выведите их на экран в виде одномерного массива.

27. Отсортируйте элементы матрицы в каждой строке по возрастанию.

28. Отсортируйте элементы матрицы в каждом столбце по возрастанию.

29. Отсортируйте элементы матрицы в каждой строке по убыванию.

30. Отсортируйте элементы матрицы в каждом столбце по убыванию.

 

Контрольные вопросы:

 

1. Что такое массив?

2. Как определить местоположения элемента в массиве?

3. Что такое индекс?

4. Как задается массив?

5. Как осуществляется ввод/вывод массива?

6. Что называется инициализацией массива?

7. Как осуществляется перестановка элементов в массиве?

8. Чем отличается двухмерный массив от одномерного массива?

9. Как определить местоположения элемента в двухмерном массиве?

10. Каким образом задается обращение к элементам двухмерного массива?

 


список литературы

 

 

  1. Аляев, Ю. А. Алгоритмизация и языки программирования Pascal, C++, Visual Basic [Text]: учебно-справочное пособие / Ю.А. Аляев, О.А. Козлов. - М.: Финансы и статистика, 2002. - 320 с.: ил. - ISBN 5-279-02294-2: 108.00
  2. Давыдов, В. Технологии программирования С++ [Text]: учебное пособие / В. Давыдов. - СПб.: БХВ-Петербург, 2005. - 672 с.: ил. - ISBN 5-94157-605-6: 179.10
  3. Канцедал, С. А. Алгоритмизация и программирование [Текст]: учебное пособие / С.А. Канцедал. - М.: ИНФРА-М, 2008; М.: Форум, 2008. - 352 с.: ил. - ISBN 978-5-8199-0355-1: 157.41
  4. Колдаев, В. Д. Основы алгоритмизации и программирования [Text]: учебное пособие / В.Д.Колдаев; Под. ред. проф. Л.Г.Гагариной. - М.: ИД ФОРУМ: ИНФРА-М, 2009. - 416 с.: ил. - ISBN 978-5-16-002690-9: 116.05
  5. Лаптев, В. В. С++ Объектно-ориентированное программирование [Text]: учебное пособие / В.В.Лаптев. - СПб.: Питер, 2008. - 464 с.: ил. - ISBN 978-5-91180-200-4: 215.05
  6. Павловская, Т. А. С/С++ Программирование на языке высокого уровня [Text] / Т.А.Павловская. - СПб.: Питер, 2009. - 461 с.: ил. - ISBN 978-5-94723-568-5: 176.99
  7. Семакин, И. Г. Основы алгоритмизации и программирования [Text]: учебник / И.Г. Семакин, А.П. Шестаков. - М.: Издательский центр "Академия", 2008. - 400 с. - ISBN 978-5-7695-4711-9: 338.80
  8. Культин, Н. С/С++ в задачах и примерах [Text] / Н. Культин. - 2-е изд., перераб. и доп. - СПб.: БХВ-Петербург, 2011. - 368 с.: ил. эл. опт. диск (CD-ROM). - ISBN 978-5-94157-406-3: 233.26
  9. Чиртик, А. А. Программирование на C++. Трюки и эффекты [Text] / А.А.Чиртик. - Спб.: Питер, 2010. - 352 с.: ил + 1 эл. опт. диск (CD-ROM). - ISBN 978-5-49807-102-2: 319.99
  10. Незнанов, А. А. Программирование и алгоритмизация [Text]: учебник / А.А. Незнанов. - М.: Издательский центр "Академия", 2010. - 304 с. - ISBN 978-5-7695-6767-4: 416.80
  11. Павловская, Т. А. С/С++ Программирование на языке высокого уровня [Text] / Т.А.Павловская. - СПб.: Питер, 2011. - 461 с.: ил. - ISBN 978-5-94-723-568-5: 300.00

 


 

Учебное издание

 

 

Ковтун Н.И.

 







ЧТО ПРОИСХОДИТ ВО ВЗРОСЛОЙ ЖИЗНИ? Если вы все еще «неправильно» связаны с матерью, вы избегаете отделения и независимого взрослого существования...

Что делает отдел по эксплуатации и сопровождению ИС? Отвечает за сохранность данных (расписания копирования, копирование и пр.)...

ЧТО И КАК ПИСАЛИ О МОДЕ В ЖУРНАЛАХ НАЧАЛА XX ВЕКА Первый номер журнала «Аполлон» за 1909 г. начинался, по сути, с программного заявления редакции журнала...

Что делать, если нет взаимности? А теперь спустимся с небес на землю. Приземлились? Продолжаем разговор...





Не нашли то, что искали? Воспользуйтесь поиском гугл на сайте:


©2015- 2024 zdamsam.ru Размещенные материалы защищены законодательством РФ.