Нахождение максимального элемента массива
Задача 2. Задан одномерный массив из N чисел. Найти максимальный элемент массива. Решение: Program Mass2; Const X=100; Var A:Array[1..10] of Integer; I,N,Max:Integer; Begin Writeln(’Введите число элементов массива (N<=10)’); Readln(N); Randomize; For I:=1 to N do A[I]:=Random(X);{заполнение массива случайными числами} Max:=A[1]; For I:=1 to N do If Max>A[I] Then A[I]:=Max; For I:=1 to N do Writeln(’A[’,I,’]=’,A[I]); Writeln(’Max=’,Max); End. Задачи: 1. Задан одномерный массив из N чисел. Найти минимальный элемент массива. 2. Задан одномерный массив из N чисел. Найти разницу между наибольшим и наименьшим элементами массива. 3. Задан одномерный массив из N чисел. Проверить, есть ли в массиве отрицательные элементы и если есть, то найти среди них наименьший.
Сортировка одномерного массива Задача 3. Задан одномерный массив из N чисел. Отсортировать все элементы массива по возрастанию. Решение: Program Mass3; Var A:Array[1..10] of Integer; I,P,N:Integer; F:boolean; Begin Writeln(’Введите число элементов массива (N<=10)’); Readln(N); For I:=1 to N do Readln(A[I]); F:=False; While F=False do Begin F:=True; For I:=1 to N-1 do If A[I]>A[I+1] Then Begin P:=A[I]; A[I]:=A[I+1]; A[I+1]:=P; F:=False; End; End; For I:=1 to N do Writeln(’A[’,I,’]=’,A[I]); End. Задачи: 1. Задан одномерный массив из N строк, имеющих вид фамилий. Отсортировать все элементы массива по алфавиту. 2. В массиве каждый элемент равен 0, 1 или 2. Переставить элементы массива так, чтобы вначале массива расположились все нули, затем все единицы и, наконец все двойки. 3. Задан одномерный массив из N чисел. Переставить элементы массива так, чтобы отрицательные элементы предшествовали всем неотрицательным. 4. Задан одномерный массив из N чисел и число В. Упорядочить массив по возрастанию и поместить переменную В в соответствующее место массива. Решение задач, используя одномерные массивы. 1. Задан одномерный массив из N чисел. Составить новый массив, состоящий из тех же чисел, но идущий в обратном порядке. 2. Задан одномерный массив из N чисел и число К. Напечатать «Да», если К совпадает хотя бы с одним из элементов массива и «Нет» в противном случае. 3. Задан одномерный массив из N чисел. Найти количество элементов массива, больших среднего арифметического всех его элементов. 4. Задан одномерный массив из N чисел Определить в массиве число соседств из двух чисел одного знака. 5. Задан одномерный массив из N чисел Найти сумму произведений всех троек соседних чисел. 6. Задан одномерный массив из N чисел. Подсчитать наибольшее число одинаковых элементов, идущих в массиве подряд. 7. Задан одномерный массив из N чисел. Заменить все элементы массива на сумму предыдущего и последующего их значений. 8. Задан одномерный массив из N чисел. Подсчитать количество неповторяющихся элементов массива. 9. Задан одномерный массив из N чисел. Составить массив У, где Y[I]:=Min(X[1],X[2],…,X[N]).
Двумерные массивы Рассмотрим работу с двумерными массивами (в алгебре они называются матрицами): Дадим таблице имя - Tab
Каждое число в таблице имеет тип Integer. Это - тип злементов (M). Индексы данной таблицы изменяются от 1 до 8 . У двумерных массивов два списка (B1,B2). Таким образом, описание этого массива (в разделе Var) выглядит так : Tab:Array[1..3,1..4] of Integer; Задав конкретные значения индексов, можно выбрать определенный элемент массива. Например оператор: N:=A[1,3]; Присвоит переменной N значение элемента массива, имеющего индекс строки 1, индекс столбца 3, т.е. число 15. Задача 4. Задан массив из целых чисел, размерностьюN*M (N-строки, M-столбцы). Вывести на экран: а) N-ю строку; б) M-й столбец; в) весь массив. Решение: Program Mass4; Var Tab:Array[1..10,1..10] of Integer; N,M,X,Y:Integer; Begin Writeln(’Введите количество строк массива (N<=10)’); Readln(N); Writeln(’Введите количество столбцов массива (M<=10)’); Readln(M); For X:=1 to N do For Y:=1 to M do Readln(Tab[X,Y]); Writeln(’Вывод ’,N,’ строки’); For X:=1 to M do Write(’Tab[’,N,’,’,X,’]=’,Tab[N,X],’ ’:2); Writeln; Writeln(’Вывод ’,M,’ столбца’); For X:=1 to N do Writeln(’Tab[’,X,’,’,M,’]=’,Tab[X,M]); Writeln(’Вывод массива’); For X:=1 to N do Begin For Y:=1 to M do Write(’Tab[’,X,’,’,Y,’]=’,Tab[X,Y],’ ’:2); Writeln; End; Задача 5. Задан массив из строк, размерностьюN*M (N-строки, M-столбцы). Отсортировать все элементы массива по возрастанию. Решение: Program Mass5; Var A:Array[1..10,1..10] of String; I,N,M,X,Y:Integer; P:String; F:boolean; Begin {Ввести двумерный массив} F:=False; While F=False do Begin F:=True; For X:=1 to N do For Y:=1 to M-1 do Begin If A[X,Y]>A[X,Y+1] Then Begin {Поменять местами 2 соседних элемента строки} End; If (X<N)and(Y=(M-1))and(A[X,Y+1]>A[X+1,1])Then Begin P:=A[X,Y+1]; A[X,Y+1]:=A[X+1,1]; A[X+1,1]:=P; F:=False; End; End; End; {Вывести отсортированный массив} End.
Подпрограммы. При решении многих задач возникает необходимость проведения одних и тех же вычислений на различных этапах решения задачи и при различных значениях исходных данных. 1. T1 2. РР РР Т2 Т1 РР Т2 Т3 Т3 Т4 РР Т4
При составлении программы по первому алгоритму приходится задавать одну и ту же группу операторов (РР) для каждого из повторяющихся фрагментов. Для сокращения текста программы в Паскале введено понятие подпрограммы, при этом повторяющаяся группа операторов записывается отдельно (второй алгоритм) один раз по отношению к некоторым формальным параметрам, а в соответствующих местах программы помещается лишь обращение к подпрограмме с указанием нужных в данный момент фактических параметров. Использование подпрограмм позволяет применять принципы структурного программирования, когда исходная задача разбивается на группы простых подзадач, каждая подзадача программируется отдельно, а программа исходной задачи составляется только из обращений к программам подзадач. Кроме того, использование подзадач позволяет вводить в новую программу, программы составленные ранее. В Паскале подпрограммы реализуются 2-х видов - процедуры и функции. И те, и другие вводятся в программу с помощью описания. Для этого существует специальный раздел программы Описание процедур Структура описания процедур аналогична самой программе. Она состоит из заголовка процедуры и блока процедуры. Блок процедуры включает в себя те же 6 разделов, что и блок программы. Заголовок процедуры: Procedure Xxx[(P1:T1;P2:T2;…Pn:Tm)]; Xxx - имя процедуры (любой идентификатор); P1,P2,…,Pn - формальные параметры; T1,T2,…,Tm – типы формальных параметров Формальные параметры – это перечень имен для обозначения исходных данных и результатов работы процедуры. Формальные параметры нужны для того, чтобы указать, куда должны быть подставлены фактические параметры при обращении к процедуре. Формальные параметры в программе не описываются. Формальные параметры могут отсутствовать и, в этом случае, процедура описывается без параметров. Обращение к процедуре: Чтобы исполнить процедуру, в нужном месте программы записывается оператор обращения к ней, который имеет вид: Xxx[(B1,B2,…,Bn)]; B1,B2,…,Bn – список фактических параметров. Он отсутствует, если процедура описывалась без параметров. При вызове процедуры устанавливается взаимное однозначное соответствие между фактическими и формальными параметрами, а затем управление передается процедуре. Соответствие между фактическими и формальными параметрами: 1. Число фактических параметров должно быть равно числу формальных параметров; 2. Соответствующие фактические и формальные параметры должны совпадать по порядку следования и по типу.
Популярное: Как выбрать специалиста по управлению гостиницей: Понятно, что управление гостиницей невозможно без специальных знаний. Соответственно, важна квалификация... Почему люди поддаются рекламе?: Только не надо искать ответы в качестве или количестве рекламы... Почему стероиды повышают давление?: Основных причин три... ©2015-2024 megaobuchalka.ru Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. (1893)
|
Почему 1285321 студент выбрали МегаОбучалку... Система поиска информации Мобильная версия сайта Удобная навигация Нет шокирующей рекламы |