Файл: Особенности и примеры использования массивов при разработке программ (Определение массива).pdf

ВУЗ: Не указан

Категория: Курсовая работа

Дисциплина: Не указана

Добавлен: 29.03.2023

Просмотров: 181

Скачиваний: 1

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.


11


12


13


14


15


16


17


21


22


23


24


25


26


27


31


32


33


34


35


36


37


41


42


43


44


45


46


47


51


52


53


54


55


56


57

Процесс перебора элементов двумерного массива:

Ход выполнения:


i = 


j=


Условие перехода на следующую строку j=7


Обрабатываемый элемент


Шаг 1


1


1


нет


Mas[1,1]


Шаг 2


1


2


нет


Mas[1,2]


Шаг 3


1


3


нет


Mas[1,3]


Шаг 4


1


4


нет


Mas[1,4]


Шаг 5


1


5


нет


Mas[1,5]


Шаг 6


1


6


нет


Mas[1,6]


Шаг 7


1


7


да


Mas[1,7]


Шаг 8


2


1


нет


Mas[2,1]


Шаг 9


2


2


нет


Mas[2,2]


Шаг 10


2


3


нет


Mas[2,3]







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

For i:=1 to n do
Begin
    For j:=1 to n do
    Write(mas[i,j],’ ‘);
    Writeln;
End; 
Типовые алгоритмы обработки двумерных массивов

  • Обработка всего массива.
  • Обработка отдельно по строкам и столбцам.
  • Обработка относительно диагоналей.
  • Типовые алгоритмы обработки двумерного массива отдельно по столбцам

Типовой

алгоритм

Программная реализация(Паскаль)

Сумма

For j:=1 to m do

S[j]:=0;

For j:=1 to m do

For i:=1 to n do

S[j]:=S[j]+x[i,j];

For j:=1 to m do

Write(S[j]);

Произведение

For j:=1 to m do

P[j]:=1;

For j:=1 to m do

For i:=1 to n do

P[j]:=P[j]*x[i,j];

For j:=1 to m do

Write(P[j]);

Максимальный

(минимальный) элемент

For j:=1 to m do

Begin

Max[j]:=x[i,1];

Min[j]:=x[i,1];

End;

For j:=1 to m do

For i:=1 to n do

Begin

If x[i,j]>max[j] then max[j]:=x[i,j]

If x[i,j]<min[j] then min[j]:=x[i,j]

End;

Вывод максимума/минимума по столбцам

For j:=1 to m do

Write(max[j]);

Writeln;

For j:=1 to m do

Write(min[j]);

Выбор по условию

For j:=1 to m do

Rez[j]:=0

For j:=1 to m do

For i:=1 to n do

If {усл.} then {Rez[i]:=…};

For j:=1 to m do

Write(Rez[j]);

Типовые алгоритмы обработки двумерного массива относительно диагоналей

Главная диагональ. В таблице приведены типовые алгоритмы обработка элементов двумерного массива, расположенных НА, ВЫШЕ и НИЖЕ главной диагонали.

Типовой алгоритм

Программная реализация (Паскаль)

Сумма элементов, расположенных НА главной диагонали

s:=0;

for i:=1 to n do

s:=s+x[i,i];

Сумма элементов, расположенных ВЫШЕ главной диагонали

s:=0;

for i:=1 to n do

for j:=1 to n do

if i<j then s:=s+x[i,j];

Сумма элементов, расположенных НИЖЕ главной диагонали

s:=0;

for i:=1 to n do

for j:=1 to n do

if i>j then s:=s+x[i,j];

Побочная диагональ. В таблице приведены типовые алгоритмы обработка элементов двумерного массива, расположенных НА, ВЫШЕ и НИЖЕ побочной диагонали.

Типовой алгоритм

Программная реализация (Паскаль)

Сумма элементов, расположенных НА побочной диагонали

s:=0;

for i:=1 to n do

s:=s+x[i, n-i+1];

Сумма элементов, расположенных ВЫШЕ побочной диагонали

s:=0;

for i:=1 to n do

for j:=1 to n do

if (i<n-j+1) then

s:=s+x[i,j];

Сумма элементов, расположенных НИЖЕ побочной диагонали

s:=0;

for i:=1 to n do

for j:=1 to n do

if (i>n-j+1) then

s:=s+x[i,j];


Обработка квадратной матрицы относительно диагоналей (рациональный обход).

Задача: заполнить элементы квадратного массива "1" так, как показано на рисунке:

Ниже и на главной диагонали

Выше и на главной диагонали

Выше и на побочной диагонали

Ниже и на побочной диагонали

100000000

110000000

111000000

111100000

111110000

111111000

111111100

111111110

111111111

111111111

011111111

001111111

000111111

000011111

000001111

000000111

000000011

000000001

111111111

111111110

111111100

111111000

111110000

111100000

111000000

110000000

100000000

000000001

000000011

000000111

000001111

000011111

000111111

001111111

011111111

111111111

Программная реализация на Паскале:

for i:=1 to n do

for j:=1 to i do

x[i,j]:=1;

Программная реализация на Паскале:

for i:=1 to n do

for j:=i to n do

x[i,j]:=1;

Программная реализация на Паскале:

for i:=1 to n do

for j:=1 to (n-i+1) do

x[i,j]:=1;

Программная реализация на Паскале:

for i:=1 to n do

for j:=(n-i+1) to n do

x[i,j]:=1;

Глава 2. Структура ООО «Данрайт» 

Общество с ограниченной ответственностью «ДАНРАЙТ» было организовано 28 сентябряя 2010 года.

Основным направлением деятельности рассматриваемой организации является «Разработка компьютерного программного обеспечения».

ООО "ДАНРАЙТ" также ведет деятельность по направлениям:

  • Деятельность консультативная и работы в области компьютерных технологий Деятельность, связанная с использованием вычислительной техники и информационных технологий, прочая
  • Деятельность по обработке данных, предоставление услуг по размещению информации и связанная с этим деятельность
  • Деятельность по созданию и использованию баз данных и информационных ресурсов

Общество использует упрощённую систему налогообложения (УСН).

Структура управления ООО «ДАНРАЙТ» организована по традиционному принципу и является комбинацией линейной и функциональной управленческих систем.

Руководство текущей деятельностью ООО «ДАНРАЙТ» осуществляется генеральным директором общества, назначенным решением единственного участника Общества сроком на три года.

Важным преимуществом работы организации является широкий ассортимент услуг, наличие достаточного количества квалифицированного персонала и возможность выполнения работ в короткие сроки.

Общество с ограниченной ответственностью «ДАНРАЙТ» осуществляет:

  • разработку, модернизацию, тестирование и поддержку программного обеспечения;
  • изготовление, ремонт, обслуживание, монтаж и пусконаладка контрольно-измерительных приборов и автоматики во всех сферах их применения и реализации;
  • торговая деятельность;
  • погрузочно-разгрузочные и транспортно-экспедиционные работы и услуги.

Основными задачами Общества с ограниченной ответственностью

«ДАНРАЙТ» является продвижение услуг в другие регионы. Для достижения этой цели, ООО «ДАНРАЙТ» старается по возможности снизить себестоимость оказываемых услуг и работ, повысить их качество.

Общество осуществляет учёт результатов работ, ведет оперативный, бухгалтерский и статистический учёт по нормам, действующим в Российской Федерации. Финансовый год Общества совпадает с календарным годом.

Планирование деятельности ООО «ДАНРАЙТ» включает комплексную разработку таких видов планирования, как: стратегическое, перспективное, текущее и оперативно-календарное. Данные виды планирования при разных задачах и содержании, тем не менее, обладают единством, которое выражается в их общей направленности. Во всех трех видах планирования соблюдается правило обоснования величины устанавливаемых плановых показателей технической характеристикой используемых средств, орудий и предметов труда, технологии и организации производства, а также расчетом экономической эффективности принимаемых плановых заданий.

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

Технико-экономическое планирование ООО «ДАНРАЙТ» организует и осуществляет как контроль производственно-хозяйственной деятельности Общества, так и его внутрипроизводственных звеньев. Оно включает:


  1. разработку перспективных и текущих планов предприятия и подразделений;
  2. определение объемов реализации услуг в плановом периоде;
  3. установление плановых размеров трудовых и материальных ресурсов, необходимых для выполнения плана;
  4. доведение плановых заданий по реализации услуг до исполнителей;

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

В ООО «ДАНРАЙТ» существует проблема использования лицензионного программного обучения. По договору с некоторыми клиентами, общество не может использовать нелицензионное ПО.

Кроме этого у ООО «ДАНРАЙТ» много клиентов и фирме необходимо запоминать их контакты.

Поэтому директор ООО «ДАНРАЙТ» Абрамов А.А. распрядился о написании собственного приложения Телефонный справочник. При этом его работа должна осуществляться как под Windows, так и под Dos.

Глава 3. Создание в ООО «Данрайт» программы работы с массивами «Телефонный справочник»

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

Массив позволяет сохранять и манипулировать многими элементами данных посредством единственной переменной.

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

Объединяя массивы и циклы можно написать небольшое число операторов, которые обрабатывают большой объем данных. Выполнение тех же задач с использованием отдельных переменных может потребовать написания сотен операторов.

Так для решения актуальной задачи для ООО «Данрайт» «Надежный телефонный справочник» сохранение и вывод данных через массивы являются универсальным способом при реализации.

По требованиям, представленным директором ООО «Данрайт», нужно написать программу, выполняющую следующие функции:

  • Создавать записи абонентов, каждый элемент записи должен содержать номер телефона, фамилию и адрес абонента;
  • Реализовать поиск абонента по адресу (улицы) проживания;
  • Вывод результата поиска на экран и в файл;