Московский государственный университет экономики, статистики и информатики Филиал в г. Минске Кафедра экономики и информатики Контрольная работа по дисциплине ОСНОВЫ АЛГОРИТМИЗАЦИИ И ПРОГРАММИРОВАНИЯ ВАРИАНТ 7 I курса Минец Наталья Владимировна Руководитель Васильев Владимир
Павлович МИНСК 2004 Содержание. Содержание 1. Операторы организации разветвляющихся алгоритмов 2. Процедуры операторы и процедуры - функции в языке Паскаль 2.1 Общие сведения 2.2 Процедуры и функции пользователя 3. Задача 3.1 Постановка задачи 3.2 Блок-схема алгоритма задачи 3.3 Текст программы на языке Паскаль 3.4 Контрольные примеры 11 4.
Задача 4.1 Постановка задачи 4.2 Блок-схема алгоритма задачи 4.3 Текст программы на языке Паскаль 4.4 Контрольные примеры 5. Задача 5.1 Постановка задачи 5.2 Блок-схема алгоритма задачи 5.3 Текст программы на языке Паскаль 5.4 Контрольный пример 19 Список литературы 1. Операторы организации разветвляющихся алгоритмов
Данные операторы обеспечивают выполнение или невыполнение некоторого оператора или блока в зависимости от заданных условий. Условие - выражение булевского типа. Например Var flag boolean a b a b a b Условие может быть составным, т.е. состоять из нескольких логически связанных частей. Для связи частей между собой применяются логические операции And и ab and b x условие истинно, если каждая составляющая его часть истина
Or или a b or bx условие истинно, если хотя бы одна из составляющих истина Not отрицание Not xa условие истино, если a не равно b. Для записи ветвления в Паскале применяется оператор IF если. Формат записи оператора If условие then оператор1 else оператор2 В качестве оператора может быть любой оператор в том числе и составной.
Часть else может отсутствовать ветвление неполное. If условие then оператор1 Пример X 2 if x 0 then y 1 else y 2 WriteY Внутри оператора if могут содержаться другие операторы if If x0 then If y 0 then If y - 2 then y 3 else if x - 5 then y - 2 else y 1 Для записи нескольких вариантов действий удобно применение оператора
CASE выбор. Формат записи оператора сase выражение-селектор of список 1 оператор1 список2 оператор2 cписок n операторn else оператор end Оператор CASE работает следующим образом 1 шаг - вычисляется выражение оно должно быть перечислимого типа. 2 шаг - обеспечивается реализация того оператора, константа выбора которого равна текущему значению селектора выражения если ни одна из констант не равна текущему значению селектора, то выполняется оператор после else, если он присутствует.
Пример Var x integer сase x of 12 y1 5,30,46 y2 1 10 y3 else y4 end Если переменная х будет равна 12, то y примет значение 1. Если переменная х будет равна 5, 30 или 46, то y примет значение 2. Если переменная х будет равна от 1 до 4, или от 6 до 10, то y примет значение 3. Если переменная х не будет равна ни одному из перечисленных значений, то y примет значение 4. 2.
Процедуры операторы и процедуры - функции в языке Паскаль 2.1 Общие сведения В языке Turbo Pascal подпрограммы реализованы посредством процедур и функций. Процедура - это независимая поименованная часть программы, которую можно вызвать по имени для выполнения определенных действий. Структура процедуры повторяет структуру программы. Процедура не может выступать как операнд в выражении.
Функция аналогична процедуре, но имеются два отличия функция передает в точку вызова скалярное значение имя функции может входить в выражение как операнд. Все процедуры и функции языка Turbo Pascal подразделяются на две группы встроенные и определенные пользователем. Первые входят в состав языка и вызываются для выполнения по строго фиксированному имени. Вторые разрабатываются и именуются самим пользователем.
Все стандартные средства расположены в специализированных библиотечных модулях, которые имеют системные имена. 2.2 Процедуры и функции пользователя Процедуры и функции пользователя являются основой модульного программирования. Разбивая задачу на части и формируя логически обособленные модули как процедуры и функции, программист реализует основные принципы широко используемого в практике системного подхода. Процедуры. Описание процедуры включает заголовок имя и тело процедуры.
Заголовок состоит из зарезервированного слова PROCEDURE, идентификатора имени процедуры и необязательного заключенного в круглые скобки списка формальных параметров с указанием типа каждого параметра. Имя процедуры - идентификатор, уникальный в пределах программы. Тело процедуры представляет собой локальный блок, по структуре аналогичный программе. Описания меток, констант, типов и т. д. действительны только в пределах данной процедуры.
В теле процедуры можно использовать любые глобальные константы и переменные. PROCEDURE имя Формальные параметры CONST TYPE VAR BEGIN операторы END В качестве примера опишем процедуру, которая прерывает выполнение программы и выдает соответствующее сообщение об ошибке PROCEDURE AbortMsg string BEGIN WritelnОшибка , Msg Halt1 END Сохраним данный пример в файле
ABORT.PAS для дальнейшего использования в примере ниже по тексту. Процедура не может выполниться сама, ее необходимо вызвать по имени и указать фактические параметры того же типа, что и формальные. Количество и тип формальных параметров равны количеству и типу фактических параметров. В качестве примера приведем фрагмент программы, в котором используется описанная выше процедура Abort PROGRAM DemoProc Подсчет суммы десяти введенных целых положительных чисел, если будет введено
отрицательное число, прервать выполнение CONST Limit 10 ограничение на количество вводимых чисел VAR Count, Item, Sum integer I ABORT.PAS включение в текст файла ABORT.PAS BEGIN Count 0 Sum 0 WHILE Count Limit DO BEGIN условие выполнение цикла Count Count1 WriteВведите , Count, -ое целое число ReadlnItem IF Item 0 THEN вызов процедуры
Abortвведено отрицательное число Sum SumItem END WritelnСумма введенных чисел равна , Sum END. Параметры обеспечивают механизм замены, который позволяет выполнять процедуру с различными строковыми сообщениями. Если процедура возвращает в программу какие-то значения, соответствующие переменные должны быть описаны как параметры-переменные с использованием слова VAR. Функции. Функция, определенная пользователем, состоит из заголовка и тела функции.
Заголовок содержит зарезервированное слово FUNCTION, идентификатор имя функции, заключенный в круглые скобки, необязательный список формальных параметров и тип возвращаемого функцией значения. Тело функции представляет собой локальный блок, по структуре аналогичный программе FUNCTION имя Формальные параметры тип результата CONST TYPE VAR BEGIN операторы END В разделе операторов должен находиться по крайней мере один оператор, присваивающий
имени функции значение. В точку вызова возвращается результат последнего присваивания. Обращение к функции осуществляется по имени с указанием списка аргументов, если таковые имеются. Каждый аргумент должен соответствовать формальным параметрам, указанным в заголовке, и иметь тот же тип. В качестве примера приведем функцию возведения в степень PROGRAM DemoPower VAR Zreal FUNCTION PowerX,Yreal real
BEGIN Power ExpY LnX END BEGIN Z5.31 возведение значения Z в 4-ю степень WritePowerZ,4.0 END. 3. Задача 1 3.1 Постановка задачи Написать и отладить программу, которая вычисляет значение функции yfх, при заданном с клавиатуры значении х, или выдает сообщение, что функция неопределенна 3.2 Блок-схема алгоритма задачи 3.3 Текст программы на языке
Паскаль Задача 1. Program z1 uses crt var x,yreal Begin clrscr writeВведите х readlnx if x 0 then ysqrx-5x6 else if sqrx-5x6 0 then y1sqrx-5x6 else begin writelnПри х,x52, функция fx не определена. readln halt end writelnОтвет yf,x52 y52 readln End. 3.4 Контрольные примеры Введите х 2 При х 2.00 функция fx не определена. Введите х 5 Ответ yf 5.00 0.17 Введите х -2 Ответ yf-2.0020.00 4.
Задача 2 4.1 Постановка задачи Написать и отладить программу, которая вычисляет значение матричного выражения, или выдает сообщение о невозможности его выполнения, при задании с клавиатуры значениях размерностей и элементов матриц АM,N BL,M C N,L АС4В 4.2 Блок-схема алгоритма задачи 4.3 Текст программы на языке Паскаль Задача 2. Program z2 uses crt var M,N,L,i,j,kinteger A,B,C,D,E,Yarray1 10,1 10 of real
Begin clrscr writelnВычисление матричного выражения YL,MAM,NCN,L4BL,M Ввод размерностей матриц. writeВведите размерность матриц - значения M,N,L 10 readlnM,N,L if M 10 or N 10 or L 10 or M 1 or N 1 or L 1 then begin writelnВведены некорректные данные. 1 M,N,L 10 readln halt end if M L then begin writelnПри заданных значениях
M, N, L вычислить выражение writelnAM,NCN,L4BL,M невозможно,т.к.складываются writelnтолько матрицы одинаковых размеров. writelnВведите одинаковые значения для M и L. readln halt end Ввод элементов матриц. writelnВведите построчно элементы матрицы A,M N, for i1 to M do for j1 to N do readAi,j writelnВведите построчно элементы матрицы B,L M, for i1 to L do for j1 to M do readBi,j writelnВведите построчно элементы матрицы
C,N L, for i1 to N do for j1 to L do readCi,j writelnОтвет Вычисление произведения матриц DM,LAM,NCN,L for i1 to M do for j1 to L do begin Di,j0 for k1 to N do Di,jDi,jAi,kCk,j end Вычисление умножения матрицы на число ЕL,M4BL,M for i1 to L do for j1 to M do Ei,j4Bi,j Вычисление сложения матриц
YL,MDM,LЕL,M for i1 to L do begin for j1 to M do begin Yi,jDi,jEi,j writeYi,j92 end writeln end readln End. 4.4 Контрольные примеры Вычисление матричного выражения YL,MAM,NCN,L4BL,M Введите размерность матриц - значения M, N, L 10 5 4 6 При заданных значениях M, N, L вычислить выражение
AM,NCN,L4BL,M невозможно, т.к. складываются только матрицы одинаковых размеров. Введите одинаковые значения для M и L. Вычисление матричного выражения YL,MAM,NCN,L4BL,M Введите размерность матриц - значения M, N, L 10 4 3 4 Введите построчно элементы матрицы A4,3 3 2 4 1 5 2 4 2 1 6 3 2 Введите построчно элементы матрицы
B4,4 5 2 7 1 3 5 2 8 9 2 9 3 1 4 7 2 Введите построчно элементы матрицы C3,4 5 2 1 7 2 4 2 8 2 1 6 5 Ответ 47.00 26.00 59.00 61.00 31.00 44.00 31.00 89.00 62.00 25.00 50.00 61.00 44.00 42.00 52.00 84.00 5. Задача 3 5.1 Постановка задачи Разработать программы a ввода данных с клавиатуры и формирования текстового файла b чтения текстового файла с диска и вывода его на экран в виде таблицы. Данные для формирования файла.ФКС-2 0,01 10 -8 ч10 -9
АМД-94 1 10 -6ч 10-5 РСК-94 10 10-7 ч10 -6 5.2 Блок-схема алгоритма задачи а Запись данных в файл Fn имя файла. а Чтение данных из файл и их вывод на экран. 5.3 Текст программы на языке Паскаль Задача 3. Program z3a uses crt var ftext n,iinteger fn,s1,s2string rreal Begin clrscr writelnФормирование текстового файла с данными, введенными с клавиатуры. writeВведите имя файла readlnfn assignf,fn rewritef writeВведите количество строк readlnn writelnВведите данные for
i1 to n do begin writeНазвание readlns1 writeЧисленное значение readlnr writeДиапазон readlns2 writelnf,s115,r152,s215 end closef writelnДанные успешно записаны в файл ,fn readln End. Задача 3б. Program z3b uses crt var ftext s,fnstring rreal Begin clrscr writelnЧтение данных из текстового файла и их вывод на экран. writeВведите имя файла readlnfn assignf,fn resetf writelnДанные из файла ,fn while not eoff do begin readlnf,s writelns end closef readln
End. 5.4 Контрольный пример Формирование текстового файла с данными, введенными с клавиатуры. Введите имя файлаf1.txt Введите количество строк 3 Введите данные НазваниеФКС-2 Численное значение0.01 Диапазон10-8 10-9 НазваниеАМД-94 Численное значение1 Диапазон10-6 10-5 НазваниеРСК-94 Численное значение10
Диапазон10-7 10-6 Данные успешно записаны в файл f1.txt Чтение данных из текстового файла и их вывод на экран. Введите имя файла f1.txt Данные из файла f1.txt ФКС-2 0.01 10-8 10-9 АМД-94 1.00 10-6 10-7 РСК-94 10.00 10-7 10-6 Список литературы 1. Бородич Ю.С. и др. Паскаль для персонадьных компьютеров
Справочное пособие. Мн. Выш. шк. БФ ГИТМП Ника, 1991 г. 2. Вальвачев А. Н Крисевич В.С. Программирование на языке Паскаль для персонадьных ЭВМ ЕС Справочное пособие Мн. Выш. шк 1989 г. 3. Васюкова Н. Д Тюляева В. В. Практикум по основам программирования. Язык Паскаль
Учебное пособие М. Высш. шк 1991 г. 4. Офицеров Д. В Старых В. А. Программирование в интегрированной среде Турбо-Паскаль Справочное пособие. МН. Беларусь, 1992 г.
! |
Как писать рефераты Практические рекомендации по написанию студенческих рефератов. |
! | План реферата Краткий список разделов, отражающий структура и порядок работы над будующим рефератом. |
! | Введение реферата Вводная часть работы, в которой отражается цель и обозначается список задач. |
! | Заключение реферата В заключении подводятся итоги, описывается была ли достигнута поставленная цель, каковы результаты. |
! | Оформление рефератов Методические рекомендации по грамотному оформлению работы по ГОСТ. |
→ | Виды рефератов Какими бывают рефераты по своему назначению и структуре. |