Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
42
Добавлен:
02.05.2014
Размер:
54.78 Кб
Скачать

Министерство Образования Российской Федерации

Московский Государственный Индустриальный Университет

Филиал в г. Вязьме

Отчет по лабораторной работе № 4

Дисциплина: «Информатика и программирование»

Тема: «Массивы»

Вариант: 5

Группа: 03Ид1

Студент: Афанасьев Виктор Валерьевич

Преподаватель: Соколова Н.В.

2003 г.

Лабораторная работа № 4

Тема: Разработать алгоритм решения задачи согласно полученному варианту, представить этот алгоритм в виде программы на языке Turbo Pascal 7.0.

Цель: ввод написанной на языке Turbo Pascal 7.0 программы в ПЭВМ, отладка программы и вывод полученного результата .

Задание: Заполнить матрицу 10х10 следующим образом:

1…1…1…1…1…1…1…1…1…1

0…2…2…2…2…2…2…2…2…0

0…0…3…3…3…3…3…3…0…0

0…0…0…4…4…4…4…0…0…0

А= 0…0…0…0…5…5…0…0…0…0

0…0…0…0…6…6…0…0…0…0

0…0…0…7…0…0…7…0…0…0

0…0…8…0…0…0…0…8…0…0

0…9…0…0…0…0…0…0…9…0

10..10..10..10..10..10..10..10..10..10

Вывести заполненную матрицу на экран монитора или на принтер, подсчитать количество нулевых элементов, больших 4 и меньших 9, вывести полученный результат.

Краткие теоретические сведения:

Массивы

Массивы - это совокупности однотипных элементов. Характеризуются они следующим:

  • каждый компонент массива может быть явно обозначен и к нему имеется прямой доступ;

  • число компонент массива определяется при его описании и в дальнейшем не меняется.

Для обозначения компонент массива используется имя переменной-массива и так называемые индексы, которые обычно указывают желаемый элемент. Тип индекса может быть только порядковым (кроме longint). Чаще всего используется интервальный тип (диапазон).

Описание типа массива задается следующим образом:

type

имя типа = array[ список индексов ] of тип

Здесь имя типа - правильный идентификатор; список индексов - список одного или нескольких индексных типов, разделенных запятыми; тип - любой тип данных.

Вводить и выводить массивы можно только поэлементно.

Пример 1. Ввод и вывод одномерного массива.

const

n = 5;

type

mas = array[1..n] of integer;

var

a: mas;

i: byte;

begin

writeln('введите элементы массива');

for i:=1 to n do readln(a[i]);

writeln('вывод элементов массива:');

for i:=1 to n do write(a[i]:5);

end.

Определить переменную как массив можно и непосредственно при ее описании, без предварительного описания типа массива, например:

var a,b,c: array[1..10] of integer;

Если массивы a и b описаны как:

var

a = array[1..5] of integer;

b = array[1..5] of integer;

то переменные a и b считаются разных типов. Для обеспечения совместимости применяйте описание переменных через предварительное описание типа.

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

Вместе с тем, над массивами не определены операции отношения. Сравнивать два массива можно только поэлементно.

Так как тип, идущий за ключевым словом of в описании массива, - любой тип Турбо Паскаль, то он может быть и другим массивом. Например:

type

mas = array[1..5] of array[1..10] of integer;

Такую запись можно заменить более компактной:

type

mas = array[1..5, 1..10] of integer;

Таким образом возникает понятие многомерного массива. Глубина вложенности массивов произвольная, поэтому количество элементов в списке индексных типов (размерность массива) не ограничена, однако не может быть более 65520 байт.

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

for i:=1 to m do

for j:=1 to n do a[i,j]:=random(10);

Для "красивого" вывода матрицы на экран используйте такой цикл:

for i:=1 to m do begin

for j:=1 to n do write(a[i,j]:5);

writeln;

end;

Представление алгоритма в виде блок-схемы:

-

+

- +

- +

_ +

Текст программы:

program pr4;

uses crt;

var

i,j,l,k:integer;

A:array[1..10,1..10] of integer;

Begin

clrscr;

writeln('Заполнение матрицы');

for i:=1 to 10 do

begin

for j:=1 to 10 do

begin

if (i=j) or (i+j=11) or (i=10) or (i<5) and (i<j) and (i+j<11) then A[i,j]:=i else A[i,j]:=0;

write(A[i,j]:4);

if (A[i,j]>4) and (A[i,j]<9) then k:=k+1;

if A[i,j]=0 then l:=l+1;

end;

writeln;

writeln;

end;

writeln('Кол-во элементов равных нулю равно ',l);

writeln('Кол-во элементов >4 и <9 равно ',k);

readln;

end.

Тестовый пример:

Выходные данные:

Заполнение матрицы

1…1…1…1…1…1…1…1…1…1

0…2…2…2…2…2…2…2…2…0

0…0…3…3…3…3…3…3…0…0

0…0…0…4…4…4…4…0…0…0

0…0…0…0…5…5…0…0…0…0

0…0…0…0…6…6…0…0…0…0

0…0…0…7…0…0…7…0…0…0

0…0…8…0…0…0…0…8…0…0

0…9…0…0…0…0…0…0…9…0

10..10..10..10..10..10..10..10..10..10

Количество элементов равных нулю равно 52

Количество элементов >4 и <9 равно 8

Выполнил:_________________

Защитил:___________________

Соседние файлы в папке Лабораторная работа1