Решим задачу
Группа абитуриентов из 5 человек сдавала экзамен по физике, необходимо определить абитуриентов, которые сдали экзамен на «отлично».
Необходимо ввести с клавиатуры список абитуриентов в массив Х из пяти элементов и в массив А записать целочисленных значений случайным образом, вывести массивы в 2 столбца через пробел. вывести список, сдавших на отлично, в одну строку через запятую
Дано 5 строковых переменных– х1, х2. х3, х4, х5 5 целых чисел ‑а1, а2. а3,а4, а5
Тип массива X – string, ввод с клавиатуры Тип массива А – byte, ввод случайным числом. Оценки меняются от2 до 5 значит используя формулу random()*(b-a)+a получим A[i]:=random()*(5-2)+2; для VBASIC A(i)=int(rnd(5-2)+2)
Абитуриент, сдавший экзамен на отлично – этот у которого оценка А[i]=5.
Текст программы запишется.
program z1;
const m=5;
var
x:array[1..m] of string;
A:array[1..m] of byte;
i:byte;
begin
for i:=1 to m do
begin
writeln(‘Введите фамилию абитуриента ’);
readln(x[i]); {Ввод элементов массива Х}
A[i]:=random()*(5-2)+2; {Ввод элементов массива A}
end;
writeln(‘Фамилия абитуриента ’, ‘оценка по физике’);
for i:=1 to m do
writeln(x[i]:20,’ ’,A[i]:8); {Вsывод элементов массива Х и А}
writeln;
for i:=1 to m do
if A[i]=5 then write(x[i],’,’);{ если оценка = 5. то печать фамилии x[i]}
end.
Vbasic
Private Sub Command1_Click()
const m=5
DIM x (1.to. m) as string
Dim A(1.to. m) as byte
dim I as byte
for i=1 to m
x(i)=Inputbox(“Введите фамилию абитуриента “,””) ’{Ввод элементов массива Х}
A(i)=int(rnd()*(5-2)+2) ‘{Ввод элементов массива A}
next i
print “Фамилия абитуриента “, “оценка по физике”
for i=1 to m
print x(i),” “,A(i) ‘{Вывод элементов массива Х и А}
next i
for i=1 to m
if A(i)=5 then print x(i),”,”;’{ если оценка = 5. то печать фамилии x[i]}
next i
End Sub
Практическое занятие:
Набрать задачу, а затем исправить, используя для ввода оценок с клавиатуры и вывод в столбик абитуриентов, сдавших экзамен на «неудолетворительно».
Самостоятельная работа (стр. 215 №2 ПоповВ. Б « Турбо-Паскаль для школьников»)
Введите с клавиатуры 5 целочисленных элементов массива X. Выведите на экран значения корней и квадратов каждого из элементов массива.
Домашнее задание.
1. В каких операциях могут участвовать массивы и какие к ним при этом предъявляют требования?
2. Каким образом в Паскале задается обращение к элементу массива?
3. Почему при описании массивов предпочтительнее употреблять константы, а не указать размеры массива в явном виде?
4. Что называют инициализацией массива, и зачем она применяется?
стр. 214-215 вопросы устно с 7-10 читать $9.1.1-9.1.2 стр.184-188
задачи стр. 215 3, 6. §9.1 , 9.2 стр. 181-188
Тема урока №5« Решение задач на одномерные массивы»
Цель урока: Научить учащихся оперировать с элементами массива, решать различные задачи: на определения сумм, произведения, количества элементов массива.
Ход урока:
Проверка домашнего задания.
На доске решение домашних задач.
Опрос учащихся
1. Что такое массив, какие массивы существуют, что такое размерность массива?
2. Как определить место расположения элемента в массиве? Что такое индекс, каким требованиям он должен удовлетворять?
3. Каким образом описывается массив на Паскале(VBASIC)? Каким образом осуществляется обращение к элементу. Как размещается массив в памяти компьютер? Приведите примеры различных массивов.
4. Какие способы заполнения массива ВЫ знаете? Привести примеры. Что такое инициализация массива?
Новый материал.
Чтобы научить школьника решать задачи, необходимо не только познакомить его с типовыми приемами, но и показать те ситуации, в которых срабатывает тот или иной прием.
Хорошая классификация должна помогать этому, ее применение, должно сокращать путь от условия до решения. Для этого необходимо объединить в группы задачи, обладающие одновременно схожими условиями и принципами решения.
Общность условий обеспечивает распознавание задачи учеником, отнесение ее к конкретному типу, то есть создает возможность реального применения классификации.
Общность решений помогает ученику сделать следующий шаг — подобрать метод решения, то есть обеспечивает результативность классификации.
Таким образом, в основу классификации должен лечь некий признак, явно видимый из условия задачи и существенно влияющий на ее решение. В качестве такого признака предлагается рассматривать информационную роль таблицы в алгоритме, то есть вид табличной величины.
Очевидно, что таблица может быть результатом алгоритма (заполнение), аргументом (обработка) и аргументом-результатом (модификация).
При более внимательном рассмотрении становится ясно, что обработка (таблица — аргумент) включает слишком большой класс задач, решаемых разными методами. Среди них можно выделить две большие группы: задачи анализа и задачи поиска. В задачах анализа требуется просмотреть всю таблицу и определить какие-то ее характеристики (сумма, произведение, количество элементов с заданным свойством и т. д.) В задачах поиска требуется найти в таблице элемент, обладающий нужным свойством, причем просматривать всю таблицу для этого необязательно.
С другой стороны, многие задачи модификации не требуют освоения специальных приемов и сводятся к комбинации анализа и заполнения. Это, например, известная задача о корректировке отчета (элементы, меньшие 100, заменить на 100) и ей подобные.
Поэтому выделять модификацию как отдельный класс задач не стоит. Реальный интерес представляют задачи перестановки, в которых необходимо переставить элементы заданной таблицы в соответствии с какими-то требованиями. Эти задачи не сводятся к другим и могут рассматриваться как самостоятельная группа.
Окончательно получаем такие группы задач:
1. Заполнение
2. Анализ
3. Поиск
4. Перестановка
Задачи заполнения мы уже в частности рассматривали на предыдущих уроках. На этом уроке рассмотрим задачи анализа.
В задачах анализа таблица задана, и требуется найти какие-то ее характеристики. Наиболее типичные базовые задачи анализа — нахождение суммы элементов таблицы, подсчет количества элементов, обладающих заданным свойством (например, положительных), определение минимального и максимального элементов.
Определение максимума и минимума иногда относят к задачам поиска. В предлагаемой классификации они, безусловно, относятся к задачам анализа, так как максимальный элемент является характеристикой таблицы в целом. Поиск здесь ведется по относительному признаку (больше других), и опознать элемент, как максимальный можно только просмотрев всю таблицу.
В задачах поиска критерий должен быть абсолютным: рассмотрев элемент, мы должны немедленно определить, его ли мы ищем, и прекратить поиск, в случае положительного ответа.
Ученики со слабой математической подготовкой, с неразвитым абстрактным мышлением, неспособные к обобщению, часто с трудом осваивают даже простейшие алгоритмы обработки таблиц. В этом случае необходимо разбить процесс построения алгоритма на небольшие шаги и рассмотреть каждый шаг отдельно и подробно. Здесь можно выделить три основных этапа: анализ условия, придумывание идеи алгоритма и его словесное описание, формальная запись на алгоритмическом языке.
Рассмотрим некоторые приемы, помогающие научить школьников (в первую очередь слабых) правильным действиям на каждом из этих этапов.
Необходимый этап решения любой задачи — анализ условия. Для задач обработки информации необходим информационный анализ, то есть выделение исходных данных (аргументов) и результатов задачи, правильное их описание. Анализ условия производится до решения задачи. При этом можно использовать прием "человек-исполнитель", или "пропускание через себя". Суть его заключается в том, что ученик сам выполняет необходимые действия, а затем описывает алгоритм своей деятельности.
Рассуждения могут быть примерно такими: "Если я сам буду выполнять эти действия, какая информация мне понадобится? Что я должен спросить? После того как я решу задачу (пока неважно, как я это сделаю), какую информацию я должен выдать? Что спросят у меня? Что я отвечу?".
Что спросить до решения и что ответить после — вот главные моменты анализа условий.
Пример. Узнать, сколько в заданной таблице встречается нулей.
Проведем анализ условий. Если я должен выполнить такое задание, какая информация мне нужна? Что я должен спросить? Во-первых, надо знать саму таблицу, в которой ведется поиск. Во-вторых, надо знать, что искать. Этой информации достаточно. Следовательно, аргументы алгоритма — таблица (количество элементов и их значения).
Что я должен сообщить после решения? Сколько раз 0 встречается в таблице. Следовательно, результат алгоритма — целое значение, показывающее это количество.
Мы определили, что нам дано и что необходимо найти.
Дано: Таблица чисел – имя её –a
тип элементов таблицы – целые числа integer
размерность – одномерная один индекс i
количество – n
заполнение начальных значений таблицы с клавиатуры
Найти Целое число – количество нулей k.
В задачах с таблицами ученики часто не могут придумать алгоритм, так как не до конца понимают основное ограничение — невозможность одновременной обработки всех элементов. "Зачем искать максимальный элемент, если я и так его вижу?" — вот "логика" подобного непонимания.
Помочь здесь может тот же знакомый прием "человек - исполнитель", или "пропускание через себя". Одно из воплощений этого приема — решение с голоса. Учитель предлагает ученикам: "Сейчас я назову вам несколько чисел, а когда я закончу, вы скажете мне количество нулей (или их сумму, или максимальное из них и т. д.)"
Обычно ученики легко обрабатывают последовательность из 10—15 чисел, а затем описывают свои действия.
Вот типичное описание процесса нахождения количество нулей: "Я запомнил число и сравнивал с 0. Если число было равно 0, то я, прибавлял единицу. Так каждое следующее число сравнивал с 0. Если число было равно 0, то я, прибавлял единицу".
Алгоритм придуман, причем придуман самостоятельно, без подсказки учителя!
Другое воплощение приема "человек-исполнитель" — представление массива в виде книжки, на каждой странице которой записан 1 элемент. Чтобы решить задачу, надо перелистать книжку, определенным образом обрабатывая информацию на каждой странице. В отличие от звукового способа, книжка помогает решать задачи не только анализа, но и заполнения (в книжке можно писать), а также нелинейного поиска (книжку можно открыть в любом месте).
В общем случае прием "человек-исполнитель" сводится к следующему. Прежде чем составлять алгоритм, ученик должен сам выполнить необходимые действия, соблюдая при этом ограничения, связанные с возможностями ЭВМ. В задачах на таблицы главное ограничение — невозможность охватить таблицу целиком, необходимость поэлементной обработки. Именно это ограничение моделируется при решении задач "с голоса" и "по книжке".
Прием "человек-исполнитель" эффективен при решении многих типов задач.
Самое трудное – это запись алгоритма.
Когда алгоритм в основном осознан, необходимо записать его. Здесь и возникают сложности, связанные с необходимостью обобщения: От последовательности простых операций надо перейти к записи цикла, то есть описать одной командой все действия. Помочь в этом случае может применение "свертки в цикл".
Суть этого метода в следующем. Сначала задача решается для таблицы известного небольшого размера, например, из 5 элементов. Составляем алгоритм без цикла, в котором отдельной строкой описана обработка каждого элемента. Используя "пропускание через себя", ученик словами описывает обработку очередного элемента, а затем записывает эти действия на алгоритмическом языке.
В полученной записи выделяются похожие строки, отличающиеся индексами элементов таблицы. Эти строки можно "свернуть в цикл", заменяя переменной численные значения индексов. Затем полученный алгоритм можно обобщить на случай таблицы произвольного размера.
Запишем наш алгоритм для таблицы из 5 элементов ( предполагаем таблица дана).
нач
если а[1]=0, то k: = 1 все
если а[2]=0, то k: = k+1 все
если а[3]=0, то k: = k+1 все
если а[4]=0, то k: = k+1 все
если а[5]=0, то k: = k+1 все
кон
2) В алгоритме 5 похожих строчек. Они отличаются только индексом элемента таблицы. Следовательно, их можно свернуть в цикл для. Границы изменения индекса в цикле для — от 1 до 5.
нач
нц для I от 1 до 5
если а[i]=0, то k: = k+1 все
кц
кон
3) Если в таблице не 5 элементов, изменится только конечное значение счетчика цикла.
нц для I от 1 до n
если а[i]=0, то k: = k+1 все
кц
Теперь необходимо его перевести на язык программирования. Используя знания учащихся о заполнении массива с помощью ввода с клавиатуры
pascal
Program KOLICHESTVO_HULEY;
var I, N, K:integer;
A:array [1..50] of integer;
begin
write('Введите количество элементов массива: '); readln(N);
for I:=1 to N do
begin
write('A[',I,']=');
readln (A[I]);
end;
k:=0;{переменная, в которой будет храниться количество различных чисел}
for I:=1 TO N do
if A[I]=0 then k:=k+1;
writeln('Количество нулей в таблице : ', K);
end.
vbasic
Private Sub Command1_Click()
dim I, N, K as integer
dim A (1 to 50) as integer
n=inputbox( “Введите количество элементов массива:”,””)
for I=1 to N
a(i)=inputbox( “Введите значение элементов массива:”,””)
next i
k=0{переменная, в которой будет храниться количество различных чисел}
for I=1 TO N
print A(i);
if A(I)=0 then k=k+1
next i
print “Количество нулей в таблице : “, K
End Sub
Cумму элементов массива можно подсчитать по формуле S=S+A[I] первоначально задав S=0. Количество элементов массива можно подсчитать по формуле К=К+1, первоначально задав К=0. Произведение элементов массива можно подсчитать по формуле P = P * A[I], первоначально задав P = 1.
Можно также решать задачи используя вспомогательные массивы. Программа дана только на PASCAL, для VBASIC программа в приложении №1.
Задача №1. Дан линейный массив целых чисел. Подсчитать, сколько в нем различных чисел.
Идея решения: заводим вспомогательный массив, элементами которого являются логические величины (False - если элемент уже встречался ранее, True-иначе)
Program Razlichnye_Elementy;
var I, N, K, Kol:integer;
A:array [1..50] of integer;
Lo:array [1..50] of boolean;
begin
write('Введите количество элементов массива: '); readln(N);
for I:=1 to N do
begin
write('A[',I,']=');
readln (A[I]);
Lo[I]:=true; {Заполняем вспомогательный массив значениями true}
end;
kol:=0;{переменная, в которой будет храниться количество различных чисел}
for I:=1 TO N do
if Lo[I] then
begin
kol:=kol+1;
for K:=I to N do {Во вспомогательный массив заносим значение False, если число уже встречалось ранее или совпадает с текущим элементом A[I]}
lo[K]:=(A[K]<>A[I]) and Lo[K];
end;
writeln('Количество различных чисел: ', Kol)
end.
Задача №2.
Дана ведомость заработной платы рабочих в отделе. Найти среднюю зарплату.
Идея решения: Заполняем массив ZARPLATA с помощью датчика случайных чисел. Находим сумму всех элементов и делим на количество.
Постановка задачи:
Дано: массив - имя – ZARPLATA - размер максимум 50- тип целый - одномерный
N – количество рабочих
Найти: SR – среднюю зарплату
Мат. Модель: S:=S+ZARPLATA[i];
SR=S/N
Блок-схема.
Учитель разбирает построение блок-схемы, а ученики по ней пишут программу (один из сильных у доски)
PASCAL
Program SREDN_ZARPLATA;
uses cRT;
const m=50;
var I, N:integer;
ZARPLATA:array [1..m] of integer;
S, SR:real;
begin
write('Введите количество элементов массива: '); readln(N);
S:=0; {переменная, в которой будет храниться сумма}
randomize;
for I:=1 to N do
begin
ZARPLATA[I]:=random(10000);
writeln(ZARPLATA[I]);
end;
For I:=1 to N do
S:=S+ ZARPLATA[I];
SR:=S/N;{переменная, в которой будет храниться средне}
write(‘Средняя зарплата=’,SR:7:2);
end.
VBASIC
const m=50
dim I, N as integer
dim ZARPLATA (1 to m)as integer
dim S, SR as single
n=inputbox(“Введите количество элементов массива:”,””)
S=0 ‘{переменная, в которой будет храниться сумма}
for I=1 to N
ZARPLATA(i)=rnd()*10000
print ZARPLATA(i)
next i
For I=1 to N
S=S+ ZARPLATA(I)
next i
SR=S/N ‘{переменная, в которой будет храниться средне}
print “Средняя зарплата=”,SR
Практическая работа
1. Запустить интегрированную среду программирования. Введите текст программы KOLICHESTVO_HULEY, запустите программу на исполнение и проверьте правильность решения, задав исходные данные.
Тест: N = 10; элементы массива - 1, 2, 0, 2, 0, -1, 0, 34, 0, 3. Ответ: 5.
2. Введите текст программы SREDN_ZARPLATA и запишите файл на диск под соответствующим именем, а затем откомпилируйте его. После того как компиляция выполнится успешно, запустите программу на исполнение.
. Домашнее задание.
1. В массиве произвольной размерности подсчитать количество отрицательных и сумму положительных элементов.
2. Подсчитать количество всех нулевые элементы массива из 20 элементов и найти произведение не нулевых элементов.
3. Элементы заданного массива произвольной размерности расположить в обратном порядке.
4. В задаче средняя зарплата найти количество работников, которые получают зарплату ниже средней.
Вопросы
1. Что такое массив?
2. Как определить местоположение элемента в массиве?
3. Чto такое индекс? Каким требованиям он должен удовлетворять?
4. Особенности расположения элементов массива в памяти ЭВМ. Особенности расположения в памяти элементов многомерных массивов.
5. Каким образом задается описание массива, что в нем указывается?
6. 0бщие и отличительные черты одномерных, двумерных и n-мерных массивов?
7. Каким образом в Паскале (Бейсике) задается обращение к элементу массива?
8. Почему при описании массивов предпочтительнее употреблять константы, а не указать размеры массива в явном виде?
9. Что называют инициализацией массива, и зачем она применяется?
стр. 214-215 вопросы устно с 1-9
читать $9.1.1-9.1.2 стр.184-193
Задачи стр.217-218 29,32 а, з,и,27
Тема урока№6 «Поиск минимального и максимального элемента в массиве»
Цель урока: « Научить учащихся определять максимальный и минимальный элемент в массиве, находить порядковый номер заданного элемента»
Ход урока:
Проверка домашнего задания.
Разбор двух логических задач:
1. Какое максимальное количество может поместиться в одномерный массив, если наибольший порядковый номер элемента совпадает с минимальным числом? (Два)
А если речь идет о максимальном натуральном числе? Ответ на данный вопрос дать невозможно, так как ряд натуральных чисел бесконечен.)
2. Чему равно значение максимального числа в одномерном массиве, имеющем размер 100?(Значение числа не зависит от размера и размерности массива, поэтому исходных данных для ответа на вопрос недостаточно.)
На карточках задание типа.
Имеются описания;
PASCAL | VBASIC |
const m=5 | const m=5 |
var а:array [1..30] of real; | Dim a(1to30) as single |
b: array [1..2+m] of integer; | Dim b(1. to.2+m) as integer, |
c: array [0..9] of string; | C(0 to..9) as string, |
d: array [1..m] of byte | D(1.to. m) as byte |
для каждого из массивов а, b, с и d указать!
а) сколько в нем элементов;
б) какие значения могут принимать его элементы;
в) как указать его первый и последний элементы.
Ответить на следующие вопросы.
а) Может ли массив содержать один элемент? А ни одного?
б) Можно ли во время выполнения программы изменять размер массива (количество элементов в нем)?
в) Могут ли элементами некоторого массива быть числа, 1.41, 1.73 и 2?
г) Верно ли, что тип элементов массива может быть любым?
д) Может ли типом индекса массива быть тип integer или real(single)?
Указать ошибки в следующих описаниях:
Pascal | Vbasic |
const n=50; | const n=50 |
var | dim |
вектор=array [real] of integer; цифры=аггау [true..false] of (1,2,3,4); var k;l..maxmt; | вектор [real] of integer; цифры [true..false] as (1,2,3,4); dim k;l..maxmt; |
x:array [l..k] of char; | x [l. to. k] of char; |
Новый материал.
Одним из основных действий выполняемых над элементами массива является поиск минимального или максимального элемента. Например, дан список класса и список ростов каждого ученика, необходимо найти самого высокого, т. е. найти ученика, у которого рост самый большой. Дана температура воздуха за неделю, найти самый холодный день, т. е. найти минимальную температуру. Как мы видим, что мы почти каждый день сталкиваемся с задачами на поиск минимального или максимального элемента в массиве.
В данном случае тоже хорошо применим метод «человек-исполнитель» и свертка цикла. По шаговое исполнение алгоритма на доске или с учениками. Можно проиграть момент, называя числа, ученики определяют большее из них. Подвести учеников к данному алгоритму.
Найти максимальный элемент в таблице.
Для таблицы из одного элемента максимум равен этому элементу. При добавлении очередного элемента максимум становится равным этому новому элементу, если он больше прежнего максимума. Алгоритм для таблицы из 5 элементов:
нач
max:=a[1]
если а[2]>max то max:=а[2] все
если a[3]>max тo max: =а[3] все
если а[4]> max тo max: =а[4] все
если a[5]> max тo max:=а[5] все
кон
В алгоритме четыре похожих фрагмента. Первая строчка она похожа на все остальные, следовательно, при свертке она не изменится. Границы изменения индекса — от 2 (не от 1) до 5.
max:=а[1]
нц для I от 2 до 5
если а[ i ]>max то
max:=а[i]
все
кц |
Обратить внимание учащихся, что первый элемент в начале равен максиму.
Если знак сравнения заменить на противоположный в алгоритме, то найдем минимальный элемент.
Составим программу, которая формирует одномерный массив случайных чисел, выполняет поиск максимального элемента массива, а затем выводит на экран его значение и порядковый номер в массиве.
В разделе описания констант запишем размер массива Count=20, опишем массив целых чисел М следующим образом: М : array [I..Count] of byte(dim M(1 to count) as byte). Используем целые переменные для хранения значений максимального элемента массива — Мах, его индекса — Numer_Мах;
В начале программы присвоим элементам массива значения случайных целых чисел и выведем список элементов на экран:
Randomize;
{формирование одномерного массива случайной функцией Random(Count*2) (rnd()*count*2)}
Pascal | Vbasic |
for I:= 1 to Count do | for I= 1 to Count |
begin | M(I)= int(Rnd()*(Count*2) + 1) |
M[I]:= Random(Count*2) + 1; | Print M(I),” “ |
Write(M[I],' '); | Next I |
end; | |
Writeln; |
Перед началом поиска максимального элемента допустим, что его первый элемент и является максимальным элементом, а его индекс указывает позицию максимального элемента в массиве. Это запишется так:
Мах := М[1] ; (Max=M(1)){Считать, 1-й элемент максимальным}
Numer_Max:=1; (Number_Max=1) {Заполнить номер максимального элемента}
Повторяющийся просмотр массива с поиском максимального элемента, начиная со второго выполняется оператором повтора с параметром, который одновременно указывает индекс очередного элемента. Сравнение очередного элемента массива с максимальным осуществляется оператором if M[I] > Max then. Если очередной элемент массива больше, чем максимальный, то следует считать его значение максимальным и запомнить его индекс. Данный Фрагмент программы запишется таким образом:
for I := 2 to Count do {Проверить все элементы, начиная со второго}
begin
if M[I] > Max then {Если очередной (1-й) элемент массива больше чем Мах}
begin
Мах := М[i]; {то считать максимальным i-й элемент}
Numer_Max:=i; {и запомнить его порядковый номер}
end;
end;
В заключительной части программы запишем вывод результата поиска максимального элемента массива:
Pascal | Vbasic |
Writeln('Максимальный элемент — ', Мах) | Print “'Максимальный элемент — “, Мах |
Writeln('Он расположен на ', Numer_Max,' месте') | Print “'Он расположен на “, Numer_Max,” месте” |
Текст программы ученики могут записать сами, (сильный ученик у доски или текст учитель заранее пишет на доске, а потом ученики проверяют решение). Полный текст программы получится таким:
Pascal
program Max_Elem; {Поиск максимального элемента массива}
Uses CRT;
const •
Count =20;
var M : array [1..Count] of byte;
Max, I, Numer_Max : byte;
begin
Randomize;(Формирование одномерного массива случайной функцией Random(Count*2) и вывод массива на экран}
for I := 1 to Count do
begin
M[I] := Random(Count*2) + 1;
Write (M[I],' ');
end;
Writeln;
Max := M[1] ; {Считать 1-й элемент максимальным}
Numer_Max:=1; {Запомнить номер максимального элемента}
for I := 2 to Count do {Проверить все элементы, начиная со второго}
begin
if M[I] > Max then {Если очередной (1-й) элемент массива больше чем Мах}
begin
Мах := М[i]; {То считать максимальным 1-й элемент}
Numer_Max:=i; {И запомнить его порядковый номер}
end ;
end;
Writeln{'Максимальный элемент — ', Мах);
Writeln('Он расположен на ', Numer_Max,' месте');
end.
Vbasic
Private Sub Command1_Click()
const •Count =20
Dim M (1 to Count) as byte, Max, I, Numer_Max as byte ’{Формирование одномерного массива случайной функцией Random(Count*2) и вывод массива на экран}
for I = 1 to Count
M(I)= int(Rnd()*(Count*2) + 1)
print M(I);”“;
next i
Max = M(1) ‘{Считать 1-й элемент максимальным}
Numer_Max=1 ‘{Запомнить номер максимального элемента}
for I = 2 to Count ‘{Проверить все элементы, начиная со второго}
if M(I) > Max then ‘{Если очередной (1-й) элемент массива больше чем Мах}
Мах = М(i) ‘{То считать максимальным 1-й элемент}
Numer_Max=i ‘{И запомнить его порядковый номер}
end if
next i
print “Максимальный элемент — “, Мах
print “Он расположен на “, Numer_Max,” месте”
End Sub
Практическая работа.
Упражнение'№1
Запустите интегрированную среду программирования. Введите текст программы Мах_Еlem и запишите файл на диск под соответствующим именем, а затем откомпилируйте его. После того как компиляция выполнится успешно, несколько раз запустите программу на исполнение. Просматривая экран пользователя, убедитесь, что всякий раз в программе генерируется новый упорядоченный набор данных - — массив М. и в этом массиве определяется значение максимального элемента и его порядковый номер.
|
Из за большого объема этот материал размещен на нескольких страницах:
1 2 3 4 5 6 |


