Краткие теоретические сведения
Пример программы нахождения в одномерном массиве элемента, заданного пользователем и подсчета количества его вхождений в данный массив Пусть требуется составить программу, которая формирует одномерный массив вводом с клавиатуры, находит в массиве элементы, заданные пользователем, подсчитывает их количество и выводит номер первого найденного элемента. В разделе описания констант укажем значение константы Count=10. В программе значение этой константы определяет количество элементов массива. Употребление константы в описании размеров массива предпочтительнее, так как в случае изменения размеров массива не нужно будет вносить изменения во весь текст программы, а достаточно только один раз указать в разделе описания констант новое значение константы Count. Тогда раздел описания констант и переменных в программе будет таким: Сonst Count=10; В связи с этим описание массива зададим так: М: array [1..Count] of Byte; Введем переменные целого типа: N - значение искомого элемента; А - номер первого элемента массива, значение которого равно N; В - количество таких элементов в массиве; I - переменная, выполняющая функции параметра цикла и одновременно служащая указателем номера очередного элемента массива. В связи с тем, что ни один подходящий элемент еще не найден, присвоим переменным A и В значение 0. Затем выведем на экран приглашение на ввод значения искомого элемента считаем это значение с клавиатуры. На Паскале это запишется следующим образом: Write('Введите значение элемента массива для поиска: '); Readln(N); Поиск элемента массива, значение которого равно введенному числу N, выполняется в циклическом сравнении значений всех элементов от первого до последнего со значением числа N, поэтому запишем его в виде цикла с параметром.
Оператор if M[I] = N then … выполняет сравнение значения очередного элемента массива с заданным значением N. Если условие М[I] = N выполняется, то счетчик числа найденных элементов В увеличивается на единицу. Так как требуется найти номер первого элемента, т. е. при первом выполнении условия М[I] = N запомнить номер данного элемента, то можно записать: if В = 0 then А:= I. Тогда блок поиска нужного элемента можно записать так: for I:= 1 to Count do if M[I] = N then begin if В =0 then A:= I; В:= В+1; end; В заключительной части программа должна вывести на экран сообщение о том, что в массиве нет искомых элементов, или сообщение о количестве элементов массива, имеющих значение, равное N, и напечатать номер первого такого элемента. Это можно записать следующим образом: if B=0 then riteln('Нет таких элементов в массиве') else begin Writeln('Количество элементов массива, имеющих значение ',N,' - ', B), Writeln('Первый элемент, совпадающий с заданным ', А); end; В целом текст программы может быть таким: program Find_Elem; {Поиск элемента в массиве} Сonst Count =10; Var М: array [1..Count] of byte; N, A, B, I: Byte; Begin {Основная программа} for I:=1 to Count do {ввод элементов массива} begin writeln('Введите ',i,' элемент массива'); readln(M[I]); end; {конец ввода} writeln('Введенный массив: '); for I:=1 to Count do {вывод элементов массива} begin write(' ',M[I],' '); end; {конец вывода} Writeln; A:= 0; {Нет элемента с таким значением} В:= 0; {Пока не найдено ни одного элемента} Write('Введите значение элемента массива для поиска: '); Readln(N); for I:= 1 to Count do {Поиск элемента, значение которого =N} if M[I] == N then begin if В = 0 then A:= I; {Запомнить номер первого элемента, равного N} В:= В + 1; {Увеличить число найденных элементов на 1} end; if B=0 then Writeln('Нет таких элементов в массиве') else begin Writeln('Количество элементов массива, имеющих значение',N,'-',B ), Writeln('Первый элемент, совпадающий с заданным - ', А); end; end.
Читайте также: C - Мазхабы «итикади» (теоретические направления) Воспользуйтесь поиском по сайту: ©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...
|