Методические указания по дисциплине «Основы алгоритмизации и программирования» для студентов специальности 230105





НазваниеМетодические указания по дисциплине «Основы алгоритмизации и программирования» для студентов специальности 230105
страница5/6
Дата публикации22.09.2013
Размер0.78 Mb.
ТипМетодические указания
100-bal.ru > Информатика > Методические указания
1   2   3   4   5   6

Описание массивов. Переменная регулярного типа описывается в разделе описания переменных в следующей форме:

Var <идентификатор> : Array [<тип индекса>] Of <тип компонент>

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

Var Т : Array [1..12] Of Real;

Объем памяти, выделяемый под массивы, в ТурбоПаскале составляет 64 Кбайт.

По аналогии с математикой одномерные числовые массивы часто называют векторами, а двухмерные — матрицами.

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

Для упрощения таких изменений индексные параметры определяют в разделе констант:

Const Imax = 10; Jmax = 20;

Var Mas : Array[1..Imax, l..Jmax] Of Integer;

В этом случае для изменения размеров массива Mas и всех операторов программы, связанных с этими размерами, достаточно отредактировать только одну строку в программе — раздел констант.

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

в одномерный массив

For I := 1 То 12 Do

ReadLn(Т[I]);

в двумерный массив

For I := 1 To IMax Do

For J := 1 To JMax Do

ReadLn(Mas[I, J]);

Здесь каждое следующее значение будет вводиться с новой строки. Для построчного ввода вместо оператора ReadLn используется оператор Read.

Аналогично в цикле по индексной переменной организуется вывод значений массива. Например:

For I := 1 То 12 Do Write(T[I] : 8 : 4);
Порядок выполнения задания к лабораторной работе № 6


  1. На основании теоретических сведений составьте программу в соответствии с заданием к лабораторной работе № 6.

  2. После составления своей программы для проверки правильности сравните ее с одним из возможных вариантов программы, приведенным ниже.


Program Example_1;

Const N = 12;

Type Vec = Array [1..N] Of Real;

Var T, Dt : Vec;

St : Real;

I : Integer;

Begin { ---Ввод исходных данных---}

WriteLn('Введите таблицу температур');

For I := 1 То N Do

Begin

Write(I : 2,':');

ReadLn(T[I])

End;

{---Вычисление средней температуры---}

St:=0;

For I:=1 To N Do

St:=St+T[I];

St:=St/N;

{---Вычисление таблицы отклонений от среднего---}

For I:=1 То N Do

Dt[I]:=St—T[I];

{---Вывод результатов---}

WriteLn('Средняя температура равна ', St:6:2);

WriteLn;

WriteLn('Отклонения от средней температуры:');

For I := 1 То N Do

WriteLn(I:1,':',Dt[I]:6:2)

End.

По такой программе можно рассчитать среднее значение и вектор отклонений от среднего значения для любого одномерного вещественного массива. Настройка размера массива осуществляется только редактированием раздела констант.

Лабораторная работа № 7П

Рекурсивные подпрограммы в ТурбоПаскале.
Задание к лабораторной работе № 7П
Набрать и отладить программу вычисления суммы элементов линейного массива. При решении использовать рекурсивную форму алгоритма в соответствии с утверждением: сумма равна нулю, если число элементов равно нулю, и равна сумме всех предыдущих элементов плюс последний, если число элементов не равно нулю.
Краткие теоретические сведения
В рекурсивном определении обязательно должно присутствовать ограничение, т.е. граничное условие, при выходе на которое дальнейшая инициация рекурсивных обращений прекращается.

Приведем примеры рекурсивных определений некоторых математических функций.

Классическим примером рекурсии является определение факториала. С одной стороны, факториал определяется в виде: n! = = 1 ∙ 2 ∙ 3 ... n, а с другой стороны, его можно определить следующим образом:



Граничным в данном случае является условие n < 1.

Рекурсивное определение функции К(п), возвращающей количество цифр в заданном натуральном числе n, имеет вид



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

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

Выполнение действий в рекурсивной подпрограмме может быть организовано одним из следующих способов:


Рекурсивный подъем

Рекурсивный спуск

Рекурсивный спуск и рекурсивный подъем

Begin

Begin

Begin

P;

операторы;

операторы;

операторы;

P

P;

End;

End;

операторы







End;




Здесь Р — рекурсивная подпрограмма.

Действия в рекурсивной подпрограмме могут выполняться либо на одном из этапов рекурсивного обращения, либо на обоих сразу. Способ организации действий диктуется логикой разрабатываемого алгоритма.
Порядок выполнения задания к лабораторной работе № 7П


  1. На основании теоретических сведений составьте программу вычисления суммы элементов линейного массива ( см. раздел Задание к лабораторной работе № 7П).

  2. После составления своей программы для проверки правильности сравните ее с одними из возможных вариантов программ, приведенных ниже.

Program SUM_LIN_MAS;

Type LinMas = Array[1..100] Of Integer;

Var A : LinMas;

I, N : Byte;
{Рекурсивная функция}

Function Summa(N : Byte; A : LinMas): Integer;

Begin

If N = 0

Then Summa := 0

Else Summa := A[N] + Summa(N - 1, A)

End;
{Основная программа}

Begin

Write('Количество элементов массива? ');

ReadLn(N);

Randomize;

For I := 1 To N Do

Begin

A[I] := -10 + Random(21);

Write(A[I] : 4)

End;

WriteLn;

WriteLn('Сумма: ', Summa(N, A))

End.

  1. Произведите отладку своей программы и предъявите отлаженную программу преподавателю.

Лабораторная работа № 8П

Множества в ТурбоПаскале.
Задание к лабораторной работе № 8П


  1. Набрать и отладить программу определения количества знаков препинания (. ─ , ; : ! ?) в символьной строке.

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

  3. Сравнить две программы по п.п. 1, 2 и сформулировать вывод о целесообразности использования множеств в программах.


Краткие теоретические сведения
Множеством называется совокупность однотипных элементов, рассматриваемых как единое целое. В Паскале могут быть только конечные множества. В ТурбоПаскале множество может содержать от 0 до 255 элементов.

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

Тип элементов множества называется базовым типом. Базовым может быть любой скалярный тип за исключением типа Real.

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

Приведем несколько примеров задания множеств с помощью конструктора:

[3, 4, 7, 9, 12] — множество из пяти целых чисел;

[1. .100] — множество целых чисел от 1 до 100;

['a', ' b', 'с'] множество, содержащее три литеры а, Ь, с;

['а'..'z','?','!'] множество, содержащее все строчные латинские буквы,
а также знаки ? и !.

Символом «[]» обозначают пустое множество, т.е. множество, не содержащее никаких элементов.

Не имеет значения порядок записи элементов множества внутри конструктора. Например, [1, 2, 3] и [3, 2, 1] — это эквивалентные множества.

Каждый элемент в множестве учитывается только один раз, поэтому множества [1, 2, 3, 4, 2, 3, 4, 5] и [1..5] эквивалентны.

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

Var <идентификатор> : Set Of <базовый тип>.

Например:

Var A, D : Set Of Byte;

В : Set Of 'a'..'z';

С : Set Of Boolean;

Нельзя вводить значения в множественную переменную оператором ввода и выводить оператором вывода. Множественная переменная может получить конкретное значение только в результате выполнения оператора присваивания следующего формата:

<Множественная переменная> := Множественное выражение>

Например:

А := [50,100,150,200];

В := ['m','n1,'k'];

С := [True,False];

D := А;

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

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

Объединением двух множеств А и В называется множество, состоящее из элементов, входящих хотя бы в одно из множеств А или В. Знак операции объединения в Паскале — это «+».

На рис. 1, а схематически показан результат объединения двух множеств.


Рис. 2.27. Операции над множествами: аобъединение; бпересечение; вразность.

Например:

[1,2,3,4] + [3,4,5,6][1,2,3,4,5,6].

Пересечением двух множеств А и В называется множество, состоящее из элементов, одновременно входящих и в множество А, и в множество В (рис. 1, б). Например:

[1,2,3,4] * [3,4,5,6]  [3,4] .

Разностью двух множеств А и В называется множество, состоящее из элементов множества А, не входящих в множество В (рис. 1, в). Например:

[1,2,3,4] – [3,4,5,6]  [1,2]

[3,4,5,6] – [1,2,3,4]  [5,6]

Очевидно, что операции объединения и пересечения перестановочные, а разность множеств — операция неперестановочная.

Множества можно сравнивать между собой, т.е. для них определены операции отношения. Результатом отношения, как известно, является логическая величина True или False. Для множеств применимы все операции отношения, за исключением «>» и «<».

В табл. 1 описаны операции отношения над множествами. При этом предполагается, что множества А и В содержат элементы одного типа.


Таблица 1

Операции отношения над множествами

Отношение

Результат

True

False

А = В

М ножества А и В совпадают

В противном случае

А <> В

Множества А и В не совпадают

То же

А <= В

Все элементы А принадлежат В

»

А >= В

Все элементы В принадлежат А

»

Приведем несколько примеров выполнения операций отношения. Пусть переменная М описана в программе следующим образом:
1   2   3   4   5   6

Похожие:

Методические указания по дисциплине «Основы алгоритмизации и программирования» для студентов специальности 230105 iconПрограмма по формированию навыков безопасного поведения на дорогах...
Тема: Научно-методические основы реализации содержательной линии «Основы алгоритмизации и программирования»
Методические указания по дисциплине «Основы алгоритмизации и программирования» для студентов специальности 230105 iconРабочая программа учебной дисциплины «програмирование и основы алгоритмизации»
Целью дисциплины является изучение способов программирования и алгоритмизации математических и теплоэнергитических задач с использованием...
Методические указания по дисциплине «Основы алгоритмизации и программирования» для студентов специальности 230105 iconМетодические указания по выполнению контрольных работ по дисциплине
Методические указания по выполнению контрольных работ по дисциплине «Правовые основы российского государства» для студентов по специальности...
Методические указания по дисциплине «Основы алгоритмизации и программирования» для студентов специальности 230105 iconМетодические указания и контрольные задания для студентов-заочников...
Методические указания и контрольные задания для студентов-заочников Салаватского индустриального колледжа
Методические указания по дисциплине «Основы алгоритмизации и программирования» для студентов специальности 230105 iconМетодические указания и контрольные задания для студентов-заочников...
Методические указания и контрольные задания для студентов-заочников Салаватского индустриального колледжа
Методические указания по дисциплине «Основы алгоритмизации и программирования» для студентов специальности 230105 iconМетодические указания по самостоятельной и индивидуальной работе...
Федеральное государственное бюджетное образовательное учреждение высшего профессионального образования
Методические указания по дисциплине «Основы алгоритмизации и программирования» для студентов специальности 230105 iconМетодические указания по выполнению внеаудиторной самостоятельной...
Методические указания предназначены для студентов техникума, обучающихся по специальности
Методические указания по дисциплине «Основы алгоритмизации и программирования» для студентов специальности 230105 iconМетодические указания к выполнению курсовой работы по дисциплине «Основы научных исследований»
«Прикладная биотехнология» Наумовой Н. Л. Методические указания к выполнению курсовой работы предназначены для студентов 2 курса...
Методические указания по дисциплине «Основы алгоритмизации и программирования» для студентов специальности 230105 iconМетодические указания к выполнению практических работ по дисциплине...
Методические указания предназначены для студентов среднеспециальных учебных заведений, обучающихся по специальностям: 080302 Коммерция...
Методические указания по дисциплине «Основы алгоритмизации и программирования» для студентов специальности 230105 icon«Разработка алгоритмов и программирование на языке Pascal»
Лабораторный практикум содержит методические указания к выполнению лабораторных работ по алгоритмизации и программированию на языке...
Методические указания по дисциплине «Основы алгоритмизации и программирования» для студентов специальности 230105 iconМетодические указания к спецкурсу «Теория и практика нейролингвистического...
Методические указания разработаны кандидатом психологических наук, доцентом кафедры психологии личности Е. В. Прокопьевой
Методические указания по дисциплине «Основы алгоритмизации и программирования» для студентов специальности 230105 iconМетодические указания составлены в соответствии с учебным планом...
Методические указания предназначены для студентов, обучающихся по направлению 011200. 68 «Физика», магистерская программа «Окружающая...
Методические указания по дисциплине «Основы алгоритмизации и программирования» для студентов специальности 230105 iconВозможность доступа студентов к электронным фондам учебно-методической...
Методические указания по выполнению контрольных работ по дисциплине «Правовые основы российского государства» для студентов по специальности...
Методические указания по дисциплине «Основы алгоритмизации и программирования» для студентов специальности 230105 iconМетодические указания к практическим занятиям по дисциплине «Основы конструкции автомобилей»
Методические указания предназначены для студентов, изучающих курс «Основы конструкции автомобиля». Они могут быть также использованы...
Методические указания по дисциплине «Основы алгоритмизации и программирования» для студентов специальности 230105 iconМетодические указания к выполнению контрольных работ по дисциплине “
Методические указания к выполнению контрольных работ по дисциплине “Основы внешнеэкономической деятельности” для студентов экономических...
Методические указания по дисциплине «Основы алгоритмизации и программирования» для студентов специальности 230105 iconПрограмма по формированию навыков безопасного поведения на дорогах...
Программы: «Основы алгоритмизации и программирования» и «Арифметические основы эвм»


Школьные материалы


При копировании материала укажите ссылку © 2013
контакты
100-bal.ru
Поиск