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

Аннотация: Используя типовые алгоритмы можно решить любую задачу. В лекции очерчен круг НЕОБХОДИМЫХ ТИПОВЫХ АЛГОРИТМОВ (для обработки одномерных массивов и обработки строк), рассмотрены некоторые олимпиадные задачи, которые решаются с использованием этих алгоритмов. Цель лекции: научиться применять изученные типовые алгоритмы при решении классических задач.

Ключевые слова: элемент цикла

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

В данной теме будут рассматриваться такие типовые алгоритмы обработки одномерных массивов:

  • Заполнение, вывод элементов массива
  • Сумма, произведение элементов
  • Выбор по условию
  • Максимальный (минимальный) элемент
  • Вставка, удаление элементов
  • Инвертирование (изменения порядка следования элементов заданного массива на обратный)

Программные реализации типовых алгоритмов обработки одномерных массивов приведены в таблице 2.1:

input n dim a(n) for i=1 to n input a(i) next i
const n=10; Var a: array [1..n] of integer; begin for i:=1 to n do readln (a[i]); …
…for i=1 to n print a(i) ; » » ; next i
… for i:=1 to n do write (a[i]); …
… p=1 for i=1 to n s=s + a(i) p=p * a(i) next i
… s:=0; p:=1; for i:=1 to n do begin s:=s+a[i]); p:=p*a[i]); end; …
… p = 1 for i = 1 to n if then k=k+1:s=s+a(i):p=p*a(i) next i
… k:=0; s:=0; p:=1; for i:=1 to n do if then begin k:=k+1; s:=s+a[i]; p:=p*a[i]; end; …

… max = a(1): min = a(1) for i = 2 to n if a(i) > max then max = a(i) if a(i) < min then min = a(i) next i
… max:=a[1]; min:=a[1]; for i:=1 to n do begin if a[i] > max then max:=a[i]; if a[i] < min then min:=a[i]; end;
dim a(n + 1) … for i = n to k step -1 a (i + 1) = a(i) next a(k) = x
Var a: array [1..n+1] of… … for i:=n downto k do a[i+1]:=a[i]; a[k]:=x; …
. . . for i = k to n — 1 a(i) = a(i + 1) next

Python #20 Алгоритмы обработки массива

… for i:=k to (n-1) do a[i]:= a[i+1]; …
. . . for i = 1 to n/2 swap a(i), a(n-i+1) next
… for i:=1 to (n div 2) do begin х:=a[i]; a[i]:= a[n-i+1]; a[n-i+1] :=х; end …

Ключевые моменты в типовых алгоритмах:

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

if a[i]>max then begin max:=a[i]; imax:=i; end;

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

Задача: На плоскости изображено N прямоугольников (рис. 2.1). Каждый прямоугольник задан координатами левой нижней и правой верхней вершин. Определить, имеют ли прямоугольники общую площадь .

Читайте также:
Программа для тех кто не может забеременеть


Рис. 2.1.

Информатика 9 класс: Обработка массивов в языке Паскаль

Идея решения:

  • максимальная координата по оси Х левых нижних вершин прямоугольников будет меньше минимальной координаты правых верхних вершин и …
  • …максимальная координата по оси У левых нижних вершин прямоугольников будет меньше минимальной координаты правых верхних вершин, то …
  • …общая площадь есть.

В задаче необходимо использовать типовой алгоритм нахождения МАКСИМАЛЬНОГО (МИНИМАЛЬНОГО) ЭЛЕМЕНТА МАССИВА.

Для вычисления общей площади необходимо найти произведение разности:

  • максимальной координаты по оси Х левых нижних вершин прямоугольников и минимальной координаты правых верхних вершин и …
  • …максимальной координаты по оси У левых нижних вершин прямоугольников и минимальной координаты правых верхних вершин.

Программа на Бейсике:

input «введите количество прямоугольников»; n dim x1(n), x2(n),y1(n), y2(n) for i=1 to n input x1(i), x2(i), y1(i), y2(i) next xmax=x1(1) xmin=x2(1) ymax=y1(1) ymin=y2(2) for i=1 to n if x1(i) > xmax then xmax=x1(i) if x2(i) < xmin then xmin=x2(i) if y1(i) >ymax then ymax=y1(i) if y2(i) < ymin then ymin=y2(i) next if xmax

Программа на Паскале:

var x1, x2, y1, y2: array [1..10] of integer; n, i, xmax, xmin, ymax, ymin: integer; begin writeln (‘введите количество прямоугольников’); readln (n); for i:=1 to n do readln (x1[i], y1[i], x2[i], y2[i]); xmax:=x1[1]; xmin:=x2[1]; ymax:=y1[1]; ymin:=y2[2]; for i:=1 to n do begin if x1[i] > xmax then xmax:=x1[i]; if x2[i] < xmin then xmin:=x2[i]; if y1[i] >ymax then ymax:=y1[i]; if y2[i] < ymin then ymin:=y2[i]; end; if (xmax

Задача: Латинским квадратом называется массив, в строках и столбцах которого нет одинаковых элементов. Вывести на экран латинский квадрат размером NxN .

Идея решения: Заполнить 1 строку квадратного массива ( NxN ) числами от 1 до N . Вторая строка массива получается путем циклического сдвига элементов первой строки и т. д. (табл. 2.2). Циклический сдвиг можно реализовать, используя типовой алгоритм ВСТАВКИ-УДАЛЕНИЯ (в зависимости от направления циклического сдвига).

Таблица 2.2. Заполнение латинского квадрата путем циклического сдвига элементов
1 2 3 4 5
5 1 2 3 4
4 5 1 2 3
3 4 5 1 2
2 3 4 5 1

Решение на Бейсике:

input «размерность http://www.intuit.ru/2010/edi» >

Решение на Паскале:

<

div xmlns_edi=»http://www.intuit.ru/2010/edi» >

var a: array [1..10,1..10] of integer; n,i,j,x: integer; begin writeln (‘размерность=’); readln (n); for j:=1 to n do a[1,j]:=j; for i:=2 to n do begin for j:=1 to n do a[i,j]:=a[i-1,j]; x:=a[i,n]; for j:=n downto 2 do a[i,j]:=a[i,j-1]; a[i,1]:=x; end; for i:=1 to n do begin for j:=1 to n do write(a[i,j]); writeln; end; end.

Источник: intuit.ru

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

Помните: программы пишутся для машин, а читаются людьми Из фольклора программистов

  • Повторить основные понятия, определения, алгоритмы обработки одномерных массивов; правила описания одномерных массивов на языке программирования;
  • Выполнить упражнения на составление программ обработки массивов; провести компьютерный эксперимент.

Помните: программы пишутся для машин, а читаются людьми

Из фольклора программистов

Алгоритм – это четкая последовательность действий для определенного исполнителя, приводящая к выполнению поставленной цели.

Алгоритм – это четкая последовательность действий для определенного исполнителя, приводящая к выполнению поставленной цели.

Читайте также:
Антивирусные программы методы обнаружения вирусов

Базовые структуры алгоритмов: линейные, разветвляющиеся, циклические.

Базовые структуры

разветвляющиеся,

циклические.

Циклические алгоритмы это алгоритмы, последовательность действий в которых повторяется многократно.

Циклические алгоритмы это алгоритмы, последовательность действий в которых повторяется многократно.

Типы данных: целые действительные.

Типы данных:

действительные.

Массив – последовательность данных одного и того же типа, количество которых заранее известно.

Массив – последовательность данных одного и того же типа, количество которых заранее известно.

Источник: kopilkaurokov.ru

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

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

Лукьянчикова Елена Александровна, Донецкий учебно-воспитательный комплекс №114

Описание разработки

Цель урока:

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

Выполнить упражнения на составление программ обработки массивов; провести компьютерный эксперимент.

Задачи урока:

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

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

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

  1. Организационный момент. (2 мин.)
  2. Индукция. (2 мин.)
  3. Повторение и актуализация знаний, умений и навыков.(7 мин)
  4. Изучение нового материала с поэтапным закреплением. (10 мин)
  5. Компьютерный эксперимент.(15 мин)
  6. Физкультпауза. (3 мин)
  7. Рефлексия. (3 мин.)
  8. Домашнее задание. (1 мин)
  9. Подведение итогов урока. (2 мин)

Инструктаж по технике безопасности в компьютерном классе.

Оглашение темы и цели урока, мотивация учеников.

Для создания позитивного эмоционального настроения, включения чувственного аппарата, создания личностного позитивного отношения к предмету обсуждения, ученикам предлагается высказать свои надежды и ожидания от работы на уроке и указать свое эмоциональное состояние по методике Лукашина О.М. Учащиеся заполняют «таблицу-экран», высказывая при этом свои надежды и ожидания от работы на уроке, оставляя в клеточках экрана карточку соответствующего цвета.

Повторение и актуализация знаний, умений и навыков.

Алгоритм – это четкая последовательность действий для определенного исполнителя, приводящая к выполнению поставленной цели.

Базовые структуры алгоритмов: линейные, разветвляющиеся, циклические.

Циклические алгоритмы – это алгоритмы, последовательность действий в которых повторяется многократно.

Типы данных: целые и действительные.

Массив – последовательность данных одного и того же типа, количество которых заранее известно.

  1. Последовательность действий, допустимых для исполнителя – это…
  1. программа
  2. алгоритм
  3. команда
  4. система команд
  1. Выявление ошибок и их устранение – это…
  1. отладка задачи
  2. отладка исполнителя
  3. отладка алгоритма
  4. отладка программы
  1. оператор организации диалога с пользователем
  2. условный оператор
  3. оператор цикла
  4. подпрограмма
  1. оператор ввода и оператор вывода
  2. условный оператор
  3. оператор цикла
  4. оператор графики
  1. оператор организации диалога с пользователем
  2. условный оператор
  3. оператор цикла
  4. подпрограмма
  1. с постусловием (REPEAT) и с предусловием (WHILE)
  2. с предусловием (WHILE) и с заданным числом повторений (FOR)
  3. с заданным числом повторений (FOR) и с постусловием (REPEAT)
  1. вычисление сотой степени числа К (S=К 100 )
  2. подсчитывание суммы ста чисел, введенных пользователем
  3. подсчитывание суммы первых ста натуральных чисел
  1. Назначением фрагмента программы
    S:=0; k:=0;
    Repeat
  1. вычисление суммы квадратов четных чисел первого десятка
  2. вычисление суммы четных чисел первого десятка
  3. вычисление произведения квадратов четных чисел первого десятка
Читайте также:
Текстовый процессор word это прикладная программа

Таблица ответов

Номер вопроса

Номер ответа

Изучение нового материала с поэтапным закреплением.

— Описание типов массивов:

1-вариант

Для описания массива можно использовать заранее определенную константу:

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

B: array[1..20] of real;

2 – вариант

Massiv = array [1..20 ] of integer;

Организация обработки линейных массивов

  1. Выбрать правильно описанные фрагменты программ для задания элементов массива.
  1. BEGIN

FOR I:=1 TO 10 DO

BEGIN

WRITE(‘A[‘,I,’]=’);

READLN(A[I])

END

END;

FOR I:=1 TO 10 DO

BEGIN

WRITE(‘A[‘,I,’]=’);

END

END;

FOR I:=1 TO 10 DO

BEGIN

READLN(A[I])

END

END;

END;

END;

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

CONST N=1; K=100;

VAR A: ARRAY[N..K] OF REAL;

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

REPEAT

UNTIL I

REPEAT

UNTIL I>K;

WHILE I

BEGIN

END;

WHILE I

BEGIN

END;

Таблица ответов

Номер задания

Номер правильных ответов

1, 3, 4, 5

1, 2, 4, 6

Дан массив целых чисел от 1 до N.

-Есть ли в этом массиве отрицательные элементы;

-Номер первого отрицательного элемента;

— Номер последнего отрицательного элемента;

Учащиеся имеющие нечетный номер конспекта работают с нечетными числами, а четный – с четными.

Дан массив целых чисел от 1 до N.

— Есть ли в этом массиве четные (нечетные) элементы;

— Номер первого четные (нечетные) элемента;

— Номер последнего четные (нечетные) элемента;

Для организации данного этапа урока используются упражнения 2 типов:

1 тип: Методика «palming»: учащиеся должны ладонями закрыть область открытых глаз так, чтобы свет не попадал на них. Задержаться в таком положении на 1-2 минуты. Эта методика эффективно позволяет снять напряжение с глаз.

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

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

Повторить теоретический материал из опорного конспекта. Решить задачи.

Дан массив целых чисел от 1 до N.

-Есть ли в этом массиве элементы кратные 7;

-Номер первого элемента кратного 7;

— Номер последнего элемента кратного 7;

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

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

-80%

Источник: videouroki.net

Рейтинг
( Пока оценок нет )
Загрузка ...
EFT-Soft.ru