Файл: Особенности и примеры использования массивов при разработке программ (Определение массива).pdf
Добавлен: 29.03.2023
Просмотров: 179
Скачиваний: 1
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Процесс перебора элементов двумерного массива:
Ход выполнения:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Для того чтобы вывести двумерный массив на экран в виде таблицы необходимо после вывода содержимого каждой строки предусмотреть переход на строку ниже:
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 года.
Основным направлением деятельности рассматриваемой организации является «Разработка компьютерного программного обеспечения».
ООО "ДАНРАЙТ" также ведет деятельность по направлениям:
- Деятельность консультативная и работы в области компьютерных технологий Деятельность, связанная с использованием вычислительной техники и информационных технологий, прочая
- Деятельность по обработке данных, предоставление услуг по размещению информации и связанная с этим деятельность
- Деятельность по созданию и использованию баз данных и информационных ресурсов
Общество использует упрощённую систему налогообложения (УСН).
Структура управления ООО «ДАНРАЙТ» организована по традиционному принципу и является комбинацией линейной и функциональной управленческих систем.
Руководство текущей деятельностью ООО «ДАНРАЙТ» осуществляется генеральным директором общества, назначенным решением единственного участника Общества сроком на три года.
Важным преимуществом работы организации является широкий ассортимент услуг, наличие достаточного количества квалифицированного персонала и возможность выполнения работ в короткие сроки.
Общество с ограниченной ответственностью «ДАНРАЙТ» осуществляет:
- разработку, модернизацию, тестирование и поддержку программного обеспечения;
- изготовление, ремонт, обслуживание, монтаж и пусконаладка контрольно-измерительных приборов и автоматики во всех сферах их применения и реализации;
- торговая деятельность;
- погрузочно-разгрузочные и транспортно-экспедиционные работы и услуги.
Основными задачами Общества с ограниченной ответственностью
«ДАНРАЙТ» является продвижение услуг в другие регионы. Для достижения этой цели, ООО «ДАНРАЙТ» старается по возможности снизить себестоимость оказываемых услуг и работ, повысить их качество.
Общество осуществляет учёт результатов работ, ведет оперативный, бухгалтерский и статистический учёт по нормам, действующим в Российской Федерации. Финансовый год Общества совпадает с календарным годом.
Планирование деятельности ООО «ДАНРАЙТ» включает комплексную разработку таких видов планирования, как: стратегическое, перспективное, текущее и оперативно-календарное. Данные виды планирования при разных задачах и содержании, тем не менее, обладают единством, которое выражается в их общей направленности. Во всех трех видах планирования соблюдается правило обоснования величины устанавливаемых плановых показателей технической характеристикой используемых средств, орудий и предметов труда, технологии и организации производства, а также расчетом экономической эффективности принимаемых плановых заданий.
Внутрифирменное планирование производства представляет собой исходную и важную стадию управления всей организацией как системой управления, которая во многом определяет конечный результат ее функционирования.
Технико-экономическое планирование ООО «ДАНРАЙТ» организует и осуществляет как контроль производственно-хозяйственной деятельности Общества, так и его внутрипроизводственных звеньев. Оно включает:
- разработку перспективных и текущих планов предприятия и подразделений;
- определение объемов реализации услуг в плановом периоде;
- установление плановых размеров трудовых и материальных ресурсов, необходимых для выполнения плана;
- доведение плановых заданий по реализации услуг до исполнителей;
организацию систематического контроля, за ходом выполнения всех показателей производственно-хозяйственной деятельности.
В ООО «ДАНРАЙТ» существует проблема использования лицензионного программного обучения. По договору с некоторыми клиентами, общество не может использовать нелицензионное ПО.
Кроме этого у ООО «ДАНРАЙТ» много клиентов и фирме необходимо запоминать их контакты.
Поэтому директор ООО «ДАНРАЙТ» Абрамов А.А. распрядился о написании собственного приложения Телефонный справочник. При этом его работа должна осуществляться как под Windows, так и под Dos.
Глава 3. Создание в ООО «Данрайт» программы работы с массивами «Телефонный справочник»
Преимущество массивов состоит в том, что массив является удобным способом хранения нескольких связанных элементов данных в едином контейнере для большего удобства и эффективности программирования.
Массив позволяет сохранять и манипулировать многими элементами данных посредством единственной переменной.
Кроме уменьшения общего числа различных имен переменных, которые необходимо отслеживать, другим основным преимуществом использования массивов является то, что можно использовать циклы для легкой обработки различных элементов массивов.
Объединяя массивы и циклы можно написать небольшое число операторов, которые обрабатывают большой объем данных. Выполнение тех же задач с использованием отдельных переменных может потребовать написания сотен операторов.
Так для решения актуальной задачи для ООО «Данрайт» «Надежный телефонный справочник» сохранение и вывод данных через массивы являются универсальным способом при реализации.
По требованиям, представленным директором ООО «Данрайт», нужно написать программу, выполняющую следующие функции:
- Создавать записи абонентов, каждый элемент записи должен содержать номер телефона, фамилию и адрес абонента;
- Реализовать поиск абонента по адресу (улицы) проживания;
- Вывод результата поиска на экран и в файл;