Инфоурок Информатика КонспектыКонспект урока Практическая работа Программирование обработки одномерных массивов

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

Скачать материал

Урок №        Класс        9          предмет     информатика         дата

Тема:  Практическая работа №  13 « Программирование обработки одномерных массивов»

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

 

Планируемые результаты:

-Предметные- создать условия для усвоения темы «одномерные массивы»

-Метапредметные УУД:

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

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

Коммуникативные   создать условия для формирования логического и алгоритмического  мышления,   

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

Ход урока.

-Организация начала урока

- Актуализация опорных знаний.

Фронтальный опрос по теории предыдущего урока:

Что такое массив?

Как объявляется массив?

Какие способы формирования массивов вы знаете?

Выполнение практической работы.

Дано описание массива: 

constb:array[1..2]ofinteger=(2,11,8,64,101);

 

Верно ли описан массив? 

неверно

верно



Определи способ заполнения массива.

 fori:=1to13doread(a[i]); 

с помощью оператора присваивания (случайными числами)

ввод каждого значения с клавиатуры

с помощью оператора присваивания (по формуле)

 

Определи способ вывода массива.

  

элементы массива выводятся в строку

вывод массива с комментариями

 

Выбери верный ответ.

Под _______________________ (упорядочением) массива понимают перераспределение значений его элементов в некотором определенном порядке. 

помощь

обыкновенный

сортировка

запуск программы

Дана программа:

 

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

 Ответ: s=

Запиши программу на языке программирования Паскаль.

 Дано 5 целых чисел. Напиши программу нахождения наибольшего среди них.

 

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

program derevo;

var d:array[1..25] of integer;

max,i,k:integer;

begin

randomize;

for i:=1 to 25 do

begin

d[i]:=random(25)+5;

writeln ('d[',i,']=',d[i]);

end;

max:=d[1];

for i:=2 to 25 do

if d[i]>max then max:=d[i];

writeln ('max=',max);

for i:=1 to 25 do

if d[i]=max then k:=k+1;

writeln('k=',k);

readln;

end.

Учитель даёт пояснения по заданиям практической работы:

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

-Домашнее задание

§ ( повторить)

 

Общие сведения

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

ARRAY [Тип индексов] OF <Тип компонент>;

Тип компонент массива – это просто тип данных, ассоциированный с каждой компонентой массива. Тип компонент может быть любым REAL, INTEGER, CHAR, BOOLEAN, перечислимым, интервальным. В качестве компоненты массива может быть взят и тип массив.

Тип индекса должен быть одним из упорядоченных типов, т.е. любым скалярным типом, кроме REAL: INTEGER, CHAR, интервальный, перечислимый. Тип индекса определяет границы изменения индекса. Если сделана попытка использовать несуществующую компоненту, то возникает ошибка (ошибка неверного индекса).

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

Одномерный массив можно задать (объявить) двумя способами:

1.       C помощью служебного слова TYPE описывается тип массива, а затем с помощью VAR вводится переменная этого типа.

 Общая форма записи

TYPE <тип массива> = ARRAY [тип индекса] OF <тип компонент>;

VAR <переменная>: <тип массива>; 

2.       С помощью слова VAR сразу описывается  переменная типа массив.

Общая форма записи

 VAR <переменная>: ARRAY [тип индекса] OF <тип компонент>;

Например, объявление массива из 100 элементов типа REAL можно осуществить двумя способами:

1.       type R100 = array [1..100] of real;

var A: R100;

2.       var A: array [1..100] of real.

Здесь задан массив с именем А, и его элементы имеют имена: А[1],…,A[100]. Чаще всего для типа индекса используют интервальный тип на основе типов INTEGER и CHAR. Однако можно в качестве индексов брать перечислимый тип.

П р и м е р  1.  Подсчет числа вхождений букв в текст определенной длины.

program COUNTER;

var COUNT: array ['a'..'z'] of integer;

CH: char; N: integer;

begin

for CH := 'a' to 'z' do

COUNT [CH] := 0; N := 0;

repeat

read (CH); N := N + 1;

if (CH >= 'a') and (CH <= 'z') then

COUNT [CH] := COUNT [CH] + 1;

until CH = '.';

for CH := 'a' to 'z' do

writeln (CH, COUNT [CH]:5);

end.

Пояснение. В этом примере тип индекса есть интервальный тип на базе типа CHAR, а тип компонент есть целое число. Таким образом, элементы массива – числа, а их индексы – буквы, т.е. число элементов массива равно 26 (по числу букв латинского алфавита).

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

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

program NUMBRDAY;

type MONAT = (JAN, FEB, MAR, APR, MAY, JUN, JUL, AUG,

SEP, OKT, NOV, DEC);

var DAY : array [MONAT] of 28..31; T : MONAT;

begin

for T := JAN to DEC do

case T of

JAN, MAR, MAY, JUL, AUG, OKT, DEC: DAY [T] := 31;

APR, JUN, SEP, NOV: DAY [T] := 30;

FEB : DAY [T] := 28;

end;

end.

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

Решение. Преобразования необходимо провести в каждом столбце массива, поэтому параметр внешнего цикла в процедуре обработки - номер столбца j, а вложенного – номер строки i.

Для перестановки двух элементов в столбце массива необходимо найти номера их строк n1 и n2, а затем поменять местами значения элементов с использованием промежуточной переменной p.

Чтобы найти наибольший по модулю элемент столбца, введем дополнительную переменную max, которая будет хранить максимальное по модулю значение в текущем столбце массива на данный момент. (Можно решить задачу без использования переменной max. Подумайте, как это сделать.)

Программа должна корректно работать с любыми входными данными, а значит и в тех случаях, когда некоторые или даже все столбцы массива содержат только элементы из интервала (a, b), и обмен значений в некоторых столбцах или во всем массиве не нужен.

const n=10; m=7;

type mas=array [1..n,1..m] of Integer;

 procedure Vvodmas(var D:mas);

  var i,j:Integer;

begin

for i:=1  to n do

  for j:=1  to m do

    D[i,j]:=-50+Random(101);

end;

 procedure Vivodmas(D:mas);

  var i,j:Integer;

begin

  for i:=1 to n do

    begin

      for j:=1  to m do Write(D[i,j]:4);

      Writeln;

    end;

end;

 procedure Obmen(a,b: real; var D:mas);

  var i,j,p,n1,n2,max: Integer;

begin

  for j:=1  to m do

    begin

      n1:=1; max:=abs(D[1,j]);{считаем первый элемент столбца наибольшим по модулю}

      for i:=2 to n do

        if abs(D[i,j])>max then  {обнаружен больший элемент}

          begin n1:=i; max:=abs(D[i,j]) end;

       i:=n; {перебираем элементы столбца, начиная с последнего}

      while (i>=1)and (D[i,j]>a)and(D[i,j]<b) do i:=i-1;

      n2:=i;

      if n2<>0 then {если элемент, не принадлежащий интервалу (a,b), был найден}

        begin

          p:=D[n1,j]; D[n1,j]:=D[n2,j]; D[n2,j]:=p; {обмен значений}

        end;

    end;

end;

 

var D: mas; a,b:Real;

begin

  Randomize; Vvodmas(D);

  Writeln('Исходный массив:'); Vivodmas(D);

  Write('Введите через пробел концы интервала (a,b): '); Readln(a,b);

  Obmen(a,b,D);

  Writeln('Ответ:'); Vivodmas(D);

  Readln

end. 

Варианты заданий

Задание 1. Составить программу, позволяющую в одномерном массиве, состоящем из N вещественных элементов, вычислить:

a)     сумму модулей отрицательных элементов массива;

b)    количество элементов массива, не принадлежащих интервалу (a, b);

c)     наименьший из элементов массива, принадлежащих отрезку [ab];

d)    количество элементов массива, равных первому элементу;

Задание 2. В двумерном массиве, состоящем из целочисленных элементов, поменять местами:

a)     в каждом столбце наибольший по модулю и последний положительный элементы;

b)    в каждом столбце первый и последний отрицательные элементы;

c)     в каждой строке наибольший и наименьший элементы;

d)    в каждом столбце первый принадлежащий отрезку [ab] и первый отрицательный элементы;

Дополнительные задания

1.  Определить в одномерном массиве число соседств из двух чисел разного знака.

2.  Дан двумерный массив целых чисел. Поменять местами строку, содержащую максимум массива, со строкой, содержащей его минимум.

 

Контрольные вопросы

1.       Как описываются в языке Паскаль одномерный и двумерные массивы?

2.       Может ли массив содержать разнотипные данные?

3.       В каком порядке указываются индексы при обращении к элементам двумерного массива?

4.       Привести пример массива, описание которого выглядит следующим образом:  var A: array [1..3, 20..24] of real.

5.       Можно ли при обработке двумерных массивов использовать однократные циклы? Если да, то приведите примеры. 

6.       Если в одномерном массиве проверяется «похожесть» его первой и второй части, то в каких границах надо писать оператор for для «прохождения» по этому массиву?

7.       Каким образом надо находить первый и последний элементы одномерного массива, обладающие некоторым свойством (отрицательный, наибольший, входящий в интервал и пр.)?

 

Просмотрено: 0%
Просмотрено: 0%
Скачать материал
Скачать материал "Конспект урока Практическая работа Программирование обработки одномерных массивов"

Методические разработки к Вашему уроку:

Получите новую специальность за 2 месяца

Специалист по привлечению инвестиций

Получите профессию

Копирайтер

за 6 месяцев

Пройти курс

Рабочие листы
к вашим урокам

Скачать

Скачать материал

Найдите материал к любому уроку, указав свой предмет (категорию), класс, учебник и тему:

6 665 117 материалов в базе

Материал подходит для УМК

Скачать материал

Другие материалы

Вам будут интересны эти курсы:

Оставьте свой комментарий

Авторизуйтесь, чтобы задавать вопросы.

  • Скачать материал
    • 14.04.2021 1679
    • DOCX 34.4 кбайт
    • 129 скачиваний
    • Оцените материал:
  • Настоящий материал опубликован пользователем Остапчук Анастасия Витальевна. Инфоурок является информационным посредником и предоставляет пользователям возможность размещать на сайте методические материалы. Всю ответственность за опубликованные материалы, содержащиеся в них сведения, а также за соблюдение авторских прав несут пользователи, загрузившие материал на сайт

    Если Вы считаете, что материал нарушает авторские права либо по каким-то другим причинам должен быть удален с сайта, Вы можете оставить жалобу на материал.

    Удалить материал
  • Автор материала

    Остапчук Анастасия Витальевна
    Остапчук Анастасия Витальевна
    • На сайте: 5 лет и 6 месяцев
    • Подписчики: 0
    • Всего просмотров: 11943
    • Всего материалов: 9

Ваша скидка на курсы

40%
Скидка для нового слушателя. Войдите на сайт, чтобы применить скидку к любому курсу
Курсы со скидкой

Курс профессиональной переподготовки

Секретарь-администратор

Секретарь-администратор (делопроизводитель)

500/1000 ч.

Подать заявку О курсе

Курс профессиональной переподготовки

Педагогическая деятельность по проектированию и реализации образовательного процесса в общеобразовательных организациях (предмет "Информатика")

Учитель информатики

300 ч. — 1200 ч.

от 7900 руб. от 3650 руб.
Подать заявку О курсе
  • Этот курс уже прошли 20 человек

Курс повышения квалификации

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

36 ч. — 180 ч.

от 1700 руб. от 850 руб.
Подать заявку О курсе
  • Этот курс уже прошли 75 человек

Курс профессиональной переподготовки

Информатика: теория и методика преподавания в профессиональном образовании

Преподаватель информатики

300/600 ч.

от 7900 руб. от 3650 руб.
Подать заявку О курсе
  • Сейчас обучается 49 человек из 22 регионов
  • Этот курс уже прошли 152 человека

Мини-курс

Инклюзивное образование: нормативное регулирование

4 ч.

780 руб. 390 руб.
Подать заявку О курсе

Мини-курс

Организация и планирование воспитательной работы в СПО

6 ч.

780 руб. 390 руб.
Подать заявку О курсе

Мини-курс

Современные подходы к преподаванию географии: нормативно-правовые основы, компетенции и педагогические аспекты

8 ч.

1180 руб. 590 руб.
Подать заявку О курсе