Какой ряд данных можно назвать целочисленным массивом
Перейти к содержимому

Какой ряд данных можно назвать целочисленным массивом

Одномерные массивы в языке программирования Паскаль

Назад Вперёд

Понятие «массив» носит фундаментальный характер. Самым удобным способом хранения большого количества однотипных данных является массив. Обработка массивов является основой практически любой программы.

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

Созданная обучающая программа может использоваться при изучении темы «Одномерные массивы в языке программирования Паскаль» в среднем и старшем звене общеобразовательной школы.

В презентации имеется главное меню, то есть Содержание (Презентеция), с которого с помощью гиперссылок мы можем перейти на любой пункт меню (слайд 2).

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

1. Одномерный массив

1.1. Понятие «массив»

С понятием «массив» приходится сталкиваться при решении научно-технических и экономических задач обработки совокупностей большого количества значений. В общем случае массив – это структурированный тип данных, состоящий из фиксированного числа элементов, имеющих один и тот же тип.

Название регулярный тип (или ряды) массивы получили за то, что в них объединены однотипные (логически однородные) элементы, упорядоченные (урегулированные) по индексам, определяющим положение каждого элемента в массиве. (Приложение 1 [13, с.181])

Массив – это составной объект, образованный из элементов (компонент) одного и того же типа. Такой тип данных применяется в программировании для обозначения объектов, аналогичных числовым последовательностям в математике, где сразу целая группа чисел обозначается одним именем (чаще всего буквой), а для обращения к каждому отдельному числу данной последовательности используются различные индексы (номера элементов). В математике это может выглядеть, например, так:

Таким образом, в программировании массив – это последовательность однотипных элементов, имеющих общее имя, причем каждый элемент этой последовательности определяется порядковым номером (индексом) элемента.

  • Х1, Х2, …, Хn одномерный массив, состоящий из n элементов;
  • А0, А1, А2, …, А10 одномерный массив,состоящий из 11 элементов.

Массивы бывают одномерными (один индекс), двумерными (два индекса) и т.д.

Структура массива всегда однородна. Массив может состоять из элементов типа integer , real или char , либо других однотипных элементов. Другая особенность массива состоит в том, что к любой его компоненте можно обращаться произвольным образом. Программа может сразу получить нужный ей элемент по его порядковому номеру (индексу). Номер элемента массива называется индексом. Индекс – это значение порядкового типа, определенного, как тип индекса данного массива. (Приложение 1 [13, с.181]). Тип индекса определяет границы изменения значений индекса.

  • Х – имя массива;
  • 1, 2,…,n – индексы (порядковые номера) элементов;
  • Х7 седьмой элемент массива Х.

1.2. Описание одномерных массивов

Одномерный массив – это фиксированное количество элементов одного типа, объединенных одним именем, причем каждый элемент имеет свой уникальный номер, и номера элементов идут подряд. (Приложение 1 [12, с.100])

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

Тип массив описывается следующим образом:

Переменную типа массив можно описать сразу в разделе описания переменных Var:

Var Имя переменной: array [тип индекса (ов)] Of тип элементов;

  • Array – служебное слово (в переводе с английского означает «массив»);
  • Of – служебное слово (в переводе с английского означает «из»).
  • Тип индекса – любой порядковый тип, кроме типов integer,longint.
  • Тип же самих элементов может быть любым, кроме файлового типа.
  • Количество элементов массива называется его размерностью. Несложно подсчитать, что при последнем способе описания множества индексов размерность массива равна: максимальное значение индекса – минимальное значение индекса + 1.

Массив Х – одномерный, состоящий из двадцати элементов вещественного типа. Элементы массива хранятся в памяти компьютера последовательно друг за другом.

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

Индексы элементов массива могут начинаться с любого целого числа, в том числе и отрицательного, например:

Type bb = Array [-5..3] Of Boolean;

Массивы данного типа будут содержать 9 логических переменных, пронумерованных от -5 до 3.

1.3. Ввод и вывод одномерных массивов в Паскале

Ввод и вывод массивов осуществляется поэлементно.

Введем одномерный массив Х, состоящий из 30 элементов, то есть необходимо ввести некую последовательность элементов Х1, Х2, …, Х30.

Пусть i индекс (порядковый номер) элемента в массиве Х. Тогда

Для ввода массива можно использовать любой цикл.

Первый вариант: ввод массива с использованием цикла с предусловием (Рисунок 1).

Program Primer_1;

Var i: integer;

X: array [1..30] of Integer;

Begin

i := 1;

While i <= 30 Do

Begin

Read (X[i]); i := i + 1

End;

Readln

End.

Можно ввести с клавиатуры элементы следующим образом:

-7 _ 4 _ -2 _ 0 _ 12 _ -1 _ -5 _ 9 _ 11 _ -3 _ -5 _ … _15, то есть через пробел ввести в строчку и нажать клавишу Enter.

Можно было ввести элементы в столбец, отделяя элементы клавишей Enter, то есть каждый элемент с новой экранной строки:

В первом варианте ввод массива Х в программе осуществляется с использованием цикла с предусловием.

Второй вариант: ввод массива с использованием цикла с постусловием (Рисунок 2).

Program Primer_2;

Var i: integer;

X: array [1..30] of Integer;

Begin

i := 1;

Repeat

Read (X[i]); i := i + 1

Until i > 30;

Readln

End.

Массив X введен с использованием цикла с постусловием.

Третий вариант: ввод массива с использованием цикла с параметром (Рисунок 3).

Program Primer_3;

Var i: integer;

X: array [1..30] of Integer;

Begin

For i := 1 To 30 Do Read (X[i]);

Readln

End.

Массив вводится с помощью цикла с параметром, где в качестве параметра используется индекс элемента массива (i).

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

В программе вместо операторов Read или Readln используются операторы Write или Writeln. Но просто заменить одни операторы на другие здесь недостаточно. Для того чтобы выводимые значения не сливались между собой, надо явным образом вставлять между ними разделитель – пробел или перевод строки. Приведем два возможных способа вывода массива:

  • For i := 1 To n Do Write (X[i],’ ‘);
  • For i := 1 To n Do Writeln (x[i]).

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

Например, выведем одномерный массив Х1, Х2, …, Хn, состоящий из элементов вещественного типа, используя цикл с параметром (Рисунок 4):

Program Primer_4;

Const n = 30;

Var i: Integer;

X: Array [1..n] Of Real;

Begin

For i:= 1 To n Do Write (X[i] : 6 : 2, ‘ ‘);

Writeln;

Readln

End.

2. Примеры решения задач

2.1. Вычисление суммы и произведения элементов массива, удовлетворяющих заданному условию.

Задача 1. Дан целочисленный одномерный массив, состоящий из n элементов. Найти сумму и произведение нечетных элементов, кратных 3. (Презентация)

Введем обозначения: n – количество элементов в массиве; А – имя массива; i – индекс элемента массива; Ai – i-й элемент массива A; s – сумма нечетных элементов массива, кратных 3; p – произведение нечетных элементов массива, кратных 3.

Входные данные: n, A.

Выходные данные: s, p.

Первоначально сумма искомых элементов равна нулю: не просуммировано ни одно слагаемое, то есть s:=0. Далее, используя любой оператор цикла, просматриваем весь массив от первого и до последнего элемента. И если при этом элемент массива нечетный и кратен 3, то к уже накопленной сумме добавляется очередное слагаемое, т.е. s:= s + A[i]. Здесь слева и справа от знака присваивания записано имя одной и той же переменной s, именно это обеспечивает постепенное накопление суммы: s справа – уже вычисленное известное значение суммы, s — ее новое, вычисляемое значение.

При просмотре массива можно сразу вычислить и произведение элементов массива, удовлетворяющих заданному условию. Произведение вычисляется с помощью оператора p:=p*A[i]. При этом p справа и p слева имеют разные значения: p справа – уже известное, вычисленное ранее значение произведения, p слева – новое, вычисляемое его значение. Первоначально искомое произведение равно единице, т.е. p:=1.

При решении этой задачи можно использовать любой из видов циклов. Рассмотрим несколько вариантов решения задачи.

Первый способ. Для решения используется цикл с параметром:

Program Primer1_1;

Var A: Array[1..20] Of Integer;

i, n, s, p: Integer;

Begin

Write (‘n=’); Readln (n);

For i:=1 To n Do Readln (A[i]);

s:= 0; p:=1;

For i:=1 To n Do

If (A[i] mod 2 <>0) and (A[i] mod 3 = 0) Then

Begin

s:=s+A[i]; p:= p*A[i]

End;

Writeln (‘s=’, s, ‘p=’, p);

Readln

End.

Второй способ. Для решения используется цикл с предусловием:

Program Primer1_2;

Var A: Array[1..20] Of Integer;

i, n, s, p: Integer;

Begin

Write (‘n=’); Readln (n); i:=1;

While i <= n Do

Begin

Readln (A[i]); i:= i + 1

End;

s:= 0; p:=1; i:=1;

While i<=n Do

Begin

If (A[i] mod 2 <>0) and (A[i] mod 3 = 0) Then

Begin

s:=s+A[i]; p:= p*A[i]

End; i:= i + 1

End;

Writeln (‘s=’, s, ‘p=’, p);

Readln

End.

2.2. Нахождение количества элементов, удовлетворяющих заданному условию

Задача 2. Дан массив целых чисел. Найти количество тех элементов, значения которых положительны и не превосходят заданного натурального числа А. (Презентация)

Введем обозначения: n – количество элементов в массиве; X – имя массива; i – индекс элемента массива; Xii-й элемент массива X; А – заданное число; k – количество элементов, значения которых положительны и не превосходят заданного числа А.

Входные данные: n, X, A.

Выходные данные: k.

Вводим с клавиатуры значение числа А. Количество элементов, значения которых положительны и не превосходят заданного числа А, вначале полагаем равным нулю, то есть k:=0. Если очередной элемент массива положителен и не превосходят заданного числа A, то количество таких элементов нужно увеличить на единицу, то есть k:=k + 1. Таким образом, обрабатываются все элементы массива.

При решении этой задачи можно использовать любой из видов циклов. Рассмотрим несколько вариантов решения задачи.

Первый способ. Для решения используется цикл с параметром:

Program Primer2_1;

Var X: Array[1..20] Of Integer;

i, n, k, A: Integer;

Begin

Write (‘n=’); Readln (n);

For i:=1 To n Do Readln (X[i]);

Write (‘A=’); Readln (A); k:= 0;

For i:=1 To n Do

If (X[i] >0) and (X[i] <= A) Then k:=k + 1;

Writeln (‘k=’, k);

Readln

End.

Второй способ. Для решения используется цикл с постусловием:

Program Primer2_2;

Var X: Array[1..20] Of Integer;

i, n, k, A: Integer;

Begin

Write (‘n=’); Readln (n); i:=1;

Repeat

Read (X[i]); i := i + 1

Until i > n;

Write (‘A=’); Readln (A); k:= 0; i:=1;

Repeat

If (X[i] >0) and (X[i] <= A) Then

k:=k + 1; i := i + 1

Until I > n;

Writeln (‘k=’, k);

Readln

End.

2.3. Нахождение номеров элементов, обладающих заданным свойством

Задача 3. Найти номера четных элементов, стоящих на нечетных местах. (Презентация)

Введем обозначения: n – количество элементов в массиве; X – имя массива; i – индекс элемента массива; Xi – i-й элемент массива Х.

Входные данные: n, X.

Выходные данные: i.

Необходимо просмотреть весь массив. Если просматриваемый элемент является четным, а его порядковый номер – нечетный, то вывести его номер. При решении этой задачи можно использовать любой из видов циклов.

Составим программу с помощью цикла с параметром:

Program Primer3_1;

Var X: Array[1..20] Of Integer;

i, n: Integer;

Begin

Write (‘n=’); Readln (n);

For i:=1 To n Do Readln (X[i]);

For i:=1 To n Do

If (X[i] mod 2 = 0) and (i mod 2<>0) Then Write (i:5);

Readln

End.

Задача 4. Найти номер последнего отрицательного элемента массива.

Введем обозначения: n – количество элементов в массиве; А – имя массива; i – индекс элемента массива; Ai – i-й элемент массива A; m – номер последнего отрицательного элемента массива.

Входные данные: n, A.

Выходные данные: m.

Последний отрицательный элемент массива – это первый отрицательный элемент, который встретится при просмотре массива с конца. Если очередной элемент не является отрицательным, то нужно уменьшать значение текущего индекса (i:=i-1), пока он не станет меньше номера первого элемента или не будет найден отрицательный элемент. Переменная m получает значение i (номер отрицательного элемента), т.е. m := i. Если в массиве нет отрицательного элемента, то значение переменной m остается равным нулю.

Program Primer3_2;

Const n=10;

Var A: Array[1..n] Of Integer;

i, m: Integer;

Begin

For i:=1 To n Do Readln (A[i]);

m := 0; i:=n;

While (i >= 1) and (A[i] >=0) Do i:=i-1; m:=i;

Writeln (‘m=’, m);

Readln

End.

Массивы в языке программирования Си
учебно-методический материал на тему

Лебедева Дарья Владимировна

Конспекты занятий по теме «Массивы» для студентов 2 курса специальности 09.02.03 «Программирование в компьютерных системах» разработаны в соответствии с программой дисциплины «Основы программирования».

Занятие 1. Одномерные массивы. Действия над массивами

Занятие 2. Алгоритмы сортировки массивов

Занятие 3. Двумерные массивы

Занятие 4. Массивы символов. Функции для работы со строками

Скачать:

Вложение Размер
konspekty_zanyatiy_.doc 310.5 КБ
dvumernye.pptx 125.12 КБ
sortirovka.pptx 164.41 КБ

Предварительный просмотр:

по изучению темы "Массивы в языке программирования Си"

По дисциплине: «Основы программирования»

Для специальности: 09.02.03 «Программирование в компьютерных системах»

Конспекты занятий по теме «Массивы» для студентов 2 курса специальности 09.02.03 «Программирование в компьютерных системах» разработаны в соответствии с программой дисциплины «Основы программирования».

Тема: Одномерные массивы. Действия над массивами

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

Тип занятия : изучение нового материала

  1. Организационный момент

Сообщение темы и целей урока.

  1. Изучение нового материала

В программах очень часто приходится обрабатывать большие объёмы однотипных данных. Применять обычные переменные для этого очень неудобно: представьте себе 1000 переменных с разными именами и одинакового типа, которые нельзя обработать в цикле. Эту проблему позволяет решить использование массивов.

Массив – совокупность переменных (элементов) одинакового типа и с общим названием. Доступ к элементам массива осуществляется простым указанием номера элемента – индекса.

Массивы могут быть одномерные и многомерные. Сегодня мы рассмотрим одномерные массивы.

Одномерный массив – массив, в котором элементы расположены последовательно друг за другом и имеют один индекс.

Примеры: 1,6; 5; -6,02; 8,78; -10,1 – массив из 5 вещественных чисел

a; b; c; d; f; g – массив из 6 символов

Каждый массив обозначается именем:

Каждый элемент массива обозначается именем массива и индексом. Индекс определяет положение элемента массива относительно его начала, его порядковый номер. Чтобы обратиться к элементу массива, надо написать имя массива и затем в квадратных скобках номер нужного элемента. Важно запомнить одно важное правило: элементы массивов в языке Си нумеруются с нуля. Таким образом, если в массиве 10 элементов, он содержит элементы: A[0], A[1], A[2], . A[9]

В данном случае:

A – имя переменной – элемента массива.

i – номер элемента в массиве – индекс.

Значение элемента А[2] – 9, значение элемента А[5] – 0.

Примеры обращения к массиву A:

x = (A[3] + 5)*A[1]; // прочитать значения A[3] и A[1]

A[0] = x + 6; // записать новое значение в A[0]

printf(“%d\n”,A[0]);//вывод значения A[0]

scanf(“%d”, &A[0]);// ввод значения А[0]

Пусть дан массив D:

  • Из скольких элементов состоит этот массив?
  • Определите значение элементов:

Объявление одномерного массива

Примеры объявления массивов:

int a[10]; // Целочисленный массив a, размер – 10 элементов

double vect[20]; // Массив вещественных чисел vect,

//в нём 20 элементов

При объявлении массива можно сразу заполнить его начальными значениями, перечисляя их внутри фигурных скобок:

Если в списке в фигурных скобках записано меньше чисел, чем элементов в массиве, то оставшиеся заполняются нулями. Если чисел больше, чем надо, транслятор сообщает об ошибке. Например:

int A[4] = < 2 >; // при этом последние три элементы равны 0

Для повышения универсальности программы размер массива лучше определять в директиве препроцессора #define, например:

означает заменить во всем тексте программы слово N на число 10 . В этом случае для переделки программы для массива другого размера надо только поменять число в строке #define.

В современных программах на языке Си++ рекомендуется использовать константы вместо директивы #define, например:

Примеры объявления массива:

Способы заполнения массивов

Первый способ заполнения одномерного массива – это заполнение с клавиатуры.

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

Рассмотрим несколько задач:

Задача 1 . Ввод с клавиатуры. Ввести с клавиатуры массив из 10 элементов, и вывести полученный массив на экран.

Анализ задачи : К сожалению, невозможно просто сказать компьютеру: «введи массив A». Мы должны каждый элемент прочитать отдельно. Чтобы ввести массив в память, надо каждый его элемент обработать отдельно (например, вызвав для него функцию ввода scanf). Для ввода массива будем использовать цикл for.

Вводить можно столько элементов массива, сколько ячеек памяти выделено. Помните, что элементы массива нумеруются с нуля, поэтому если массив имеет всего 10 элементов, то последний элемент имеет номер 9. Если пытаться записывать в 10-ый элемент, произойдет выход за границы массива и программа скорее всего будет работать неверно. При вводе массива желательно выдать на экран общую подсказку для ввода всего массива и подсказки для каждого элемента.

Вывод массива на экран выполняется также в цикле for. Элементы выводятся по одному. Если в конце строки-формата в операторе printf поставить пробел, то элементы массива будут напечатаны в строчку, а если символ “\n” – то в столбик.

int i, A[N];// Массив А типа int, размер — 10 элементов

printf(“Введите массив A\n”);

printf("Введите A[%d] -> ", i );// функция printf выводит «подсказку»

scanf ("%d", &A[i]);// scanf запрашивает значение элемента массива с

// Вывести массив на экран

Задача 2. Заполнение случайными числами. Заполнить массив случайными целыми числами в интервале [-10,10], вывести на экран массив.

Анализ задачи : Чтобы задать случайное число используется функция random(). Для получения случайных чисел с равномерным распределением в нтервале [a,b] надо использовать формулу:

k = random ( b – a + 1 ) + a;

В приведенном ниже примере массив A заполняется случайными целыми числами в интервале [-10,10]: random(21) -10.

randomize();// функция инициализации датчика случайных чисел

// Заполнить массив случайными числами

A[i] = random(21) – 10;

//вывести массив на экран

Задача 3. Нахождение суммы и произведения элементов.

// Заполнить массив случайными числами

x[i] = random(26) – 10;//заполнения случайным образом элементов

// в диапазоне [-10,15]

// Найти сумму и произведение

printf("p = %d\n", p); // Произведение

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

Анализ задачи : Необходимо найти максимум массива – элемент с наибольшим численным значением. Для этого будем использовать следующий алгоритм:

  1. Заполните массив int a[10] случайными числами
  2. В переменную max поместите элемент массива a[0], а в переменную index – 0.
  3. Перейти к следующему элементу массива
  4. Если элемент массива больше значения переменной max, то поместить его значение в переменную max, а его индекс в переменную index
  5. Если текущий элемент – не последний, то перейти к пункту 2
  6. Вывести массив a и значение переменных max и index

int i, max, index;

// Заполнить массив случайными числами

A[i] = random(11) – 5;

max = A[0]; // В самом начале считаем,

index = 0; // что a[0] — максимум

// Вывести массив на экран

// Вывести максимум на экран

printf("max = %d index = %d\n", max, index);

  1. Подведение итогов урока
  1. Что такое массив? (Ответ: Массив – совокупность данных одного типа и с общим названием. ).
  2. Как выглядят инструкции объявления массива? (Ответ: Тип ИмяМассива[Размер] )
  3. Как обозначается элементы массива? Ответ: Каждый элемент массива обозначается именем массива и индексом: ( ) = .
  4. С помощью какого оператора осуществляется ввод и вывод одномерного массива? Ответ: С помощью оператора цикла .
  5. . Какой оператор является телом цикла при вводе массива? Ответ: Оператор INPUT.
  6. Какой оператор является телом цикла при выводе массива? Ответ: Оператор PRINT.

Выставление оценок учащимся.

Тема : Алгоритмы сортировки одномерных массивов

Цель: развитие навыка решения задач на обработку и сортировку одномерных массивов.

  • повторение алгоритмов ввода и вывода элементов одномерного массива;
  • формирование у учащихся навыков составления алгоритмов сортировки массива методом прямого выбора и методом пузырька.
  • развитие алгоритмического мышления;
  • развитие интереса к программированию;
  • развитие внимательности и самостоятельности при решении задач на компьютере.
  • воспитание сотрудничества;
  • воспитание собранности, ответственного отношения к своему труду;
  • формирование умения применять на практике полученные знания.

Тип урока : комбинированный.

  1. Организационный момент

Постановка темы и целей занятия

  1. Актуализация пройденного материала
  1. Что такое массив?

Ответ: Массив – совокупность данных одного типа и с общим названием.

  1. Что такое индекс элемента массива?

Ответ: Индекс определяет положение элемента массива относительно его начала, его порядковый номер.

  1. Какой ряд данных можно назвать массивом?
  1. а, 4, б, 5, с, 6
  2. 2.3, 5.7, 10.89
  3. 3, 6, 3, 2, massiv
  1. Найдите правильное описанием массива:
  1. int A[N];
  2. int A[10];
  3. define N 30
  1. int A[]
  2. int N=20
  1. Какое условие будет использовано для подсчета четных элементов массива а?
  1. if (a[i]/2) k++;
  2. if (i%2==0) k++;
  3. if (a[i]%2==0) k++;
  1. Изучение нового материала

Сортировка – один из наиболее распространенных процессов обработки данных. Сортировкой числового массива называют расположение его элементов в возрастающем или убывающем по величине порядке.

Под сортировкой массива подразумевается процесс перестановки элементов с целью упорядочивания их в соответствии с каким-либо критерием.

Существует достаточно много методов (алгоритмов) сортировки массивов. Мы рассмотрим два из них: метод прямого выбора и метод обмена (метод “пузырька”)

Сортировка массива по возрастанию методом пузырька. В этом методе сначала поднимается "наверх" (к началу массива) самый "легкий" элемент (минимальный), затем следующий и т.д. Делается это так. Сравниваем последний элемент с предпоследним. Если они стоят неправильно, то меняем их местами. Далее так же рассматриваем следующую пару элементов и т.д. Когда мы обработали пару A[0]-A[1], минимальный элемент стоит на месте A[0] . Это значит, что на следующих этапах его можно не рассматривать. Например пусть задан неупорядоченный массив В = (4,5,2,1,3), тогда шаги сортировки будут выглядеть следующим образом:

При следующем проходе наша задача — поставить на место элемент A[1] . Делаем это так же, но уже не рассматриваем A[0] , который стоит на своем месте. Сделав N-1 проходов, мы установим на место элементы A[0]-A[N-2] . Это значит, что последний элемент уже тоже стоит на своем месте.

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

(последовательно меняются местами 1 и 2, 1 и 5, 1 и 4)

(последовательно меняются местами 2 и 5, 2 и 4)

(последовательно меняются местами 3 и 5, 3 и 4)

Алгоритм сортировки массива по возрастанию методом «пузырька»

Фрагмент программы, реализующий сортировку массива по возрастанию методом пузырька.

for ( j = N-2; j >= i; j — )

c = A[j]; // меняем местами A[j] и A[j+1]

Вопрос: Что нужно изменить в алгоритме, чтобы выполнялась сортировка массива по убыванию?

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

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

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

(последовательно меняются местами 4 и 2, 2 и 1)

(последовательно меняются местами 5 и 4, 4 и 2)

(последовательно меняются местами 5 и 4, 4 и 3)

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

Алгоритм использует вложенные циклы. Внешний цикл (счетчик шагов) последовательно выбирает номер элемента массива, куда следует записывать найденный в неупорядоченной части массива минимальный элемент. Внутренний цикл перебирает номера неупорядоченных элементов при поиске минимального элемента. Для внешнего цикла достаточно шагов на один меньше, чем элементов в массиве.

Алгоритм сортировки методом прямого выбора.

Фрагмент программы, реализующий сортировку массива по возрастанию методом прямого выбора.

A[i] = A[j]; // меняем местами A[j] и A[j+1]

Вопрос: Что нужно изменить в алгоритме, чтобы выполнялась сортировка массива по убыванию?

  1. Закрепление нового материала.

Упражнения для закрепления материала:

  1. Задан массив целых чисел A[7]. Требуется упорядочить в нем элементы по возрастанию, применяя метод «пузырька». Покажите, как будет выглядеть массив после каждого шага сортировки.

Учащиеся по очереди называют значения элементов массива на каждом шаге.

Ответ для проверки:

  1. Задан массив целых чисел С[6]. Требуется упорядочить в нем элементы по возрастанию, применяя метод выбора. Покажите, как будет выглядеть массив после каждого шага сортировки.

Учащиеся по очереди называют значения элементов массива на каждом шаге.

Ответ для проверки:

  1. Самостоятельная работа учащихся за компьютером.

Учащиеся разбиваются на группы по два человека. Учащимся предлагается выполнить два задания.

  1. Дан массив А[20]. Массив задать случайными числами в диапазоне

[-40,40]. Вывести значения элементов массива на экран. Отсортировать массив по убыванию методом пузырька. Вывести отсортированный массив на экран.

  1. Дан массив А[20]. Заполнить массив числами в диапазоне от -50 до 50. Вывести значения элементов массива на экран. Отсортировать массив по возрастанию линейным методом. Вывести полученный массив на экран.
  1. Проверка работ учащихся.

Для проверки решений учащимся демонстрируются заранее приготовленные программы.

Задание 1 . Программа пузырьковой сортировки массива по убыванию.

//сортировка методом пузырька

for ( j = N-2; j >= i; j — )

c = A[j]; // меняем местами A[j] и A[j+1]

printf(“\n Отсортированный массив:\n”);

Задание 2 . Программа линейной сортировки по возрастанию

A[i] = A[j]; // меняем местами A[j] и A[j+1]

printf(“\n Отсортированный массив:\n”);

  1. Подведение итогов урока.

Подводятся итоги урока, выставляются оценки.

Тема: Двумерные массивы

Цель: формирование представления о двумерном массиве и выработка первичных навыков решения задач с применением двумерных массивов;

  • способствовать формированию представления о двумерном массиве;
  • познакомить с типовыми алгоритмами обработки матриц на языке С;
  • создать условия для формирования умения решать алгоритмы с двумерными массивами;
  • развитие алгоритмического мышления;
  • развитие интереса к программированию;
  • развитие внимательности и самостоятельности при решении задач на компьютере.
  • воспитание собранности, ответственного отношения к своему труду;
  • воспитание повышения мотивации к учебной деятельности;
  • формирование умения применять на практике полученные знания;
  • воспитание сотрудничества.

Тип урока : комбинированный.

Методическое обеспечение урока:

компьютерная презентация “Двумерные массивы” (Приложение 1);

  1. Организационный момент

Постановка темы и целей занятия

  1. Опрос. Актуализация полученных знаний
  1. Изложение нового материала
  • дадим определение двумерному массиву
  • рассмотрим форму записи двумерного массива
  • рассмотрим некоторые действия, которые можно выполнять над массивами.

Определение двумерного массива

Матрица — это система элементов a ij , расположенной в прямоугольной таблицы

В информатике матрица представляется в виде двухмерного массива, то есть массива, все элементы которого имеют два индекса.

Двумерный массив, как и таблица, состоит из строк и столбцов. Два индекса элемента — это и есть номера строки и столбца, на пересечении которых этот элемент находится. Первый индекс двумерного массива C — это число рядов, а второй индекс — это число столбцов. Пример двумерного массива А:

Из скольких строк состоит этот массив?

Из скольких столбцов?

Назовите значения элементов массива — а[1,2], a[2,0], a[0,1], a[0,2].

Назовите элементы массива, значениями, которых являются только отрицательные числа?

В общем виде а[i][j] – то есть местоположение каждого элемента определяется индексом-номером строки и индексом- номером столбца. Нигде не определено, что i- номер строки, а j- номер столбца, так как выводом на экран занимается программист, он сам решает, как ему удобнее

Объявление двумерного массива.

Форма объявления двумерного массивы:

тип имя_массива [размер_1][размер_2];

выделит место в памяти под массив целых чисел, имеющую 20 строк и 10 столбцов (всего 20*10=200 элементов).

При объявлении можно сразу задать все или часть ее элементов, например так:

Как видно из примера, элементы каждой строки заключаются в отдельные фигурные скобки. Если задать не все элементы, то остальные заполнятся нулями:

Здесь элементы X[1][2], X[2][1] , и X[2][2] будут нулевыми.

В то же время инициализации

Различны. Сооответсвующие массивы будут заполнены следующим образом:

Типовые алгоритмы обработки матриц на языке Си

(условимся что массив A состоит из n строк и m столбцов)

  1. Использование генератора случайных чисел. Заполнение элементов массива в диапозоне от -10 до 10:

A[i][j] = random(21) -10;

  1. Вывод матрицы в виде таблицы:
  1. Сумма элементов массива

Вопрос: Как найти произведение?

  1. Суммирование элементов каждой строки.

Результатом является массив с именем d, состоящий из n сумм элементов строк.

Вопрос: Как найти сумму по строкам?

  1. Поиск минимального элемента двумерного массива.

Переменная min используется для хранения значения минимального элемента, k – номер строки, l – номер столбца, где он находится:

printf(“Минимальный элемент %d”,min);

Вопрос: Как найти минимальный элемент?

  1. Закрепление изученного материала. Самостоятельная работа студентов.

Учащиеся разбиваются на разноуровневые группы по два человека. Учащимся предлагаются задания трех уровней сложности.

Задача. Написать программу, которая для целочисленной матрицы 2х3 определяет среднее арифметическое ее элементов. Диапазон чисел [-3,3].

Задача. Написать программу, которая для целочисленной матрицы 3х4 определяет количество положительных элементов в каждой строке. Диапазон чисел [-20,20].

Задача. Написать программу, которая находит номера первых отрицательных элементов каждого столбца массива 3х4. Номера элементов хранить в отдельном массиве. Диапазон чисел [-10,10].

Итоги урока, постановка домашнего задания.

Тема: Массивы символов. Функции для работы со строками

Цель: формирование навыка решения задач на обработку массива символов.

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

Тип урока : изучение и первичное закрепление новых знаний

В языке С символьная строка — это одномерный массив типа char, который заканчивается нулевым байтом. Нулевой байт – это байт, каждый бит которого равен нулю. Для нулевого байта определена специальная символьная константа ‘ \0’. Это следует учитывать при описании соответствующего массива символов. Так, если строка должна содержать N символов, то в описании массива следует указывать N+1 элемент.

предполагает, что строка содержит 10 символов, а последний байт зарезервирован под нулевой байт.

Начальное значение строки можно задать при объявлении в двойных кавычках после знака равенства:

Если строка не будет изменяться во время работы программы, то можно объявить константу (постоянную строку) так:

#define PRIVET "Привет!"

Для ввода и вывода строк с помощью функций scanf и printf используется специальный формат “%s”: без знака &),

printf("Вы ввели строку — %s!", str);>

Однако у функции scanf есть одна особенность: она заканчивает ввод, встретив первый пробел. Если надо ввести всю строку целиком, включая пробелы (то есть до нажатия на клавишу Enter), придется делать иначе, заменив вызов scanf на gets (); Для вывода строки на экран можно (кроме printf) использовать и функцию puts, которая после вывода строки еще и дает команду перехода на новую строку.

Функции для работы со строками

В языке Си есть достаточно много специальных функций, которые работают со строками — последовательностями символом с нулевым символом на конце. Для использования этих функций надо включить в программу заголовочный файл #include

  1. Функция strlen(s) – возвращает длину строки s, при этом завершающий нулевой байт не учитывается. Пример:

printf ( “Длина строки %s равна %d”, s, l );

В этом примере функция определит, что длина строки равна 7.

  1. Функция сравнение строк – strcmp (s1,s2)

Функция возвращает ноль, если строки s1 и s2 равны (то есть содержат одно и то же число одинаковых символов) и ненулевое значение, если строки различны. Если строки не равны, функция возвращает «разность» между первой и второй строкой, то есть разность кодов первых различных символов. В таблице показано несколько примеров (код буквы ‘A’ равен 65, код буквы ‘B’ – 66, код буквы ‘C’ – 67).

Иногда надо сравнить не всю строку, а только первые несколько символов. Для этого служит функция strncmp(s1,s2,n). Третий параметр этой функции n – количество сравниваемых символов. Принцип работы такой же — она возвращает нуль, если заданное количество первых символов обеих строк одинаково.

  1. Функция копирование строк – strcpy(s1,s2)

Простое копирование выполняет функция strcpy. Она принимает два аргумента: сначала строка-приемник s1, потом — источник s2.

Еще одна функция позволяет скопировать только заданное количество символов, она называется strncpy(s1,s2,n) и принимает в третьем параметре n — количество символов, которые надо скопировать. Важно помнить, что эта функция НЕ записывает завершающий нуль, а только копирует символы (в отличие от нее strcpy всегда копирует завершающий нуль).

В результате на экране будет выведена фраза «Ку»

  1. Объединение строк — strcat (s1,s2) позволяет добавить строку источник s2 в конец строки-приемника s1 (завершающий нуль записывается автоматически).

В результате на экране будет выведена фраза «Могу, хочу. Надо!»

  1. Закрепление изученного материала.
  1. Самостоятельная работа студентов.

Учащиеся разбиваются на разноуровневые группы по два человека. Учащимся предлагаются задания трех уровней сложности.

Задача №1: Определить длину строки "Основы алгоритмизации и программирования".

Задача №2: Получить из слов "Интер", "нет" слово "Интернет".

Задача №1: Получить из слов "Язык", "Turbo", "Pascal" фразу "Язык Turbo Pascal".

Задача №1: Получить из слова "Позитроника" слово "трон".

Итоги урока, постановка домашнего задания.

1. Немцова Т.И. Программирование на языке высокого уровня. Программир. на языке С++: Уч. Пос. — М.: ИД ФОРУМ: ИНФРА-М, 2012. – 512 с

2. Герберт Шилд. С++ Базовый курс. Издательство: Вильямс 2014.

Предварительный просмотр:

Подписи к слайдам:

Тема урока: Двумерные массивы

Вопросы для повторения: Что такое сортировка массива? Какие виды сортировок вы знаете? Задан массив целых чисел С[6]. Требуется упорядочить в нем элементы по возрастанию, применяя метод выбора. Покажите, как будет выглядеть массив после каждого шага сортировки. С 0 -5 8 2 7 -1 1 — й шаг 2-й шаг 3-й шаг 4-й шаг 5-й шаг

Двумерные массивы Матрица — это система элементов a ij , расположенной в прямоугольной таблицы В информатике матрица представляется в виде двухмерного массива , то есть массива, все элементы которого имеют два индекса. Двумерный массив, как и таблица, состоит из строк и столбцов . Два индекса элемента — это и есть номера строки и столбца, на пересечении которых этот элемент находится. Первый индекс двумерного массива C — это число рядов , а второй индекс — это число столбцов . Пример двумерного массива C : 3

Каждый элемент двумерного массива описывается как a [ i ][ j ] , где: а – имя массива i — номер строки j – номер столбца

Объявление двумерного массива Форма объявления двумерного массивы: тип имя_массива [размер_1][размер_2]; Например, оператор выделит место в памяти под массив целых чисел, имеющую 20 строк и 10 столбцов (всего 20*10=200 элементов). int B[20][10];

Объявление двумерного массива с помощью директивы #define #define n 20 #define m 10 void main ()

Использование генератора случайных чисел. Заполнение элементов массива в диапазоне от -10 до 10: randomize (); for ( i = 0 ; i = i ; j — ) if ( A[j] A[j] ) < c = A[ i ]; A[ i ] = A[j]; // меняем местами A[j] и A[j+1] A[ j ] = c ; >8

Упражнения для закрепления материала: Задан массив целых чисел A[7]. Требуется упорядочить в нем элементы по возрастанию, применяя метод «пузырька». Покажите, как будет выглядеть массив после каждого шага сортировки. А 5 -3 1 2 6 4 -7 1 -й шаг 2-й шаг 3-й шаг 4-й шаг 5-й шаг 6-й шаг 9

Задания по вариантам Задание №1. Дан массив А[20]. Массив задать случайными числами в диапазоне [-40,40]. Вывести значения элементов массива на экран. Отсортировать массив по убыванию методом пузырька. Вывести отсортированный массив на экран. Задание №2. Дан массив А[20]. Массив задать случайными числами в диапазоне [-40,40]. Вывести значения элементов массива на экран. Отсортировать массив по убыванию методом пузырька. Вывести отсортированный массив на экран. 10

По теме: методические разработки, презентации и конспекты

История развития языков программировани

План — конспект открытого урока. Включает в себя основной тематический материал и сценку по данной теме. .

Рабочая тетрадь «Язык программирования Turbo Pascal 7.1»

Основной формой практического освоения учебного материала в компьютерном классе является практическая работа. Использование рабочей тетради на уроках информатики позволяет более эффективно распо.

Статья по теме: «Инструментальные системы для создания контролирующих и обучающих программ без знания языков программирования»

Данная тема актуальная для подготовки к учебным занятия по дополнительной специальности «Теория и методика обучения информатике».

Презентация на тему «Работа с массивами в языке программирования С»

Определение одномерных и двумерных массивов. Инициализация, примеры.

Презентация. Программирование циклов (Язык программирования C++)

В презентации рассматриваются виды циклов, порядок их работы, а также вложенные циклы.

К олимпиаде по программированию. Тема «Длинная арифметика» (Язык программирования C++)

Разработка составлена в помощь студентам и содержит изложение материала по теме «Длинная арифметика», которая в литературе освещена не достаточно полно. Рассмотрены простейшие математические операции.

Презентация по теме «Массивы» для языка программирования Python

Презентация по теме "Массивы" для языка программирования Python создана как дополнение к презентации Полякова по программированию в 10 классе.

Одномерные массивы в Паскале

обучение PascalABC

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

Массив — самая распространенная структура хранения данных, присутствующая в любом языке программирования.

В Pascal используются одномерные и двумерные массивы. В школьной программе обычно их изучают в 9-10 классах.

Одномерный массив — это конечное количество однотипных элементов, объединенных общим именем. Каждому элементу присвоен свой порядковый номер. Обращение к элементам происходит по имени массива и индексу (порядковому номеру).

Одномерный числовой массив

Одномерные массивы называют линейными, так как элементы расположены друг за другом. Их можно представить в виде таблицы, в которой всего две строки. В первой перечислены индексы элементов, а во второй — значения элементов.

одномерный массив в паскале

Одномерный массив. Обозначение элементов

Имя массива формируется по тем же правилам, что и имя любой другой переменной в программе. Границы индексов задают при описании массива в квадратных скобках. Удобнее задавать начальный индекс равный единице. Конечный индекс определяется условием задачи и численно равен размеру массива — количеству элементов. Числовые массивы могут содержать целые и действительные числа. Тип элементов указывается в описании. Смотрите рисунок выше.

Способы заполнения одномерных массивов

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

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *