![]() Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь FAQ Написать работу КАТЕГОРИИ: ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву ![]() Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
Поиск в массиве элементов с заданными свойствами.Содержание книги
Похожие статьи вашей тематики
Поиск на нашем сайте
Поиск максимального (минимального) элемента. Последовательный поиск — элементы массива просматриваются последовательно один за другим, при этом производится проверка соответствия элемента заданному
свойству.
program zadacha5_1; var k,i,n,p:integer; a:array[1..30] of integer; {описание массива} Begin Write('Кол. элем. массива'); readln(n);
begin write('Введите a[',i,']'); {Ввод элементов массива} readln (a[i]); end;
for i:=1 to n do {Вывод эл. массива} write (a[i],’ ’); writeln;
p:=0; for i:=1 to n do {Нахождение суммы} if a[i]=k then p:=i; if p=0 then writeln('элемента в табліце нет') else writeln('элемент найден, индекс =',p) End. В данной задаче в случае наличия в таблице нескольких элементов, равных К будет выдан наибольший индекс. Для поиска первого такого элемента в таблице используют цикл: i:=1; While (i<=n) and (a[i]<>k) do i:=i+1; Решим задачу поиска наибольшего элемента в таблице А из N вещественных чисел. Найти максимум и индекс этого элемента.
var a:array[1..30] of real; max: real; j,i: integer; Begin Write('Кол. элем. массива'); readln(n); {Ввод элементов массива} ………………….. {Вsвод элементов массива} …………………..
for i:=2 to n do {Поиск максимума} if max<a[i] then begin max:=a[i]; j:=i; end; writeln; writeln('Макс. элемент массива =', max); writeln('Индекс макс. элемента =', j);
End. Алгоритм: 1. Условно считаем первый элемент наибольшим (максимальным). Запоминаем его значение (a[1]) и его индекс (=1). 2. Cравниваем значение максимального с очередным элементом таблицы (i), начиная со второго элемента и до последнего. 3. При нахождении элемента с большим значением меняем значение максимального на найденный элемент и запоминаем его индекс. 4. При наличии в таблице нескольких минимальных и при условии max<a[i] будет найден максимальный элемент с наименьшим индексом (первый встретившийся в таблице), а если условие будет max<=a[i], то - с большим индексом.
Задания для самостоятельной работы:
4. Имеется целочисленный массив, состоящий из 15 элементов
найти минимальный элемент и его индекс. 5. В массиве хранится информация о количестве осадков (целые числа), выпавших за каждый день прошедшей недели. Вывести номера дней, когда осадков не было. 3. Дан массив целых чисел из n элементов. Найти и вывести номера элементов, заканчивающихся цифрой 0. 4. Рост N учеников класса представлен в виде массива. Найти количество учеников, рост которых не превышает значения R. 5. В массиве записаны результаты N игр футбольной команды (если игра закончилась выигрышем данной команды, то записано число 3, проигрышем - число 2, вничью - 1). Определить количество выигрышей, проигрышей, ничьих. 6. В массиве хранится информация о росте N человек. Определить, на сколько рост самого высокого человека превышает рост самого низкого. 7. В массиве хранится информация о стоимости 1 кг N видов конфет. Определить порядковый номер самого дешевого вида конфет. Если таких несколько, то должен быть найден индекс: А) первого из них; Б) последнего из них. В массиве хранится информация о стоимости каждой из M книг. Определить количество самых дешевых книг (с одинаковой минимальной ценой). Двухмерные массивы Примеры решения задач с использованием двухмерных массивов Двухмерные массивы имеют строки и столбцы. Элемент массива задается номером строки и номером столбца, на пересечении которых он находится
Если количество строк = количеству столбцов массив называется квадратной матрицей, в противном случае - прямоугольной.
Заполнить ее целыми числами. Распечатать по строкам. Найти и вывести сумму всех элесментов и их среднее арифметическое значение.
program zadacha5_3_1; var i, j, s,m,n: integer; sr: real; a:array[1..10, 1..20] of integer; {описание массива} Begin Write('Кол. строк, кол. столбцов?'); readln(n,m);
for j:=1 to m do begin write('Введите a[', i, ',', j, ']'); {Ввод элементов readln (a[ i, j ]); массива} end;
for i:=1 to n do {Вывод эл. Массива} begin
write (a[ i, j ],’ ’); {Вывод эл. массива} writeln; end; s:=0;
for j:=1 to m do {Нахождение суммы} s:=s + a[ i, j ];
writeln('Сумма =', s);
sr:=s / (n*m); {Нахождение среднего} writeln('Средее =', sr:8:3) End.
Задача. Среди нечетных столбцов заданной целочисленной матрицы размерностью n*m найти столбец с максимальной суммой модулей элементов.
program zadacha5_3_2; var i, j, m, n, k, s, max:integer; a: array[1..10, 1..20] of integer; {описание массива} Begin Write('Кол. строк, кол. столбцов?'); readln(n,m); {Заполнить таблицу} {Вывести таблицу по строкам} {Первоначально будем считать сумму модулей элементов первого столбца максимальной}
for i:=1 to n do {Нахождение суммы первого столбца}
max:= s; k:=1; j:=3; while j <= m do begin s:= 0;
s:= s + abs (a[ i,j ]); if s > max then begin max:= s; k:=j; end; j:= j+2; {Переход к очередному нечетному end; индексу столбца } writeln('Номер столбца с максим. суммой модулей элементов =', k, 'знач. макс.=', max); end. Задания для самостоятельной работы: 8. Имеется целочисленный массив n*m элементов. Найти номер строки с минимальной суммой модулей элементов. 9. Имеется целочисленный массив n*m элементов. Найти индексы максимального элемента таблицы и значение максимума. 10. Имеется целочисленный массив n*m элементов. Каких элементов в массиве больше отрицательных или положительных? 11. Имеется целочисленный массив n*m элементов. Сообщить есть ли в таблице отрицательные элементы. 12. Имеется целочисленный массив n*m элементов. Найти среднее арифметическое элементов массива. Определить и вывести количество элементов массива, значение которых превышает это среднее значение.
Литература 1. Карасев П.Н. Информатика (программирование).-Волгоград, 2002. 2. Брудно А.Л. Каплан Л.И. Олимпиады по программированию.- М., 1985. 3. Грогоно П. Программирование на языке Паскаль/Пер. с англ.- М., 1982. 4. Каймин В.А. и др. Основы информатики и вычислительной техники (пробный учебник для 10-11 классов).-М., Просвещение, 1994. 5. Культин Н. Turbo Pascal в задачах и примерах.-Санкт-Петербург, БХВ-Петербург, 2002. 6. Немнюгин С.А. Turbo Pascal(практикум).-Санкт-Петербург, 2001. 7. Златопольский Д.М. Я иду на урок информатики (задачи по программированию 7-11 классы).-М., Первое сентября, 2002.
|
||||||||||||||||||||||||||||||
Последнее изменение этой страницы: 2016-08-15; просмотров: 848; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 18.225.57.152 (0.012 с.) |