Алгоритмические структуры и структурированные типы данных

Свойства алгоритма как определенного содержания и порядка действий над объектами. Базовые алгоритмические структуры: следование, ветвление, повторение. Структурированные типы данных. Реализация на языке программирования задач при помощи алгоритмов.

Рубрика Программирование, компьютеры и кибернетика
Вид контрольная работа
Язык русский
Дата добавления 06.12.2014
Размер файла 598,6 K

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

Размещено на http://www.allbest.ru/

Содержание

  • Введение
  • Теоретическая часть
  • Постановка задачи
  • Задание № 1
  • Задание№ 2
  • Функция
  • Программа
  • Заключение
  • Список использованных источников

Введение

Тема данной контрольной работы - "Алгоритмические структуры и структурированные типы данных". Прежде, чем приступить к выполнению поставленной задачи, разберем теоретические понятия, которые затрагивает тема данной курсовой работы.

Теоретическая часть

Алгоритм - описанная на некотором языке точная и конечная система правил, определяющая содержание и порядок действий над некоторыми объектами, строгое выполнение которых дает решение поставленной задачи.

Алгоритм характеризуется несколькими свойствами:

· Дискретность - разрывность структуры;

· Массовость - применимость ко всем задачам рассматриваемого типа, при любых исходных данных;

· Определенность - точность (каждый шаг алгоритма строго определен и не допускает различных толкований);

· Результативность - свойство, состоящее в том, что любой алгоритм должен завершаться за конечное число шагов;

· Формальность - строгое исполнение инструкций без отвлечения на поставленную задачу.

Существует три базовые алгоритмические структуры: следование, ветвление, повторение.

· Следование состоит из двух команд с указанной очередностью их выполнения и имеет вид: <команда-предшественник>; <команда-преемник>.

· Ветвление состоит из некоторого условия, проверяемого на истинность при выполнении структуры, команды, выполняемой при выполнении проверяемого условия, и команды, выполняемой при невыполнении условия. Структура имеет вид if <условие> then <команда, выполняемая при выполнении условия> else <команда, выполняемая при невыполнении условия>;.

· Структура повторения, она же цикл, служит для компактной записи одного и того же набора команд, повторяемых для различных значений параметров команд. Тело цикла - последовательность повторяемых команд, которая может быть и пустой. Например, цикл FOR <переменная цикла>: =<выражение 1> TO <выражение 2> DO {операторы тела цикла};

Теперь разберем понятие "Структурированные типы данных".

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

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

Структура, которая объединяет элементы одно типа данных - массив.

Массивы бывают: одномерные, двумерные.

Одномерный массив (вектор) - совокупность

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

Так, например, последовательность чисел 1, 2, 3, 4, 5 может образовывать одномерный вещественный массив размерности 5, например, с именем а вида: а [1] = 1, а [2] = 2, а [3] = 3, а [4] = 4, а [5] = 5. Значение порядкового номера элемента массива - индекс элемента.

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

Чтобы выделить какой-то элемент матрицы, нужно так же, как и с вектором, обратиться к индексу, который имеет две вышеописанные координаты (столбец, строка).

Задание моей курсовой работы включает в себя работу с файлами.

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

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

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

Чтение файла - ввод данных из внешнего файла, находящегося на диске, в оперативную память машины.

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

Обращение к файлу в Паскале происходит прописыванием пути к файлу на жестком диске, указывая при этом и имя файла. Например: 'С: \Programs files\programma. txt'.

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

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

Подпрограммы помогают в решении некоторых важных задач:

· избавляют от необходимости многократно повторять в тексте программы аналогичные фрагменты;

· улучшают структуру программы, облегчая ее понимание;

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

Существует два вида подпрограмм: процедура и функция.

Процедура - это поименованный составной оператор, где имя задается служебным словом Procedure.

Структура процедуры имеет следующий вид:

Procedure <имя процедуры> (формальные параметры: их тип);

Var (локальные переменные) begin .

end;

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

Структура функции имеет следующий вид:

Function <имя функции> (формальные параметры: их тип): <тип функции>;

Var

(локальные переменные)

Begin …

<имя функции>: =<выражение>; end

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

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

Задание № 1

1. Имеется файл, в котором содержится размерность массива и его элементы.

Вычислить:

А) максимальный по модулю элемент массива;

Б) сумму элементов массива, расположенных между первым и вторым положительными элементами.

Полученные результаты записать в новый файл.

Задание№ 2

2. Соседями элемента Аij в матрице назовем элементы Akl где i - 1 ? k ? i + 1, j - 1 ? l ? j + 1, (k, l) ? (i,j). Операция сглаживания матрицы дает новую матрицу того же размера, каждый элемент которой получается как среднее арифметическое имеющихся соседей соответствующего элемента исходной матрицы.

А) Построить результат сглаживания заданной вещественной матрицы размером 10 х 10 (оформить в виде процедуры).

Б) В сглаженной матрице найти сумму модулей элементов, расположенных ниже главной диагонали (оформить в виде функции).

алгоритм программирование следование ветвление

Задание № 1

Блок-схема:

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

var

dan,rez: text;

max,s, i,k1,k2,n: integer;

a: array [1.100] of integer;

begin

randomize;

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

read (n);

assign (dan,'F: \учёба (\информатика лабы\курсовая\massiv. txt');

assign (rez,'F: \учёба (\информатика лабы\курсовая\rezultat. txt');

rewrite (dan);

for i: =1 to n do begin

a [i]: =random (-50,50);

writeln (dan,a [i]);

end;

close (dan);

reset (dan);

max: =1;

for i: =1 to n do begin

readln (dan,a [i]);

if abs (a [i]) >max then max: =abs (a [i]);

end;

close (dan);

reset (dan);

rewrite (rez);

writeln (rez,'максимальный по модулю элемент: ',max);

for i: =1 to n do begin

readln (dan,a [i]);

if a [i] >0 then begin

k1: =a [i];

break;

end;

end;

writeln (rez,'первый положительный элемент: ',k1);

for i: =p to n do begin

readln (dan,a [i]);

if a [i] >0 then begin

k2: =a [i];

break;

end;

end;

writeln (rez,'второй положительный элемент: ',k2);

s: =k1+k2;

writeln (rez,'сумма двух первых положительных элементов: ',s);

close (dan);

close (rez);

end.

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

Задание № 2

Блок-схема:

Процедура

Функция

Программа

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

type

mas=array [1.10,1.10] of real;

const

n=10;

m=10;

var

a,b: mas;

i,j,k,l: integer;

procedure sglaj (var a: mas; n,m: integer; var b: mas; p,q: integer);

var

k,sr, i,j: integer;

begin

for i: =1 to n do

for j: =1 to m do

begin

if (i=1) and (j=1) or (i=1) and (j=m) or (i=n) and (j=1) or (i=n) and (j=m) then

begin

if (i=1) and (j=1) then b [i,j]: = (a [i+1,j] +a [i,j+1]) /2;

if (i=1) and (j=m) then b [i,j]: = (a [i+1,j] +a [i,j-1]) /2;

if (i=n) and (j=1) then b [i,j]: = (a [i-1,j] +a [i,j+1]) /2;

if (i=n) and (j=m) then b [i,j]: = (a [i-1,j] +a [i,j-1]) /2;

end

else

if (i>1) and (i<n) and (j=1) or (i>1) and (i<n) and (j=m) or (i=1) and (j>1) and (j<m) or (i=n) and (j>1) and (j<m) then

begin

if (i>1) and (i<n) and (j=1) then b [i,j]: = (a [i-1,j] +a [i+1,j] +a [i,j+1]) /3;

if (i>1) and (i<n) and (j=m) then b [i,j]: = (a [i-1,j] +a [i+1,j] +a [i,j-1]) /3;

if (i=1) and (j>1) and (j<m) then b [i,j]: = (a [i,j-1] +a [i,j+1] +a [i+1,j]) /3;

if (i=n) and (j>1) and (j<m) then b [i,j]: = (a [i,j-1] +a [i,j+1] +a [i-1,j]) /3;

end

else

b [i,j]: = (a [i-1,j] +a [i+1,j] +a [i,j-1] +a [i,j+1]) /4;

end;

end;

function sum (a: mas; n,m: integer): real;

var

i,j: integer;

s: real;

begin

s: =0;

for i: =1 to n do

for j: =1 to m do

if j<i then s: =s+abs (a [i,j]);

sum: =s;

end;

begin

randomize;

writeln ('исходная матрица: ');

for i: =1 to n do

for j: =1 to m do

a [i,j]: =random (-5,5);

for i: =1 to n do begin

for j: =1 to m do

write (a [i,j]: 5);

writeln

end;

writeln ('сглаженная матрица: ');

sglaj (a,10,10,b,10,10);

for i: =1 to n do begin

for j: =1 to m do

write (b [i,j]: 6:

1);

writeln

end;

writeln ('сумма модулей элементов ниже главной диагонали: ',sum (a,10,10));

end.

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

Заключение

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

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

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

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

Список использованных источников

1. Соболь Б.В. и др. Информатика. Учебник. / 3-е изд., доп. и перераб. - Ростов н/Д: Феникс, 2007. - 446 с.

2. Информационные технологии / Под ред. Трофимова В.В. - М.: Высшее образование, 2011. - 632 с.

3. Макарова Н.В. Информатика. Учебник. Начальный уровень / Изд. Питер, - 3 издание, 2013 год, 160 стр.

4. Романова Ю.Д. Информатика и информационные технологии: учебное пособие / Под ред. Ю.Д. Романовой. - 5-е изд., испр. и доп. - М.: Эксмо, 2011. - 704 с.

5. Информатика. Базовый курс / Под ред. С.В. Симоновича. - 2-е изд. - СПб.: Питер, 2011. - 639 с.

Размещено на Allbest.ru


Подобные документы

  • Понятие алгоритма, его свойства. Дискретность, определенность, результативность, формальность как свойства алгоритма. Программа как описание структуры алгоритма на языке алгоритмического программирования. Основные структурные алгоритмические конструкции.

    реферат [1,3 M], добавлен 18.11.2010

  • Виды и свойства информации. Основные понятия систем счисления. Форматы данных. Принципы построения компьютеров. Аппаратные средства мультимедиа. Базовые алгоритмические структуры. Языки программирования низкого уровня. Операционные системы Windows.

    шпаргалка [2,2 M], добавлен 19.06.2010

  • Сущность и основные свойства алгоритмов, принципы их составления. Скалярные типы данных в языке Pascal. Тождественность и совместимость типов данных. Понятие и основные этапы развития, а также движущие силы эволюции языков программирования, типы.

    презентация [85,8 K], добавлен 18.05.2014

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

    курсовая работа [4,5 M], добавлен 21.06.2011

  • Метод половинного деления и метод касательных. Переменные, константы, объявление типов данных. Объект WorkBook: его свойства, методы и события. Методы нахождения корней уравнений. Структурированные типы данных. Терминальные свойства объекта Workbook.

    курсовая работа [1,1 M], добавлен 14.07.2012

  • Простые типы данных: порядковые, вещественные, дата-время. Стандартные процедуры и функции, применимые к целым типам. Кодировка символов в соответствии со стандартом ANSI. Структурированные типы: массивы; записи; множества. Указатели, динамическая память.

    реферат [83,3 K], добавлен 01.12.2009

  • Цель информационного программирования; алгоритмический язык как система обозначений и правил для единообразной и точной записи алгоритмов и их исполнения. Языки программирования низкого и высокого уровня; классификация и использование структуры данных.

    реферат [383,1 K], добавлен 07.01.2012

  • Понятие алгоритма и его характеристики как основного элемента программирования. Формы представления алгоритмов, основные алгоритмические структуры. Структурное и событийно-ориентированное программирование. Объектно-ориентированное программирование.

    реферат [86,0 K], добавлен 17.07.2008

  • Создание блок-схемы алгоритма и реализующей его программы, снабженных пояснениями, для решения задач. Реализация программы в среде Delphi как проекта консольного приложения. Основные алгоритмические структуры, соответствующие операторы для их реализации.

    контрольная работа [447,4 K], добавлен 08.10.2012

  • Общие сведения об алгоритмах. Свойство и этапы построения алгоритма. Нисходящее проектирование программ. Основные алгоритмические структуры. Принципы структурной алгоритмизации. Массивы случайных чисел. Ввод исходных данных. Определение и вывод данных.

    методичка [435,3 K], добавлен 09.12.2014

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.