Методическая разработка «Одномерные массивы» на языке программирования pascal в теории и практике школьного курса «Информатика и икт»





Скачать 298.43 Kb.
НазваниеМетодическая разработка «Одномерные массивы» на языке программирования pascal в теории и практике школьного курса «Информатика и икт»
страница2/3
Дата публикации20.08.2014
Размер298.43 Kb.
ТипМетодическая разработка
100-bal.ru > Информатика > Методическая разработка
1   2   3

Ввод значений элементов массива с клавиатуры


Пример:

Const n = 5;

Var num : array [1..n] of real;

I : integer;

begin

for i:=1 to n do begin

write(’Вводите элемент номер ’,i,’ ’);

readln(num[i]);

end;


  • Ввод значений элементов из текстового файла


Текстовый файл должен содержать значения элементов массива, записанные так, как будто бы их вводят с клавиатуры (через пробел, ‘Enter’ и т.п.). В программе должна быть объявлена переменная типа TEXT, которая будет указывать на текстовый файл, файл нужно открыть и указывать на него в каждом операторе ввода (или вывода).
Пример:


В файле my.txt в каталоге C:\tp\bin должны быть размещены в столбик пять вещественных чисел
var F : TEXT;

i : integer;

M : array [1..5] of real;

begin

assign(F,’C:\tp\bin\my.txt’);

reset(F);

for i:=1 to 5 do readln(F,M[i]);

close(F);




  • Присвоение элементам значений по какой-либо закономерности


Пример: присвоение элементам массива целых чисел, проиндексированных от 1 до n, утроенного значения соответствующего индекса:

Const n = 5;

Var num : array [1..n] of integer;

I : integer;

begin

for i:=1 to n do

num[i]:=i*3;




  • Задание значений элементов массива с использованием
    генератора псевдослучайных чисел


Генератором псевдослучайных чисел называют функцию RANDOM. Обращаться к этой функции можно двумя способами:

  • При вызове функции без параметра она возвращает дробное число в интервале от 0 до 1 (0- включается, а 1 – нет)
    пример: R:=RANDOM;

  • При вызове функции с указанием параметра – целого положительного числа N функция возвращает целое число в интервале от 0 до N (0- включается, а N– нет)

пример: NUM:=RANDOM(10);
num получит в качестве значения одно из чисел 0..9.
Чтобы значения, возвращаемые генератором, различались при повторных запусках программы, необходимо до обращения к генератору инициализировать его процедурой RANDOMIZE

Пример:

Const n = 5;

Var num : array [1..n] of integer;

I : integer;

begin

randomize;

for i:=1 to n do

num[i]:=random(5)+10;



В примере элементы массива получают случайные значения от 10 до 14 включительно

    1. Вывод элементов массива


Целые числа из массива выводятся последовательно через пробел. Завершающий оператор WriteLn обеспечивает начало возможного последующего вывода программы с новой строки.
Вывод массива в Паскале осуществляется также поэлементно, в цикле, где параметром выступает индекс массива, принимая последовательно все значения от первого до последнего.
Var

A: array [1..10] of integer;

I : byte ; {переменная I вводится как индекс массива}

Begin

For i :=1 to 10 do

Write ( a [ i ],’ ‘); {вывод массива осуществляется в строку, после каждого элемента печатается пробел}
Вывод можно осуществить и в столбик с указанием соответствующего индекса. Но в таком случае нужно учитывать, что при большой размерности массива все элементы могут не поместиться на экране и будет происходить скроллинг, т.е. при заполнении всех строк экрана будет печататься очередной элемент, а верхний смещаться за пределы экрана.
Var

A: array [1..10] of integer;

I : byte ; {переменная I вводится как индекс массива}

Begin

For i:=1 to 10 do

Writeln (‘a[‘, i,’]=’, a[i]); { вывод элементов массива в столбик }


  1. Обработка одномерных массивов

    1. Нахождение максимального и минимального элемента массива


Перед началом поиска максимального элемента допустим, что его первый элемент и является максимальным элементом, а его индекс указывает позицию максимального элемента в массиве. Это запишется так:
max := m[1]; {Cчитать 1-й элемент максимальным}

numer_max := 1; {Запомнить номер максимального элемента}
Для организации просмотра элементов будем использовать оператор цикла с параметром, который будет указывать индекс очередного элемента (переменная цикла будет индексом элемента массива).

Сравнение очередного элемента массива с максимальным осуществляется оператором

if m[i] > max then….
Если очередной элемент массива больше, чем максимальный, то следует считать его значение максимальным и запомнить его индекс. Данный фрагмент кода записывается таким образом:
for i:= 2 to n do

begin

if m[i]> max then

begin

max:= m[i];

numer_max:= i;

end;

end;

Для поиска минимального элемента и его порядкового номера меняем обозначения:
min - значение наименьшего элемента;
numer_min - его порядковый номер.
Перед началом поиска предполагаем, что первый элемент массива минимальный, и его индекс - номер минимального элемента. При сравнении очередного элемента с минимальным, меняем знак отношения на противоположный.

    1. Вычисление суммы и количесства элементов массива




  1. Вычисление суммы элементов одномерного массива.


Для вычисления суммы всех элементов массива берем переменную S и присваиваем ей такое начальное значение, чтобы оно не повлияло на результат суммирования. Таким числом является ноль (S:=0). Затем в цикле к переменной S прибавляем элемент массива

for i:=1 to n do S:=S+a[i]…
PROGRAM Summa;

const n=10;

var a:array[1..n] of real;

S:real; i:integer;

BEGIN

{заполнение массива}

for i:=1 to n do

begin

write (‘введите‘,i,’-й элемент’);

readln (a[i]);

end;

S:=0;

for i:=1 to n do S:=S+ a[i];

write ('сумма элементов массива равна ',S:7:3);

readln;

END.


  1. Вычисление суммы положительных элементов массива

Для вычисления суммы положитеных элементов в цикле используем условный оператор

if A[i]>0 then …..для проверки элементов на положительность
program PositivSumm;

const n=10;

var a:array[1..n] of real;

S:real; i:integer;

BEGIN

{заполнение массива}

for i:=1 to n do

begin

write (‘введите‘,i,’-й элемент’);

readln (a[i]);

end;

{ Присвоим переменным начальные значения }

S:=0; { Переменная S будет накапливать сумму всех положительных элементов. }

for i:=l to N do

if A[i]>0 then

S:=S+A[i];

writeln('Сумма положительных элементов =',S)

;readln; end.

  1. Подсчитать количество отрицательных элементов одномерного массива a[n] вещественных чисел.


Для вычисления количества элементов массива, удовлетворяющие условию, берем переменную p и присваиваем ей такое начальное значение, чтобы оно не повлияло на результат суммирования. Таким числом является ноль (p:=0). Затем в цикле, проверяем условие и к переменной p прибавляем единицу



for i:=1 to n do

if a[i]<0 then p:=p+1;

.

Program KOLICHESTVO;

Var a: array[1..100] of real;

n,p,i: integer;

begin

write('Введите количество элементов: ');

readln(n);

write('Введите элементы массива');

for i:=1 to n do readln(a[i]);

p:=0;

for i:=1 to n do

if a[i]<0 then p:=p+1;

writelen ('Количество отрицательных элементов ',p);

readln;

end.


    1. Сортировка массива


Сортировка — перестановка местами объектов в определенном порядке. Известно несколько сотен алгоритмов сортировки. Рассмотрим два способа сортировки.


  1. Метод прямого выбора

Алгоритм сортировки массива по возрастанию методом прямого выбора может быть представлен так:

  1. Просматривая массив с первого и до последнего элемента, найти минимальный и поменять его местами с первым элементом.

  2. Просматривая массив со второго и до последнего элемента, найти минимальный и поменять его местами со вторым элементом.

  3. И, так далее, до последнего элемента.

Пример работы алгоритма:

  • Исходный массив: 8, 3, 6, 1, 4

( меняются местами 8 и 1)

  • После первого шага: 1, 3, 6, 8, 4

( меняются местами 3 и 3)

  • После второго шага: 1, 3, 6, 8, 4

(меняются местами 6 и 4)

  • После третьего шага: 1, 3, 4, 8, 6

(меняются местами 8 и 6)

  • После четвертого шага: 1, 3, 4, 6, 8

Program Vibor;

const

SIZE = 5;

var

a: array [1..SIZE] of integer;

i,j,buf,k: integer;

begin

for k:=1 to SIZE do read (a [k]);

for i:=1 to SIZE -1 do

{поиск минимального элемента в части массива от a[i] до a[SIZE]}

begin

min:= i;

for j:= i + 1 to SIZE do

if a [j] < a[min] then min:= j;

{поменяем местами a [min] и a [i]}

buf:= a [i];

a [i]:= a [min];

a [min]:= buf;

end;

{выведем массив}

writeln (‘Массив отсортирован^’);

for k:= 1 to SIZE do write (a [k], ‘ ‘);

readln;

end.



  1. Метод простого обмена
    (пузырьковая сортировка)

В основе алгоритма лежит обмен соседних элементов массива.

Каждый элемент массива, начиная с первого, сравнивается со следующим и, если он больше следующего, то элементы меняются местами.

Таким образом, элементы с меньшим значением продвигаются к началу массива, а элементы с большим значением – к концу массива (всплывают), поэтому этот метод иногда называют методом “пузырька”.

Пример работы алгоритма простого обмена

Первый проход:

(5 1 4 2 8) (1 5 4 2 8), Здесь алгоритм сравнивает два первых элемента и меняет их местами.

(1 5 4 2 8) (1 4 5 2 8), Меняет местами, так как 5 > 4

(1 4 5 2 8) (1 4 2 5 8), Меняет местами, так как 5 > 2

(1 4 2 5 8) (1 4 2 5 8), Теперь, ввиду того, что элементы стоят на своих местах (8 > 5), алгоритм не меняет их местами.

Второй проход:

(1 4 2 5 8) (1 4 2 5 8)

(1 4 2 5 8) (1 2 4 5 8), Меняет местами, так как 4 > 2

(1 2 4 5 8) (1 2 4 5 8)

(1 2 4 5 8) (1 2 4 5 8)

Program Obmen;

const n=5;

var

a: array [1..n] of integer;

i,k, buf: integer;

begin

for k:= 1 to n do read (a [k]);

for i:=1 to n-1 do

for j:=i+1 to n do

if a[i]>a[j] then

begin

buf:=a[i];

a[i]:=a[j];

a[j]:=buf;

end;

writeln;

writeln('Массив после сортировки пузырьковым методом: ');

for i:=1 to n do write(a[i],' ');

end.



    1. Удаление элемента массива


Задача 1:

Допустим, имеется одномерный массив, содержащий числа от 0 до 49 включительно. Требуется исключить из него все элементы, значения которых меньше 15.
Алгоритм решения задачи:
Присваивание значение n переменной m требуется, т.к. n - константа и не может быть изменена. Поскольку при "просмотре" массива в цикле while некоторые элементы будут удаляться, то значение m, обозначающее длину массива, будет уменьшаться.
Если очередной элемент не удаляется, то переходим к просмотру следующего элемента (i := i + 1) и не уменьшаем массив (m не меняется).
Program vvv;

const n = 20;

var

arr: array[1..n] of integer;

i, j, m: integer;

begin

randomize;

for i := 1 to n do begin

arr[i] := random(50);

write(arr[i]:4);

end;

m := n;

i := 1;

while i <= m do

if arr[i] < 15 then begin

for j := i to m - 1 do

arr[j] := arr[j+1];

m := m - 1

end

else

i := i + 1;

for i:= 1 to m do

write(arr[i]:4);

readln

end.

Задача 2:
Произвести удаление элемента из одномерного массива. Номер удаляемого элемента вводится с клавиатуры.
program рrim3;

var a.array [1..1000] of integer;

i,k,n:integer;

begin

randomize;

write(' число элементов n=');readln(n);

for i:=1 to n do

begin

a[i]:=random(45)-22;

write(a[i], ' ');

end;

write(' номер удал. элем. k=<п ');readln(k); { Вводим номер удаляемого элемента.}

for i:=1 to n-1 do

begin

{Смещаем элементы массива к началу, начиная с К-го.}

if i>=k then a[i]:=a[i+1];

end;

{Обнуляем последний элемент.}

a[n]:=0;

{Выводим на экран измененный массив.}

for i:=1 to n - 1 do

begin

write(a[i],' ');

end;

readln;

end.

1   2   3

Похожие:

Методическая разработка «Одномерные массивы» на языке программирования pascal в теории и практике школьного курса «Информатика и икт» icon«Разработка алгоритмов и программирование на языке Pascal»
Лабораторный практикум содержит методические указания к выполнению лабораторных работ по алгоритмизации и программированию на языке...
Методическая разработка «Одномерные массивы» на языке программирования pascal в теории и практике школьного курса «Информатика и икт» iconУгринович Н. Д. Информатика и икт. Профильный уровень: учебник для 10 класса
Егэ» увеличено количество часов за счет уменьшения количества часов на темы «Моделирование и формализация» и «Информационное общество»....
Методическая разработка «Одномерные массивы» на языке программирования pascal в теории и практике школьного курса «Информатика и икт» iconУсвоить понятие программы, структуры программы на языке Turbo Pascal,...
На прошлых уроках мы познакомились с понятием алгоритма и основами алгоритмизации. Давайте вспомним, что такое алгоритм, какими свойствами...
Методическая разработка «Одномерные массивы» на языке программирования pascal в теории и практике школьного курса «Информатика и икт» iconПрограмма по формированию навыков безопасного поведения на дорогах...
Планирование составлено на основе авторской программы курса 8-го класса Информатика и икт «Алгоритмизация и программирование на языке...
Методическая разработка «Одномерные массивы» на языке программирования pascal в теории и практике школьного курса «Информатика и икт» iconРабочая программа учебного курса «Информатика и икт»
Икт. В настоящее время, преимущественно за счет регионального и школьного компонентов, выстроена многоуровневая структура предмета...
Методическая разработка «Одномерные массивы» на языке программирования pascal в теории и практике школьного курса «Информатика и икт» iconПрограмма по формированию навыков безопасного поведения на дорогах...
Рф изучение предмета «Информатика и икт» предполагается в 8-9 классах, но с целью реализации непрерывного изучения курса «Информатика...
Методическая разработка «Одномерные массивы» на языке программирования pascal в теории и практике школьного курса «Информатика и икт» iconПрограмма по формированию навыков безопасного поведения на дорогах...
Данный урок рассматривается как обобщающий по пройденным темам “Одномерные массивы” и “Двумерные массивы”, а, кроме того, знакомит...
Методическая разработка «Одномерные массивы» на языке программирования pascal в теории и практике школьного курса «Информатика и икт» iconПрограмма по формированию навыков безопасного поведения на дорогах...
С целью реализации непрерывного изучения курса «Информатика и икт» в образовательном учреждении за счет часов школьного компонента...
Методическая разработка «Одномерные массивы» на языке программирования pascal в теории и практике школьного курса «Информатика и икт» iconПрограмма по формированию навыков безопасного поведения на дорогах...
С целью реализации непрерывного изучения курса «Информатика и икт» в образовательном учреждении за счет часов школьного компонента...
Методическая разработка «Одномерные массивы» на языке программирования pascal в теории и практике школьного курса «Информатика и икт» iconПояснительная записка с целью реализации непрерывного изучения курса...
Икт, в том числе овладение умениями работать с различными видами информации, самостоятельно планировать и осуществлять индивидуальную...
Методическая разработка «Одномерные массивы» на языке программирования pascal в теории и практике школьного курса «Информатика и икт» iconПояснительная записка с целью реализации непрерывного изучения курса...
Икт для 5-7 классов средней общеобразовательной школы» изданной в сборнике «Программы для общеобразовательных учреждений: Информатика....
Методическая разработка «Одномерные массивы» на языке программирования pascal в теории и практике школьного курса «Информатика и икт» iconПояснительная записка Элективный курс «Основы программирования на языке Turbo Pascal»
Изучение курса позволяет учащимся более полно выявить свои способности в изучаемой области знаний, создать предпосылки по применению...
Методическая разработка «Одномерные массивы» на языке программирования pascal в теории и практике школьного курса «Информатика и икт» iconОдномерные массивы
Ребята, мы закончили изучать раздел русского языка, который изучает звуки и буквы. Кто скажет, как он называется?
Методическая разработка «Одномерные массивы» на языке программирования pascal в теории и практике школьного курса «Информатика и икт» iconРабочая программа по Информатике и икт 9 класс
«Информатика и икт» составлена на основе авторской программы Н. Д. Угриновича «Преподавание базового курса «Информатика и икт» в...
Методическая разработка «Одномерные массивы» на языке программирования pascal в теории и практике школьного курса «Информатика и икт» iconРабочая программа педагога кирсановой В. И., Вкк ф. И. О., категория...
«Информатика и икт» в социально-экономическом профиле изучается на базовом уровне с учебной нагрузкой 1 час в неделю, за счет школьного...
Методическая разработка «Одномерные массивы» на языке программирования pascal в теории и практике школьного курса «Информатика и икт» iconУрокам тема №5: программирование на языке turbo-pascal. Организация...
Цели и задачи: Знакомство с операторами цикла языка Turbo-Pascal. Выработка навыков работы в Turbo-Pascal. Решение практических задач...


Школьные материалы


При копировании материала укажите ссылку © 2013
контакты
100-bal.ru
Поиск