Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь КАТЕГОРИИ: АрхеологияБиология Генетика География Информатика История Логика Маркетинг Математика Менеджмент Механика Педагогика Религия Социология Технологии Физика Философия Финансы Химия Экология ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
Формирование значений элементов массива случайным образом и с клавиатуры и вывод их на экран
Операции работы с двумерными массивами аналогичны операциям работы с одномерными массивами, нужно только не забывать о различиях между массивами. Обычно при работе с двумерными массивами используются вложенные циклы. Очень часто значения элементов массива вводятся с клавиатуры. Этот способ задания информации слишком трудоемок при работе с массивами больших размеров. Для отладки широкого класса алгоритмов такой ввод информации должен быть заменен на формирование элементов массива случайным образом. Для этого используют встроенные средства Турбо Паскаля, процедуру Randomize и функцию Random. Вы уже сталкивались с этими средствами. Сегодня же наша задача создать процедуры различного ввода элементов в массив и процедуру вывода элементов на экран. Приведем пример формирования массива случайным образом. Эта процедура должна принять входными параметрами массив, количество строк и столбцов, заданные пользователем с клавиатуры в основном разделе операторов. Так как наша процедура будет воздействовать на пустой исходный массив, то его мы должны передать по ссылке. Количество строк и столбцов достаточно передать копиями по значению. Procedure InsertMas1(Var X: MyArray; n, m: integer); Var i, j: integer; Begin Randomize; for i:= 1 to n do {пробегая последовательно строки массива} for j:= 1 to m do {просмотрим каждую ее ячейку текущего столбца} X[i, j]:= Random(50); {и запишем туда случайное число, которое сформирует компьютер в диапазоне [0..49]} End; Теперь, чтобы воспользоваться этой процедурой, достаточно вызвать ее в основном разделе программы, передав ей параметры. Рассмотрим процедуру вывода элементов массива на экран. Для того, чтобы наш массив при выводе выглядел удобно в виде таблицы, поставим при переходе к новой строке пустой оператор writeln и применим формат вывода элементов на экран (:5). Procedure PrintMas(X: MyArray; n, m: integer); Var i, j: integer; Begin for i:= 1 to n do {пробегая последовательно строки и столбцы массива} begin for j:= 1 to m do write(X[i, j]:5); {выведем элемент массива на экран, выделив ему 5 знакомест} writeln; {переход на новую строку} end; End; Задание. Наберите программу-шаблон для работы с двумерными массивами. Как вы уже знаете из предыдущей темы, она должна содержать две процедуры ввода и процедуру вывода элементов заданного массива. Основной раздел операторов должен содержать диалог с пользователем и защиту программы от ввода недопустимых значений для количества строк и столбцов. Сохраните файл в соответствующем каталоге на своей дискете, а листинг решенной задачи покажите учителю для оценки.
Рассмотрите процедуру, решающую следующую задачу. Задача. Дана таблица действительных чисел. Сосчитайте сумму всех чисел в таблице. Procedure Summa(A: MyArray; n, m: integer; Var S: real); Var i, j: integer; Var i, j, Summa: integer; Begin S:= 0; for i:= 1 to n do for j:= 1 to m do S:= S+A[i,j]; End. Обратите внимание, что внутри цикла со счетчиком i организован цикл со счетчиком j. В результате суммируются в начале числа 1-й строки (i=1, при j=1, 2,..., m), затем суммируются числа 2-й строки (i=2, при j=1, 2,..., m) и т.д. В данной программе в теле одного цикла содержится другой цикл. Такие циклы, как Вы уже знаете, называются вложенными. Причем цикл со счетчиком i является внешним, а цикл со счетчиком j – внутренним. Не забывайте основное правило при написании вложенных циклов: последний оператор внутреннего цикла должен либо предшествовать, либо совпадать с последним оператором внешнего цикла. Вложенные циклы напоминают матрешек, вложенных одна в другую. Задание. Откройте файл программы-шаблона, сохраните его под другим (соответствующем задаче) именем и дополните текст программы функцией нахождения суммы элементов, правильно преобразовав в нее рассмотренную выше процедуру. Внесите в программу необходимые операторы и комментарии. Покажите учителю файл программы и листинг для оценки. Задание. Ниже приведен фрагмент решения некоторой задачи. Внимательно рассмотрев решение, сформулируйте решаемую задачу и оформите по всем правилам, применив знания текущего занятия. Файл и листинг решенной задачи покажите учителю для оценки. ... for i:= 1 to N do Begin M:= a[i,1]; S:= a[i, 1]; for j:= 2 to N do begin if M>a[i, j] Then M:= a[i, j]; S:= S+a[i, j]; end; writeln (i:7, M:6, S:6:3); End; ...
Занятие II
|
|||||
Последнее изменение этой страницы: 2016-12-30; просмотров: 380; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.19.56.114 (0.006 с.) |