Массивы. массивы. Урок в 9 классе Найди ошибки Program new Var a, b, c integer Begin clrscr Readln(a,b) Caabb Wr teln(c) End
Скачать 0.76 Mb.
|
Урок в 9 классе Найди ошибки:Program new Var a, b, c integer Begin clrscr Readln(a,b); C:=a*a+b*b Wr teln(c); End. ; ; : ; ; ; Uses crt; ; e i РазминкаВыполните счёт по блок-схеме для чисел: 11, 18, 21 начало х < 19? + 15 X 5 результат конец да нет Х = 11 18 21 Р = 26 33 105 Выполните счёт по блок-схеме для чисел : 5, 9, 12 начало х < 53? - 2 X 3 результат конец да нет Х = 5 9 12 Р = 57 57 84 Циклические алгоритмыЦикл представляет собой последовательность операторов, которая выполняется неоднократно. В языке программирования Turbo Pascal имеется три разновидности цикла: Цикл с постусловием (repeat) Цикл с предусловием (while) Цикл со счётчиком (For) В практической деятельности человека часто используются таблицы и списки. Например: Список учеников в журнале; Список среднесуточной температуры месяца; Таблица умножения. Иванов Петров Сидоров Кошкин Мышкин 100 120 120 130 140 140 120 150 160 140 ... 180
Элементы списков и номера строк и столбцов всегда нумеруются В языках программирования подобные типы данных описываются с помощью массивов. Массив это набор однотипных данных, к которым можно обратиться с помощью единственного имени Каждое значение в массиве называется элементом. Номер элемента в списке называется индексом. Элементы представляют собой символьные или числовые значения, которые можно использовать в выражениях ЯП ПАСКАЛЬ В качестве иллюстрации можете представить себе шкаф, имеющий множество нумерованных ящиков. Шкаф – это массив. Ящики – это индексы. Содержимое ящиков – элементы массива. Доступ к содержимому конкретного ящика (элемента массива) осуществляется после указания шкафа –имени массива – и номера ящика – индекса массива. 1 2 3 4 5 Шкаф Одномерный массив Двумерный массив Чтобы представить себе двумерный массив, вспомните зрительный зал кинотеатра. Название кинотеатра – имя массива. Ряд, место - индексы. Человек на определенном месте – элемент массива. Для того, чтобы использовать массив в программе, его нужно описать в разделе описаний: Var имя_массива : array [размер ] of тип_элементов; Имя массива выбираем по основным правилам имен идентификаторов. Размер: [начальный_индекс . . конечный_индекс ] [1..5 ] [10..100 ] [-10..10 ] [нач_индекс . . конечн_индекс , нач_индекс . . конечн_индекс ] Например, Var Name: array [1..30] of string; Temperature : array [1..31] of real; Kino : array [1..25, 1..40] of string; Количество столбцов Количество строк Обращение к конкретному элементу массива осуществляется путем указания имени массива и индекса этого элемента в [ ] Name[15], Temperature[10], Kino[5,6] В качестве индексов массивов можно использовать переменные целого типа: Name[i], Temperature[k], Kino[i,j] Это свойство дает возможность обрабатывать массивы в циклах, в которых индекс массива является одновременно и счетчиком цикла. Элементы массивов используются в выражениях также, как и обычные переменные: Name[15]:= ‘ Иванов ‘; Sum:=Sum+Temperature[10]; Kino[5,6]:=‘Свободно ‘ ; Три этапа работы с массивами 1. Заполнение массива данными 2. Преобразование массива (действия с элементами массива) 3. Вывод массива или отдельных данных на экран Способы ввода данных в массив: С клавиатуры; С помощью генератора случайных чисел; С помощью вычисления элементов. Физкультминутка Рассмотрим работу с массивом на примерах: Зададим и распечатаем случайный массив из сорока целых чисел: Program M4; Const N=40; {Константа N будет содержать количество элементов массива} Var A : Array [1..N] Of Integer; I : Integer; Begin For I:=1 To N Do Begin A[I]:= Trunc(Random*101)-50 Write(A[I],'VVV') End End. Для иллюстрации способов работы с двумерными массивами решим задачу: "Задать и распечатать массив 10X10, состоящий из целых случайных чисел в интервале [1,100]. Найти сумму элементов, лежащих выше главной диагонали." При отсчете, начиная с левого верхнего угла таблицы, главной будем считать диагональ из левого верхнего угла таблицы в правый нижний. При этом получается, что элементы, лежащие на главной диагонали будут иметь одинаковые индексы, а для элементов выше главной диагонали номер столбца будет всегда превышать номер строки. Договоримся также сначала указывать номер строки, а затем - номер столбца. Program M5; Var A : Array[1..10,1..10] Of Integer; I, K : Byte; S : Integer; Begin S:=0; For I:=1 To 10 Do Begin For K:=1 To 10 Do Begin A[I,K]:=Trunc(Random*100)+1; Write(A[I,K]:6); If K>I Then S:=S+A[I,K] End; Writeln End; Writeln('Сумма элементов выше гл. диагонали равнаV',S) End. методом пузырька, берём чётные индексы (умножаем на 2 числа 1,2,3) var b:array[1..6]of real; i,j:integer; c:real; begin writeln('Введите элементы вектора); for i:=1 to 6 do read(b[i]); for i:= 1 to 3 do for j:= 2 to 3 do if b[j*2] c:=b[j*2]; b[j*2]:=b[j*2-2]; b[j*2-2]:=c; end; for i:=1 to 6 do write(b[i]:4:1); end. Выучить конспект Задача 1. Написать программу, которая вычисляет среднее арифметическое ненулевых элементов массива М[1..100], элементы которого вычисляются по формуле: М[i]=sin(i)*cos(i) Задача 2. Написать программу, которая проверяет, образуют ли элементы массива Х[1..10], введенного с клавиатуры неубывающую последовательность. Домашнее задание Учитель информатики КГУ СШ №2 Бекбасарова Ж.А. Спасибо за внимание |