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

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

Страница 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

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

Упрямство
каприз воспитание детский упрямство Упрямство – это своеобразная защитная реакция ребенка, протест против ущемления его самостоятельности. И, кстати, чем он сильнее, тем сильнее его Я – основа будущего характера. Подумайте, какой ценой вы стремитесь оставить его в прежних рамках? И не думайте, что ...

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

Подготовка и показ демонстрационных опытов
Любому демонстрационному опыту отводится краткий промежуток времени, и поэтому он всегда должен быть тщательно подготовлен и проверен. Демонстрационный эксперимент ставится как иллюстрация к объяснению нового материала. Демонстрация опытов – это искусство, требующее особых навыков и напряженного вн ...

Главное на сайте

Copyright © 2024 - All Rights Reserved - www.focuseducation.ru