Разработка методического обеспечения для работы со структурным типом данных массив

Педагогические практики » Обучение решению задач из раздела "Основы алгоритмизации и программирования" » Разработка методического обеспечения для работы со структурным типом данных массив

Страница 1
Чтобы любую новую задачу решить с применением компьютера, необходимо предварительно создать соответствующую компьютерную программу. Технологический процесс разработки программы решения задачи включает следующие этапы [5]:1) построение информационной модели задачи;2) разработка алгоритма решения задачи;3) написание программы;4) отладка программы.Информационная модель задачи – это совокупность знаний и данных, содержащих всю необходимую информацию об объекте или процессе, в отношении которого эта задача сформулирована. Важнейшей составляющей информационной модели является метод решения, то есть конкретные соотношения, связывающие исходные данные задачи с нужными результатами. Частным случаем информационной модели является математическая модель.Разработка алгоритма – представление процесса решения задачи в виде последовательности определённых команд, выполнение которых обеспечивает получение нужных результатов.Написание программы – запись алгоритма на языке программирования.Отладка программы реализуется после ввода её в компьютер и состоит в обнаружении и устранении в ней синтаксических и семантических ошибок.Готовая отлаженная программа передаётся пользователю, который в любое удобное для себя время может применить её для решения соответствующей задачи на реальных исходных данных.При решении учебных задач учащимся предстоит научиться выполнять рая наиболее распространенных действий с массивами [9, с. 133]:1) описание;2) заполнение массива случайными числами;3) заполнение массива с клавиатуры;4) вывод на экран;5) поиск максимального элемента;6) вычисление суммы всех элементов массива;7) вычисление количества положительных элементов;8) удаление элементов из массива;9) добавление элементов в массив;10) замена элементов в массиве и другие.Заполнение массива случайными числами и вывод массива на экран. Рассмотрим задачу, в которой требуется с помощью датчика случайных чисел создать одномерный массив и вывести его на экран. Program Massiv1;Uses Crt;Const N=10;Var A: array [1 N] of integer; i: integer;BeginRandomize;For i:=1 to N do A[i]:=Random (100);ClrScr;Writeln (‘Введенный массив: ’);For i:=1 to N do write (A[i]: 4);Writeln;Readln;End. В данном примере мы заполнили массив случайными числами от 0 до 99, что обеспечила нам функция random (100). Если нам нужно получить случайные числа в другом диапазоне, например, не от нуля, расчет нужно сделать такой: функция random (N) выдаст N различных чисел от 0 до N-1. Если нам нужно, чтобы наименьшим числом диапазона было K, необходимо прибавить K к random (N). Наибольшее число, которое будет выдавать в этом случае формула random (N)+K, будет наибольшим числом диапазона.Функция random без аргумента генерирует случайные вещественные числа на промежутке [0;1). Если случайные вещественные числа должны принадлежать иному промежутку, например, [3;4), то значение элемента задается выражением A[i]:=random+3 [4, с. 29].Заполнение массива с клавиатуры. Заполним одномерный массив путем ввода с клавиатуры целых чисел и выведем его элементы на экран с противоположным знаком. Program Massiv2;Uses Crt;Const N=10;Type Mas: array [1 N] of integer;Var Line: Mas; i: integer;BeginFor i:=1 to N doBeginWrite (‘Введите элемент с индексом ’, i, ':');Readln (Line[i])End;For i:=1 to N do Write(-Line[i]: 5);Writeln;ReadlnEnd. Поиск максимального элемента массива. Поиск максимума – типичная задача для большого количества данных. Например, в списке успеваемости учеников класса найти самого прилежного. Иначе говоря, требуется выбрать наибольшее значение среднего балла и указать фамилию ученика. Program Maximum;Const N = 10;Type Mas = array [1 N] of integer;Var A: Mas; i, Max, Imax: integer;BeginRandomize;For i:= 1 to N doBeginA[i]:= -50+Random (101);Write (A[i]: 5)End.Writeln;Imax:= 1; Max:= A[1];For i:= 2 to N doIf Max < A[i] thenMax:= A[i]; Imax:=iEnd;Writeln (‘Максимальный элемент в массиве = ’, Max: 5);WriteLN (‘Его индекс = ’, Imax: 5);Readln;End.Заметим, что в процессе поиска максимума не обязательно хранить обе величины – номер максимума и его значение. Достаточно хранить одну, в зависимости от поставленной задачи. Если индекс максимума не нужно знать, достаточно будет переменной Max. Если нужен только номер – достаточно IMax. Тонкость состоит в том, что если нужно и то и другое, все равно достаточно найти только IMax, ведь значение максимума легко может быть получено по его индексу (A [IMax]).Вычисление количества положительных элементов. Подсчет суммы элементов, которые удовлетворяют какому-то условию, осуществляется по принципу перебора всех элементов массива (цикл for) и проверки для каждого элемента выполнение условия (оператор if). Если условие выполнено, добавим элемент к сумме (S:= S+A[i]). Program PositivSumm;Const N = 10;Type Mas = array [1 N] of integer;Var A: Mas; i, S: integer;BeginRandomize;For i:= 1 to N doBeginA[i]:= -100+random (201);Write (A[i]: 5)End;Writeln;S = 0;For i:= 1 to N doIf A[i] > 0 then S:= S+A[i];Writeln (‘Сумма положительных элементов= ’, S);ReadlnEnd. Удаление нескольких элементов. Дано число n, ряд из n чисел и число х. Необходимо найти и удалить все элементы со значением х, если такие есть в ряду. Оставшаяся часть сдвигается влево, сохраняя порядок чисел. Program Udalenie;Var n, i, Sdv, x: integer;Var A: array [1 100] of integer;BeginWriteln (‘Удалить числа: ’);Readln (n);(*Ввод массива A*)Readln (x);Sdv:=0; i:=1;While i<=n doBeginIf A[i]=x then Sdv:=Sdv+1Else A[i-Sdv]:=A[i];i:=i+1End;n:=n-Sdv;(*Вывод массива А*)End. В алгоритме по очереди просматриваются все элементы массива, начиная с первого. Элементы массива делятся на два вида: удаляемые и неудаляемые. Если в очередной клетке массива удаляемый элемент, тогда значение переменной Sdv увеличивается на единицу. Таким образом в переменной Sdv подсчитывается число удаляемых элементов.Если в рассматриваемой клетке находится неудаляемый элемент, то он сдвигается на Sdv позиций влево, как и определено правилом.Присоединение массива к массиву. Дано число m и ряд из m чисел. Затем дано число n и два ряда по n чисел. Требуется сформировать единый ряд чисел. Новый ряд получается при дописывании первого ряда в конец второго. Длина ряда увеличивается одной командой сразу на m. Program Prisoedinenie;Var n, m, i: integer;Var A, B: array [1 100] of integer;BeginWriteln (‘Объединение рядов: ’);Readln (m);(*Ввод массива В из m элементов*)Readln (n);(*Ввод массива A*)i:=1;While i<=m doBeginA[i+n]:=B[i];i:=i+1End;n:=n+m;(*Вывод массива А*)End. Первый ряд запоминается во вспомогательном массиве В, а длина ряда – в переменной m. Затем в массив А заноситься второй ряд. Теперь достаточно дописать ряд из массива В элемент за элементом в продолжение массива А.Перестановка соседей. Пусть дано число n и два ряда по n чисел в каждом. Требуется каждый элемент ряда, стоящий на четной позиции, поменять с предыдущим. Исполнение цикла по этому правилу должно начинаться со второго элемента ряда. Program Perestanovka;Var n, i, Buf: integer;Var A: array [1 100] of integer;BeginWriteln (‘Обмен чисел: ’);Readln (n);(*Ввод массива А*)i:=2;While i<=n doBeginBuf:=A[i];A[i]:=A[i-1];A[i-1]:=Buf;i:=i+2End;(*Вывод массива А*)End. В задаче исходный ряд чисел запоминается в массиве А. Затем числа ряда переставляются в массиве А в соответствии с условием задачи. Когда ряд полностью построен, содержимое массива А выводится на экран.Слияние двух массивов. Пусть дано число n и два ряда по n чисел в каждом. Необходимо построить ряд, в котором первый элемент равен большему из первых элементов исходных рядов. Второй элемент – большему из вторых элементов исходных рядов и так для всех элементов. Вывести получившийся ряд.Исходные данные задачи – два ряда чисел. Разместить эти числа можно в двух массивах: в А – первый ряд, а в В – второй ряд. Вычисляя элемент за элементом, будем выводить эти числа на экран [8, c. 67]. Program Sliyanie;Var n, i, Max: integer;Var A, B: array [1 100] of integer;BeginWriteln (‘Выбор в парах: ’);Readln (n);(*Ввод массива А*)(*Ввод массива В*)i:=1;While i<=n doBeginIf A[i]>B[i] then Max:=A[i]Else Max:=B[i];Write (Max, ‘’); i:=i+1EndEnd. Сортировка выбором. Сортировка выбором упорядочивает ряд из n чисел по возрастанию с использованием поиска наибольшего числа ряда. Среди всех элементов массива от A[1] до A[n] находим наиболший и меняем его местами с последним. Затем точно так же поступаем с рядом от A[1] до A[n-1]. Процесс завершается, когда дойдем до ряда из одного элемента A[1] [8, c. 73].Program SortVibor;Var n, i, j, Max, Pos: integer;Var A: array [1 100] of integer;BeginWriteln (‘Сортировка чисел: ’);Readln (n);(*Ввод массива А*)j:=n;While j>1 doBeginIf A[i]>Max thenBeginMax:=A[i]; Pos:=iEnd;i:=i+1;End;A[Pos]:=A[j]; A[j]:=Max;j:=j-1;End;(*Вывод массива А*)End. В программе переменная j указывает на последний элемент еще неотсортированной части ряда. В процессе поиска наибольший элемент среди чисел от A[1] до A[j] запоминается в переменной Max, а номер клетки – в переменной Pos. Затем найденный элемент меняется местами с элементом A[j]. Процесс поиска и обмена выполняется для значений j от n до 2 последовательно, постепенно уменьшая длину неотсортированной части ряда.
Страницы: 1 2 3

Новости образования:

Психолого-педагогическая характеристика учащихся старших классов
Для того, чтобы обучение проходило успешно при подборе материала и подготовке уроков необходимо учитывать возрастные особенности школьников. Мне кажется, что т.к. при изучении наглядной топологии, мы делаем один из главных акцентов на развитие пространственного представления, то необходимо разобрат ...

Взгляды выдающихся педагогов на роль эстетического воспитания школьников
Во все времена как отечественные, так и зарубежные педагоги уделяли эстетическому воспитанию школьников значительное внимание. Выдающийся русский педагог, основоположник научной педагогики в России, Константин Дмитриевич Ушинский, сформулировал роль этического, эстетического и эмоционального воспит ...

Сущность профессионального самоопределения
До 90-х гг. в отечественной педагогической теории профессиональное самоопределение рассматривалось в основном как идея профессиональной ориентации. Современное понимание профессионального самоопределения охватывает проблемы взаимосвязи профессионального самоопределения с общим жизненным самоопредел ...

Copyright © 2014-2021 - All Rights Reserved - www.soulula.site