Студопедия
Случайная страница | ТОМ-1 | ТОМ-2 | ТОМ-3
АрхитектураБиологияГеографияДругоеИностранные языки
ИнформатикаИсторияКультураЛитератураМатематика
МедицинаМеханикаОбразованиеОхрана трудаПедагогика
ПолитикаПравоПрограммированиеПсихологияРелигия
СоциологияСпортСтроительствоФизикаФилософия
ФинансыХимияЭкологияЭкономикаЭлектроника

Практична робота №4

Читайте также:
  1. IV. Робота над темою уроку
  2. В Японии создали робота, которым управляет насекомое. 02 марта 2009 г Vesti.ru
  3. Другий етап — власне робота над скоромовками.
  4. І. РОБОТА В СЕМЕСТРІ
  5. ІНДИВІДУАЛЬНА І САМОСТІЙНА РОБОТА
  6. КОНТРОЛЬНА РОБОТА
  7. КУРСОВА РОБОТА

Тема: Створення консольного приложення з використанням операторів массиву

Задача:

Пользователь вводит n элементов массива. Требуется определить количество элементов, значение которых больше, чем у соседних элементов массива.

Описание переменных:

m - количество реальных элементов массива;
qty - количество элементов массива, значение которых больше, чем у соседей.

 

Алгоритм решения задачи:

1. Считываем числа с помощью процедуры read() и помещаем их в массив.

2. Переменной qty присваиваем значение 0.

3. Переменной i, которая обозначает индекс массива, присваиваем значение 2, т.к проверять первый элемент массива не имеет смысла (у него нет левого соседа).

4. В условии цикла выражение i < m говорит о том, что последний элемент массива также не проверяется, т.к. у него нет правого соседа.

5. Если очередной элемент массива (arr[i]) больше предшествующего (arr[i-1]) и очередной элемент массива (arr[i]) больше последующего (arr[i+1]), то...

6.... увеличить значение qty на единицу и...

7.... увеличить значение i на 2, т.к проверять следующий элемент нет смысла, т.к. уже известно, что он меньше левого соседа.

8. Иначе (если условие не выполнилось) перейти к следующему элементу массива (i:= i +1).

9. Вывести значение qty на экран.

 

 

Ответ:

 


Задача: (сложный уровень)

Дано: целочисленная матрица из n строк и m столбцов.
Найти: максимум из наименьших элементов столбцов.

Алгоритм решения задачи:

Примерный алгоритм решения 1.

1. Просмотреть каждый столбец. Наименьший элемент каждого столбца сохранить в одномерном массиве.

2. Найти максимальное значение в одномерном массиве.

3. Примерный алгоритм решения 2.

4. Найти наименьший элемент первого столбца и предположить, что он максимальный (записать в переменную).

5. Найти наименьший элемент второго столбца. Сравнить его с предыдущим наименьшим. Если больше, заменить значение переменной. И т.д.

Программа на языке Паскаль:

 

Ответ:


Задача: (сложный уровень)

Найти максимальный элемент численного массива.

Алгоритм решения задачи:

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

1. В переменной max_num хранится текущее максимальное значение массива, а в max_index – его позиция (индекс).

2. В программе можно выделить две части: заполнение массива числами с выводом их на экран (первый цикл for) и непосредственно поиск максимума (второй цикл for).

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

4. Изначально делается предположение, что первый элемент массива и есть максимум. Поэтому переменной max_index присваивается значение 1 (т.е. указатель на первый элемент массива), а max_num – непосредственно значение, хранящееся в первой ячейке массива.

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

Программа на языке Паскаль:

 

 

Ответ:


Задача:

Требуется заполнить массив числами, которые вводит пользователь, и вычислить их сумму. Если пользователь вводит ноль или превышен размер массива, то запросы на ввод должны прекратиться.

Алгоритм решения задачи:

Для решения подобного рода задач иногда бывает уместно использовать цикл с постусловием (repeat).

Программа на языке Паскаль:

 

Ответ:

 

Array Ключевое слово Тип данных содержащий индексируемую коллекцию данных

 

Описание
Ключевое слово Array обеспечивает одномерные и многомерные массивы данных. Delphi имеет три основных типа массивов: 1. Статические массивы Они определены установленными, неизменяемыми размерами. Они могут быть одномерными или многомерными - последний является массивом массивов (массивов и т.д). Размер и диапазон такого многомерного массива всегда даются для самого высокого, крайнего левого массива - родительского массива. Размер каждого измерения определен двумя способами, которые могут быть свободно смешаны в многомерном массиве: Index type, где Index целое число, обычно Byte или Word. Диапазон этого типа определяет диапазон измерения. Например, Byte дает дипазон 0..255. Ordinal..Ordinal Альтернативно, диапазон каждого измерения может быть задан предписанными порядковыми значениями, типа22..44. 2. Динамические массивы Динамические массивы не имеют никакой предраспределенной памяти. Определяется только когда создан указатель. Размеры таких массивов должны быть установлены прежде, чем они будут использоваться. Например: SetLength(dynArray, 5); устанавливает размер одномерного массива dynArray в 5 элементов. При этом будет распределена память. Все динамические массивы начинаются с индекса = 0. Индивидуальные подмассивы многомерного динамического массива могут иметь различные измерения - они, конечно являются отдельными массивами. После одной такой операции SetLength, на элементы набора массива уже можно ссылаться, даже при том, что остальная часть массива неопределена. 3. Открытые массивы И статические и динамическиемассивы можно передать подпрограммам как параметры. Если определение параметра массива не имеет никакого диапазона (то есть, динамический тип массива), то вы должны, как это ни парадоксально передавать статический массив как параметр. Такой массив упоминается как Открытый массив. Delphi передает длину как скрытый параметр для подпрограммы. Открытый массив также может быть определен типом значения константы. Это называют Различным (Variant) открытым массивом - это, главным образом, используется для разрешения передачи подпрограмме переменного числа значений аргументов. Для передачи Динамического массива ссылкой, массив и подпрограммное определение массива должны быть через определение типов массива. См. код для примера.
 
Примечания
Используйте Copy для копирования одного массива в другой. Но будьте осторожны - это копирует только первое, самое высокое измерение - новый массив будет все еще относиться к элементам подмассивов.

 

 

Описание
Ключевое слово Repeat начинает управляемый цикл, который всегда выполняется не менее одного раза и заканчивается, когда Выражение(Expression) будет удовлетворено (возвратится True). Нет никакой потребности в маркерахBegin> и End - ключевые словаRepeat и Until сами выполняют эту задачу. Цикл используется, когда важно, чтобы инструкции выполнились не менее одного раза.
 
Примечания
После последнего оператора не обязательно ставить; признак конца.

 

Repeat Ключевое слово Повторяет инструкции, пока не выполнится условие завершения
Until Ключевое слово Заканчивает управляемый цикл Repeat

 

Описание
Ключевое слово Until заканчивает управляемый цикл, который всегда выполняется не менее одного раза, и который заканчивается, когда выражение(Expression) удовлетворено (возвращает True). Нет никакой потребности в маркерахBegin и End - ключевые словаRepeat и Until выполняют эту задачу. Цикл используется, когда важно, чтобы инструкции выполнились не менее одного раза.
 
Примечания
Не обязательно ставить признак конца ';' после последнего оператора.

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

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

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

Программа на языке Паскаль:

Ответ:

 


Дата добавления: 2015-07-10; просмотров: 74 | Нарушение авторских прав


<== предыдущая страница | следующая страница ==>
МЕТОДИКА ЭКСПРЕСС-ДИАГНОСТИКИ ИНТЕЛЛЕКТУАЛЬНЫХ СПОСОБНОСТЕЙ| Крутящий момент на валу гидромотора

mybiblioteka.su - 2015-2024 год. (0.009 сек.)