Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь FAQ Написать работу КАТЕГОРИИ: АрхеологияБиология Генетика География Информатика История Логика Маркетинг Математика Менеджмент Механика Педагогика Религия Социология Технологии Физика Философия Финансы Химия Экология ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
Разработка алгоритмов разветвляющейся структуры↑ Стр 1 из 6Следующая ⇒ Содержание книги
Поиск на нашем сайте
ПРАКТИЧЕСКОЕ ЗАНЯТИЕ№2 Разработка алгоритмов разветвляющейся структуры Цель работы: 1. Научиться использовать в алгоритме условный оператор. 2. Закрепить навыки работы с переменными простых типов. Краткие теоретические сведения Алгоритм ветвящейся структуры – это алгоритм, в котором выбирается один из нескольких возможных путей (вариантов) вычислительного процесса. Для программирования разветвляющихся алгоритмов в ЯП Pascal можно использовать три оператора: 1. условный оператор (оператор условного перехода); 2. оператор выбора (оператор варианта); 3. оператор безусловного перехода. Условный оператор (оператор условного перехода) Условный оператор позволяет проверить некоторое условие и в зависимости от результатов проверки выполнить то или иное действие. Да Нет
Формат условного оператора: IF <условие> THEN <оператор1> ELSE <оператор2>; где IF, THEN, ELSE - зарезервированные слова («если», «то», «иначе») <условие> - выражение логического типа <оператор 1>,<оператор 2> - операторы языка Турбо Паскаль, в том числе составные Составной оператор - это последовательность из произвольного числа операторов, отделенных друг от друга точками с запятой, и ограниченная операторными скобками Begin... end. Выполнение условного оператора. Сначала определяется значение логического выражения, записанного в условии; в результате этого получается значение булевского типа. Если логическое выражение принимает значение TRUE (истина, т.е. условие верно), то выполняется <оператор1>, записанный после слова THEN; после чего управление передается на оператор, следующий за условного оператором (т.е. после <оператор2>, стоящего за ELSE). Если логическое выражение принимает значение FALSE (ложь, т.е. условие неверно), то выполняется <оператор2>, записанный после слова ELSE (иначе). Неполная форма условного оператора: IF <условие> THEN <оператор1>; Часть ELSE <оператор 2> может быть опущена. Тогда при значении TRUE логического выражения, стоящего в условии, выполняется <оператор1>, в противном случае <оператор1> пропускается. Контрольные вопросы:
1. Что такое программа (алгоритм) ветвящейся структуры? 2. Формат условного оператора. 3. Правила выполнения условного оператора. 4. Формат условного оператора в неполной форме. 5. Правила выполнения условного оператора в неполной форме. Задание Разработать программу, вычисляющую значение функции f для произвольного значения х Порядок выполнения работы 1. Поэтапно разработайте решение поставленной задачи (постановка задачи, список используемых переменных, математическая модель, тип используемого алгоритма, блок-схема алгоритма, текст программы на Турбо Паскале, тестовый пример, протокол выполнения программы). 2. Наберите текст программы. 3. Выполните отладку программы. 4. Запустите программу на выполнение и проверьте результаты тестовых примеров. Содержание отчета: 1. постановка задачи 2. список используемых переменных 3. математическая модель 4. блок-схема алгоритма с указанием типа алгоритма 5. текст программы на Turbo Pascal 6. тестовый пример 7. протокол работы программы Пример оформления отчета: Постановка задачи. Разработать программу, вычисляющую значение функции f для произвольного значения х
Список используемых переменных. Исходные данные: x (вещественное число) Результат: f (вещественное число) Тип алгоритма: разветвляющийся. Блок-схема алгоритма:
Да Нет
Текст программы на Pascal: Program vetvlenie; Var x,f:real; Begin Write(‘Ведите х =’); {процедура вывода сообщения} Readln(x); {процедура ввода значения х} If x>0 then f:=sqr(x) else f:=sqr(x)*x; {условный оператор – вычисление значения f по условию} Writeln(‘f(‘,x:5:2,’)=’,f:7:2); {процедура вывода результата} End. Тестовый пример: 1. х=2, f=4 (так как 2>0) 2. x= –2, f= –8 (так как -2 0) Протокол работы программы: Ведите х =2 f(2.00)= 4.00 Ведите х = –2 f(-2.00)= –8.00
Варианты индивидуальных заданий
ПРАКТИЧЕСКОЕ ЗАНЯТИЕ №3 Оператор цикла с параметром В случаях, когда число повторений известно заранее, удобно использовать оператор цикла с параметром. В этом цикле важную роль играет переменная-параметр, которая на каждом шаге цикла автоматически изменяет свое значение ровно на единицу. Поэтому переменную-параметр называют также счетчиком. Оператор цикла FOR можно использовать в двух вариантах. Форматы оператора цикла с параметром: Вариант 1 (с увеличением счетчика): For <параметр>:=<начальное значение> to <конечное значение> do <оператор>; Вариант 2 (с уменьшением счетчика): For <параметр>:=<начальное значение> downto <конечное значение> do <оператор>; For, to, downto, do - зарезервированные слова («для», «до», «уменьшая до», «делать») For … do – заголовок цикла <параметр> – параметр цикла - переменная любого порядкового типа; < начальное значение> – выражение того же типа, что и параметр; <конечное значение> – выражение того же типа, что и параметр; <оператор> - тело цикла. Тело цикла может быть произвольным оператором Turbo Pascal, в том числе составным. Repeat <тело цикла> until <условие выхода из цикла>;
repeat, until – зарезервированные слова («повторять», «до тех пор, пока») repeat – заголовок цикла <тело цикла> – произвольный оператор Паскаля (может быть составным) <условие выхода из цикла> – выражение логического типа Задание 1 Составить программу вычисления функции y = с использованием операторов цикла с предусловием.. Порядок выполнения работы 1. Поэтапно разработайте решение поставленной задачи (постановка задачи, список используемых переменных, тип используемого алгоритма, текст программы на Паскале, тестовый пример, протокол выполнения программы). 2. Загрузите Pascal. 3. Наберите текст программы. 4. Выполните отладку программы. 5. Запустите программу на выполнение и проверьте результаты тестовых примеров. Содержание отчета: 8. постановка задачи 9. список используемых переменных 10. блок-схема алгоритма с указанием типа алгоритма 11. текст программы на Pascal 12. тестовый пример 13. протокол работы программы Пример оформления отчета: Постановка задачи. Составить программу вычисления функции y = с использованием оператора цикла с параметром. Список используемых переменных. Исходные данные: N – количество слагаемых (повторений) – целого типа Результат: y – функция – вещественного типа. Промежуточные переменные: i – номер слагаемого (повторения) – целого типа. Тип алгоритма: циклический. Блок-схема:
Нет Да
Текст программы на Pascal: Program Example1; Var N,y,i:integer; Begin Write(‘Введите количество слагаемых N=’); Readln(N); y:=0; {значение суммы у принимает значение 0} For i:=1 to N do {цикл для вычисления суммы, выполняемый N раз} y:=y+sqr(i); {тело цикла, выполняемое N раз – вычисление суммы} Writeln(‘Сумма y=’,y); End. Тестовый пример: Если N=4, тогда y=30 Протокол работы программы: Введите количество слагаемых N=4 Сумма у= 30
Задание 2 Составить программу, которая определяет, является ли целое четырёхзначное число "перевёртышем", т.е. записывается одинаково слева направо и справа налево. Список используемых переменных. Исходные данные: N – вводимое целое число; M – дубликат числа n; Результат: текстовое сообщение Промежуточные переменные: i – параметр цикла для создания «перевертыша» (счетчик количества цифр от 1 до 4) А – число, записанное цифрами числа n в обратном порядке; К – переменная для запоминания последней цифры числа М. Типы используемых алгоритмов: циклический, ветвящийся. Текст программы на Pascal: Program Example2; Var M,N,A,i:integer; Begin Writeln(‘Введите целое число: ’); Readln(N); M:=N; A:=0; {создание числа А, записанного цифрами числа N в обратном порядке} for i:=1 to 4 do {цикл для записи числа в обратном порядке, выполняемый 4 раза} begin K:= M mod 10; {в переменную К записывается последняя цифра числа М} A:=A*10+K; {к числу А «дописывается» справа последняя цифра числа М} M:=M div 10 {из числа M отбрасывается последняя цифра} end; if A=N then writeln (‘Число ‘,N:6,’ является перевертышем’) else writeln (‘Число ‘,N:6,’ не является перевертышем’); End. Тестовый пример: 1. Если N=12321, тогда N является перевертышем 2. Если N=3994, тогда N не является перевертышем
Протокол работы программы: Введите целое число: 12321 Число 12321 является перевертышем Введите целое число: 1234 Число 1234 не является перевертышем
Варианты индивидуальных заданий
ПРАКТИЧЕСКОЕ ЗАНЯТИЕ №4 Функция Function <имя ф-ции> (n-формальные параметры): <тип возвращаемого результата>; Begin <имя ф-ции>:=<имя ф-ции> (n-1); End; Процедура Procedure <имя п-ры> (n-формальные параметры); Begin <имя п-ры> (n-1); End; 2. Косвенная рекурсия До вызова процедура или функция должна быть обязательно описана, для этого используется опережающее объявление: процедура или функция содержит описание только своего заголовка, вслед за которым ставится зарезервированное слово forward.
Var <имя переменной>: <тип переменной>; Procedure <имя п-ры 2> (n-формальные параметры); forward; Procedure <имя п-ры 1> (n-формальные параметры); Begin <имя п-ры 2> (n-1); End; Procedur e <имя п-ры 2> (n-формальные параметры); Begin <имя п-ры 1> (n-1); End;
Отчет о выполнении Отчет выполняется в электронном виде. Если заданий несколько, то повторить всю систему отчета необходимое количество раз.
Контрольные вопросы: 1. Что понимается под структурным программированием? 2. Что называется подпрограммой? 3. Что такое «рекурсия»? 4. Как объявляется рекурсивная подпрограмма? 5. В чем преимущества и недостатки использования рекурсии? 6. Какие виды рекурсий бывают и в чем их особенность?
22Варианты индивидуальных заданий
Составить программу вычисления функции. При разработке программы создать и использовать подпрограмму-функцию.
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15. x=1,4; у=3,5; u=0,9; t=0,1; v=6,6.
16. x=-2,6; у=0,6; z=-3; u=-2,7; t=-1; v=-1,6.
ПРАКТИЧЕСКОЕ ЗАНЯТИЕ №5 ПОСТАНОВКА ЗАДАЧИ ДАНО ТРЕБУЕТСЯ СВЯЗЬ и последовательность является перестановкой исходной последовательности. Основное требование к методам внутренней сортировки - экономное использование памяти. Это означает, что переупорядочивание элементов надо выполнять на том же месте. Методы внутренней сортировки можно разбить на четыре основных класса в зависимости от лежащего в их основе приема: · сортировка включением(вставкой), · сортировка выбором, · сортировка обменом, · разделением.
СОРТИРОВКА ВКЛЮЧЕНИЕМ. Этот метод состоит в том, что на каждом шаге берут i-ый элемент последовательности и передают его в готовую отсортированную часть последовательность, вставляя его на свое место. Алгоритм сортировки включениями выглядит следующим образом:
FOR I:= 2 TO N DO BEGIN X:= a[I]; < вставить X на подходящее место в a[1], a[2],...,a[I] > END СОРТИРОВКА ВЫБОРОМ. Этот метод основан на следующем правиле. Выбирается минимальный (максимальный) элемент последовательности и обменивается с первым элементом (элементом) последовательности. Очевидно, один элемент при этом встанет на свое место в отсортированной части последовательности. Далее все выше изложенное надо повторить в не отсортированной части последовательности и т.д.
FOR I = 1 TO N-1 DO BEGIN < присвоить K индекс наименьшего элемента из a[I]...a[N] > < поменять местами a[I] и a[K] > END СОРТИРОВКА ОБМЕНОМ. Алгоритм обмена основан на принципе сравнения и обмена пары соседних элементов до тех пор, пока не будут отсортированы все элементы. В качестве примера рассмотрим сортировку методом пузырька.
FOR I:= 2 TO N DO FOR J:= N DOWNTO I DO IF a[J-1] > a[J] THEN BEGIN X:= a[J-1]; a[J-1]:= a[J]; a[J]:= X END
СОРТИРОВКА РАЗДЕЛЕНИЕМ. Алгоритм разделением основан на разбиении последовательности на две подпоследовательности по некоторому правилу. При этом каждая из них может не являться упорядоченной, но последовательное применение указанного правила приводит к упорядоченности последовательности. Примером этого класса алгоритмов является алгоритм быстрой сортировки. Procedure quicksort (S); begin if < S содержит один элемент> then <возвратить S > else begin <выбрать произвольный элемент a из S >; <пусть S 1, S 2 и S 3 - последовательности элементов из S, соответственно меньших, равных и больших a >; < возвратить quicksort(S1), затем S2,, затем quicksort(S3) > end end
Внешняя сортировка, т.е. сортировка данных, находящихся на внешних запоминающих устройствах, имеет свои особенности. · Существенную долю времени в этих сортировках тратится на обмен информации с внешним запоминающим устройством, поэтому нужны алгоритмы, которые минимизируют число таких операций. · Оперативная память имеет ограниченные размеры и поэтому в каждый момент времени может быть доступна только часть данных. Рассмотрим один из алгоритмов внешней сортировки.
СОРТИРОВКА СЛИЯНИЕМ. Главная идея, которая лежит в основе этой сортировки это представлении файла в виде постепенно увеличивающихся серий, т.е. упорядоченных подпоследовательностей. Если есть, по крайней мере, два файла и число серий в них равно или отличается на единицу, то последовательным слиянием отсортированных серий в новый файл можно уменьшить количество серий, по крайней мере, в два раза. Отчет о выполнении
Отчет выполняется в электронном виде. Если заданий несколько, то повторить всю систему отчета необходимое количество раз.
Контрольные вопросы: 1. Что такое одномерный массив? 2. Что такое двухмерный массив? 3. Что такое сортировка массива? 4. Какие методы сортировки вы знаете? Варианты индивидуальных заданий
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Последнее изменение этой страницы: 2021-04-13; просмотров: 117; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 18.225.54.199 (0.009 с.) |