Хелпикс

Главная

Контакты

Случайная статья





Практическая работа. Разработка и отладка приложений с одномерными массивами



Практическая работа

Разработка и отладка приложений с одномерными массивами

Цель работы: овладеть основными приемами работы с одномерными массивами.

Ход работы:

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

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.

 

Выполнить отладку тестовых примеров.

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

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

1. В массиве из случайных N вещественных чисел найти максимум, минимум и поменять их местами.

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

3. В массиве из случайных N вещественных чисел найти сумму всех чисел меньше К и заменить их нулями.

4. В массиве из случайных N целых чисел найти количество положительных и количество отрицательных чисел.

5. В массиве из случайных N вещественных чисел найти числа, лежащие в диапазоне от А до В. Вывести массив, отсортированный по возрастанию.

6. В массиве из случайных N целых чисел найти числа кратные двум. Вывести массив, отсортированный по убыванию.

7. В массиве из случайных N вещественных чисел заменить все отрицательные числа нулями. Среди положительных найти минимальное и максимальное.

8. В массиве из случайных N целых чисел найти среднее арифметическое положительных чисел и среднее арифметическое отрицательных чисел.

9. В массиве из случайных N вещественных чисел заменить поменять знак числа на противоположный, а для нулевых элементов (если такие есть) подсчитать их количество.

10. В массиве из случайных N целых чисел найти все числа большие некоторого К и среди них подсчитать количество четных и нечетных.

11. В массиве из случайных N вещественных чисел найти все числа меньшие (min+max)/2 и округлить их до целого. Отсортировать массив по возрастанию.

12. В массиве из случайных N целых чисел найти все числа большие (min+max)/2 и вывести их индексы. Отсортировать массив по убыванию.

13. В массиве из случайных N целых чисел замените каждый элемент массива суммой всех последующих.

14. В массиве из случайных N вещественных чисел найти количество отрицательных и сумму положительных чисел. Обрезать вещественные числа до целых. Отсортировать массив по возрастанию.

15. В массиве из случайных N целых чисел вывести числа, не лежащие в диапазоне от А до В. Подсчитать их количество. Вывести массив, отсортированный по убыванию.

16. Из диапазона всех ASCII-кодов вывести символы цифр.

17. Из диапазона всех ASCII-кодов вывести символы заглавных русских букв.

18. Из диапазона всех ASCII-кодов вывести символы заглавных английских букв.

19. Из диапазона всех ASCII-кодов вывести символы строчных русских букв.

20. Из диапазона всех ASCII-кодов вывести символы строчных английских букв.

 

 

Содержание отчета

1. Постановка задачи.

2. Описание алгоритма.

3. Тестовые примеры и анализ результатов тестирования.

4. Вывод.

 

 



  

© helpiks.su При использовании или копировании материалов прямая ссылка на сайт обязательна.